KR100569774B1 - 좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템,및 앙상블을 위한 레코더 및 플레이어 - Google Patents

좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템,및 앙상블을 위한 레코더 및 플레이어 Download PDF

Info

Publication number
KR100569774B1
KR100569774B1 KR1020030057908A KR20030057908A KR100569774B1 KR 100569774 B1 KR100569774 B1 KR 100569774B1 KR 1020030057908 A KR1020030057908 A KR 1020030057908A KR 20030057908 A KR20030057908 A KR 20030057908A KR 100569774 B1 KR100569774 B1 KR 100569774B1
Authority
KR
South Korea
Prior art keywords
data
music
audio
music data
type
Prior art date
Application number
KR1020030057908A
Other languages
English (en)
Other versions
KR20040018185A (ko
Inventor
이시이준
후루까와레이
시이야요시히로
아이하라다께요시
Original Assignee
야마하 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2002242482A external-priority patent/JP3969249B2/ja
Priority claimed from JP2002242481A external-priority patent/JP3925349B2/ja
Priority claimed from JP2002316806A external-priority patent/JP4063048B2/ja
Priority claimed from JP2002316807A external-priority patent/JP4048917B2/ja
Application filed by 야마하 가부시키가이샤 filed Critical 야마하 가부시키가이샤
Publication of KR20040018185A publication Critical patent/KR20040018185A/ko
Application granted granted Critical
Publication of KR100569774B1 publication Critical patent/KR100569774B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/005Device type or category
    • G10H2230/011Hybrid piano, e.g. combined acoustic and electronic piano with complete hammer mechanism as well as key-action sensors coupled to an electronic sound generator
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/046File format, i.e. specific or non-standard musical file format used in or adapted for electrophonic musical instruments, e.g. in wavetables
    • G10H2240/056MIDI or other note-oriented file format
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/325Synchronizing two or more audio tracks or files according to musical features or musical timings

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

동기 연주 시스템은 사용자가 자동 연주 피아노(3)를 오디오 플레이어(4)와 앙상블을 이루어 연주할 때 자동 연주 피아노(3)와 오디오 플레이어(4)간의 앙상블을 기록하고 재생한다. 연주의 참조 특성 데이터가 오디오 음악 데이터로부터 추출되어 이벤트 코드와 함께 메모리(FD)에 기억되며, 사용자가 다른 콤팩트 디스크에 기록된 동일한 음악과 앙상블을 이루어 연주를 재생하도록 동기 연주 시스템에 명령하면, 동기 연주 시스템은 다른 콤팩트 디스크에 기록된 오디오 데이터로부터 목표 특성 데이터를 추출하고, 예를 들면, 상관 판정처리를 통해 차이를 찾아내고, 자동 연주 피아노(3)와 오디오 플레이어(4)를 동기적으로 제어하기 위해 노트 이벤트를 재생할 타이밍을 조정한다.
자동 연주 피아노, 오디오 플레이어, 앙상블, 동기 재생 시스템, 음악 데이터

Description

좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템, 및 앙상블을 위한 레코더 및 플레이어{SYNCHRONOUS PLAYBACK SYSTEM FOR REPRODUCING MUSIC IN GOOD ENSEMBLE AND RECORDER AND PLAYER FOR THE ENSEMBLE}
도 1은 본 발명에 따른 동기 연주 시스템의 시스템 구성을 도시하는 블록도.
도 2a는 노트-온 이벤트 코드의 포맷을 도시한 도면.
도 2b는 노트-오프 이벤트 코드의 포맷을 도시한 도면.
도 2c는 시스템 익스클루시브 이벤트 코드의 포맷을 도시한 도면.
도 3은 표준 MIDI 파일의 구조를 도시한 도면.
도 4는 상관 데이터의 처리 방법을 보여주는 흐름도.
도 5는 빗 라인 필터를 도시한 블록도.
도 6은 MIDI 음악 데이터 코드를 생성하는 시퀀스를 도시한 도면.
도 7은 표준 MIDI 파일을 위한 데이터 포맷을 도시한 도면.
도 8은 상관 판정처리의 방법을 보여주는 흐름도.
도 9a 내지 9c는 상관 판정처리의 결과를 보여주는 그래프.
도 10은 동기 연주 시스템을 통한 동기 재생의 타이밍도.
도 11은 본 발명에 따른 동기 연주 시스템의 변형예의 시스템 구성을 도시하는 블록도.
도 12는 표준 MIDI 파일을 위한 데이터 포맷을 도시한 도면.
도 13은 변형예를 통한 동기 재생을 보여주는 타이밍도.
도 14는 본 발명에 따른 동기 연주 시스템의 다른 변형예의 시스템 구성을 도시하는 블록도.
도 15는 표준 MIDI 파일을 위한 데이터 포맷을 도시한 도면.
도 16은 제2 변형예를 통한 사전 기록 및 동기 재생을 도시하는 블록도.
도 17은 본 발명에 따른 다른 동기 연주 시스템의 시스템 구성을 도시하는 블록도.
도 18a는 동기 연주 시스템에 의해 처리되는 노트-온 이벤트 코드의 포맷을 도시한 도면.
도 18b는 동기 연주 시스템에 의해 처리되는 노트-오프 이벤트 코드의 포맷을 도시한 도면.
도 18c는 동기 연주 시스템에 의해 처리되는 시스템 익스클루시브 이벤트 코드의 포맷을 도시한 도면.
도 19는 동기 연주 시스템에 의해 생성되는 표준 MIDI 파일의 구조를 도시한 도면.
도 20은 관리 정보를 생성하는 방법을 보여주는 흐름도.
도 21은 빗 라인 필터의 회로 구성을 도시한 블록도.
도 22는 콤팩트 디스크 드라이버를 통한 재생시에 생성되는 특성 이벤트, 중기 지표 및 장기 지표를 도시하는 그래프.
도 23은 콤팩트 디스크 드라이버와 자동 연주 피아노간의 앙상블에서 생성되는 특성 이벤트 및 MIDI 이벤트를 도시하는 그래프.
도 24는 동기 연주 시스템에 의해 생성된 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 25는 한 콤팩트 디스크에 저장된 음악의 진행과 다른 콤팩트 디스크에 저장된 음악의 진행간의 관계를 도시하는 그래프.
도 26은 동기 재생 모드에서 타이밍 조정을 통해 노트 이벤트를 자동 연주 피아노에 공급하는 타이밍을 변경하는 것을 도시하는 테이블.
도 27은 동기 연주 시스템의 제1 변형예의 시스템 구성을 도시하는 블록도.
도 28은 노트 이벤트를 자동 연주 피아노에 공급하는 타이밍의 변경을 도시하는 테이블.
도 29는 한 쌍의 특성 이벤트에 대한 회귀선을 나타내는 그래프.
도 30은 노트 이벤트에 대한 타이밍 조정을 도시하는 테이블.
도 31은 자동 연주 피아노와 콤팩트 디스크 드라이버/오디오 장치간의 동기 재생을 도시한 그래프.
도 32는 본 발명에 따른 또다른 동기 연주 시스템의 시스템 구성을 도시하는 블록도.
도 33은 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 34a 내지 34c는 노트 이벤트 코드를 위한 데이터 포맷을 도시한 도면.
도 35는 참조 상관 데이터를 생성하는 방법을 보여주는 흐름도.
도 36은 빗 라인 필터의 회로 구성을 도시한 블록도.
도 37은 특성 이벤트를 샘플 값으로 찾는 방법을 보여주는 흐름도.
도 38은 빗 라인 필터의 회로 구성을 도시한 블록도.
도 39는 중기 지표 및 장기 지표를 도시하는 그래프.
도 40은 특성 이벤트 및 노트 이벤트를 도시하는 그래프.
도 41은 참조 정보로부터 음악의 엔드부에서 참조 상관 데이터를 생성하는 데이터 처리 방법을 보여주는 흐름도.
도 42는 상관 판정을 위한 데이터 처리를 도시하는 흐름도.
도 43은 절대 상관 지표, 상대 상관 지표 및 그 극대치를 보여주는 그래프.
도 44는 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 45는 오디오 데이터로 표현되는 오디오 파형과 특성/노트 이벤트간의 관계를 보여주는 도면.
도 46은 동기 재생시 노트 이벤트를 조정하는 방법을 보여주는 흐름도.
도 47은 톱 오프셋 시간 및 엔드 오프셋 시간에 대한 상관 판정처리 후에 생성되는 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 48은 이벤트 코드를 생성하는 타이밍을 수동 조정하는 방법을 보여주는 흐름도.
도 49는 표준 MIDI 파일에 저장된 특성 이벤트와 동기 재생시 재생되는 오디오 음악 데이터 코드 쌍으로부터 추출된 특성 이벤트간의 관계를 보여주는 테이블.
도 50은 특성 이벤트의 예상 도착 시간을 보여주는 테이블.
도 51은 시간의 경과와 예상 도착 시간 사이에서 예측된 회귀선을 도시한 그래프.
도 52는 조정 전후의 오디오 데이터, 목표 상관 데이터, 지표 및 이벤트 코드를 도시한 타이밍도.
도 53는 동기 연주 시스템의 변형예의 시스템 구성을 도시하는 블록도.
도 54는 본 발명에 따른 또다른 동기 연주 시스템의 시스템 구성을 도시하는 블록도.
도 55는 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 56a 내지 56c는 노트 이벤트 코드를 위한 데이터 포맷을 도시한 도면.
도 57은 참조 상관 데이터를 생성하는 방법을 보여주는 흐름도.
도 58은 빗 라인 필터의 회로 구성을 도시한 블록도.
도 59는 특성 이벤트를 샘플 값으로 찾는 방법을 보여주는 흐름도.
도 60은 빗 라인 필터의 회로 구성을 도시한 블록도.
도 61은 중기 지표 및 장기 지표를 도시하는 그래프.
도 62는 특성 이벤트 및 노트 이벤트를 도시하는 그래프.
도 63은 참조 정보로부터 음악의 엔드부에서 참조 상관 데이터를 생성하는 데이터 처리 방법을 보여주는 흐름도.
도 64는 상관 판정을 위한 데이터 처리를 도시하는 흐름도.
도 65는 절대 상관 지표, 상대 상관 지표 및 그 극대치를 보여주는 그래프.
도 66은 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 67은 오디오 데이터로 표현되는 오디오 파형과 특성/노트 이벤트간의 관계를 보여주는 도면.
도 68은 동기 재생시 노트 이벤트를 조정하는 방법을 보여주는 흐름도.
도 69는 톱 오프셋 시간 및 엔드 오프셋 시간에 대한 상관 판정처리 후에 생성되는 표준 MIDI 파일의 데이터 구조를 도시한 도면.
도 70은 이벤트 코드를 생성하는 타이밍을 수동 조정하는 방법을 보여주는 흐름도.
도 71은 표준 MIDI 파일에 저장된 특성 이벤트와 동기 재생시 재생되는 오디오 음악 데이터 코드 쌍으로부터 추출된 특성 이벤트간의 관계를 보여주는 테이블.
도 72는 특성 이벤트의 예상 도착 시간을 보여주는 테이블.
도 73은 시간의 경과와 예상 도착 시간 사이에서 예측된 회귀선을 도시한 그래프.
도 74는 조정 전후의 오디오 데이터, 목표 상관 데이터, 지표 및 이벤트 코드를 도시한 타이밍도.
도 75는 동기 연주 시스템의 변형예의 시스템 구성을 도시하는 블록도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 콤팩트 디스크 드라이버
3 : 자동 연주 피아노
4 : 오디오부
5 : 조작 패널/표시부
6 : 제어기
62 : 중앙 처리 장치
63 : 디지털 신호 처리기
64 : 랜덤 액세스 메모리
본 발명은 악곡의 재생 시스템, 그 재생 시스템의 부분을 형성하는 레코더 및 플레이어에 관한 것으로 특히, 악곡을 재생하기 위한 동기 재생 시스템, 동기 재생 시스템의 부분을 형성하는 레코더 및 플레이어에 관한 것이다.
여러가지 규격화된 교재들에서 악곡을 연주하는 여러가지 방법을 설명하고 있다. 이 규격화된 교재들 중 하나를 "MIDI(Musical Instrument Digital Interface) 표준"이라고 하고, 이 MIDI 표준은 전자 악기를 연주하는 뮤지션들 사이에 유명하다. MIDI 표준에 기초한 음악 데이터를 "MIDI 음악 데이터 코드"라고 한다. 이벤트 코드 및 델타 타임(delta-time) 코드들이 MIDI 음악 데이터 코드 세트의 주요한 부분이다. 노트-온(note-on) 이벤트와 노트-오프(note-off) 이벤트가 이벤트 코드의 전형적인 예들이다. 노트-온 이벤트에서 톤이 생성되고, 노트-오프 이벤트에서 이 톤이 소멸된다. 델타 타임 코드는 이벤트와 다음 이벤트 사이의 시간 주기 또는 재생 개시로부터 경과한 시간을 나타낸다. MIDI 음악 데이터 코드 또는 코드들은 곡 정보를 포함하고, 이 MIDI 데이터 코드 또는 코드들에 녹음된 정 보를 이하에서는 "MIDI 데이터"라고 한다.
그 외 "Red Book" 이라고 하는 표준 북이 있는 데, 오디오 팬들 사이에 유명하다. 악절을 아날로그 오디오 신호에서의 일련의 이산적인 이진값들로 나타내고, CD(Compact-Disc)가 이산적 이진값 형태로 악곡 녹음에 사용된다. 악절를 나타내는 일련의 이산적 이진값을 이하에서, "오디오 음악 데이터 코드"라고 하기로 한다. 오디오 음악 데이터 코드는 여러 종류의 제어 데이터 코드와 함께 "오디오 데이터 코드" 세트를 형성한다. 여러 종류의 제어 데이터 코드들 중 하나는 재생될 톤 그룹에 대한 연주 개시로부터 경과되는 시간을 나타내고, 이하에서는 이것을 "오디오 시간 데이터 코드"라고 한다. 오디오 음악 데이터 코드는 곡 정보를 포함하고, 오디오 음악 데이터 코드에 녹음된 정보를 이하에서 "오디오 데이터"라고 한다.
다음의 설명에서, "전자 악기"는 악절을 나타내는 악곡 데이터를 생성하거나 또는 악곡 데이터로부터 톤을 재생하는 장비를 나타낸다. 이러한 관점에서, 전자 악기들을 전자 피아노, 신시싸이저, 샘플링 머신, 하드 디스크 레코더, 시퀀서 및 적절한 소프트웨어를 갖는 퍼스널 컴퓨터 시스템으로 분류하였다. MIDI 음악 데이터를 나타내는 악절을 생성하거나 또는 MIDI 음악 데이터를 기초로 악절을 재생하는 전자 악기들을 이하에서 "MIDI 악기"라고 한다. 오디오 음악 데이터 코드로 표시되는 악절을 생성하거나 또는 오디오 음악 데이터 코드로부터 악절을 재생하는 전자 악기들을 이하에서 "전자 오디오 악기"라고 한다.
MIDI 악기와 전자 오디오 악기 사이에 앙상블로 악곡을 재생하기 위한 동기 재생 시스템이 제안되어 있다. 동기 재생을 위해 오디오 시간 데이터 코드가 이용가능하고, 동기 기술들은 예를들어 일본국 출원번호 2002-7872호와 2002- 7873호에 개시되어 있다.
연주자는 일단 자신의 연주를 종래의 동기 재생 시스템을 통해 전자 오디오 악기와 앙상블로 녹음한 다음, 종래의 동기 재생 시스템을 통해 전자 오디오 악기로 앙상블로 재생한다. 구체적으로, 전자 키보드와 같은 MIDI 악기 및 전자 오디오 악기들이 종래 기술의 동기 시스템의 일부를 형성하는 레코더에 접속된다. 연주자는 전자 오디오 악기를 통해 악곡의 재생을 개시하고, 전자 키보드 상에 악곡을 연주할 준비를 한다. 오디오 음악 데이터 코드 및 오디오 시간 데이터 코드를 CD로부터 순차 판독하고 각각 오디오 시스템 및 레코더에 제공한다. 오디오 시스템은 제1 톤 또는 톤들을 생성하고, 연주자는 전자 키보드로 연주를 개시한다. 연주자는 전자 오디오 악기와 함께 앙상블로 선택적으로 키를 누르고 떼어놓고, 손가락으로 전자 키보드를 연주하는 것을 MIDI 음악 데이터 코드로 변환한다. 이벤트 코드가 단속적으로 레코더에 도달하고, 레코더에 의해 델타 타임 코드가 생성된다. 오디오 시간 코드도 레코더에 단속적으로 도달하고, 레코더는 플로피 디스크와 같은 정보 저장 매체에 오디오 시간 데이터 코드들과 함께 이벤트 코드와 델타 타임 코드를 저장한다.
연주자는 종래의 재생 시스템에 지시하여 앙상블을 재생하도록 한다. 전자 오디오 악기는 악곡 재생을 개시하고, 오디오 음악 데이터 코드들과 오디오 시간 데이터 코드들 각각이 오디오 시스템 및 종래의 재생 시스템으로 제공된다. 이벤 트 코드, 델타 타임 코드 및 오디오 시간 데이터 코드들이 플로피 디스크로부터 판독되고, 이벤트 코드들은 MIDI 악기로 단속적으로 제공된다. 그러면, 톤이 일부는 오디오 시스템, 일부는 전자 키보드를 통해 부분적으로 재생된다. MIDI 음악 데이터 코드와 오디오 시간 데이터 코드가 플로피 디스크로부어 판독되는 동안, 종래의 재생 시스템은 플로피 디스크로부터 판독된 오디오 시간 데이터 코드와 전자 오디오 악기로부터 제공된 오디오 시간 데이터 코드를 비교하여 전자 키보드를 통한 재생이 오디오 시스템을 통한 재생과 동기되는지 여부를 본다. 동기되면, 종래의 재생 시스템과 앙상블로 재생을 계속한다. 반면, 동기되지 않으면, 종래의 재생 시스템은 재생 동기를 유지하기 위해 이벤트 코드와 다음 이벤트 코드 사이의 시간 간격을 변화시킨다.
종래 기술은 악기와 일루미네이터, 비디오 재생 시스템 또는 사운더와 같은 다른 종류의 악기 사이에서 동기화시키기 위해 이용가능하다. 종래의 동기 기술은 일본특허공개 2001-195061호에 개시되어 있다. 일루미네이션의 변화를 나타내는 방법으로 플래그가 음악 데이터 코드들에 부가된다. 음악 데이터 코드가 처리되면, 플래그가 종래의 제어기에 단속적으로 도달하고, 종래의 제어기는 다른 종류의 악기에 지시하여 일루미네이션을 변화시킨다. 그러면, 일루미네이션이 악곡의 재생과 동기하여 변화된다.
다른 종래 기술이 일본국 출원번호 2001-215958에 개시되어 있다. 동기 데이터 코드들이 이벤트 코드와 연속하여 제공된다.
종래 기술의 동기 재생 시스템에서 발생하는 문제는, 동기 재생이, 이벤트 코드와 델타 타임 코드가 오디오 시간 데이터 코드들과 함께 이미 저장되어 있는 플로피 디스크와, 녹음에 사용된 CD와는 다른 판의 CD 사이에 앙상블이 이루어지기는 어렵다. 이것은 사실, CD 타이틀과 연주자의 이름이 동일하다하더라도, 오디오 시간 데이터 코드들은 종래 기술의 재생 시스템에 대한 다른 CD에 저장된 오디오 음악 데이터 코드들에 기초한 재생 개시에서부터 시간 경과를 보장하지 못하기 때문이다.
악곡이 어떤 뮤지션에 의해 연주된다고 가정한다. 연주는 마스터 테입에 녹음된다. 녹음 회사는 음악 CD를 제조하고, 제조자는 마스터 테입에 저장된 악곡과 다른 악곡들에 대한 메탈 마스터를 설계한다. 녹음 회사는 메탈 마스터로부터 다량의 음악 CD를 복사하고 이것들을 음악 시장에 판다. 또한, 녹음 회사는 음악 CD를 제조하고, 마스터 테입에 저장된 악곡과 다른 악곡들에 대한 다른 메탈 마스터를 설계한다. 악곡 및 연주자가 동일하다하더라도, 이전의 메탈 마스터와 동일하게 만드는 것은 엄격하게 불가능하다. 예를들어, 이전 판의 제1 톤을 나타내는 오디오 음악 데이터 코드들에 대한 읽기 헤드로부터의 시간 주기인 침묵 시간은 새 판의 침묵 시간과는 다르다. 이것은 종래의 재생 시스템이, 다른 악기에 할당된 다른 장비보다 빨리 MIDI 악기 또는 전자 오디오 악기에 할당된 부분을 개시한다는 것을 의미한다. 즉, 종래 기술의 재생 시스템을 통해서는 동기 재생이 되기는 어렵다.
플로피 디스크에 저장된 오디오 시간 데이터 코드가, 녹음에 사용된 CD와 다른 판의 CD에 저장된 오디오 시간 데이터 코드와 항상 동일한 것은 아니다. 녹음 회사가 새로운 판을 준비하는 동안, 편집자는 어떤 톤에 잔향을 부가할 수도 있다. 이것은 오디오 시간 데이터 코드가 실제의 연주의 진행과는 약간 다른 재생의 진행을 나타내게 한다. 또한, 녹음에 사용된 클록 신호가 편집시 사용된 클록 신호의 주파수와 엄격하게 동일한 것은 아니다. 이것은 또한 MIDI 악기 또는 오디오 악기가 다른 악기로부터 재생에서 지연되는 결과를 나타낸다.
따라서, 본 발명의 목적은 복수의 기기를 동기화할 수 있는 동기 연주 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 동기 시스템에서 이용되는 방법을 제공하는 것이다.
상기 목적을 달성하기 위해, 본 발명은 콤팩트 디스크에 기록되어 있는 악곡의 오디오 파형의 특성부와 다른 콤팩트 디스크에 기록되어 있는 악곡의 다른 오디오 파형의 대응하는 특성부간의 비교를 통해, 예컨대, 노트 이벤트와 같은 제1 종류의 음악 데이터를 공급하는 타이밍을 조정하는 것을 제안하고 있다.
본 발명의 한 실시 형태에 따르면, 제1 종류의 음악 데이터로 표현되는 연주를, 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터로 표현되는 악곡의 재생과 앙상블을 이루어 기록하는 레코더가 제공된다. 상기 레코더는, 상기 제1 종류의 음악 데이터의 데이터 소스와, 상기 제2 종류의 음악 데이터의 다른 데이터 소스와, 음악 데이터 파일이 공급되는 수신지에 접속된 인터페이스; 및 상기 인터페이스에 접속된 데이터 처리 장치를 포함하고, 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로부터 상기 악곡을 표현하는 오디오 파형의 특성부를 나타내는 참조 특성 데이터를 추출하여, 상기 제1 종류의 음악 데이터, 상기 참조 특성 데이터 및 상기 연주에서 생성되는 톤을 재생할 타이밍을 나타내는 시간 데이터를 상기 음악 데이터 파일내에 형성하고, 상기 음악 데이터 파일을 상기 인터페이스를 통해 상기 수신지에 공급한다.
본 발명의 다른 실시 형태에 따르면, 제1 종류의 음악 데이터로 표현되는 연주의 톤을, 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터로 표현되는 악곡의 재생과 앙상블을 이루어 재생하는 플레이어가 제공된다. 상기 플레이어는, 상기 제1 종류의 음악 데이터, 상기 악곡을 표현하는 상기 제2 종류의 다른 음악 데이터로 나타낸 오디오 파형의 특성부를 나타내는 참조 특성 데이터 및 상기 연주에서 상기 톤을 재생할 타이밍을 나타내는 시간 데이터를 포함하는 적어도 하나의 음악 데이터 파일을 기억하는 음악 데이터 파일의 소스; 상기 제2 종류의 음악 데이터의 데이터 소스; 상기 제1 음악 데이터에 기초하여 상기 톤을 생성하는 사운드 소스; 및 상기 제2 종류의 음악 데이터로부터 다른 톤을 생성하는 다른 사운드 소스에 접속되는 인터페이스와, 상기 인터페이스에 접속된 데이터 처리 장치를 포함하고, 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로부터 상기 악곡을 표현하는 다른 오디오 파형의 특성부를 나타내는 목표 특성 데이터를 추출하고, 상기 목표 특성 데이터를 참조 목표 특성 데이터와 비교하여 상기 오디오 파형의 특성부와 상기 다른 오디오 파형의 특성부간의 시간차를 찾아내고, 상기 시간 데이터를 변경함으로써 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급하는 타이밍을 조정하고, 변경된 시간 데이터로 표현되는 타이밍으로 상기 제2 종류의 음악 데이터를 상기 다른 사운드 소스에 공급하고 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급한다.
본 발명의 또다른 실시 형태에 따르면, 적어도 사전 기록 및 동기 재생을 실행하는 동기 연주 시스템이 제공된다. 상기 시스템은, 연주시 생성되는 톤을 나타내는 제1 종류의 음악 데이터의 데이터 소스; 악곡을 표현하는 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터 및 상기 악곡을 표현하는 상기 제2 종류의 다른 음악 데이터의 다른 데이터 소스; 상기 제1 종류의 음악 데이터, 상기 제2 종류의 음악 데이터로 나타낸 오디오 파형의 특성부를 나타내는 참조 특성 데이터 및 상기 연주에서 상기 톤을 생성할 타이밍을 나타내는 시간 데이터를 포함하는 적어도 하나의 음악 데이터 파일을 기억하는 음악 데이터 파일의 소스; 상기 제1 종류의 음악 데이터에 기초하여 상기 톤을 생성하는 사운드 소스; 및 상기 제2 종류의 다른 음악 데이터로부터 다른 톤을 생성하는 다른 사운드 소스에 접속되는 인터페이스와, 상기 인터페이스에 접속된 데이터 처리 장치를 포함하고, 상기 데이터 처리 장치는 상기 사전 기록을 위해 상기 데이터 소스, 상기 다른 데이터 소스 및 상기 음악 데이터 파일의 소스와 통신하고, 상기 동기 재생을 위해 상기 음악 데이터 파일의 소스, 상기 사운드 소스 및 상기 다른 사운드 소스와 통신하며, 여기서 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로부터 참조 특성 데이터를 추출하여, 상기 제1 종류의 음악 데이터, 상기 참조 특성 데이터 및 시간 데이터를 상기 음악 데이터 파일내에 형성하고, 상기 음악 데이터 파일을 상기 인터페이스를 통해 상기 음악 데이터 파일의 소스에 공급하며, 상기 데이터 처 리 장치는 상기 제2 종류의 다른 음악 데이터로부터 상기 악곡을 표현하는 다른 오디오 파형의 특성부를 나타내는 목표 특성 데이터를 추출하고, 상기 목표 특성 데이터를 참조 목표 특성 데이터와 비교하여 상기 오디오 파형의 특성부와 상기 다른 오디오 파형의 특성부간의 시간차를 찾아내고, 상기 시간 데이터를 변경함으로써 상기 제1 종류의 음악 데이터를 상기 제1 사운드 소스에 공급하는 타이밍을 조정하고, 변경된 시간 데이터로 표현되는 타이밍으로 상기 제2 종류의 다른 음악 데이터를 상기 다른 사운드 소스에 공급하고 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급한다.
본 발명의 기본적 개념은, 악절을 나타내는 오디오 파형의 특성과, 동일한 악절을 나타내는 다른 오디오 파형의 대응하는 특성 사이에 기본적인 시간 지연에 기초하여 노트 이벤트들을 변경하는 것이다. 노트 이벤트는 예를들어 사용자가 악절의 재생을 청취하고, 악절의 진행과 동기하여 자신의 손가락을 조절하는 방법으로 악기를 통해 생성된다. 이것은 오디오 파형의 특성들이 손가락의 움직임에 영향을 준다는 것을 의미한다. 악절의 이전 진향과 동일한 악절의 이후 진행과의 사이에서 시간 지연이 발생한다하더라도, 노트 이벤트가 악절을 나타내는 오디오 파형의 특성들에 잘 대응하는 한 사용자는 연주가 악절의 이후 진행과 좋은 앙상블로 재생된다고 느낀다.
본 발명은 상술한 발견에 기초하여 이루어진 것이다. 좋은 앙상블에 필요한 제1 기술은 오디오 파형의 특성들과 다른 오디오 파형의 특성들 사이에 시간 지연 이 생기도록 상기 오디오 파형의 특성들이 다른 오디오 파형의 특성들에 대응하도록 만드는 것이다. 양호한 앙상블에 필요한 제2 기술은 시간 지연이 있다면 이것을 제거하는 것이다.
제1 기술과 같이 상호 대응하는 특성들을 만들기 위해 상관 판정이 이용가능하다. 상관 판정 이전에 상관 데이터들을 준비할 필요가 있다. 이 상관 데이터들은 예를들면 다음과 같은 방법으로 준비된다. 오디오 파형은 오디오 파형을 샘플링함으로써 얻어진 오디오 음악 데이터 코드의 샘플링 값으로 나타냄으로써, 샘플링값 자체가 특성들로 작용할 수 있다. 그럼에도 불구하고, 오디오 파형은 통상 노이즈 성분을 포함한다. 따라서, 적합한 필터링을 통해 샘플링 값으로부터 노이즈 성분을 제거하는 것이 바람직하다. 더우기, 특성들은 저주파 범주의 파형에서 발견되기 쉽다. 따라서, 또한 샘플링 값들로부터 저주파 성분을 추출하는 것이 바람직하다. 만약 데이터 처리 능력이 모든 샘플링 값들에서의 데이터 처리를 실행하기 충분할 정도로 크다면, 상관 데이터에 대한 어떠한 다운-샘플링도 필요치 않다. 만약 그렇지 않다면, 샘플링 값들에 대해 다운-샘플링을 실행하는 것이 바람직하다. 그러면, 상관 데이터들이 오디오 음악 데이터 코드들의 샘플링 값들로부터 생성된다. 1개의 오디오 파형에 대한 상관 데이터를 다른 오디오 파형에 대한 상관 데이터와 비교함으로써, 이들 사이에 시간 지연이 발생하는지 여부를 본다. 만약 시간 지연이 발견되면, 이하에서 상세히 설명될 제2 기술을 사용하여 이들 사이의 시간 지연을 제거한다. 노트 이벤트가 1개의 오디오 파형으로부터 추출된 상관 데이터와 동기하여 생성되기 때문에, 시간 지연을 제거한 후 다른 오디오 파형 으로부터 추출된 상관 데이터와 동기하여 노트 이벤트를 재생하도록 고려한다.
상관 데이터를 파형의 일부 또는 전체 오디오 파형으로부터 추출할 수 있다. 파형의 일부는 악곡의 헤드부, 악곡의 엔드부 또는 악곡의 중간부를 점유할 수 있다. 상관 데이터가 악곡의 특성부로부터 추출되는 것이 바람직하다.
오디오 속성의 급격한 변화가 특징으로서 작용할 수 있다. 오디오 속성은 어떤 주파수 범위의 볼륨 또는 크기일 수 있다. 어떤 주파수 범위에서의 볼륨의 급격한 변화를 발견하기 위해, 샘플링값들에 대한 로우 패스 필터링을 통해 저주파 성분들과 초저주파 성분들이 오디오 음악 데이터 코드들의 샘플링값들로부터 추출된다. 저주파 범위의 성분 및 초저주파 범위의 성분들을 "중기 지표(medium-range index)" 및 "장기 지표(long-range index)"라 한다. 예를들어, 1 ㎐∼100 ㎐ 의 특정 범위에 있는 주파수 범위의 볼륨이 오디오 파형을 급격하게 확대한다면, 중기 지표가 장기 지표를 초과한다. 이러한 이유로, 중기 지표를 장기 지표와 비교함으로써 급격한 변화 또는 특성들을 판정한다. 급격한 변화를 "특성 이벤트"라고 한다. 오디오 파형에서의 특성 이벤트는 다른 오디오 파형에서의 특성 이벤트에 대응하도록 만들어지고, 이 두 세트의 특성 이벤트들 사이에 어떤 시간 지연이 발생하는지 여부를 본다. 마약 시간 지연이 발생하면, 제2 기술을 사용하여 이들 사이의 시간 지연을 제거한다. 노트 이벤트가 1개의 오디오 파형으로부터 추출된 특성 이벤트와 동기하여 생성되기 때문에, 시간 지연을 제거한 후 노트 이벤트를, 다른 오디오 파형으로부터 추출된 특성 이벤트와 동기하여 재생되도록 고려한다.
다른 종류의 급격한 변화가 특성들로서 사용될 수 있어, 크기에서의 급격한 변화가 본 발명의 기술적인 범위를 제한하도록 설정되지는 않는다.
어떤 CD에 녹음된 악절과 앙상블로 생성된 노트 이벤트와, 다른 CD에 녹음된 악절과 앙상블로 생성될 노트 이벤트 사이의 시간 지연이 다음과 같이 제거된다. 악곡은 오디오 데이터 코드 세트 형태로 양 CD에 녹음될 것으로 가정되고, 연주는 연주 개시로부터 관련 노트 이벤트까지의 시간 경과를 나타내는 노트 이벤트 코드와 델타 타임 코드 세트로 나타낸다.
CD에서, 악곡 시작 및 후에 침묵이 녹음된다. 동일한 악곡이 양 CD에 녹음된다 하더라도, 1개의 CD에서의 침묵이 다른 CD에서의 침묵보다 더 길거나 짧다. 이러한 CD들을 "제1 카테고리의 CD"라고 한다. 더우기, 하나의 CD와 다른 CD 사이에서의 침묵이 동일하다면, 악곡은 하나의 CD와 다른 CD 사이에서 템포가 다르다. 이러한 CD들을 "제2 카테고리의 CD"라고 한다. 결국, 침묵 및 템포가 하나의 CD와 다른 CD 사이의 차이다. 이러한 CD들을 "제3 카테고리의 CD"라고 한다. 상관 데이터의 추출 및 특성 이벤트의 추출을 이들 CD들 즉, 제1 카테고리의 CD, 제2 카테고리의 CD 및 제3 카테고리의 CD에 선택적으로 제공한다.
두개의 CD들이 제1 카테고리에 해당하는 경우, 상관 데이터의 추출이 이들 CD들에 제공될 수 있다. 사용자가 하나의 CD에 녹음된 악곡의 재생과 앙상블로 노트 이벤트를 생성하는 동안, 상관 데이터들이 악곡을 나타내는 오디오 음악 데이터의 샘플링값으로부터 추출되고, 상관 데이터가 노트 이벤트들, 타이밍 즉, 노트 이벤트들이 각각 생성되고 어떤 상관 데이터가 샘플링 값으로부터 생성된 때의 시간 데이터와 함께 재생되기 위해 기억된다.
사용자가 노트 이벤트들로 나타낸 연주를 다른 CD에 녹음된 악절의 재생과 앙상블로 재생하기를 원한다면, 다른 CD에 녹음된 오디오 음악 데이터 코드들의 샘플링값으로부터 상관 데이터가 추출되고, 도착 시간이 판정된다. 상관 판정은 두 개 세트의 상관 데이터에 대해 실행된다. 악곡의 일부가 이미 기억된 악곡의 일부와 아주 많이 상관된 것으로 판정되면, 이미 기억된 어떤 상관 데이터에 대응하는 상관 데이터가 특정되고, 대응하는 상관 데이터로부터 생성되는 샘플링값과 관련된 시간 데이터를, 어떤 상관 데이터에 대한 시간 데이터와 비교하여 시간 지연이 발생하는지 여부를 본다. 시간 지연이 발견되면, 노트 이벤트가 발생하는 타이밍을 나타내는 시간 데이터로부터 시간 지연량이 부가되거나 감산된다. 그리하면, 노트 이벤트들이 변경된다. 제1 카테고리의 CD들을 제1 실시예와 연관하여 좀 더 상세히 설명하기로 한다. 상관 판정은 재생에 앞서 실행되거나 실시간 형태로 실행될 수 있다.
CD가 제2 카테고리에 해당하는 경우, 특성 이벤트의 추출이 제2 카테고리에 제공될 수 있다. 사용자가 1개의 CD에 녹음된 악곡의 재생과 앙상블로 노트 이벤트를 생성하는 동안, 악곡의 오디오 파형을 나타내는 오디오 음악 데이터 코드들의 샘플링값으로부터 특성 이벤트들이 추출되고, 특성 이베트들이 노트 이벤트, 타이밍 즉, 노트 이벤트와 특성 이벤트들이 각기 생성되는 시간 데이터들과 함께 재생하기 위해 기억된다.
사용자가 다른 CD에 녹음된 악곡의 재생과 앙상블로 노트 이벤트들로 나타낸 연주를 재생하기를 원한다면, 특성 이벤트들이 다른 CD에 녹음된 오디오 음악 데이 터의 샘플링값으로부터 추출되고, 이 특성 이벤들과 대응하는 특성 이벤트들을 비교하여 시간 지연이 발생하는지 여부를 본다. 시간 지연이 발견되면, 노트 이벤트가 발생하는 타이밍을 나타내는 시간 데이터로부터 시간 지연량을 부가하거나 뺀다. 그리하면, 노트 이벤트들이 변경된다. 제2 카테고리의 CD들을 제2 실시예와 연관하여 좀 더 상세히 설명하기로 한다. 변경은 각각의 특성 이벤트들과 대응 특성 이벤트들 간에 발생하는 시간 지연에 따라 반복될 수 있다.
CD가 제3 카테고리에 해당하는 경우, 사용자가 하나의 CD에 녹음된 악곡과 앙상블로 노트 이벤트를 생성하는 동안, 헤드부에서의 상관 데이터들이 악곡의 헤드부를 나타내는 샘플링값으로부터 추출되고, 엔드부의 상관 데이터들이 악곡의 엔드부를 나타내는 샘플링값으로부터 추출되며, 헤드부에서의 상관 데이터 및 엔드부에서의 상관 데이터가, 노트 이벤트에 대한 시간 데이터, 상관 데이터의 헤드부에서 사전설정된 상관 데이터가 발생하는 어떤 시간, 및 상관 데이터의 엔드부에서 사전설정된 상관 데이터가 발생하는 어떤 다른 시간과 함께 기억된다. 사용자가 연주를 재생하기 원한다면, 헤드부에서의 상관 데이터가 다른 CD에 녹음된 악곡의 헤드부를 나타내는 샘플값으로부터 추출되고, 샘플값으로터 엔드부에서의 상관 데이터는 악곡의 엔드부를 나타낸다. 헤드부에서의 두 세트의 상관 데이터와 엔드부에서의 두 세트의 상관 데이터에 대해 상관 판정이 행해지고, 어떤 시간에 대응하는 시간과 다른 어떤 시간에 대응하는 다른 시간을 판정한다. 어떤 시간과 대응하는 시간 사이의 시차인 톱 오프셋(top offset)과, 다른 어떤 시간과 대응하는 시간 사이의 시차인 엔드 오프셋이 판정된다. 하나의 CD에 녹음된 악곡의 템포와 다른 CD에 녹음된 악곡의 템포 간의 비를 톱 오프셋, 엔드 오프셋 및 이들 시간에 기초하여 계산한다. 그러면, 이 비를 사용하여 노트 이벤트들이 생성될 타이밍을 변경한다. 따라서, 상관 데이터의 추출이 제3 카테고리 내의 CD에 제공된다. 물론, 특성 이벤트의 추출이 제3 카테고리에서의 CD에도 적용가능하다. 이 애플리케이션들을 제3 및 제4 실시예와 연관하여 좀 더 상세히 설명한다.
그럼에도 불구하고, 특성 이벤트들의 추출이 제1 카테고리의 CD에 제공될 수 있고, 상관 데이터의 추출이 제2 카테고리의 CD에도 제공될 수 있다.
제1 내지 제4 실시예에서의 데이터 처리를 통해 특별한 특성들 사이의 상술한 대응과 시간 지연 제거가 달성된다. 데이터 처리 유닛은 본 발명을 구현하는 레코더, 플레이어 및 동기 재생 시스템 내에 통합되고, 주어진 태스크들에 대한 컴퓨터 프로그램을 운영한다. 컴퓨터 프로그램은 이하에서 제1 내지 제4 실시예들과 연관하여 설명하기로 한다.
제1 실시예
시스템 구성
도 1을 참조하면, 본 발명을 구현하는 동기 재생 시스템은 콤팩트 디스크(CD) 드라이버(1), 플로피 디스크(FD) 드라이버(2), 자동 연주 피아노(3), 오디오부(4), 조작 패널/표시부(5) 및 제어기(6)를 포함한다. CD 드라이버(1), FD 드라이버(2), 자동 연주 피아노(3), 오디오부(4) 및 조작 패널/표시부(5)는 신호선들을 통해 서로 접속되어 있고, 자동 연주 피아노(3) 및 오디오부(4)는 신호선들을 통해 상호 접속되어 있다. 동기 재생 시스템은 적어도 사전 기록 모드 및 동기 재 생 모드를 갖는다. 동기 재생 시스템은 예비적으로 플로피 디스크 FD 내에 MIDI 표준 파일을 준비하는 데 여기서, MIDI 데이터와 델타 타임 데이터들이 본 발명에 따른 참조 상관 데이터들과 함께 사전 기록 모드로 저장된다. 델타 타임 데이터는 앙상블 개시로부터 시간 경과를 나타내고, 참조 상관 데이터들은 오디오 음악 데이터 코드로부터 생성될 오디오 신호 파형을 나타낸다.
한편, 동기 재생 시스템은 MIDI 데이터, 델타 타임 데이터 및 FD로부터의 참조 상관 데이터와 CD(1)로부터의 오디오 음악 데이터를 수신한다. 동기 재생 시스템은 참조 상관 데이터와, 동기 재생 모드에서 CD(1)로부터 제공된 오디오 음악 데이터 코드로부터 생성되는 목표 상관 데이터를 비교하고, 상관 판정에서, CD 드라이버(1)/오디오부(4)을 통한 재생과 앙상블로 적절한 타이밍으로 MIDI 음악 데이터를 조정한다. 그리하여, 동기 재생 시스템은 자동 연주 피아노(3) 및 오디오부(4)이 양호한 앙상블로 악절을 동기 재생하도록 한다.
조작 패널/표시부(5)는 제어기(6)에 접속된다. 사용자는 조작 패널을 통해 제어기(6)에 지시하고, 제어기(6)는 표시부 상에 생성된 시각적 이미지를 통해 사용자에게 동기 재생 시스템의 현재 상태를 통지한다. 제어기(6)는 또한 CD(1), FD(2), 자동 연주 피아노(3) 및 오디오부(4)에 접속되고, 자동 연주 피아노(3)는 오디오부(4)에 바로 접속된다. 사전 기록 모드 및 동기 재생 모드에서, MIDI 데이터, 오디오 음악 데이터, 델타 타임 데이터, 참조 상관 데이터 및 다른 종류의 데이터들이 이 시스템 구성 요소(1, 2, 3, 4, 5, 및 6) 사이에 선택적으로 전송된다. 이 시스템 구성 요소(1, 2, 3, 4, 5, 및 6)의 동작을 이하에서 상세히 설명하 기로 한다.
CD 드라이버
CD 내에 악절에 대한 리드-인, 다수개 프레임 및 리드-아웃이 연속하여 저장되고, 오디오 시간 데이터 및 오디오 음악 데이터가 사전설정된 종류의 제어 데이터와 함께 프레임을 형성한다. 오디오 음악 데이터와 오디오 시간 데이터는 이진 코드 형태로 각각 오디오 음악 데이터 코드와 오디오 시간 데이터 코드에 대응한다. 오디오 음악 데이터 코드들이 아날로그 오디오 신호로부터 생성된다. 우 채널 및 좌 채널에 할당된 아날로그 오디오 신호들이 44,100 ㎐에서 샘플링되고, 샘플링된 이산값들이 우 및 좌 채널들에 대해 16-비트 오디오 음악 데이터 코드들로 양자화된다. 오디오 음악 데이터 코드들이 우 채널 아날로그 오디오 신호로부터 일부 생성되는 데, 이것을 "우 채널 오디오 음악 데이터 코드"라고 한다. 나머지 오디오 음악 데이터 코드들은 좌 채널 아날로그 오디오 신호로부터 일부 생성되는 데, 이것을 "좌 채널 오디오 음악 데이터 코드"라고 한다.
CD가 CD 드라이버(1)에 로드되거나 언로드되고, CD 드라이버(1)는 조작 패널/표시부(5)를 통해 주어진 사용자의 명령에 응답하여 악절의 재생을 개시하고 정지한다. 악절이 재생되는 동안, CD 드라이버(1)로부터 제어기(6)로 오디오 음악 데이터 코드들만이 제공된다. CD 드라이버(1)는 표준형이고, 디스크 트래이, 디스크 트래이용 모터, 모터의 서보-메카니즘, 광 픽업 유닛, 광 픽업 유닛용 포커스 서버-메카니즘, 서보-메카니즘에 대한 동기화 회로 및 에러 보정 시스템을 포함한다. 이 구성 요소들은 당업자들에게는 공지되어 있으므로 이하에서 설명하지 않기 로 한다.
플로피 디스크 드라이버
플로피 디스크 드라이버(2)는, 플로피 디스크 드라이버(2)가 데이터 처리 능력을 갖도록 컴퓨터 프로그램을 운용하는 마이크로프로세서를 포함한다. FD 드라이버(2)는 이벤트 코드, 델타 타임 코드 및 제어기(6)로부터의 참조 상관 데이터를 나타내는 참조 상관 데이터 코드를 수신하고, 플로피 디스크 FD에서의 표준 MIDI 파일을 생성한다. FD(2)는 MIDI 데이터 코드와 표준 MIDI 파일로부터의 참조 상관 데이터를 독출하여, 이 MIDI 음악 데이터 코드와 참조 상관 데이터를 제어기(6)에 제공한다.
도2a, 2b 및 2c는 MIDI 음악 데이터 코드에 대한 포맷을 도시하고, 도 3은 표준 MIDI 파일의 구조를 도시한다. 도 2a는 노트-온 이벤트 코드 EV1의 데이터 필드 DF1/DF2/DF3를 도시하고, 도 2b는 노트-오프 이벤트 코드 EV2의 데이터 필드 DF4/DF5/DF6를 도시하며, 도 2c는 시스템 배타 이벤트 코드 EV3의 데이터 필드 DF7/DF8/DF9/DF10를 도시한다.
노트-온 이벤트 코드 EV1는 3개의 데이터 필드 DF1, DF2, 및 DF3를 갖는다. 제1 데이터 필드 DF1은 생성될 톤에 할당된 노트-온 이벤트와 채널을 나타낸다. MIDI 표준에 따르면, 16진수 [9n]H를 제1 데이터 필드 DF1에 기록한다. "H"는 16진수 [9n]을 나타내고, "n"은 생성될 톤에 할당되는 채널을 나타낸다. 제2 데이터 필드 DF2는 노트 번호에 할당되고 이것은 생성될 톤의 피치를 나타내며, 제3 데이터 필드 DF3는 속도를 나타낸다. 속도는 엔드점으로 향하는 키 운동을 정의하고, 생성될 톤의 크기에 비례한다. 노트-오프 이벤트 코드 EV2 또한 3개의 데이터 필드 DF4, DF5 및 DF6을 갖는다.
노트-오프 이벤트 코드 EV2는 또한 3개의 데이터 필드 DF4, DF5, DF6를 갖는다. 16진수 [8n]H가 제1 데이터 필드 DF4에 기록된다. "8"은 노트-오프 이벤트를 나타내고, "n"은 소멸될 톤에 이미 할당된 채널을 나타낸다. 제2 데이터 필드 DF5는 소멸될 톤의 피치를 나타내는 노트 번호로 할당되고, 제3 데이터 필드 DF6는 속도를 나타낸다. 속도는 레스트 점(rest position)으로 향하는 키 운동을 정의하고, 침묵할 때 까지의 시간 주기에 반비례한다.
시스템 조정자 및/또는 소프트웨어 하우스가 시스템 배타 이벤트 코드 EV3을 자유롭게 설계할 수 있다. 시스템 배타 이벤트 코드 EV3는 4개의 데이터 필드 DF7, DF8, DF9, 및 DF10를 갖는다. 제1 데이터 필드 DF7은 시스템 배타 이벤트 코드 EV3의 헤드를 나타내고, [F0]H는 제1 데이터 필드 DF7에 기록된다. 제2 데이터 필드 DF8은 사용자 데이터의 길이를 나타내고, 제3 데이터 필드 DF9는 사용자 데이터에 할당된다. 최종 데이터 필드 DF10은 시스템 배타 이벤트 코드 EV3의 엔드를 나타낸다. [F7]H는 최종 데이터 필드 DF10에 기록된다.
이해하는 바와 같이, 이벤트 코드 EV1, EV2 및 EV3는 어떤 시간 데이터도도 갖지 않는다. 즉, 이벤트 코드 EV1, EV2는 톤을 제어하기 위해 바로 실행되고, 사용자의 데이터 또한 바로 처리된다.
이러한 종류의 이벤트 코드 EV1, EV2 및 EV3는 표준 MIDI 파일 MF를 형성한다. 표준 MIDI 파일 MF는 헤더 청크 HC와 트랙 청크 TC로 분리된다. 헤더 청크 HC는 트랙 청크 TC와 시간 유닛에 저장될 음악 데이터에 대한 포멧을 나타내는 제어 데이터로 할당된다. 트랙 청크 TC는 MIDI 음악 데이터 코드 즉, 이벤트 코드와 델타 타임 코드로 할당된다. 델타 타임 코드는 이벤트 코드와 다음 이벤트 코드 사이의 시간 간격 또는 재생 개시로부터의 시간 경과를 나타낸다. 시간 간격은 클록 펄스 수로 표시되고, 시간의 경과는 시간, 분, 초, 프레임 수 및 그 조합으로 로 나타낸다. 이 경우, 델타 타임 코드들은 초 단위의 시간 경과를 나타내는 것으로 가정된다.
자동 연주 피아노
자동 연주 피아노(3)는 음향 피아노(31A), 코딩 시스템(31B) 및 자동 연주 시스템(31C)을 포함한다. 사용자는 음향 피아노(31A)로 악절을 연주하고, 이 음향 피아노(31A)를 통해 음향 피아노 톤이 생성된다. 코딩 시스템(31B)과 자동 연주 시스템(31C)은 음향 피아노(31A)와 연관되어있다. 사용자가 조율하는 동안, 키 동작 및 페달 동작이 코딩 시스템(31B)을 통해 이벤트 코드에 기억되고, 이 이벤트 코드들이 코딩 시스템(31B)으로부터 제어기(6)로 전송되며, 차례로 이벤트 코드를 플로피 디스크 드라이버(2)에 전송하여 FD에 표준 MIDI 파일 SMF를 생성한다. 한편, 사용자가 자동 연주 시스템(31C)에 요청하여 이벤트 코드에 기초하여 악절을 재생하도록 한다. MIDI 음악 데이터 코드는 제어기(6)를 통해 자동 연주 시스템(31C)에 제공되고, 음향 피아노 톤이 악절을 따라 음향 피아노(31A)를 통해 재생된다. 자동 연주 피아노(31C)는 또한 MIDI 음악 데이터 코드에 기초하여 디지털 오디오 신호를 생성하고, 디지털 오디오 신호는 오디오부(4)에 제공되어 디지털 오디오 신호로부터 전자 톤을 재생한다.
음향 피아노(31A)는 규격화된 그랜드 피아노이고, 키보드(31a), 동작 유닛(31b), 해머(31c), 스트링(31d), 댐퍼(도시안됨) 및 페달(31e)을 포함한다. 흑색 키와 백색 키가 키보드(31a)를 형성하고, 사용자에 의해 선택적으로 누르고 떼어진다. 눌러진 키는 동작 유닛(31b)을 활성화시켜 관련 스트링으로부터 댐퍼를 이격시킨다. 활성화된 동작 유닛(31b)은 회전을 위해 관련 해머(31c)를 구동시키고, 해머(31c)는 돌기 끝에서 관련 스트링(31d)을 친다. 댐퍼는 스트링으로부터 이미 이격되어 해머(31c)가 음향 피아노 톤 발생을 위해 진동을 발생시킨다. 페달(31e)이 키보드(31a)와 댐퍼에 연결되어 있다. 사용자가 연주하면서 페달을 누르면, 댐퍼가 음향 피아노 톤이 계속되도록 하고, 키보드(31a)가 음향 피아노 톤의 크기를 감소시킨다.
코딩 시스템(31B)은 키 센서(32), 페달 센서(33) 및 제어기(34)를 포함한다. 키 센서(32)는 각각 흑/백 키를 모니터하고, 페달 센서(33)는 각기 페달(31e)을 모니터한다. 키 센서(32)는 관련 흑/백 키(32)의 현재 위치를 나타내는 키 위치 신호를 생성하고, 이 키 위치 신호를 제어기(34)에 제공한다. 마찬가지로, 페달 센서(33)는 관련 페달(31e)의 현재 위치를 나타내는 페달 위치 신호를 생성하고, 이 페달 위치 신호를 제어기(34)에 제공한다. 제어기(34)는 마이크로프로세서를 포함하고, 이 마이크로프로세서는 키 위치 신호 및 페달 위치 신호들로 나타낸 위치 데이터를 주기적으로 페치한다. 마이크로프로세서는 위치 데이터를 분석하여 사용자가 어떤 키/페달을 눌렀는지 본다. 사용자는 하나의 흑색 키와 페달 중 하나를 누 른 것으로 가정된다. 마이크로프로세서는 눌러진 흑색 키와 페달을 특정하고, 그 속도를 계산한다. 마이크로프로세서는 이벤트 코드들에 이들 음악 데이터를 기억시키고, 이 이벤트 코드를 제어기(6)에 제공한다.
자동 연주 시스템(31C)은 제어기(34), 톤 발생기(35), 드라이버 유닛(36a) 및 솔레노이드-작동 키/페달 액츄에이터(36b)를 포함한다. 제어기(34)는 제어기(6)로부터 이벤트 코드를 수신한다. 사용자가 동기 재생 시스템에 명령하여 전자 톤을 발생하도록 하고, 제어기(34)는 이 이벤트 코드를 톤 발생기(35)에 전송하고, 톤 발생기(35)는 이벤트 코드에 기초하여 우 및 좌 채널들에 대한 한 쌍의 디지털 오디오 신호를 발생한다. 한편, 사용자가 동기 재생 시스템에 음향 피아노 톤을 생성하도록 지시한다면, 제어기(34)는 흑/백 키의 궤도가 이동되도록 판정하고, 드라이버 유닛(36a)에 지시하여 솔레노이드-작동 키 액츄에이터(36b)을 통전시켜 관련 흑/백 키가 이 궤도를 따라 움직이도록 한다. 드라이버 유닛(36a)은 솔레노이드-작동 키/페달 액츄에이터(36b)에 구동 신호를 선택적으로 제공하여 솔레노이드-작동 키/페달 액츄에이터(36b)가 흑/백 키 및 페달(31e)을 움직이게 하는 키 운동 및/또는 페달 운동을 발생하게 한다. 흑/백 키는 동작 유닛(31b)을 활성화시키고, 해머(31c)는 돌기 끝에서 스트링(31d)을 친다. 그러면, 자동 연주 시스템(31C)은 이벤트 코드들에 기초하여 음향 피아노 톤 또는 전자 톤을 생성한다.
사용자가 키보드(31a)를 통한 연주 동안, 제어기(34)에 이벤트 코드를 톤 발생기(35)에 제공하도록 지시하면, 제어기(34)는 이 이벤트 코드를 톤 발생기(35)에 제공하고, 디지털 오디오 신호 쌍이 톤 발생기(35)로부터 오디오부(4)에 제공된다.
오디오부
오디오부(4)는 믹서(41), 디지털-아날로그 변환기(42), 증폭기들(43) 및 라우드 스피커들(44)을 포함한다. 제어기(6)와 톤 발생기(35)은 믹서(41)에 접속되고, 디지털 아날로그 신호의 쌍과 디지털 아날로그 신호의 다른 쌍이 톤 발생기(35)과 제어기(6)로부터 믹서(41)에 공급된다. 제어기(6)로부터 공급되는 디지털 아날로그 신호의 쌍은 오디오 음악 데이터 코드들로부터 생성되었다. 믹서(41)는 연산 수단을 통해 우측 채널의 디지털 오디오 신호와 좌측 채널의 디지털 오디오 신호를 믹싱하여 디지털 아날로그 신호의 쌍을 생성하고, 이 디지털 아날로그 신호의 쌍을 디지털-아날로그 변환기(42)에 공급한다. 디지털 오디오 신호는 우측 채널을 위한 아날로그 오디오 신호와 좌측 채널을 위한 다른 아날로그 오디오 신호로 변환되고, 증폭기들(43)에 이 아날로그 오디오 신호들이 공급된다. 아날로그 오디오 신호들은 증폭기들(43)을 통해 이콜라이즈되고 증폭된 다음, 라우드 스피커들(44)에 공급된다. 라우드 스피커들(44)은 아날로그 오디오 신호를 입체음향의 전기적 소리 신호로 변환한다.
조작 패널/표시부
조작 패널/표시부(5)는, 키들, 스위치들, 지시부들, 및 표시 윈도우의 어레이를 포함한다. 사용자는 그의 또는 그녀의 명령을 키들 및 스위치들을 통해 제어기(6)에 주고, 제어기(6)는 현재의 상태를 지시부들 및 표시 윈도우를 통해 사용자에게 보고한다. 제어기(6)는 비트 맵 데이터들을 나타내는 디지털 제어 신호를 공 급하고, 조작 패널/표시부(5)는 표시 윈도우 상에 문자들 및/또는 다른 종류의 가시적인 이미지들을 생성한다.
제어기
제어기(6)는, 판독 전용 메모리(Read Only Memory: ROM)(61), 중앙 처리 장치(Central Processing Unit: CPU)(62), 디지털 신호 처리기(Digital Signal Processor: DSP)(63), 랜덤 액세스 메모리(Random Access Memory: RAM)(64), 및 다른 시스템 컴포넌트들(1, 2, 3, 4) 및 버스 시스템(65b)과 통신하는 통신 인터페이스(65)를 포함한다. 판독 전용 메모리(61), 중앙 처리 장치(62), 디지털 신호 처리기(63), 인터페이스(65a)는 버스 시스템(65b)에 접속되어, 버스 시스템(65b)을 통해 서로 통신 가능하다.
판독 전용 메모리(61)는 일종의 불휘발성 메모리이고, 컴퓨터 프로그램들로부터 유래된 명령 코드들이 판독 전용 메모리(61)에 저장된다. 중앙 처리 장치(62)는 범용 마이프로프로세서로 구현된다. 중앙 처리 장치(62)는 명령 코드들은 순차적으로 페치하여 주어진 작업을 달성하기 위해 명령 코드들을 실행한다. 이하에서 상세히 설명되는 바와 같이, 중앙 처리 장치(62)는 사전 기록 모드와 동기적 재생 모드에서 특정한 컴퓨터 프로그램들 상에서 실행한다.
디지털 신호 처리기(63)는 고속의 특별한 목적용의 마리크로프로세서로서, 중앙 처리 장치(62)의 제어하에서 오디오 음악 데이터 코드들을 고속으로 처리할 수 있다. 디지털 신호 처리기(63)는, 또한, 이하에서 상세히 설명되는 바와 같이, 기준 상관 데이터/상관 데이터에 작업을 하여, 상관 판정 결과를 중앙 처리 장치(62)에 보고한다.
랜덤 액세스 메모리(64)는 일종의 휘발성 메모리로서, 중앙 처리 장치(62)에게 임시 데이터 저장 공간을 제공한다. 다시 말해서, 랜덤 액세스 메모리(64)는 작업중의 메모리로서 기능한다. 인터페이스(65a)는 시스템 컴포넌트들(1, 2, 3, 4, 및 5) 간에 디지털 코드들을 전달한다. 시스템 컴포넌트들 간에 데이터 포맷이 다른 경우, 인터페이스(65a)는 디지털 코드들의 데이터 포맷을 다른 데이터 포맷으로 바꾼다.
사전 기록 모드
사용자는 컴팩트 디스크 드라이버(1)와 오디오부(4)를 통한 재생과 함께 키보드(31)로 한곡의 음악을 연주하고, 키보드(31)상에서의 연주는 기준 상관 데이터와 함께 플로피 디스크 FD에 기록된다. 사전 기록 모드에서 사용되는 컴팩트 디스크 CD는 이하 "CD-A"로서 일컬어지고, 동기적 재생에 사용되는 컴팩트 디스크 CD는 "CD-B"로서 일컬어져서, 컴팩트 디스크들을 서로 구별할 수 있게 한다. 음악 제목과 연주자는 같더라도, 컴팩트 디스크 CD-B는 컴팩트 디스크 CD-A와는 다른 판이다.
사용자는 우선 컴팩트 디스크 CD-A를 컴팩트 디스크 드라이버(1)에 로드하고, 플로피 디스크 FD를 플로피 디스크 드라이버(2)에 로드한다. 사용자는 조작 패널/표시부(5) 상의 키들을 눌러서, 중앙 처리 장치(62)가 사용자의 명령에 응답하여 사전 기록을 시작하도록 한다. 그런 다음, 중앙 처리 장치(62)는 재생 요청을 나타내는 제어 신호를 인터페이스(65a)를 통해 컴팩트 디스크 드라이버(1)에 공 급한다.
컴팩트 디스크 드라이버(1)는 컴팩트 디스크 CD-A를 회전시키도록 드라이브하여, 오디오 음악 데이터 코드들을 인터페이스(65a)에 공급한다. 오디오 음악 데이터 코드들의 쌍은 1/44100초의 간격마다 우측 채널 및 좌측 채널을 위해 인터페이스(65a)에 전달된다. 음악 데이터 코드들의 쌍은 (R(n), L(n))으로서 표현되고, 오디오 음악 데이터 코드의 값 R(n)/L(n)은 이하에서 "샘플링된 값"으로서 일컬어진다. 샘플링된 값은 정수이며, 모두 -32768로부터 +32767까지의 범위에 들어온다. "n"은 트랙 내의 오디오 음악 데이터 코드의 위치를 나타낸다. 예를 들어, 오디오 음악 데이터 코드들의 제1쌍은 (R(0), L(0))로서 표현되고, 그 다음 쌍은 (R(1), L(1))로서 표현된다. 따라서, 위치는 재생 동안 하나씩 증가된다.
오디오 음악 데이터 코드들의 쌍 (R(n), L(n))이 인터페이스(65a)에 도달할 때, 중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드들의 쌍 (R(n), L(n))을 페치한다. 중앙 처리 장치(62)는 인터페이스(65a)를 통해 오디오 음악 데이터 코드들의 쌍 (R(n), L(n))을 믹서(41)에 전달한다. 오디오 음악 데이터 코드들의 쌍 (R(n), L(n))은 아날로그 신호로 변환되고, 아날로그 오디오 신호로 변환되고, 아날로그 오디오 신호는 증폭기들(43)을 거쳐 라우드 스피커들(44)에 공급된다. 따라서, 오디오 음악 데이터 코드들의 쌍 (R(n), L(n))은 순차적으로 컴팩트 디스크 드라이버(1)로부터 제어기(6)를 통해 라우드 스피커들(44)에 공급된다.
중앙 처리 장치(62)는 선정된 시간 주기에 대해 선정된 수의 오디오 음악 데 이터 코드 쌍들 (R(n), L(n))을 랜덤 액세스 메모리(64)에 축적하도록 작동한다. 이 예에서, 중앙 처리 장치(62)는 축적을 위해 216 쌍들의 오디오 음악 데이터 코드들, 즉 65536 쌍들의 오디오 음악 데이터 코드들을 체크한다. 무음 또는 거의 무음을 나타내는 오디오 음악 데이터 코드 쌍들 (R(n), L(n))은 무시되고, 랜덤 액세스 메모리(64)에 축적되지 않는다. 다시 말해서, 중앙 처리 장치(62)는 정해진 어떤 시간 기간 후에 65536 쌍들의 오디오 음악 데이터 코드들을 축적한다. 65536 쌍들의 오디오 음악 데이터 코드들은 1.49초와 동등하다.
구체적으로, 오디오 음악 데이터 코드 쌍 (R(0), L(0))이 중앙 처리 장치(62)에 도달할 때, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍 (R(0), L(0))을 (R(65535), L(65535))와 비교하여 샘플링된 값들이 임계값을 초과하는지를 체크하기 시작한다. 임계값은 한계를 나타낸다. 이 예에서, 임계값은 1000으로 가정된다. 샘플링된 값들 중 적어도 하나는, 오디오 음악 데이터 코드 쌍 (R(52156), L(52156))에서 임계값을 초과하는 것으로 가정된다. n이 0부터 52155까지 증가하는 동안, 응답은 부정인 것이고, 중앙 처리 장치(62)는 이 오디오 음악 데이터 코드 쌍들 (R(0), L(0))부터 (R(52155), L(52155))까지를 무시한다. 다시 말해서, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍들 (R(0), L(0))부터 (R(52155), L(52155))까지를 축적하지 않는다. 무음 시간 기간은 약 1.18초이다. "n"이 52156에 도달할 때, 중앙 처리 장치(62)는 응답을 긍정으로 바꾼다. 긍정 응답과 함께, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍 (R(52156), L(52156))을, 오디오 음악 데이터 코드 쌍 (R(52156), L(52156))이 저장될 메모리 위치에 할당된 어드레스와 함께, 랜덤 액세스 메모리(64)에 전달한다. 중앙 처리 장치(62)는 계속적으로 65536쌍들의 오디오 음악 데이터 코드들을 랜덤 액세스 메모리(64)에 전달하여, 오디오 음악 데이터 코드 쌍들 (R(52156), L(52156))부터 (R(117691), L(117691))까지가 랜덤 액세스 메모리(64)에 축적된다. 따라서, 무음 또는 거의 무음을 나타내는 오디오 음악 데이터 코드 쌍은 랜덤 액세스 메모리(64)에 축적되지 않는다. 오디오 음악 데이터 코드 쌍들 (R(52156), L(52156))부터 (R(117691), L(117691))까지의 샘플링된 값들은 이하부터는 "기준 상관 데이터를 위한 미가공 데이터" 또는 "참조 미가공 데이터"로 일컬어진다.
중앙 처리 장치(62)가 기준 상관 데이터를 위한 참조 미가공 데이터의 축적을 완료할 때, 중앙 처리 장치(62)는 내부 클럭의 시작시키고, 디지털 신호 처리기(63)에게 기준 상관 데이터를 위한 참조 미가공 데이터로부터 기준 상관 데이터를 생성하라고 명령한다. 오디오 음악 데이터 코드 쌍들 (R(n), L(n))은 아날로그 오디오 신호를 44100Hz로 샘플링함으로써 얻은 샘플링된 값들로부터 생성되었다. 디지털 신호 처리기(63)는 샘플링된 값들을 172.27Hz로 샌플링된 값과 동등한 기준 상관 데이터로 변환한다. 기준 상관 데이터는, 하기에서 더 상세히 설명되는 바와 같이, 컴팩트 디스크 CD-B로부터 판독된 오디오 음악 데이터 코드들과 컴팩트 디스크 CD-A로부터 판독된 오디오 음악 데이터 코드들 간의 상관성 분석에 사용된다.
도 4는 샘플링된 값들을 기준 상관 데이터로 변환하기 위한 방법을 나타낸 다. 이 방법은 컴퓨터 프로그램의 형태로 프로그램 메모리에 저장된다. 디지털 신호 처리기(63)는 단계 S1에서, 랜덤 액세스 메모리(64)로부터 참조 미가공 데이터, 즉 오디오 음악 데이터 코드 쌍들 (R(n), L(n))의 샘플링된 값들을 판독하고, 단계 S2에서 입체 음향 오디오 음악 데이터를 모노포닉 오디오 음악 데이터로 변환하기 위해 참조 미가공 데이터의 산술 평균을 계산한다. 입체 음향 오디오 음악 데이터로부터 모노포닉 오디오 음악 데이터로의 변환은 디지털 신호 처리기(63)의 부하를 가볍게 만든다.
이어서, 단계 S3에서, 디지털 신호 처리기(63)는 고역 통과 필터링과 동등한 데이터 처리를 통해 산술 평균 값들로부터 아날로그 오디오 신호의 직류 성분을 나타내는 값을 제거한다. 계산된 값들은 양과 음의 도메인들에 플롯된다. 계산된 값들이 양과 음의 도메인들에 분산되는 것이 상관성 분석의 정확도 관점에서 바람직하다.
이어서, 단계 S4에서, 계산된 값들이 절대값으로 바뀐다. 양과 음의 도메인들에 절대값화를 통해 계산된 값들에 대한 멱수의 대체 값들이 결정된다. 절대값들은 멱수를 나타내는 제곱수들보다 작고, 다음의 데이터 처리로 다루기가 쉽다. 그럼에도 불구하고, 디지털 신호 처리기(63)가 매우 큰 데이터 처리 용량을 갖는다면, 디지털 신호 처리기(63)는 절대값들 대신 계산된 값들의 제곱수들을 계산할 수 있다.
이어서, 디지털 신호 처리기(63)는 단계 S5에서, 빗 라인 필터와 동등한 데이터 처리를 통해 절대값들로부터 원래 오디오 신호의 파형의 변화의 경향을 나타 내는 저주파 성분을 추출한다. 저주파 성분은 보통 저역 통과 필터와 동등한 데이터 처리를 통해 추출되지만, 빗 라인 필터와 동등한 데이터 처리는 저역 통과 필터와 동등한 데이터 처리보다 부하면에서 더 가볍다. 이러한 이유 때문에, 빗 라인 필터와 동등한 데이터 처리, 즉 빗 라인 필터링이 채택된다.
도 5는 빗 라인 필터의 회로 구성을 나타낸다. 박스들은 딜레이를 나타내고, 삼각형들은 곱셈기를 나타낸다. "Z-k"는 좌측 박스에 입력되고, "k"는 딜레이 시간이 (샘플링 주기 ×k)와 같음을 나타낸다. 샘플링 주파수는 44100Hz여서, 샘플링 주기가 1/44100초로 된다. 승수는 삼각형들에 배치된다. 도 5에서, "k"는 다음과 같이 주어진다.
Figure 112003030865852-pat00001
승수 "k"로의 곱셈을 통한 데이터 처리는, 빗 라인 필터가 주파수 f에서 하이 패스 필터를 달성하고, 직류 성분이 절대값들로부터 제거되도록 한다. 상관성 분석의 정확도를 증대시키기 위해, 실험적으로 "k"와 "f"를 최적화하는 것이 가능하다.
도 4를 다시 참조하면, 디지털 신호 처리기(63)는 단계 S6에서, 포개진 노이즈로부터 다운 샘플링을 통해 샘플링된 데이터를 방지하기 위해 로우 패스 필터와 동등한 데이터 처리를 수행한다. 그 다음 단계 S7가 관련하여 설명될 바와 같이, 디지털 신호 처리기(63)는 44100Hz로 샘플링된 값들을 177.27Hz로 다운-샘플링된 값들로 변환하고, 포개진 노이즈가 발생한다. 포개진 노이즈로부터 다운 샘플링된 값들을 방지하기 위해, 86.13Hz, 즉 172.27Hz의 절반보다 고주파수 성분들을 제거하는 것이 필수적이다. 비록 빗 라인 필터가 샘플링된 값들로부터 높은 주파수 성분들을 상당히 제거하더라도, 고주파수 성분들이 샘플링된 값들 내에 여전히 남아있다. 이러한 이유 때문에, 디지털 신호 처리기(63)는 다운-샘플링 전에, 샘플링된 값들로부터 고주파수 성분들을 완전히 제거한다. 디지털 신호 처리기(63)가 큰 데이터 처리 용량을 갖는 경우에, 디지털 신호 처리기(63)는 단계들 S5 및 S6에서의 두 종류의 데이터 처리 대신 고정밀도의 로우 패스 필터링과 동등한 데이터 처리를 수행할 것이다.
이어서, 디지털 신호 처리기(63)는 단계 S7에서, 256 샘플들마다 샘플을 채취한다. 즉, 디지털 신호 처리기(63)는 1/256의 비율로 다운-샘플링을 수행한다. 다운-샘플링이 완료하면, 데이터 양이 65536에서부터 256으로 감소된다. 다운-샘플링 후의 샘플들은 기준 상관 데이터 X(m)으로서 작용한다. "m"은 0부터 255까지의 범위이다. 이 예에서, X(0) - X(255)는 256개의 기준 상관 데이터를 나타낸다. 최종적으로, 디지털 신호 처리기(63)는 기준 상관 데이터 X(0) - X(255)를 랜덤 액세스 메모리(64)에 저장한다.
디지털 신호 처리기(63)가 기준 상관 데이터 X(0) - X(255)를 생성하는 동안, 사용자는 키보드(31a) 상에서 음악을 연주할 준비를 하게 된다. 앞서 설명한 바와 같이, 중앙 처리 장치(62)는 참조 미가공 데이터의 축적을 완료하면 내부 클럭을 시동한다. 내부 클럭이 시간 경과를 증분하기 시작한 후, 사용자는 컴팩트 디스크 플레이어(1)/오디오부(4)를 통한 재생과 함께 음악을 연주한다. 이것은, 사용자가 검은색/ 흰색 키들을 선택적으로 누렀다 해제하고, 페달(31e)을 밟는 것을 의미한다.
검은색/ 흰색 키들 및 페달(31e)이 움직일 때, 검은색/ 흰색 키들 및 페달(31e)은 현재의 키 위치들과 현재의 페달 위치를 변화시키고, 상관된 페달 센서(33)는 제어기(34)에게 현재의 키 위치 신호와 현재의 패달 위치 신호를 알린다. 제어기(34)는 데이터 포트로부터 위치 데이터들을 주기적으로 페치하여, 위치 데이터를 랜덤 액세스 메모리(64)에 축적한다. 제어기(34)는 축적된 데이터를 체크하여, 사용자가 현재의 키 위치들과 현재의 페달 위치를 변화시켰는지의 여부를 검사한다. 그 체크 결과가 긍정일 때, 제어기(34)는 눌려진/해제된 키들과 눌려진/해제된 페달(31e)에 대해 이벤트 코드들을 생성한다. 제어기(34)는 이벤트 코드들을 제어기(6)에게 공급한다.
이벤트 코드가 인터페이스(65a)에 도달할 때, 중앙 처리 장치(62)는 이벤트 코드를 페치하여, 도착 시간을 확인하기 위해 내부 클럭을 체크한다. 중앙 처리 장치(62)는 도착 시간을 나타내는 델타 타임 코드를 생성하고, 이벤트 코드와 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다.
도 6은 MIDI 음악 데이터 코드들을 생성하기 위한 시퀀스를 나타낸다. 컴팩트 디스크 드라이버(1)는 시간 T1에 컴팩트 디스크 CD-A로부터 오디오 음악 데이터 코드들, 즉 오디오 데이터를 판독하기 시작하여, 시간 경과가 점차로 증가된다. 샘플링된 값이 재생 시작으로부터 1.18초에서 임계값을 초과한다. 그러면, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 쌍들 ((R(52156), L(52156)) 부터 ((R(117691), L(117691))까지의 샘플링된 값들을 랜덤 액세스 메모리(64)에 저장하기 시작하고, 앞서 상세히 설명한 바와 같이 디지털 신호 처리기(63)는 참조 미가공 데이터로부터 기준 상관 데이터 X(m)을 생성한다.
오디오 음악 데이터 코드들의 마지막 쌍 ((R(117691), L(117691))은 시간 T2에, 즉 재생 시작 후 2.67초에 랜덤 액세스 메모리(64)에 저장된다. 그런 다음, 중앙 처리 장치(62)는 내부 클럭을 시동하고, 사용자는 키보드(31a) 상에서 음악을 연주할 준비를 하게 된다. 사용자가 키보드(31a) 상에서 손가락을 사용하여 연주하기 시작하고, 제어기(34)는 제1 이벤트 코드를 인터페이스(65a)에 공급한다. 중앙 처리 장치(62)는 시간 T3에, 즉 재생 시작 후 3.92초에 제1 이벤트 코드의 수신을 확인한다. 내부 클럭은 시간 T3에 1.25초를 지시하고, 중앙 처리 장치(62)는 제1 이벤트 코드를 시간 T3를 나타내는 델타 시감 코드와 함께 랜덤 액세스 메모리(64)에 저장한다.
제어기(34)는 제2 이벤트 코드를 생성하여, 제2 이벤트 코드를 인터페이스(65a)에 공급한다. 중앙 처리 장치(62)는 시간 T4에서, 즉 재생 시작 후 5.30초에, 제2 이벤트 코드의 수신을 확인하고, 내부 클럭은 시간 T4에 2.63초를 나타낸다. 중앙 처리 장치(62)는 시간 T4를 나타내는 델타 타임 코드를 생성하고, 제2 이벤트 코드를 델타 타임 코드와 함께 랜덤 액세스 메모리(64)에 저장한다.
제3 이벤트가 시간 T5에 발생하고, 제어기(34)는 제3 이벤트 코드를 인터페 이스(65a)에 공급한다. 중앙 처리 장치(62)는 시간 T5에 제3 이벤트 코드의 수신을 확인하고, 내부 클럭은 시간 T5에서 3.71을 나타낸다. 중앙 처리 장치(62)는 시간 T5를 나타내는 델타 타임 코드를 생성하고, 제3 이벤트 코드를 델타 타임 코드와 함께 랜덤 액세스 메모리(64)에 저장한다. 다른 이벤트 코드들은 제1 내지 제3 이벤트 코드들과 유사한 방식으로 델타 타임 코드와 함께 랜덤 액세스 메모리(64)에 저장된다.
컴팩트 디스크 플레이어(1)가 재생을 끝내고, 이에 따라 사용자가 그의 키보드 연주를 중지한다. 그런 다음, 사용자는 제어기(34)에 연주의 완료를 알리기 위해 조작 패널/표시부(5) 상의 키들 중의 하나를 누른다. 그런 다음, 조작 패널/표시부(5)는 연주의 완료를 나타내는 제어 신호를 인터페이스(65a)에 공급한다.
중앙 처리 장치(62)는 연주의 완료를 확인하고, 재생의 종결을 나타내는 제어 신호를 컴팩트 디스크 드라이버(1)에 공급한다. 컴팩트 디스크 드라이버(1)는 재생을 정지한다. 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)로부터 이벤트 코드들, 델타 타임 코드들, 및 기준 상관 데이터 X(m)를 판독하고, 기준 상관 데이터 X(m), 이벤트 코드들, 및 델타 타임 코드들을 트랙 청크로 형성한다. 중앙 처리 장치(62)는 도 7에 도시된 바와 같은 표준 MIDI 파일들을 생성하기 위해 헤더 청크를 트랙 청크에 부가한다. 기준 상관 데이터 X(m)는 시스템 익스클루시브 이벤트의 형태로 트랙 청크의 제1 영역에 0.00초를 나타내는 델타 타임 코드와 함께 저장된다. 제1 이벤트 코드와 제2 이벤트 코드는 C5에서 노크-온과 C6에서 노트-온을 나타내고, 제3 이벤트 코드는 C5에서 노트-오프를 나타낸다. 제1 이벤트 코드는 시스템 익스클루시브 이벤트 후 1.25초를 나타내는 델타 타임 코드와 함께 트랙 청크에 저장되고, 제2 이벤트 코드와 2.63초를 나타내는 델타 타임 코드가 제1 이벤트 코드를 뒤따른다. 제3 이벤트 코드와 3.71초를 나타내는 델타 타임 코드가 제2 이벤트 코드를 뒤따른다. 따라서, 이벤트 코드들 및 그와 상관된 델타 타임 코드들이 사용자가 연주를 완료할 때까지 트랙 청크에 저장된다.
표준 MIDI 파일들이 완료되면, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)로부터 표준 MIDI 파일들을 플로피 디스크 드라이버(2)에 전달하고, 플로피 디스크 드라이버(2)에게 표준 MIDI 파일을 플로피 디스크 FD에 저장하도록 요청한다. 플로피 디스크 드라이버(2)는 중앙 처리 장치(62)의 명령에 응답하여 표준 MIDI 파일이 플로피 디스크 FD에 생성되도록 한다.
동기적 재생
사용자는 음향 피아노(31A)와 컴팩트 디스크 플레이어(1)/오디오부(4) 간의 앙상블을 재생하도록 동기적인 재생 시스템에게 명령하는 것으로 가정된다. 컴팩트 디스크 CD-B는 동기적인 재생에 사용된다. 컴팩트 디스크 CD-B에 저장된 곡은 예비적인 기록 모드에서 재생된 곡과 제목이 같다. 그러나, 컴팩트 디스크 CD-B는 컴팩트 디스크 CD-A가 복사되었던 메탈 마스터와는 다른 메탈 마스터로부터 복사된다. 이 때문에, 무음 시간 기간과 동적 범위는 컴팩트 디스크 CD-A에 저장된 곡과 컴팩트 디스크 CD-B에 저장된 대응하는 곡 간에 동일하지 않다. 또한, 마스터 메탈이 컴팩트 디스크 CD-B에 대해 디자인되는 동안, 기록 회사는 음향 효과를 음악 곡에 부가했다. 이것은 컴팩트 디스크 CD-B에 기록된 음악 곡이 컴팩트 디스크 CD-A에 기록된 음악 곡과는 멜로디 전개에 있어서 엄격하게 같지는 않음을 의미한다.
사용자는 제어기(6)에게 음향 피아노(31A) 상에서의 연주를 컴팩트 디스크 플레이어(1)/오디오부(4)를 통한 재생과 앙상블로 재생하도록 지시하는 것으로 가정된다. 플로피 디스크 FD와 컴팩트 디스크 CD-B는 이미 플로피 디스크 드라이버(2)와 컴팩트 디스크 드라이버(1)에 각각 로드되어 있다.
중앙 처리 장치(62)가 조작 패널/표시부(5)로부터 사용자의 명령을 나타내는 제어 신호를 수신할 때, 중앙 처리 장치(62)는 플로피 디스크 드라이버(2)에게 표준 MIDI 파일을 보낼 것을 제어 신호를 통해 요청한다. 플로피 디스크 드라이버(2)는 플로피 디스크 FD에 저장된 표준 MIDI 파일을 액세스하여, 플로피 디스크 FD로부터 표준 MIDI 파일을 인터페이스(65a)를 통해 중앙 처리 장치(62)에 전달한다. 중앙 처리 장치(62)는 표준 MIDI 파일을 랜덤 액세스 메모리(64) 내에 복원한다.
이어서, 중앙 처리 장치(62)는 컴팩트 디스크 드라이버(1)에게 오디오 음악 데이터 코드들의 쌍들을 보내라고 요청한다. 컴팩트 디스크 드라이버(1)는 컴팩트 디스크 CD-B로부터 오디오 데이터 코드들을 판독하여, 오디오 데이터 코드들 (r(n), l(n))을 인터페이스(65a)에게 전달한다. "r", "l", 및 "n"의 정의들은 "R", "L", 및 "n"의 정의들과 각각 동일하다.
중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드들 (r(0), l(0)), (r(1), l(1)), (r(2), l(2)),..을 페치한다. 중앙 처리 장치(62)는 우선 오디오 음악 데이터 코드들 (r(0), l(0)), (r(1), l(1)), (r(2), l(2)),..을 인터페이스(65a)를 통해 오디오부(4)로 전달한다. 오디오부(4)는 오디오 음악 데이터 코드들 (r(0), l(0)), (r(1), l(1)), (r(2), l(2)),..을 음향으로 변환한다. 전기적 음이 특정 주기 후에 들린다.
중앙 처리 장치(62)는 상관 판정을 요청하는 명령을 디지털 신호 처리기(63)에게 주어, 디지털 신호 처리기(63)가 상관 판정을 준비하도록 한다. 그런 다음, 중앙 처리 장치(62)는 상관 판정을 위해 오디오 음악 데이터 코드들 (r(0), l(0)), (r(1), l(1)), (r(2), l(2)),..을 연속적으로 디지털 신호 처리기(63)에게 공급한다. 오디오 음악 데이터 코드들 (r(n), l(n))로부터 생성된 목표 상관 데이터들은 플로피 디스크 FD로부터 판독되었던 오디오 음악 데이터 코드들 (R(n), L(n))로부터 생성된 기준 상관 데이터들과 비교되어, 상관 판정에서 서로 유사한지의 여부를 확인한다.
도 8은 상관 판정을 위한 방법을 나타낸다. 중앙 처리 장치(62)가 오디오 음악 데이터 코드들의 쌍들 (r(n), l(n))을 디지털 신호 처리기(63)에 전달하는 동안, 디지털 신호 처리기(63)는 오디오 음악 데이터 코드들의 쌍들 (r(n), l(n))을 랜덤 액세스 메모리(64) 내에 축적한다. 65536개의 샘플링된 오디오 음악 데이터 코드들의 쌍들 (r(n), l(n)), (r(n+1), l(n+1)),..., (r(n+65535), l(n+65535))은 "목표 미가공 데이터(n)"로 일컫는다. 디지털 신호 처리기(63)가 마지막 오디오 음악 데이터 코드들의 쌍 (r(n+65535), l(n+65535))을 랜덤 액세스 메모리(64)에 축적한 때, 디지털 신호 처리기(63)는 단계 S11에서와 같이 목표 미가공 데이터(0) 으로부터 목표 상관 데이터를 생성하기 시작한다. 구체적으로, 디지털 신호 처리기(63)는 먼저 랜덤 액세스 메모리(64)로부터 목표 미가공 데이터(0), 즉 (r(0), l(0)),.., (r(n+65535), l(n+65535))을 판독하고, 단계 S1 내지 S8에서 데이터 처리를 수행한다 (도 4 참조). 데이터 처리가 완료되면, 256개의 목표 상관 데이터 Yn(0) 내지 Yn(255)이 랜덤 액세스 메모리(64)에 남겨진다. Yn(0) 내지 Yn(255)은 목표 상관 데이터가 목표 미가공 데이터(n)으로부터 생성되었음을 나타낸다. 256개의 목표 상관 데이터는 이하에서 "목표 상관 데이터(n)"으로 일컫는다.
이어서, 디지털 신호 처리기(63)는 단계 S12에서, 랜덤 액세스 메모리(64)로부터 시스템 익스클루시브 이벤트의 일부를 형성하는 기준 상관 데이터 X(0) 내지 X(255)와, 목표 상관 데이터 Yn(0) 내지 Yn(255)를 판독한다.
이어서, 디지털 신호 처리기(63)는 절대 상관 지표 IDXa를 결정하고, 절대 상관 지표 IDXa를 상수 p와 비교하여, 절대 상관 지표 IDXa가 상수 p보다 같거나 큰지를 체크한다.
Figure 112003030865852-pat00002
수학식 2에서 좌항은 절대 상관 지표 IDXa를 나타내고, 상수 p는 0부터 1까지 범위의 값을 갖는다. 기준 상관 데이터 X(m)와 목표 상관 데이터 Y0(m)이 서로 근사할수록, 절대 상관 지표가 1에 더 근사하게 된다. 기준 상관 데이터들은 대응하는 목표 상관 데이터들과 쌍을 이룬다고 가정된다. 기준 상관 데이터들과 목표 상관 데이터들 간의 개수와 같은 쌍들의 개수가 증가되면, 좌항의 값이 증가하게 된다. 특정한 단락(passage)에 대한 목표 상관 데이터와 이 단락에 대응하는 참조 미가공 데이터가 수학식 2의 부등식을 만족시키도록, 그리고 특정한 단락(passage)에 대한 기준 상관 데이터와 다른 단락에 대응하는 목표 상관 데이터가 수학식 2의 부등식을 남족시키지 못하도록, 상수 p가 결정된다. 따라서, 상수 p는 실험적으로 최적화된다.
디지털 신호 처리기(63)는 상대 상관 지표 IDXr를 더 결정하고, 비교 상관 지표 IDXr를 상수 q와 비교하여, 상대 상관 지표 IDXr가 상수 q와 같거나 큰지의 여부를 체크한다.
Figure 112003030865852-pat00003
수학식 3의 좌항은 상대 상관 지표 IDXr를 나타내고, 0부터 1까지 범위의 값을 갖는다. 기준 상관 데이터 X(m)에 의해 표현되는 오디오 파형이 목표 상관 데이터 Y0(m)에 의해 표현되는 오디오 파형에 근사할수록, 상대 상관 지표 IDXr이 1에 더 근사하게 된다. 상수 q는 0과 1 사이의 값을 갖고, 실험적으로 최적화된다.
상대 상관 지표 IDXr은 절대 상관 지표 IDXa와는 다음과 같은 점에서 상이하다. 기준 상관 데이터와 목표 상관 데이터는 특정한 음악 단락 상의 연주를 나타내는 것으로 가정된다. 목표 상관 데이터에 대한 아날로그 오디오 신호의 동적 범위가 기준 상관 데이터에 대한 아날로그 오디오 신호의 동적 범위보다 낮다면, 절 대 상관 지표 IDXa가 1보다 작고, 절대 상관 지표 IDXa와 1과의 차가 목표 데이터의 아날로그 신호의 동적 범위에 따른다. 목표 상관 데이터에 대한 아날로그 오디오 신호의 동적 범위가 기준 상관 데이터에 대한 아날로그 오디오 신호의 동적 범위보다 높은 경우, 절대 상관 지표 IDXa가 1보다 크고, 절대 상관 지표 IDXa와 1과의 차가 아날로그 신호의 동적 범위에 따른다. 반면에, 상대 상관 지표 IDXr은 동적 범위에서의 차에 상관없이 1에 근사한 값을 갖는다. 즉, 컴팩트 디스크 CD-B가 컴팩트 디스크 CD-A와는 다른 판이더라도, 수학식 3의 부등식에 대한 답은 정으로서 주어진다.
이 부등식들에 대한 답들 중 하나 혹은 두개가 부정인 것으로 주어지면, 디지털 신호 처리기(63)는 단계 S13에서 목표 상관 데이터 Y0(m)에 대한 상관 판정을 중지하고, 단계 S14로 진행한다. 디지털 신호 처리기(63)는 단계 S14에서, 오디오 음악 데이터 코드들의 그 다음 쌍 ((r(256), l(256))을 기다린다. 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 그 다음 쌍 ((r(256), l(256))을 수신할 때, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 그 다음 쌍 ((r(256), l(256))을 랜덤 액세스 메모리(64)에 전달하고, 오디오 음악 데이터 코드들의 그 다음 쌍 ((r(256), l(256))은 랜덤 액세스 메모리(64)에 저장된다. 데이터 기록이 완료되면, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 상관성 분석을 수행하도록 요청하고, 단계 S14에서와 같이, 오디오 음악 데이터 코드들의 그 다음 쌍 ((r(0), l(0)) 내지 ((r(256), l(256))이 랜덤 액세스 메모리(64)로부터 디지털 신호 처리기(63)에 전달된다. 디지털 신호 처리기(63)는 단계 S11로 되돌아가고, 오 디오 음악 데이터 코드들의 그 다음 쌍 ((r(0), l(0)) 내지 ((r(256), l(256))에 대한 상관 판정을 위해 단계 S11 내지 S14의 작업을 실행한다. 따라서, 디지털 신호 처리기(63)는 단계 S11 내지 S14로 구성된 루프를 반복한다. 디지털 신호 처리기(63)가 n회 루프를 반복하면, 목표 미가공 데이터 (0) 내지 목표 미가공 데이터 (n-1)는 상관 판정을 받게 된다.
수학식 2와 3에 대한 두 응답은 긍정으로 변화된다고 가정된다. 디지털 신호 처리기(63)는 다음과 같이 n=0에서 X(m)과 Yn(m)의 곱들의 합에 대한 변화율을 계산한다.
Figure 112003030865852-pat00004
하기에서는 X(m)과 Yn(m)의 곱들의 합을 "상관값 R"로서 일컫는다. 상관값 R은 다음과 같은 경향을 갖는다. 기준 상관 데이터들은 각각 목표 상관 데이터들과 쌍을 이루는 것으로 가정된다. 기준 상관 데이터를 상관된 목표 상관 데이터에 가까워지게 하는, 쌍들의 개수가 증가되면, 상관값 R이 커진다. 또한, 상관값 R이 시간에 대해 플롯될 때, 즉, X(m)과 Y0(m) 사이의 R0, X(m)과 Y1(m) 사이의 R1, R2, R3,.., 및 Rn로 플롯될 때, 상관값 R의 함수상의 극값들에서 변화율은 제로로 된다. 따라서, 디지털 신호 처리기(63)는 수학식 4를 통해 극값들에 대해 상관값 R을 체크한다.
이어서, 디지털 신호 처리기(63)는 함수 f(R)을 미분하고, 다시, 다음과 같 이 상관값 Rn의 함수상의 국부 최대값 MX를 찾는다.
따라서, 디지털 신호 처리기(63)는 일련의 기준 상관 데이터와 목표 상관 데이터 Yn(m)을 체크하여, 단계 S15에서와 같이, 상관값 Rn이 함수 상의 국부 최대값에 있는지를 확인한다.
물론, "n"이 제로일 때, 목표 상관 데이터 Y0(m) 이전에 어떠한 목표 상관 데이터도 없다. 그러면, 디지털 신호 처리기(63)는 단계 S15에서 부정인 응답을 즉시 주고, 디지털 신호 처리기(63)는 단계 S14로 진행한다. 상술한 바와 같이, 디지털 신호 처리기(63)는 샘플링된 값이 임계값을 초과한 후에 오디오 음악 데이터 코드들의 쌍들 ((R(n), L(n))을 참조 미가공 데이터에 축적하기 시작한다. 그러나, 디지털 신호 처리기(63)는 샘플링된 값에 상관없이 목표 미가공 데이터(0)에 오디오 음악 데이터 코드들의 쌍들 ((r(n), l(n))을 제1 쌍 ((r(0), l(0))부터 연속적으로 축적한다. 이러한 상황에서, 임계값을 최초로 초과한 오디오 음악 데이터 코드들의 쌍 ((R(n), L(n))이 일련의 오디오 음악 데이터 코드들 ((r(n), l(n))의 헤드를 점유한다.
기준 상관 데이터 X(m)와 목표 상관 데이터 Y0(m)는 이산적인 값들을 가져서, 디지털 신호 처리기(63)는 다음과 같이 단계 S15에서 기준 상관 데이터/목표 상관 데이터, 즉, X(m)/Yn(m)를 처리한다. 디지털 신호 처리기(63)는 X(m)과 Yn(m)의 곱의 합과 X(m)과 Yn-1(m)의 곱의 합 간의 차 Dn을 결정하고, 차 Dn을 체크하여 Dn-1이 0보다 크고 Dn이 0보다 작은지 여부를 검사한다. Dn-1이 0보다 크고 Dn이 0보다 작으면, 상관값 R의 변화율이 국지 최대값이거나 국지 최대값 근처이다. 그런 다음, 디지털 신호 처리기(63)는 단계 S15에서 문의에 대해 "예"라고 긍정인 응답을 준다. 디지털 신호 처리기(63)는 상술한 데이터 처리에 대해 "n"이 2 이상일 것을 필요로 한다. 그 이유는, "n"이 1일 때, 디지털 신호 처리기(63)는 단계 S15에서 문의에 대해 "아니오"라고 부정인 응답을 주기 때문이다.
단계 S15에서 응답이 부정으로 주어지면, 디지털 신호 처리기(63)는 상관 판정에 대한 요청을 기다린다. 오디오 음악 데이터 코드들의 다음 쌍이 중앙 처리 장치(62)에 의해 페치된 때, 오디오 음악 데이터 코드들의 다음 쌍은 랜덤 액세스 메모리(64)에 기록되고, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 상관 판정을 수행할 것을 요청한다. 그러면, 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)로부터 새로운 목표 상관 데이터 Yn+x를 판독하고, 단계 S11 내지 S15를 통해 상관 판정을 시작한다.
단계 S13 또는 S15에서 응답이 여전히 부정인 동안, 디지털 신호 처리기(63)는 단계 S11 내지 S14 및/또는 S11 내지 S15를 통한 상관 판정을 반복한다. 디지털 신호 처리기(63)가 상관값 Rn+y가 국지 최대값을 점유하는 것을 발견할 때, S15에서 응답이 긍정으로 바뀌며, 디지털 신호 처리기(63)는 상관 판정을 완료한다.
이제 컴팩트 디스크 CD-B 내의 일련의 오디오 음악 데이터 코드들의 쌍들 ((r(n), l(n))이 컴팩트 디스크 CD-A 내의 일련의 오디오 음악 데이터 코드들의 쌍 들 ((r(n), l(n))보다 51600 샘플링 포인트, 즉 1.17초만큼 지연된다고 가정한다. 앞서 설명한 바와 같이, 오디오 음악 데이터 코드들의 쌍들 ((R(52156), L(52156)) 내지 ((R(117691), L(117691))은 조합하여 참조 미가공 데이터를 형성한다. 오디오 음악 데이터 코드들의 쌍들 ((R(52156), L(52156)) 내지 ((R(117691), L(117691))에 대응하는 오디오 음악 데이터 코드들의 쌍들 ((r(52156), l(52156))은 103756부터 169291까지의 위치들을 점유한다. 즉, 오디오 음악 데이터 코드들의 쌍들 ((r(103756), l(103756)) 내지 ((r(169291), l(169291))은 오디오 음악 데이터 코드들의 쌍들 ((R(52156), L(52156)) 내지 ((R(117691), L(117691))에 대응한다. 디지털 신호 처리기(63)가 목표 상관 데이터 세트 Y0(m) 내지 목표 상관 데이터 세트 Y103755(m)에 대한 상관 판정을 하는 동안, 단계 S13과 S15 중 하나에서 응답은 여전히 부정으로 주어진다. 이것은, 목표 상관 데이터 세트들 Y0(m) 내지 Y103755(m)이 기준 상관 데이터 Xm으로부터 벗어나기 때문이다. 다시 말해서, 디지털 신호 처리기(63)는 목표 상관 데이터 세트들 Y0(m) 내지 Y103755(m) 중에서 기준 상관 데이터 Xm와 매우 상관성이 높은 것을 발견하지 못한다.
그러나, 디지털 신호 처리기(63)가 목표 상관 데이터 세트 Y103755(m)와 기준 상관 데이터 Xm의 상관 판정을 할 때에는, 목표 상관 데이터 Y103755(m)이 기준 상관 데이터 Xm과 각각 대응하기 때문에, 단계 S13과 S15 에서의 응답은 긍정으로 주어진다. 긍적적인 응답이 주어지면, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 기준 상관 데이터 Xm과 목표 상관 데이터 Y103755(m) 간의 상관성을 보고한다.
중앙 처리 장치(62)에 긍정인 보고가 도착할 때, 중앙 처리 장치(62)는 자동 연주 피아노(31A)를 통하여 재생을 시작한다. 표준 MIDI 파일은 이미 플로피 디스크 FD로부터 랜덤 액세스 메모리(64)에 전달되고, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 쌍들 ((r(n), l(n))을 인터페이스(65a)를 통해 오디오부(4)로 전달하여, 라우드 스피커들(44)을 통해 전기 음을 재생하도록 한다.
중앙 처리 장치(62)는 우선 내부 클럭을 시동하고, 랜덤 액세스 메모리(64)로부터 제1 델타 타임 코드를 판독한다. 중앙 처리 장치(62)는 제1 이벤트 코드가 자동 연주 피아노(31A)에 전달되는지의 여부를 체크하기 위해 내부 클럭을 제1 델타 타임델타 타임기적으로 비교한다. 응답이 부정인 동안, 중앙 처리 장치(62)는 제1 이벤트 코드가 자동 연주 피아노(31A)에 전달될 때를 기다린다. 델타 타임 코드로 표현되는 타임 주기가 만료될 때, 중앙 처리 장치(62)는 인터페이스(65)를 통해 제1 이벤트 코드를 제어기(34)에 전달한다.
제어기(34)는 제1 이벤트 코드를 분석하고, 흑/백 키에 의해 추적되는 궤도(trajectory)를 결정한다. 제어기(34)는 드라이버(36a)에게 요청하여, 흑/백 키가 궤도를 따라 이동하도록 한다. 드라이버(36a)는 솔레노이드 구동형 키 작동기(36b)에 구동 신호를 공급하고, 솔레노이드 구동형 키 작동기(36b)는 회전 동안 관련 흑/백 키를 구동시킨다. 흑/백 키는 관련 동작 유닛(31b)을 작동시키는데, 이는 잭의 이스케이프를 통해 회전 동안 관련 해머(31c)를 차례로 구동한다. 해머(31c)는 회전 마지막에, 관련 스트링(31d)을 치고, 진동하는 스트링(31d)으로부터 어쿠스틱 피아노 톤이 발생된다.
사용자가 오디오부(4)을 통해서만 음악의 일부를 재생하도록 제어기(6)에게 지시한다면, 제어기(34)는 제1 이벤트 코드를 톤 발생기(35)에 전송하고, 디지털 오디오 신호는 톤 발생기(35)에서 믹서(41)로 공급된다. 톤 발생기(35)로부터의 디지털 오디오 신호는 콤팩트 디스크 드라이버(1)로부터의 디지털 오디오 신호, 즉 오디오 음악 데이터 코드 쌍들(r(n), l(n))과 믹스되어, 전기 톤이 라우드 스피커(44)로부터 생성된다.
중앙 처리 장치(62)가 제1 이벤트 코드를 전송할 때, 다음 델타 타임 코드는 랜덤 액세스 메모리(64)에서 중앙 처리 장치(62)로 판독되고, 내부 클럭을 주기적으로 체크하여, 제2 이벤트 코드가 어쿠스틱 연주 피아노(3)에 전송될지의 여부를 확인한다. 제2 이벤트 코드를 전송할 타임이 되었을 때, 중앙 처리 장치(62)는 인터페이스(65a)를 통해 제2 이벤트 코드를 자동 연주 피아노(3)에 전송한다. 따라서, 중앙 처리 장치(62)는 이벤트 코드를 자동 연주 피아노(3)에 간헐적으로 전송하고, 어쿠스틱 피아노 톤/전기 톤은 오디오 음악 데이터 코드(r(n), l(n))에 기초하여 전기 톤의 발생과 함께 동시에 재생된다.
도 9a ~ 9c는 상관 판정의 결과를 도시한다. 상관 판정은, 단계 S3에서의 데이터 처리가 25Hz에서 하이-패스 필터로서 역할을 하는 단-단계(single-stage) IIR(Infinite Impulse Response) 필터의 회로 동작(behaviour)과 동일하고, 단계 S5에서 빗(comb) 라인 필터는 4410인 상수 k와 1인 또 다른 상수 f를 가지며, 단계 S6에서 데이터 처리는 25Hz에서 로우 패스 필터의 역할을 하는 단-단계 IIR 필터의 회로 동작과 동일하다는 조건 하에 수행되었다. 단계 S13에서 상수 p와 q는 각각 0.5와 0.8로 설정되었다.
도 9a, 9b 및 9c에서, "n"은 오른쪽을 향하는 방향에서 가로 좌표를 따라 증가하고, 세로 좌표는 다음 플롯의 값을 나타낸다. 플롯 PL1은 상수 p와 수학식 2에서 좌측 분모와의 프로덕트를 나타내고, 플롯 PL2는 수학식 2에서 좌측 분자를 나타낸다. 플롯 PL3은 상수 q와 수학식 3에서 좌측 분모와의 프로덕트를 나타내고, 플롯 PL4는 수학식 3에서 좌측 분자를 나타낸다. 플롯 PL5는 수학식 4의 좌측을 나타낸다.
플롯 PL1은 상수이다. 플롯 PL2의 대부분은 플롯 PL1 아래에서 구불거린다(waved). 그러나, 플롯 PL2는 도메인 A에서 플롯 PL1을 초과한다. 다시 말해, 수학식 2의 좌측은 상수 P 이상의 값을 갖는다. 도메인 B는 도메인 A 내에 놓인다. "n"이 도메인 B를 통해 지나가는 동안, 플롯 PL4는 플롯 PL3을 초과하고, 수학식 3의 좌측은 상수 q 이상의 값을 갖는다. 따라서, 절대 상관 지표 IDXa 및 상대 상관 지표 IDXr는 각각 상수 p 및 상수 q 이상이고, 단계 S13에서의 응답은 도메인 B에서만 긍정(affirmative)으로 주어진다.
이에 반해, 수학식 4의 좌측은 C에서 0이고, 수학식 5는 포인트 C에서 만족된다. 포인트 C는 도메인 B 내에 놓인다. 따라서, 단계 S15에서의 응답은 긍정으로 주어지고, 동시 재생 시스템은 자동 연주 피아노(31A)와 콤팩트 디스크 드라이버(1)/오디오부(4) 간의 앙상블에 있어 포인트 C에서 재생을 시작한다. 본 발명자는 자동 연주 피아노(31A)가 앙상블에 있어 음악의 일부를 재생하기 위한 콤팩트 디스크 드라이버(1)/오디오부(4)과 용이하게 동기된다는 것을 확증했다.
이하에서 알 수 있듯이, 제어기(6)는 자동 연주 피아노(31A)가 개시되는 타임을 찾기 위한 실타임 패션에서 오디오 음악 데이터 코드 쌍의 집합체(R(n), L(n))와 일련의 오디오 음악 데이터 코드 쌍(r(n), l(n)) 을 분석한다. 이것은 자동 연주 피아노(31A)가 콤팩트 디스크(1)/오디오부(4)을 통한 재생과 함께 좋은 앙상블로 어쿠스틱 피아노 톤을 재생하기 시작한다는 것을 의미한다. 다시 말해, 제어기(6)는 자동 연주 피아노(31A)와 콤팩트 디스크 드라이버(1)/오디오부(4) 간의 앙상블로부터, 콤팩트 디스크 CD-A에서의 사일런트 타임과 콤팩트 디스크 CD-B에서의 사일런트 타임 간의 차이를 뺀다.
본 발명가는 다음과 같은 동시 재생을 확증했다. 도 10은 사전 기록에서의 음악 데이터와 동시 재생에서의 음악 데이터 간의 관계를 도시한다. PL7은 오디오 음악 데이터 코드(R(n), L(n))로부터 재생되는 아날로그 오디오 신호를 나타내고, 타임은 방향 T로 진행한다.
사일런트 타임은 약 1.18초 정도 계속되고, 샘플링된 값은 1.18초에서 임계값을 초과한다. 1.18초에서 2.67초까지의 오디오 음악 데이터 코드(R(n), L(n))는 참조 미가공(raw material) 데이터로서 플로피 디스크 FD에 저장된다. 참조 미가공 데이터는 시스템 익스클루시브 이벤트(system exclusive event)의 형태로 랜덤 액세스 메모리(64)에 축적되고, 그 축적은 2.67초에 완료된다. 그 다음, 중앙 처리 장치(62)는 내부 클럭을 개시하고, 그 이후에, 사용자는 키보드(31a)에서 자신의 핑거링을 시작한다. 제1 이벤트, 제2 이벤트, 및 제3 이벤트는 3.92초, 5.30초, 및 6.38초에 각각 발생한다. 제1 이벤트는 참조 미가공 데이터 축적의 마지막 으로부터 1.25초 만큼 지연된다. 제1 이벤트에서 최후 이벤트까지를 나타내는 이벤트 코드는 델타 타임 코드와 함께 표준 MIDI 파일에 저장된다.
플롯 PL8은 콤팩트 디스크에 저장된 오디오 음악 데이터 코드(r(n), l(n))로부터 생성된 아날로그 오디오 신호를 나타내고, 타임은 방향 T'으로 진행한다. 콤팩트 디스크 CD-B로부터 재생된 오디오 신호의 동적 범위는 콤팩트 디스크 CD-A로부터 재생된 오디오 신호의 동적 범위보다 좁다.
콤팩트 디스크 CD-B에서 사일런트 타임은 콤팩트 디스크 CD-A에서 사일런트 타임 보다 길다. 오디오 음악 데이터 코드 쌍(r(0), l(0))이 중앙 처리 장치(62)에 도달할 때, 디지털 신호 처리기(63)는 목표 미가공 데이터로부터 목표 상관 데이터 일부의 생성을 개시하고, 높은 상관 상태를 찾기 위해 참조 상관 데이터의 일부와 목표 상관 데이터의 일부를 분석한다.
제어기(6)가 이벤트 코드를 자동 연주 피아노(31A)로 간단하게 전송하는 경우에, 제1 이벤트, 제2 이벤트, 및 제3 이벤트는 3.92초, 5.30초, 및 6.38초에 각각 발생하고, 자동 연주 피아노(31A)는 연주를 진행한다. 이 결과, 콤팩트 디스크 연주기(1)/오디오부(4)는 자동 연주 피아노(31A)와 좋은 앙상블을 이루지 않는다.
반면, 사용자는 자동 연주 피아노(31A)를 통한 재생과 함께 앙상블로 연주를 재생하도록 제어기(6)에게 지시한다. 디지털 신호 처리기(63)는 3.84초 이전에는 높은 상관 상태에 확인 응답하지 않는다. 재생이 3.84초에 도달했을 때, 디지털 신호 처리기(63)는 참조 상관 데이터와 상당히 관련되는 목표 상관 데이터를 발견하고, 중앙 처리 장치(62)는 내부 클럭을 개시한다. 타임은 방향 D에서 진행한다. 중앙 처리 장치(62)는 제1 델타 타임 코드를 판독하고, 제1 델타 타임 코드에 의해 표현된 타임과 타임의 경과를 비교한다. 내부 클럭이 타임과 매치될 때, 중앙 처리 장치(62)는 자동 연주 피아노(31A)에 제1 이벤트 코드를 전송하고, 어쿠스틱 피아노 톤이 발생된다. 제1 이벤트 코드는 상관 판정의 완료 1.25초 이후에 즉, 5.09초에 자동 연주 피아노(31A)에 전송된다. 초과된 임계값에서 제1 이벤트 코드로의 전송까지의 타임 간격은 콤팩트 디스크 CD-B에서 사일런트 타임 이후의 타임 간격과 동일하다. 제2 이벤트와 제3 이벤트는 6.47초 및 7.55초에 자동 연주 피아노(31A)로 전송된다. 이벤트 코드들이 타임 간격은 사전 기록과 동시 재생 사이 타임과 동일하다. 따라서, 동시 재생 시스템은 사일런트 타임 및 동적 범위의 길이에 상관없이 재생 연주 피아노(31A)와 콤팩트 디스크 드라이버(1)/오디오부(4) 간의 우수한 앙상블을 실현한다.
상술한 바에서 알 수 있듯이, 본 발명을 구현하는 동시 재생 시스템은 사일런트 타임과 동적 범위에 상관없이 우수한 앙상블로 음악의 일부에 대한 연주를 재생한다.
제1 변형예
도면 중 도 11로 돌아가면, 본 발명을 구현하는 동기 연주 시스템의 제1 변형예 역시 콤팩트 디스크 드라이버(1A), 플로피 디스크 드라이버(2A), 자동 연주 피아노(3A), 오디오부(4A), 조작 패널/표시부(5A), 및 제어기(6A)를 주로 포함한다. 플로피 디스크 드라이버(2A), 자동 연주 피아노(3A), 오디오부(4A) 및 조작 패널/표시부(5A)는 본 발명을 구현하는 동기 연주 시스템과 구성 및 동작에 있어 유사하고, 구성 부품들은 도 1에 도시된 대응 구성 부품들을 설계하는 기준으로 분류된다(labeled). 제어기(6A)는 데이터 처리에 있어 제어기(6)와 약간 다르지만, 시스템 구성은 제어기(6)와 유사하고, 이러한 이유로, 구성 부품은 상세한 설명 없이, 제어기(6)의 대응 구성 부품을 설계하는 기준으로 분류된다.
또한, 제1 변형예는 사전 기록 모드와 동시 재생 모드를 선택적으로 입력하고, 동작의 이러한 모드에 있어서의 가동은 일반적으로 동시 재생 시스템과 동일하다. 따라서, 동시 재생 시스템에 의해 수행된 디지털 처리와의 차이점에 대해 중점적으로 설명한다.
콤팩트 디스크 드라이버(1A)는 콤팩트 디스크 CD로부터 오디오 음악 데이터 코드와 오디오 타임 데이터 코드를 순차적으로 판독하고, 오디오 음악 데이터 코드 뿐만 아니라 오디오 타임 데이터 코드 역시 제어기(6A)에 전송한다. 이것은 콤팩트 디스크 드라이버(1)의 동작과의 차이점이다.
제어기(6A)는 다음과 같이 사전 기록 및 동시 재생 시스템 모두에 있어 다르게 동작한다. 콤팩트 디스크 드라이버(1A)는 오디오 음악 데이터 코드(R(n), L(n))와 오디오 타임 데이터 코드를 제어기(6A)에 전송하고, 중앙 처리 장치(62)는 샘플링된 값이 임계값을 초과하는지 여부를 확인하기 위해 오디오 음악 데이터 코드 쌍(R(n), L(n))을 체크한다. 중앙 처리 장치(62)는 임계값을 초과하도록 샘플링된 값을 찾고, 오디오 타임 데이터 코드는 참조 미가공 데이터의 제1 일부와 함께 랜덤 액세스 메모리(64)에 저장된다. 오디오 타임 데이터 코드는 시스템 익스클루시브 이벤트의 일부를 형성하고 표준 MIDI 파일에 저장된다. 또 다른 차이점 은, 이벤트 코드가 제어기(6A)에 도달하는 오디오 타임 데이터 코드들이 델타 타임 코드와 함께 표준 MIDI 파일에 저장된다는 것이다. 동시 재생 모드에서, 제어기(6A)는 콤팩트 디스크 드라이버(1A)로부터 제공된 오디오 타임 데이터 코드에 기초하여, 이벤트 코드를 자동 연주 피아노(3A)에 전송한다. 오디오 타임 데이터 코드는 재생 초기로부터 타임의 경과를 시(hours), 분(minutes), 초(seconds) 및 프레임으로 나타낸다. 그러나, 경과 타임은 단순화를 위해, 다음 설명에 있어 단지 초로 표현된다.
보다 상세하게, 사용자는 조작 패널/표시부(5A)를 통해 콤팩트 디스크 드라이버(1A)/오디오부(4A)을 통한 재생과의 앙상블에서 키보드(31a) 연주의 예비 리코드를 동시 재생 시스템에 지시하도록 가정된다. 음악의 일부는 사전 기록 모드에서, 콤팩트 디스크 CD-A로부터 재생되고, 동시 재생 모드에서 콤팩트 디스크 CD-B부터 재생될 것이다.
오디오 음악 데이터 코드와 오디오 타임 데이터 코드는 콤팩트 디스크 CD-A로부터 연속적으로 판독되고, 콤팩트 디스크 드라이버(1A)에서 인터페이스(65a)로 공급된다. 중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드와 오디오 타임 데이터 코드를 인출하고, 오디오 음악 데이터 코드를 오디오부(4A)에 전송한다. 오디오부(4A)는 오디오 음악 데이터 코드를 전기 톤으로 변환하여, 음악의 일부가 라우드 스피커(44)를 통해 재생된다. 중앙 처리 장치(62)가 오디오 음악 데이터 코드를 오디오부(4A)에 전송하는 동안, 중앙 처리 장치(62)는 샘플링된 값 중 적어도 하나가 임계값을 초과하는지 여부를 보기 위해, 오디오 음악 데이 터 코드 쌍(R(n), L(n))의 체크를 더 실시한다. 중앙 처리 장치(62)가 임계값을 초과하는 샘플링된 값을 갖는 오디오 음악 데이터 코드 쌍을 발견할 때, 중앙 처리 장치(62)는 오디오 데이터 코드 쌍 직전에 수신된 오디오 타임 데이터 코드를 오디오 타임 데이터 코드에 저장된 타임의 경과를 나타내는 델타 타임 코드로 바꾼다. 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에서 델타 타임 코드를 저장한다. 샘플링된 값은 1.18초를 지시하는 오디오 타임 데이터 코드의 착신 직후의 임계값을 초과하는 것으로 가정된다. 따라서, 랜덤 액세스 메모리(64)에 저장된 델타 타임 코드는 이후에 "기준 델타 타임 코드"로 칭해진다.
임계값을 초과한 이후에, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍을 1.49초 동안 랜덤 액세스 메모리(64)에 전송하고, 그 샘플링된 값을 미가공 데이터의 일부로서 랜덤 액세스 메모리에 기억시킨다.
랜덤 액세스 메모리(64)에서 미가공 데이터의 일부의 축적이 완료될 때, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에 요청하여 도 4에 도시된 데이터 처리를 통해 미가공 데이터의 일부로부터 참조 상관 데이터의 일부를 생성한다. 따라서, 참조 상관 데이터의 일부는 미가공 데이터의 일부로부터 생성되어, 랜덤 액세스 메모리(64)에 저장된다.
제1 전기 톤이 라우드 스피커(44)로부터 방출될 때, 사용자는 키보드(31)에서 자신의 핑거링을 시작하고, 페달(31e)을 선택적으로 밟는다. 사용자가 콤팩트 디스크 연주기(1A)/오디오부(4A)을 통한 재생과 함께 앙상블로 어쿠스틱 피아노(31A)로 음악의 일부를 연주하는 동안, 제어기(34)는 키 위치 신호 및 페달 위치 신호로부터 노트-온(note-on), 노트-오프(note-off), 페달-온(pedal-on), 페달-오프(pedal-off)를 나타내는 이벤트 코드를 생성하고, 이벤트 코드를 인터페이스(65a)에 제공한다.
중앙 처리 장치(62)는 인터페이스(65a)로부터 이벤트 코드를 인출하고, 이벤트 코드 직전에 수신된 오디오 음악 데이터 코드로부터 델타 타임 코드를 생성한다. 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 이벤트 코드 및 델타 타임 코드를 저장한다.
사용자가 자신의 연주를 중지할 때, 사용자는 동시 재생 시스템이 조작 패널/표시부(5A)를 통한 연주를 리코드하도록 지시한다. 그 다음, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1A)가 재생을 중지하도록 지시하고, 랜덤 액세스 메모리(64)로부터의 기준 델타 타임 코드, 참조 상관 데이터의 일부, 이벤트 코드 및 합동 델타 타임 코드를 판독하여, 표준 MIDI 파일 SMF2를 형성한다.
도 12는 표준 MIDI 파일 SMF2에 대한 데이터 포맷을 도시한다. 시스템 익스클루시브 이벤트 코드, C5에서 노트-온에 대한 이벤트 코드, E6에서 노트-온에 대한 이벤트 코드, C5에서 노트-오프에 대한 이벤트 코드는 트랙 청크(track chunk)에 저장되고, 1.18초를 지시하는 기준 델타 타임 코드는 기준 상관이나 데이터의 일부와 함께 시스템 익스클루시브 이벤트 데이터 코드에 저장된다. 3.92초를 지시하는 델타 타임 코드는 C5에서 노트-온 이벤트가 인터페이스(65a)에 도달하는 타임을 나타낸다. 유사하게, 5.30초를 지시하는 델타 타임 코드는 E6에서 노트-온 이벤트가 인터페이스(65a)에 도달하는 타임을 나타내고, 6.38초를 지시하는 델타 타 임 코드는 C5에서 노트-오프 이벤트가 인터페이스(65a)에 도달하는 타임을 나타낸다.
표준 MIDI 파일 SMF2는 중앙 처리 장치(62)에서 플로피 디스크 드라이버(2A)로 전송되고, 플로피 디스크 FD에 기입된다.
사용자는 동시 재생 시스템이 콤팩트 디스크 드라이버(1A)/오디오부(4A)을 통해 재생과 앙상블로 자동 연주 피아노(3A)를 통한 키보드(31a) 연주를 재생하도록 지시한다. 사용자는 콤팩트 디스크 CD-B를 콤팩트 디스크 드라이버(1A)에 로드한다.
중앙 처리 장치(62)는 플로피 디스크 드라이버(2A)가 표준 MIDI 파일 SMF2를 인터페이스(65a)에 전송하도록 요청한다. 표준 MIDI 파일 SMF2는 플로피 디스크 FD로부터 판독되고, 플로피 디스크 드라이버(2A)에서 인터페이스(65a)로 전송된다. 중앙 처리 장치(62)는 인터페이스(65a)로부터 표준 MIDI 파일에 저장된 데이터 코드를 인출하고, 랜덤 액세스 메모리(64)에서 시스템 익스클루시브 이벤트 코드, 이벤트 코드, 및 델타 타임 코드를 재저장한다.
또한, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1A)가 콤팩트 디스크 CD-B에서 인터페이스(65a)로 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드를 연속적으로 전송하도록 요청한다. 중앙 처리 장치(62)는 인터페이스(65a)에서 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드를 인출하고, 수신된 데이터로부터 오디오 음악 데이터 코드를 선택한다.
중앙 처리 장치(62)는 오디오 음악 데이터 코드를 오디오부(4A)에 전송하고, 오디오부(4A)는 오디오 음악 데이터 코드를 전기 톤으로 변환한다. 따라서, 음악의 일부는 오디오부(4A)을 통해 재생된다.
또한, 중앙 처리 장치(62)는 이벤트 코드/코드들을 델타 타임 코드와 함께 랜덤 액세스 메모리(64)에 전송하고, 이벤트 코드/코드들 및 델타 타임 코드는 랜덤 액세스 메모리(64)에 저장된다.
오디오 음악 데이터 코드의 65536번째 쌍(r(65535), l(65535))이 랜덤 액세스 메모리(64)에 저장될 때, 중앙 처리 장치(62)는 디지털 신호 처리기(63)가 상관 판정을 시작하도록 요청한다. 참조 상관 데이터의 일부가 바뀌지 않더라도, 새롭게 생성된 목표 상관 데이터의 일부는 목표 상관 데이터 중 가장 오래된 일부를 세트로부터 밀어낸다. 따라서, 목표 상관 데이터의 일부 세트의 멤버들은 타임에 따라 바뀐다. 디지털 신호 처리기(63)는 참조 상관 데이터의 일부를 목표 상관 데이터의 일부와 비교하여, 도 8에 도시된 방법과 관련하여 설명된 바와 같이, 목표 상관 데이터의 일부가 참조 상관 데이터의 일부와 상당히 관련되는지 여부를 확인한다. 단계 S15에서의 응답이 긍정으로 주어질 때, 디지털 신호 처리기(63)는 목표 상관 데이터의 일부에 대해 상관 판정을 종료한다. 그 다음, 디지털 신호 처리기(63)는 상고나 분석이 성공적으로 완료되었다는 것을 중앙 처리 장치(62)에 알리고, 최종 세트의 목표 상관 데이터의 처음 일부에 할당된 확인 번호를 중앙 처리 장치(62)에 전송한다. 이러한 예에서, 확인 번호 "103756"는 중앙 처리 장치(62)에 전송되는 것으로 가정된다.
성공적인 보고 및 확인 번호 "103756"의 수신시, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)를 액세스하고, 오디오 음악 데이터 코드 쌍(r(103756), l(103756))과 관련된 오디오 타임 데이터 코드를 판독한다. 오디오 타임 데이터 코드는 2.35초를 지시하는 것으로 가정된다. 또한, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)로부터 기준 델타 타임 코드를 판독하고, 오디오 타임 데이터 코드를 기준 델타 타임 코드와 비교하여, 사일런트 타임이 콤팩트 디스크 CD-A와 콤팩트 디스크 CD-B 사이에서 동일한지 여부를 확인한다. 이러한 예에서, 기준 델타 타임 코드는 1.18초를 지시한다. 그 다음, 응답은 부정으로 주어진다. 부정 응답인 경우, 중앙 처리 장치(62)는 콤팩트 디스크 CD-A의 사일런트 타임과 콤팩트 디스크 CD-B의 사일런트 타임 간의 차를 계산한다. 그 차는 1.17초이다. 이것은 콤팩트 디스크 드라이버(1A)/오디오부(4A)이 콤팩트 디스크 CD-A에 저장된 음악의 일부의 재생이 콤팩트 디스크 CD-B에 저장된 음악의 동일한 일부의 재생보다 1.17초 빠르다는 것을 의미한다. 이러한 이유로, 중앙 처리 장치(62)는 표준 MIDI 파일 SMF2에 저장된 델타 타임 코드 각각에 의해 지시된 타임의 경과에 1.17초를 더한다.
C5에서 제1 노트-온 이벤트는 재생의 초기화로부터 3.92초에 발생하는 것이다.(도 12 참조) 타임 차의 추가 완료시, C5에서 제1 노트-온 이벤트는 3.92초에서 5.09초로 지연된다. 유사하게, E6에서 제2 노트-온 이벤트는 5.30초에서 6.47초로 지연되고, C5에서 노트-오프 이벤트는 6.38초에서 7.55초로 지연된다. 따라서, 델타 타임 코드에 저장된 경과 타임은 콤팩트 디스크 CD-B에 저장된 음악의 일부의 재생에 있어서의 경과 타임에 통제된다. 델타 타임 코드에 저장된 경과 타임 으로부터의 타임 차를 제거하기 위한 작업은 이후 "타임 규제"로서 칭해지고, 타임 규제 이후의 델타 타임 코드는 "조정된 델타 타임 코드"로 칭해진다.
타임 조정의 완료시, 중앙 처리 장치는 랜덤 액세스 메모리(64)로부터 제1 델타 타임 코드를 판독하고, 콤팩트 디스크 드라이버(1A)로부터 공급된 오디오 타임 데이터 코드를 체크하여, 관련 이벤트 코드가 자동 연주 피아노(3A)에 전송되는지 여부를 확인한다. 오디오 타임 데이터 코드가 제1 조정된 델타 타임 코드에 의해 지시된 경과 타임보다 짧은 경과 타임을 지시하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍(r(n), l(n))을 오디오부(4A)에 전송하지만, 이벤트 코드를 자동 연주 피아노(3A)에 전송하지는 않는다. 이러한 이유로, 전기 톤만이 라우드 스피커(44)로부터 방출된다.
3.92초를 지시하는 오디오 타임 데이터 코드가 중앙 처리 장치(62)로부터 인출될 때, 응답은 긍정으로 바뀌고, 중앙 처리 장치(62)는 C5에서 제1 이벤트 코드를 랜덤 액세스 메모리(64)에서 자동 연주 피아노(3A)의 제어기로 전송한다. 제어기(34)는 회전을 위한 해머(31c) 구동을 위해 솔레노이드 구동형 기 작동기(36b)에 구동 신호를 공급한다. 해머(31c)는 관련 스트링(31d)을 치고, 어쿠스틱 톤이 C5에서 발생된다.
마찬가지로, 중앙 처리 장치(62)는 조정된 델타 타임 코드에 의해 표현된 경과 타임과 오디오 타임 코드에 의해 표현된 경과 타임을 비교하여 관련 이벤트 코드를 자동 연주 피아노(3A)에 전송해야할지 여부를 확인하고, 적당한 타이밍에 관련 이벤트 코드를 자동 연주 피아노(3A)에 전송한다. 이 결과, 자동 연주 피아노(3A)를 통한 재생과 콤팩트 디스크 드라이버/오디오부(1A/4A)을 통한 재생과의 사이에 좋은 앙상블이 생긴다.
도 13은 제1 변형예의 동시 재생 시스템을 통한 동시 재생을 도시한다. 횡좌표축은 오디오 타임 데이터 코드에 의해 표현되는 경과 타임을 나타냈다. 플롯(PL11)은 콤팩트 디스크(CD-A)에 저장된 오디오 음악 데이터 코드 (R(n), L(n))으로부터 생성된 아날로그 오디오 신호의 파형을 나타냈고, 플롯(PL12)은 콤팩트 디스크(CD-B)에 저장된 오디오 음악 데이터 코드 (r(n), l(n))으로부터 생성된 아날로그 오디오 신호의 파형을 나타냈다. 참조 상관 데이터들은 1.18초로부터 2.67초까지 참조 미가공 데이터(RRM1)로부터 생성되었고, 제1 이벤트, 제2 이벤트 및 제3 이벤트는 각각 3.92초, 5.30초 및 6.38초에서 일어났다. 따라서, 델타 타임 코드는 3.92초, 5.30초 및 6.38초에서 경과 타임을 나타냈고, 표준 MIDI 파일(SMF2)에 저장되었다.
한편, 플롯(PL13)은 목표 상관 데이터들로부터 생성된 아날로그 신호의 파형을 나타냈고, 2.35초와 3.84초 사이의 기준 목표 상관 데이터(PL14)들로부터 생성된 다른 아날로그 신호의 파형과 고도로 상관되었다. 따라서, 목표 상관 데이터들은 참조 상관 데이터들로부터 1.17초만큼 지연되었다.
중앙 처리 장치(62)는 타이밍 조정을 통하여 목표 상관 데이터와 참조 상관 데이터 사이의 타임차를 제거하였고, 그에 따라 제1, 제2 및 제3 이벤트는 3.92초, 5.30초 및 6.38초로부터 각각 5.09초, 6.47초 및 7.55초로 지연되었다.
콤팩트 디스크 드라이버(1A)는 발진기를 가졌고, 발진 신호는 44100 Hz의 클 록 신호로 분할되었다. 오디오 데이터 코드는 클록 신호와 동기하여 콤팩트 디스크(CD-B)로부터 판독되었다. 발진기는 불안정하였고, 오디오 데이터 코드는 이전의 동시 재생의 주파수보다 높은 주파수의 클록 신호와 동기하여 콤팩트 디스크(CD-B)로부터 판독되었다. 비록 오디오 타임 코드는 동일한 경과 타임을 나타냈지만, 타임 간격은 줄어들었고, 이전의 동시 재생에서의 제1, 제2 및 제3 이벤트와 보다 높은 클록 주파수 하의 동시 재생에서의 제1, 제2 및 제3 이벤트 사이에 타임차 t1, t2 및 t3이 생겼다. 비록 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1A)의 클록 신호와 다른 클록 신호 하에서 작업을 실행했지만, 중앙 처리 장치(62)는 델타 타임 코드가 나타내는 경과 타임과 오디오 타임 데이터 코드가 나타내는 경과 타임을 실타임으로 비교함으로써, 이벤트 코드들은 이전의 동시 재생에서보다 일찍 자동 연주 피아노(3A)에 전송되었다. 따라서, 자동 연주 피아노(3A)는 콤팩트 디스크 드라이버/오디오부(1A/4A)을 통한 재생과 좋은 앙상블로 악곡을 재생한다.
제2 변형예
도 14는 본 발명을 구현하는 동시 재생 시스템의 제2 변형예를 도시하는 것으로, 이 또한 주로 콤팩트 디스크 드라이버(1B), 플로피 디스크 드라이버(2B), 자동 연주 피아노(3B), 오디오부(4B), 조작 패널/표시부(5B) 및 제어기(6B)를 포함한다. 콤팩트 디스크 드라이버(1B), 플로피 디스크 드라이버(2B), 자동 연주 피아노(3B), 오디오부(4B) 및 조작 패널/표시부(5B)는 제1 실시예를 구현하는 동시 재생 시스템의 그것들과 구성 및 작용이 유사하고, 그 구성 요소들에는 도 1에 도 시된 대응하는 구성 요소들을 가리키는 참조 부호가 붙어 있다. 제어기(6B)는 데이터 처리에 있어서 제어기(6)와 다르지만, 시스템 구성은 제어기(6)의 그것과 유사하고, 이 때문에, 그 구성 요소들에는 제어기(6)의 대응 구성 요소들을 가리키는 참조 부호가 붙어 있고, 상세한 설명은 생략한다.
이 제2 변형예 역시 사전 기록 모드와 동시 재생 모드에 선택적으로 들어가고, 이들 동작 모드에서의 작용은 동시 재생 시스템의 그것과 일반적으로 같다. 이 때문에, 도 1에 도시된 동시 재생 시스템에 의해 실행되는 디지털 처리와의 차이에 설명의 초점을 맞춘다.
주요한 차이는 제어기(6B)가 악곡의 중간 부분으로부터 추출된 미가공 데이터들로부터 참조 상관 데이터들을 생성한다는 것이다. 다른 차이는 상관 판정 후 콤팩트 디스크의 헤드로부터의 완전한 재생이다.
사용자는 콤팩트 디스크 드라이버/오디오부(1B/4B)을 통한 악곡의 재생과 앙상블로 자신의 연주를 사전 기록하도록 제어기(6B)에 지시한다고 가정된다. 디지털 신호 처리기(63)는 악곡의 임의 악절로부터의 참조 상관 데이터들을 생성한다. 악절은 특이할 수 있다. 그런 특이 악절은 악곡의 제1 음조 이후 3분으로부터 나타날 수 있다. 이 경우, 참조 상관 데이터들은 1.49초 동안 콤팩트 디스크 유닛(1B)으로부터 공급된 오디오 음악 데이터 코드 쌍 (R(n), L(n))으로부터 생성된다. 다음 설명에서, 악절은 헤드로부터 180초에 시작하여, 1.49초 지속한다.
중앙 처리 장치(62)가 사전 기록에 대한 지시를 승인하면, 중앙 처리 장치(62)는 악절을 나타내는 오디오 음악 데이터 코드 쌍 (R(n), L(n))을 전송할 것을 콤팩트 디스크 드라이버(1B)에 요청한다. 이때, 콤팩트 디스크 드라이버(1B)는 픽업을 180분을 나타내는 오디오 타임 데이터 코드로 이동시키고, 1.49초에 상당하는 65536쌍의 음악 데이터 코드 (R(n), L(n)) 및 관련 오디오 타임 데이터 코드를 인터페이스(65a)에 전송한다. 65536쌍의 음악 데이터 코드 (R(n), L(n))은 참조 미가공 데이터를 형성한다. 중앙 처리 장치(62)는 제1 오디오 타임 데이터 코드를 기준 델타 타임 코드로 변환하고, 이 기준 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다. 이 경우, 기준 델타 타임 코드는 180초를 나타낸다. 중앙 처리 장치(62)는 또한 참조 미가공 데이터를 형성하는 65536쌍의 음악 데이터를 랜덤 액세스 메모리(64)에 저장한다.
모든 참조 미가공 데이터가 랜덤 액세스 메모리(64)에 저장되면, 중앙 처리 장치(62)는 그 참조 미가공 데이터로부터 참조 상관 데이터들을 생성할 것을 디지털 신호 처리기(63)에 요청한다. 디지털 신호 처리기(63)는 도 4에 도시된 데이터 처리를 시작하고, 제어기(6)의 그것과 유사하게 참조 상관 데이터들을 생성한다. 이 참조 상관 데이터들은 랜덤 액세스 메모리(64)에 저장되고, 디지털 신호 처리기(63)는 데이터 기입의 완료를 중앙 처리 장치(62)에게 통지한다.
이때, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 및 관련 오디오 타임 데이터 코드를 인터페이스(65a)에 전송할 것을 콤팩트 디스크 드라이버(1B)에 요청한다. 콤팩트 디스크 드라이버(1B)는 픽업을 제1 오디오 데이터 코드 쌍 (R(0), L(0))으로 이동시키고, 이 오디오 음악 데이터 코드 및 관련 오디오 타임 데이터 코드를 인터페이스(65a)에 전송한다. 중앙 처리 장치(62)는 그 오디오 음악 데이 터 코드 및 관련 오디오 타임 데이터 코드를 인터페이스(65a)로부터 페치하고, 그 오디오 음악 데이터 코드를 오디오부(4B)에 전송한다. 오디오 음악 데이터 코드는 라우드 스피커(44)를 통하여 전자 음조로 변환된다. 오디오 타임 데이터 코드는 중앙 처리 장치(62)의 내부 레지스터에 저장되고, 다음 오디오 타임 데이터 코드가 인터페이스(65a)에 도달할 때 재기입된다.
사용자는 키보드(31a)에 손가락을 대고, 제어기(34)는 이벤트 코드를 인터페이스(65a)에 공급한다. 중앙 처리 장치(62)가 이벤트 코드를 페치하면, 중앙 처리 장치(62)는 그 이벤트 코드를 내부 레지스터에 현재 저장된 오디오 타임 데이터 코드에 의해 표현되는 경과 타임을 나타내는 델타 타임 코드와 함께 전송한다. 따라서, 이벤트 코드 및 관련 델타 타임 코드는 랜덤 액세스 메모리에 저장된다.
사용자가 그의 연주를 완료하면, 사용자는 사전 기록을 종료시키도록 제어기(6A)에 지시한다. 중앙 처리 장치(62)는 콤팩트 디스크(CD-A)로부터의 데이터 판독을 중단할 것을 콤팩트 디스크 드라이버(1B)에 요청한다. 중앙 처리 장치(62)는 참조 상관 데이터들(도 15 참조), 기준 델타 타임 코드, 이벤트 코드 및 델타 타임 코드들로부터 표준 MIDI 파일(SMF3)을 형성하고, 그 표준 MIDI 파일(SMF3)을 플로피 디스크(FD)에 저장할 것을 플로피 디스크 드라이버(2B)에 요청한다. 180초를 나타내는 기준 델타 타임 코드는 도시된 바와 같이 시스템 익스클루시브 이벤트 코드에 저장된다.
사용자는 콤팩트 디스크 드라이버/오디오부(1B/4B)을 통하여 콤팩트 디스크(CD-B)에 저장된 악곡의 재생과 앙상블로 연주를 동기적으로 재생하도록 동 시 재생 시스템에 지시한다고 가정된다. 중앙 처리 장치(62)는 표준 MIDI 파일(SMF3)을 플로피 디스크(FD)로부터 인터페이스(65a)로 전송할 것을 플로피 디스크 드라이버(2B)에 요청하고, 기준 델타 타임 코드, 이벤트 코드 및 관련 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다.
중앙 처리 장치(62)는 또한 오디오 데이터 코드를 인터페이스(65a)에 전송할 것을 콤팩트 디스크 드라이버(1B)에 요청한다. 중앙 처리 장치(62)는 오디오 음악 데이터 코드를 오디오부(4B)에 전송하지 않으므로 사용자는 어떠한 전자 음조도 듣지 못한다. 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍 (r(n), l(n))을 랜덤 액세스 메모리(64)에 저장한다. 65536쌍의 오디오 음악 데이터 코드 (r(0), l(0)) 내지 (r(65535), l(65535))가 랜덤 액세스 메모리(64)에 저장되면, 중앙 처리 장치(62)는 참조 상관 데이터들 및 목표 상관 데이터들에 대한 상관 판정을 시작할 것을 디지털 신호 처리기(63)에 요청한다. 중앙 처리 장치(62)는 새로 수신된 오디오 음악 데이터 코드를 랜덤 액세스 메모리에 연속하여 저장하고, 디지털 신호 처리기(63)는 소정 수의 목표 상관 데이터들에 대한 상관 판정을 반복한다.
디지털 신호 처리기(63)가 목표 상관 데이터 세트가 참조 상관 데이터 세트와 고도로 상관되는 것을 확인하면, 디지털 신호 처리기(63)는 목표 상관 데이터 세트가 참조 상관 데이터 세트와 고도로 상관되는 것이 확인된다고 보고한다. 이때, 중앙 처리 장치(62)는 제1 목표 상관 데이터에 관한 오디오 타임 데이터 코드와 기준 델타 타임 코드를 비교하여 콤팩트 디스크(CD-A) 내의 악절과 콤팩트 디스크(CD-B) 내의 대응하는 악절 사이의 타임차가 얼마나 되는지를 확인한다. 타임차 는 1.17초라고 가정된다. 이것이 의미하는 것은, 181.17초로부터 182.66초까지의 목표 상관 데이터들이 참조 상관 데이터들과 비교되었을 때, 단계 S15에서의 응답이 긍정으로 변화되었다는 것이다.
중앙 처리 장치(62)는 타이밍 조정을 위하여 델타 타이밍 코드에 표현된 경과 타임에 1.17초의 타임차를 가산한다. 타이밍 조정의 종료 시에, 중앙 처리 장치(62)는 오디오 데이터 코드, 즉 오디오 음악 데이터 코드 쌍 (r(0), l(0)), ..... 및 관련 오디오 타임 데이터 코드를 콤팩트 디스크(CD-B)로부터 인터페이스(65a)로 전송할 것을 콤팩트 디스크 드라이버(2B)에 요청한다.
콤팩트 디스크 드라이버(1B)가 콤팩트 디스크 드라이버(CD-B)로부터 인터페이스(65a)로 오디오 데이터 코드를 전송하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 (r(0), l(0)), ....를 전자 음조로 변환하기 위하여 상기 오디오 음악 데이터 코드를 오디오부(4B)에 공급하고, 오디오 타임 데이터 코드에 의해 표현된 경과 타임과 델타 타임 코드를 비교하여 관련 이벤트 코드를 자동 연주 피아노(3B)에 전송해야할지 여부를 확인한다. 긍정 응답이 주어지면, 중앙 처리 장치(62)는 관련 이벤트 코드 또는 코드들을 자동 연주 피아노(3B)로 전송하고, 제어기/드라이버(34/36a)는 어쿠스틱 피아노(31)가 어쿠스틱 피아노 음조를 발생시키게 한다. 따라서, 연주는 콤팩트 디스크 드라이버/오디오부(1B/4B)을 통한 재생과 좋은 앙상블로 자동 연주 피아노(3B)를 통하여 재생된다.
도 16은 동시 재생의 방법을 도시한다. 소정의 타임 기간 T1이 만료하면, 콤팩트 디스크(CD-A)에 저장된 오디오 데이터 코드 세트로부터 미가공 데이터가 추 출되고, 참조 상관 데이터들이 기준 델타 타임 코드와 함께 표준 MIDI 파일(SMF)의 일부를 형성하는 시스템 익스클루시브 이벤트 코드에 저장된다. 한편, 콤팩트 디스크(CD-B)에는 목표 미가공 데이터들이 저장되어 있고, 타임 기간 T2는 미지이다. 데이터 처리를 통하여 목표 미가공 데이터들로부터 목표 상관 데이터들이 생성되어, 새로운 목표 상관 데이터들로 순차 교체된다. 새로운 목표 미가공 데이터들이 참작되면서, 목표 상관 데이터 세트들이 상관 판정을 위하여 참조 상관 데이터들과 연속적으로 비교된다. 목표 상관 데이터 세트들이 참조 상관 데이터들과 고도로 상관되는 것으로 확인되면, 타임 기간 T2가 결정된다. 타임차(T1-T2)는 타이밍 조정을 위하여 델타 타임 코드에 의해 표현되는 경과 타임에 가산된다. 만일 그 차이가 양수이면, 델타 타임 코드에 의해 표현되는 경과 타임은 단축된다. 만일 그 차이가 음수이면, 경과 타임은 연장된다. 따라서, 타이밍 조정은 동시 재생의 개시 전에 완료된다.
다른 변형예들
상술한 제1 실시예 및 2개의 변형예에서는, 시스템 구성 요소 1/1A/1B, 2/2A/2B, 4/4A/4B, 5/5A/5B 및 6/6A/6B가 자동 연주 피아노(3/3A/3B)에 수용되어 있다. 그러나, 제3 변형예는 물리적으로 서로 분리된 복수의 구성 요소로 구성된다. 제3 변형예를 구현하는 동시 재생 시스템은 다음과 같은 복수의 구성 요소로 물리적으로 분리될 수 있다.
1. 콤팩트 디스크 드라이버(1/1A/1B),
2. 플로피 디스크 드라이버(2/2A/2B),
3. 자동 연주 피아노(3/3A/3B),
4. 믹서(41)/디지털-아날로그 변환기(42),
5. 증폭기(43),
6. 라우드 스피커(44), 및
7. 조작 패널/표시부 및 제어기(5/5A/5B 및 6/6A/6B).
또한, 제어기(6/6A/6B)는 레코딩부 및 재생부와 물리적으로 분리될 수 있다.
이들 시스템 구성 요소는 오디오 케이블, MIDI 케이블, 오디오 신호용 광섬유, USB(Universal Serial Bus) 케이블 및/또는 동시 재생 시스템용으로 새로 설계된 케이블을 통하여 접속될 수 있다. 시장에서 획득 가능한 표준 플로피 디스크 드라이버, 표준 증폭기 및 표준 라우드 스피커가 본 발명에 따른 동시 재생 시스템에 사용될 수 있다.
분리형 동시 재생 시스템은 사용자들에게 바람직한데, 그 이유는 사용자들은 이미 소유하고 있는 일부 시스템 구성 요소들을 이용하여 그들 자신의 시스템을 구성하기 때문이다.
제4 변형예의 동시 재생 시스템은 콤팩트 디스크 드라이버(1/1A/1B) 및 플로피 디스크 드라이버(2/2A/2B)를 포함하지 않지만, 제어기(6/6A/6B)는 하드 디스크 및 LAN(Local Area Network), WAN 또는 인터넷에 접속 가능한 인터페이스를 구비한다. 이 경우, 오디오 데이터 코드는 인터페이스를 통하여 적당한 데이터 소스로부터 공급되어, 하드 디스크에 저장된다. 마찬가지로, 인터페이스를 통하여 외부 데이터 소스로부터 표준 MIDI 파일이 전송되어, 또한 하드 디스크에 저장된다. 사용 자가 키보드(31a)에 손가락을 대는 동안, 오디오 음악 데이터 코드는 하드 디스크로부터 판독되고, 그것을 전자 음조로 변환하기 위한 오디오부(4/4A/4B)으로 전송된다. 이벤트 코드 및 델타 타임 코드는 트랙 청크에 저장되고, 표준 MIDI 파일은 하드 디스크에 남겨진다.
제1 실시예를 구현하는 동시 재생 시스템에서, 디지털 신호 처리기(63)는 절대 상관 지표에 대한 분석, 상대 상관 지표에 대한 분석 및 상관값에 대한 분석을 통하여 상관 판정을 수행한다. 비록 이들 3종류의 분석은 상관 판정을 정확하게 하지만, 3종류의 판정은 너무 어려울 수 있다. 이 때문에, 제5 변형예는 이들 3종류의 판정 중 하나 또는 둘을 통하여 상관 판정을 수행한다.
제6 변형예는 단지 수학식 4만을 통하여 단계 S15에서 판정을 한다. 구체적으로, 디지털 신호 처리기는 Dn-1과 Dn과의 곱을 계산하고, 그 곱이 0이거나 그보다 작은지 여부를 확인하다. 그 곱이 0이거나 그보다 작으면, 상관값 함수에서의 변화율은 0이거나 또는 0을 가로질러 변화된다. 이것이 의미하는 것은, 상관값이 최대치이거나 또는 최대치 부근이라는 것이다. 이 때문에, 단계 S15에서 긍정 응답이 주어진다. 최소치와 최대치가 서로 근접할 가능성이 거의 없는 경우에, 단순 데이터 처리를 통하여 동일한 응답이 얻어진다.
상기 설명으로부터 알겠지만, 본 발명에 다른 동시 재생 시스템은 콤팩트 디스크들(CD-A 및 CD-B) 간의 차이에 관계없이 오디오 시스템, 즉 콤팩트 디스크 드라이버/오디오부(1/4, 1A/4A 또는 1B/4B)을 통한 재생과 좋은 앙상블로 악기, 즉 어쿠스틱 피아노(31A)에 대한 연주를 재생한다. 다른 말로 하면, 동시 재생에서 사용되는 콤팩트 디스크 CD-B가 사전 기록 단계에서 사용된 콤팩트 디스크 CD-A 와 다르게 편집되었다 할지라도, 사용자는 단일 악곡의 동시 재생에 대해서 단지 하나의 사전 기록 데이터를 요구할 뿐이다. 따라서, 동기 연주 시스템은 동시 재생을 단순화하고 데이터 관리를 수월하게 한다.
제1 실시예와 이것의 변형예에 있어서, 아날로그 오디오 신호의 파형을 나타내는 오디오 음악 데이터 코드는 상관 처리를 하는데에 사용되어 동기 연주 시스템이 한 악곡과 예비 단계에서 사용된 것과 그 레코딩 레벨이 다른 악곡 사이의 상관을 정확히 결정하도록 한다.
최종적으로, 콤팩트 디스크 드라이버가 데이터 판독 출력 속력에 있어서 불안정하더라도, 제1 변형예를 구현하는 동기 연주 시스템은 사전 기록 단계에서 사용된 오디오 데이터의 시리즈와 동시 재생에서 사용된 오디오 데이터의 시리즈 간의 판독 출력 속력의 차이를 제거하고, 그에 따라 콤팩트 디스크 드라이버/오디오부 1A/4A를 통해서 재생할 때 좋은 앙상블을 이루며 그 기능이 발휘되도록 한다.
제2 실시예
도 17을 참조하면, 본 발명을 구현한 또다른 동기 연주 시스템이 크게는 콤팩트 디스크 드라이버(1C), 플로피 디스크 드라이버(2C), 자동 연주 피아노(3C), 오디오부(4C), 조작/패널 표시부(5C), 및 제어기(6C)를 포함한다. 콤팩트 디스크 드라이버(1C), 플로피 디스크 드라이버(2C), 자동 연주 피아노(3C), 오디오부(4C), 및 조작/패널 표시부(5C)는 제1 실시예의 것과 유사하다. 부품은 상세한 설명 없 이 도 1에 도시한 상응하는 부분을 표시하는 참조번호에 의해 표시되었다. 더나아가, 제어기(6C)는 시스템 구성에 있어서 제어기(6)와 유사하며, 컴퓨터 프로그램은 제어기(6)의 것과 다르다. 이런 이유로, 이후에는 중앙 처리 장치(62)와 디지털 신호 처리기(63)에 의해 성취되는 작업에 초점을 맞추어 설명하겠다.
도 18a, 도 18b, 및 도 18c는 노트-온(note-on) 이벤트 코드 EV1C, 노프-오프(note-off) 이벤트 코드 EV2C, 및 시스템 익스클루시브 이벤트 코드 EV3C 용의 데이터 포맷을 보여준다. 노트-온 이벤트 코드 EV1C는 세 개의 데이터 필드 DF1, DF2, 및 DF3를 갖고, 노트-오프 이벤트 코드 EV2C는 또한 세 개의 데이터 필드 DF4, DF5, 및 DF6를 갖고, 시스템 익스클루시브 이벤트 코드 EV3C는 네 개의 데이터 필드 DF7, DF8, DF9, 및 DF10을 갖는다. 이러한 데이터 필드 DF1 내지 DF10은 이벤트 코드 EV1, EV2, 및 EV3의 것들과 동일하기 때문에 간략화를 위해 더이상의 설명은 제공되지 않는다.
도 19에 도시된 것처럼, 표준 MIDI 파일 MFC는 표준 MIDI 파일 MF의 것과 유사한 데이터 구조를 갖는다. 헤더 청크(header chunk) 및 트랙 청크 TC는 표준 MIDI 파일 MF의 것과 유사하고 간략화를 위해 더이상의 설명은 주어지지 않는다.
제2 실시예를 구현하는 동기 연주 시스템은 선택적으로 사전 기록 모드와 동시 재생 모드로 진입한다. 동기 연주 시스템이 사전 기록 모드에서 성능을 레코딩하는 동안 제어기(6C)는 오디오 음악 데이터로부터 저주파수 성분의 크기를 나타내는 중기 지표 및 매우 낮은 저주파수 성분을 나타내는 장기 지표를 추출하고, 시스템 익스클루시브 이벤트 코드에서의 크기의 급격한 변화를 나타내는 관리 정보 부 분을 기억한다. 시스템 익스클루시브 이벤트 코드는, 노트 이벤트 코드, 노트 이벤트 코드를 자동 연주 피아노에게 공급하는 타이밍을 표시하는 델타 타임 코드, 및 관리 정보 부분이 발생하게 되어 있는 타이밍을 표시하는 다른 델타 타임 코드와 함께 플로피 디스크 FD에 기억된다.
콤팩트 디스크 드라이버(1C)가 또다른 콤팩트 디스크 CD-B로부터 제어기(6C)로 오디오 음악 데이터를 전송하는 동안, 제어기(6C)는 오디오 음악 데이터 코드를 전기적 톤을 생성하기 위한 오디오 시스템(4D)으로 전송하고, 크기의 급격한 변화를 나타내는 관리 정보 부분을 생성하기 위해 오디오 음악 데이터 코드로부터 중기 지표 및 장기 지표를 생성한다. 시스템 익스클루시브 이벤트 코드에 기억된 급격 변화가 발생하였을 때, 제어기(6C)는 이미 발생하였거나 소정의 타임 주기 내에 발생한 급격한 변화를 찾아보고, 경과 타임 사이의 비율을 결정한다. 제어기(6C)는 노트 이벤트용의 델타 타임 코드에 의해 표현되는 경과 타임을 상기 비율로 승산하고, 노트 이벤트를 자동 연주 피아노(3C)에게 공급하기 위해 타이밍을 재스케쥴링한다. 이는 자동 연주 피아노(3C)를 통한 연주와 콤팩트 디스크 CD-B에 녹음된 악곡의 재생 사이에서 좋은 앙상블이 귀결되도록 한다.
사전 기록
사용자는 콤팩트 디스크 연주기(1C) 및 오디오부(4C)를 통한 재생과 앙상블을 이루면서 키보드(31a)로 악곡을 연주하고, 키보드(31a)를 사용한 연주는 관리 정보 부분과 함께 플로피 디스크 FD에 레코딩되는데, 이는 이후 자세히 설명된다. 서로간에 구별할 수 있도록 하기 위해, 사전 기록에서 사용되는 콤팩트 디스크 CD 는 앞으로 'CD-A'로 지칭되고, 동시 재생에서 사용되는 콤팩트 디스크 CD는 'CD-B'로 지칭된다. 음악 제목과 연주기가 동일하지만, 콤팩트 디스크CD-B는 콤팩트 디스크 CD-A와 그 판이 다르다. 이 경우에, 콤팩트 디스크 CD-B에 레코딩된 악곡은 콤팩트 디스크 CD-A에 레코딩된 상응하는 악곡과 그 템포가 다르다. 더나아가, 콤팩트 디스크 CD-A 에 레코딩된 악곡에 반향이 인위적으로 부여되지 않았지만, 편집자는 콤팩트 디스크 CD-B 에 레코딩된 악곡의 톤에 인위적으로 반향을 부여하였다. 이런 이유로, 콤팩트 디스크 CD-B에 기억된 오디오 음악 데이터 코드로부터 재생되는 오디오 신호는 콤팩트 디스크 CD-A에 기억된 오디오 음악 데이터 코드로부터 재생되는 오디오 신호와 비교할 때, 그 파형 및 동적 범위가 약간 다르다.
사용자는 콤팩트 디스크 CD-A를 콤팩트 디스크 드라이버(1C) 내로 장착하고, 플로피 디스크 FD를 플로피 디스크 드라이버(2C) 내로 장착한다. 사용자는 조작 패널/표시부(5C) 상의 키를 눌러서 중앙 처리 장치(62)가 사용자의 지시를 인식하여 사전 기록을 개시하도록 한다. 그러면, 중앙 처리 장치(62)는 재생 요구를 나타내는 제어 신호를 인터페이스(65a)를 통해서 콤팩트 디스크 드라이버(1C)로 공급한다.
콤팩트 디스크 드라이버(1C)는 콤팩트 디스크 CD-A를 구동하여 회전시키고, 콤팩트 디스크 CD-A로부터의 오디오 음악 데이터 코드를 인터페이스(65a)로 전송한다. 한 쌍의 오디오 음악 데이터 코드가 매 1/44100 초의 간격마다 우 채널 및 좌 채널용의 인터페이스(65a)에 전송된다. 오디오 음악 데이터 코드 세트는 (R(n), L(n))으로 표현되고, 오디오 음악 데이터 코드의 값 R(n)/L(n) 이 이후에는 '샘플 된 값'으로 지칭된다. 샘플된 값은 정수이며, 모든 샘플된 값은 -32768 에서 +32767까지의 범위 내에 존재한다. 'n'은 트랙 에서의 오디오 음악 데이터 코드의 장소를 나타내고, 제로에서 1 씩 증분되는데, 즉, 0,1,2, 식으로 증가한다. 예를 들어, 제1 쌍의 오디오 음악 데이터 코드는 (R(0),L(0))로 표현되고, 다음의 것은 (R(1),L(1))으로 표현된다. 따라서, 이 장소는 재생 동안에 1 씩 증분된다.
오디오 음악 데이터 코드의 쌍 (R(n),L(n))이 인터페이스(65a)에 도달했을 때, 중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드의 쌍인 (R(n), L(n))를 페치한다. 중앙 처리 장치(62)는 내부 클럭을 개시하고, 내부 클럭은 경과 타임을 증분한다. 더나아가, 중앙 처리 장치(62)는 계속적으로 오디오 음악 데이터 코드 (R(n),L(n))를 오디오부(4C)에 공급하고, 오디오 음악 데이터 코드 (R(n),L(n))은 라우드 스피커(44)를 통해서 전기 톤으로 변환된다. 오디오 음악 데이터 코드의 쌍 (R(n),L(n))은 초기에는 묵음을 나타내지만, 오디오 음악 데이터 코드의 쌍 (R(n),L(n))은 곧 샘플된 값을 동적으로 변화시키고, 전기 톤은 악곡을 따라서 생성된다.
중앙 처리 장치(62)는 추가로 오디오 음악 데이터 코드의 쌍 (R(n),L(n))을 랜덤 액세스 메모리(64)로 전송하도록 동작하고, 랜덤 액세스 메모리(64)의 소정의 메모리 영역에 샘플된 값을 기억시킨다. 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 이미 전송된 오디오 음악 데이터 코드의 쌍 (R(n),L(n))의 수를 계수하고, 소정 수에 도달했을 때에 랜덤 액세스 메모리로의 데이터 전송을 중단시킨다. 소정 수는 앞으로 설명할 필터링 특성에 좌우된다. 여기서, 소정 수는 1 분에 해 당하는 44100로 가정된다. 오디오 음악 데이터 코드의 쌍들의 소정 수는 (R(0), L(0))에서부터 (R(44099), L(44099))까지로 레이블되고, '참조 미가공 데이터(reference raw material)'로 지칭된다.
오디오 음악 데이터 코드의 쌍들이 소정 수에 도달했을 때에 중앙처리 장치(62)는 디지털 신호 처리기(63)가 관리 정보 부분을 생성하도록 요구한다. 디지털 신호 처리기(63)는 서로 다른 주파수에서 로우 패스 필터링을 두번 수행하고, 제1 로우 패스 필터링을 통해 획득된 저주파수 성분을 특성 이벤트를 결정하기 위한 제2 로우 패스 필터링을 통해 획득된 저주파수 성분과 비교한다. 특성 이벤트는 타이밍 정보 부분을 생성하기 위해 사용되는 한 종류의 플래그이다. 제2 로우 패스 필터링에서의 컷-오프(cut-off) 주파수는 제1 로우 패스 필터링에서의 컷-오프 주파수보다 낮다.
도 20은 관리 정보 부분을 생성하기 위한 방법을 도시하였다. 본 방법은 디지털 신호 처리기(63)에 의해 실행되는 컴퓨터 프로그램으로서 표현된다.
디지털 신호 처리기(63)가 관리 정보를 생성하기 위한 요구를 수신하였을 때, 디지털 신호 처리기(63)는 단계(S0)에서 컴퓨터 프로그램을 시작한다. 디지털 신호 처리기(63)는 단계(S1)에서와 같이 랜덤 액세스 메모리로부터 상기 메모리의 내부 레지스터에 기억하고 있는 오디오 음악 데이터 코드의 쌍들인 (R(0), L(0))부터 (R(44099), L(44099))까지를 판독해 낸다. 참조 미가공 데이터를 형성하는, 소정 수의 오디오 음악 데이터 코드의 쌍들의 한 세트는 이후에 최종 쌍의 오디오 음악 데이터 코드에 의해 이후 표현된다. 예를 들어, 오디오 음악 데이터 코드의 쌍 들의 세트인 (R(0), L(0)) 에서 (R(44099),L(44099)) 까지는 '참조 미가공 데이터(44099)'로서 표현된다.
다음으로, 수치적 수단은 단계(S2)에 의해서 각각의 쌍의 오디오 음악 데이터 코드의 샘플된 값으로부터 계산된다. 이 수치적 연산은 스테레오 사운드에서 모노 사운드로의 변환과 동등한 것이다. 이 수치적 수단은 디지털 신호 처리기(63)에 대한 부하를 줄여 준다.
다음으로, 디지털 신호 처리기(63)는 단계 (S3)에 의해 수치적 수단의 절대값을 결정한다. 전력의 대체값은 절대값화를 통해서 획득된다. 절대값은 전력을 나타내는 제곱수보다 작고, 이후의 데이터 처리에서 다루기가 쉽다. 그렇지만, 디지털 신호 처리기(63)가 아주 큰 데이터 처리 능력을 보유하고 있다면, 디지털 신호 처리기(63)는 절대값 대신에 계산된 값의 제곱값을 계산해도 된다.
다음으로, 디지털 신호 처리기(63)는 단계 (S4)에 의해 절대값에 대한 로우 패스 필터링과 동등한 데이터 처리를 수행한다. 컷-오프 주파수는 이 경우에 100Hz 인 것으로 가정된다. 로우 패스 필터링과 동등한 데이터 처리를 종료하였을 때에 중기 지표가 오디오 음악 데이터 코드의 쌍들에 대해서 획득된다. 오디오 음악 데이터 코드의 쌍 (R(n), L(n))에 대한 중기 지표는 '중기 지표(n)'으로 표현된다. 중기 지표(n)는 중기의 오디오 파형의 변동의 경향을 나타낸다. 일반적으로, 오디오 파형은 단기로 자주 변한다. 단기에서의 변동은 로우 패스 필터링과 동등한 데이터 처리를 통해서 샘플된 값의 시리즈로부터 제거되는데, 이는 단기의 변동이 이전의 샘플된 값들에 의해서 제한되기 때문이다. 그 결과, 중기 변동과 장기 변동을 나타내는 데이터 정보가 디지털 신호 처리기(63) 내에 남겨진다. 다른 말로 하면, 중기 지표...(n-2), (n-1), 및 (n) 들이 디지털 신호 처리기에 남겨진다. 디지털 신호 처리기(64)는 중기 지표를 랜덤 액세스 메모리(64)로 전송하고, 중기 지표는 단계 (S5)에 의해 랜덤 액세스 메모리(64)에 기억된다.
다음으로, 디지털 신호 처리기(63)는 단계(S6)에 의해 빗형 필터(comb filter)를 통해서 로우 패스 필터링과 동등한 데이터 처리를 수행한다. 단계 S6에서의 컷-오프 주파수는 단계 (S4)에서의 컷-오프 주파수보다 낮다. 이는 중기 지표에 의해 표현되는 파형으로부터 저주파수 성분을 추출하는 것과 동등하다. 빗 라인 필터는 디지털 신호 처리기(63)에 대해 바람직한데, 이는 빗 라인 필터에 동등한 데이터 처리는 로우 패스 필터에 동등한 데이터 처리보다 부하가 작기 때문이다.
도 21은 빗형 필터와 동등한 디지털 처리를 보여준다. 박스와 원들은 직렬로 연결된 두개의 루프를 형성하고, 제2 루프와 데이터 출력 포트 사이에 트라이앵글이 접속된다. 박스는 신호 전파에 있어서 지연을 도입하고, 'Z-k'는 지연 타임이 샘플링 주기와 상수 k의 곱과 동등하다는 것을 나타낸다. 앞으로 설명한 대로, 샘플링 주파수는 44100Hz이다. 이는 샘플링 주기가 1/44100 인 것을 나타낸다. 트라이앵글은 승산을 나타내고, '1/K'는 승산 계수이다. 다음의 설명에서, 'k'는 22050 인 것으로 가정된다. 1Hz 보다 높은 주파수 성분은 빗 라인 필터와 동등한 데이터 처리를 통해서 중기 지표로부터 거의 제거된다. 따라서, 장기 변동을 나타 내는 성분은 데이터 처리가 단계 S36에서 종료되었을 때에 디지털 신호 처리기(63)에 남겨진다.
다음으로, 디지털 신호 처리기(63)는 장기 변동을 나타내는 성분의 시리즈를 양의 상수 'h'로 승산한다. 다음 단계 S9에서의 긍정 응답을 획득하였을 때의 주파수는 단계 S8에서의 승산을 통해서 적합한 값으로 조정된다. 만약 'h'가 작다면, 긍정 응답과 다음 긍정 응답 사이의 타임 간격은 좁다. 긍정 응답들의 타임 간격이 너무 넓은 경우에 특성적 이벤트가 단계(S11)에서 긴 타임 간격으로 생성되고, 타이밍 조정의 정확도는 떨어진다. 반면에, 긍정 응답의 타임 간격이 좁다면, 긍정 응답들은 단계(S10)에서 취소되는 경향이 있으며, 특성적 이벤트가 긴 타임 간격으로 획득된다. 이는 타이밍 조정의 정확도가 떨어지는 결과를 낳는다. 이런 상황에서, 승산 계수 'h'는 실험적으로 결정된다. 단계(S7)에서의 승산의 종료후에 장기 지표가 디지털 신호 처리기(63)에 남겨진다. (R(n),L(n))에 상응하는 장기 지표는 이후에 '장기 지표(n)'로 지칭된다. 따라서, 장기 지표...(n-2),(n-1),및 n이 단계 (S7)에서의 데이터 처리의 종료시에 디지털 신호 처리기(63)에 남겨진다. 디지털 신호 처리기(63)는 장기 지표를 랜덤 액세스 메모리(64)로 전송하고, 장기 지표는 단계(S8)에 의해 랜덤 액세스 메모리의 소정 메모리 영역에 기억된다.
다음으로, 디지털 신호 처리기는 단계(S9)에 의해 그들 사이의 비교를 위해 랜덤 액세스 메모리(64)로부터 중기 지표(n) 및 장기 지표(n)를 판독해낸다. 먼저, 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)로부터 최종 중기 지표(44099) 및 최종 장기 지표(44099)를 판독해 내고, 이들을 서로 비교하여 중기 지표(44099)가 장기 지표(44099)와 동일한지 또는 그보다 더 큰지의 여부를 알아본다. 단계(S9)에서의 긍정 응답은 (R(n), L(n))의 샘플링 포인트에 상응하는 지점에서의 참조 미가공 데이터에 의해 표현되는 오디오 파형 상의 중기의 변동이 크다는 것을 나타낸다. 더 자세하게는, 1Hz 에서부터 100Hz 까지의 주파수 범위의 볼륨이 오디오 파형 상에서 갑자기 확대되었을 때에, 중기 지표는 장기 지표보다 더 크게 되고, 단계(S9)에서의 응답은 확정적인 '예'로 주어진다. 그러면, 디지털 신호 처리기(63)는 그 비교가 긍정 응답으로 귀결된 현재 시각에서의 내부 클럭을 체크하고, 랜덤 액세스 메모리 내에 현재 시각을 기억시킨다.
계속해서, 디지털 신호 처리기(63)는, 랜덤 액세스 메모리(64)로부터 이전의 긍정 응답이 얻어졌던 타임을 판독하고, 현재의 타임에서 판독된 타임을 감산하여 그 차가 단계 S10에서와 같이 사전설정된 값 τ미만인지 여부를 알아본다. 그 차가 사전설정된 값 τ보다 클 경우, 이전의 특성 이벤트의 생성으로부터 긴 타임이 흐른 것이다. 따라서, 단계 S10에서의 데이터 처리는 단기간에 생성된 많은 특성 이벤트로부터 중앙 처리 장치(62)를 보호한다. 특성 이벤트가 너무 많을 경우, 콤팩트 디스크 CD-A에 저장된 오디오 음악 데이터 코드 쌍 (R(n), L(n))으로부터 생성된 특성 이벤트들에 정확하게 대응하는 콤팩트 디스크 CD-B로부터 판독된 오디오 음악 데이터 코드 쌍 (r(n), l(n))의 특성 이벤트들을 만들기는 어렵다. 사전설정된 값 τ는 실험을 통해 결정된 것이다. 물론, 디지털 신호 처리기(63)가 제1 긍정 응답을 얻으면, 랜덤 액세스 메모리(64)에는 이전 타임이 존재하지 않는다. 이 상황에서, 단계 S10에서의 응답은 자동적으로 부정으로 주어진다.
부정 응답에 따라, 디지털 신호 처리기(63)는 단계 S11에서와 같이 특성 이벤트를 생성하여 그 특성 이벤트를 중앙 처리 장치(62)에 전송한다.
단계 S9에서의 응답이 부정으로 주어질 경우, 디지털 신호 처리기는 단계 S12로 진행한다. 단계 S10에서의 응답이 긍정으로 주어지는 경우, 디지털 신호 처리기(63)는 또한 단계 S12로 진행한다. 디지털 신호 처리기(63)는 단계 S11에서의 처리가 완료되면 단계 S12로 진행한다. 디지털 신호 처리기(63)는 다음 오디오 음악 데이터 코드 쌍(R(n+1), L(N+1))을 기다린다. 다음 오디오 음악 데이터 코드 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍(R(n+1), L(n+1))을 오디오부(4C)에 전송하여 이를 랜덤 액세스 메모리(64)에 저장한다. 중앙 처리 장치(62)는 디지털 신호 처리기(63)에 데이터 처리를 다시 반복할 것을 요청한다. 그 후, 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)로부터 참조 미가공 데이터(44100), 즉 (R(1), L(1))에서 (R(44100), L(44100))을 페치하고 단계 S1로 돌아간다.
따라서, 디지털 신호 처리기는, 사용자가 키보드(31a)상에서의 핑거링(fingering)을 종료할 때까찌 단계 S1 내지 S12로 구성된 루프를 반복한다. 따라서, 디지털 신호 처리기(63)는 음악을 나타내는 오디오 음악 데이터 코드 쌍 세트로부터 복수의 특성 이벤트를 추출한다.
본 발명의 발명자는 도 20에 도시된 데이터 처리를 확인하였다. 단계 S4에서 저역 통과 필터로서 IIR(Infinite Impulse Response) 필터가 사용되었다. 단계 S7에서 상수 "h"는 4 이었으며, 타임 주기 τ는 0.55초였다. 플롯(plot) PL16 및 PL17로부터의 데이터 처리 및 특성 이벤트는 도 22에 도시되어 있다. 플롯 PL16은 중기의 지표를 나타내며 플롯 PL17은 장기의 지표를 나타낸다. 중기의 지표 PL16은 장기의 지표 PL17과 동일하게 되거나 초과하게 되었으며, 디지털 신호 처리기(63)는 특성 이벤트를 생성하였다. 큰 원에서 나타낸 바와 같이 A, B 및 C에서 중기의 지표 트라이스가 장기의 지표를 초과하더라도, 디지털 처리기(63)는 A에서만 특성 이벤트를 생성하였는데, 그 이유는 0.55초의 사전설정된 타임이 포인트 B 및 C까지 종료되지 않았기 때문이다(도 20의 단계 S11 참조).
콤팩트 디스크 드라이버(1C)가 제어기(6C)를 통해 오디오 음악 데이터 코드를 오디오부(4C)에 전송하기 시작하면, 사용자는 그 음악을 실행시키려고 한다. 오디오부(4C)을 통해 전기 톤이 생성되는 동안, 사용자는 흑/백 키를 선택적으로 누르거나 떼며 페달(31e)을 밟는다. 어쿠스틱(acoustic) 피아노 톤은 스트링(31d)의 진동을 통해 생성되며, 키 센서(32) 및 페달 센서(33)는 키 움직임 및 페달 움직임을 제어기(34)에 보고한다. 제어기(34)는 노트-온(note-on) 및 노트-오프(note-off) 이벤트를 나타내는 이벤트 코드들을 생성하며 어쿠스틱 피아노 톤에 전달되도록 하며 이벤트 코드들을 인터페이스(65a)에 공급한다. 이에 따라, 중앙 처리 장치(62)는 디지털 신호 처리기(63)로부터의 특성 이벤트 코드 뿐만 아니라 자동 연주 피아노(3C)로부터의 이벤트 코드도 수신한다.
도 23은 앙상블 동안 생성되는 특성 이벤트 및 노트 이벤트를 도시한 도면이다. 중기 지표 및 장기 지표는 각각 플롯 PL16 및 PL17에 의해 표시되는 바와 같이 변하며, 횡좌표축을 따라 타임은 오른쪽으로 이동한다. 제1 특성 이벤트는 제1 오디오 음악 데이터 코드 쌍의 도착으로부터 0.13초 후에 발생했으며, 다른 특성 이벤트는 0.81초, 1.45초,...순으로 발생하였다. 반면에, 중앙 처리 장치(62)는 제1 이벤트 코드를 0.49초에 수신하였으며, 다른 이벤트 코드들은 중앙 처리 장치(62)에 의해 1.23초, 2.18초,..순으로 페치된다. 따라서, 특성 이벤트 코드 및 노트 이벤트 코드는 앙상블 동안 실타임 형태로 생성되었다.
중앙 처리 장치(62)가 특성 이벤트 코드를 페치하면, 중앙 처리 장치(62)는, 내부에 특성 이벤트를 저장하는 시스템 익스클루시브 이벤트 코드를 생성하며, 특성 이벤트가 언제 거기에 도달하는지를 알기 위해 내부 클럭을 체크한다. 중앙 처리 장치(62)는 도착 타임을 나타내는 델타 타임 코드를 생성하며, 랜덤 액세스 메모리(64)에 델타 타임 코드 및 특성 이벤트 코드를 저장한다.
마찬가지로, 중앙 처리 장치(62)가 노트 이벤트 코드를 페치하면, 중앙 처리 장치(62)는 노트 이벤트 코드가 언제 거기에 도달하는지 알기 위해 내부 클럭을 체크한다. 중앙 처리 장치(62)는 도착 타임을 나타내는 델타 타임 코드를 생성하고 델타 타임 코드 및 노트 이벤트 코드를 랜덤 액세스 메모리(64)에 저장한다.
사용자가 키보드(31a) 상에서의 연주를 완료하면, 사용자는 이에 따라 사전 기록을 종료할 것을 제어기(6C)에 지시한다. 제어기(6C)는 사용자의 지시에 응답하여, 중앙 처리 장치(62)가 사전 기록의 완료를 콤팩트 디스크 드라이버(1C)에 알려준다. 그 후, 콤팩트 디스크 드라이버(1C)는 콤팩트 디스크 CD-A 로부터 인터페이스(65a)로의 데이터 전송을 중지한다.
계속해서, 중앙 처리 장치(62)는 시스템 익스클루시브 이벤트 코드, 관련 델 타 타임 코드, 노트 이벤트 코드 및 관련 델타 타임 코드로부터 트랙 청크를 구성하며, 헤더 청크를 트랙 청크에 더한다. 이에 따라, 시스템 익스클루시브 이벤트 코드는 도 24에 도시된 바와 같이 트랙 청크 내의 노트 이벤트 코드와 혼합된다. 표준 MIDI 파일이 완료되면, 중앙 처리 장치(62)는 표준 MIDI 파일을 플로피 디스크 드라이버(2C)에 공급하며, 플로피 디스크 FD 내에 표준 MIDI 파일을 저장할 것을 플로피 디스크 드라이버(2C)에 요구한다.
동시 재생
사용자는 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생과 함께 키보드(31a) 상의 연주를 재생하기를 원한다. 사용자는 콤팩트 디스크 CD-B를 콤팩트 디스크 CD-B에, 플로피 디스크 FD를 플로피 디스크 드라이버(2C)에 로드한다. 전술한 바와 같이, 콤팩트 디스크 CD-B 내에 레코딩된 음악은 콤팩트 디스크 CD-A 에 레코딩된 대응 음악과 템포, 반향음, 및 동적 범위가 서로 다르다.
사용자는 패널/표시부(5C)의 조작에 의해 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생과 함께 플로피 디스크 FD에 레코딩된 연주를 재생할 것을 제어기(6C)에 지시하도록 간주된다. 제어기(6C)가 사용자의 지시를 인식하면, 중앙 처리 장치(62)는 표준 MIDI 파일을 플로피 디스크 FD로부터 인터페이스(65a)로 전송할 것을 플로피 디스크 드라이버(2C)에 요구한다. 그 후, 플로피 디스크 드라이버 FD는 플로피 디스크 FD로부터 표준 MIDI 파일을 판독하여 표준 MIDI 파일을 인터페이스(65a)에 전송한다. 중앙 처리 장치(62)는 표준 MIDI 파일을 랜덤 액세스 메모리(64)에 저장한다.
중앙 처리 장치(62)는 오디오 음악 데이터 코드(r(n)), l(n))을 인터페이스(65a)에 연속적으로 전송할 것을 콤팩트 디스크 드라이버(1C)에 요구한다. 오디오 음악 데이터 코드 쌍(r(n), l(n))은 1/44100초의 규칙적인 간격으로 인퍼페이스(65a)에 도달한다.
제1 오디오 음악 데이터 코드 쌍이 중앙 처리 장치(62)에 의해 페치되면, 중앙 처리 장치(62)는 제1 오디오 음악 데이터 코드 쌍(r(0), l(0))의 도착 경과 타임을 측정하기 위해 내부 클럭을 개시시킨다. 경과 타임은 "타임 T"로 표현된다. 중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드 쌍(r(n), l(n))을 연속적으로 페치하여, 오디오 음악 데이터 코드 쌍(r(n), l(n))을 오디오부(4C)으로 전송하여 오디오 음악 데이터 코드 쌍이 라우드 스피커(44)를 통해 전기 톤으로 변환된다. 중앙 처리 장치(62)는 또한 오디오 음악 데이터 코드 쌍(r(n), l(n))을 랜덤 액세스 메모리(64)에 전송하여 이들을 랜덤 액세스 메모리(64)에 저장한다.
사전설정된 수의 오디오 음악 데이터 코드 쌍이 랜덤 액세스 메모리(64)에 축적되면, 중앙 처리 장치(2)는 도 20에 도시된 데이터 처리를 수행할 것을 디지털 신호 처리기(63)에 요구한다. 단계 S1 내지 S11로 구성되는 루프를 따라 데이터 처리를 완료하면, 디지털 신호 처리기(63)는 오래된 오디오 음악 데이터 코드 쌍 대신에 새로운 오디오 음악 데이터 코드 쌍(r(n+1), l(n+1))을 도입함으로써 참조 미가공 데이터(n)를 재구성한다. 이에 따라, 디지털 신호 처리기(63)는 루프를 따라 데이터 처리를 반복하며 단계 S10에서의 응답이 부정으로 주어지면 특성 이벤트 코드를 생성한다. 각 특성 이벤트 코드가 생성되면, 디지털 신호 처리기(63)는 특성 이벤트 코드를 중앙 처리 장치(62)에 공급한다.
내부 클럭을 개시시키면, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 이미 전송된 표준 MIDI 파일을 액세스하며, 표준 MIDI 파일로부터 제1 델타 타임 코드를 페치한다. 중앙 처리 장치(62)는 제1 델타 타임 코드에 의해 표현된 경과 타임과 경과 타임 T를 비교하여 경과 타임 T가 제1 델타 타임 코드에 의해 표현된 경과 타임과 동일한지 여부를 알아본다. 중앙 처리 장치(62)가 경과 타임이 동일한 것을 발견하면, 중앙 처리 장치(62)는 관련 이벤트 코드를 체크하여 노트 이벤트 또는 시스템 익스클루시브 이벤트가 델타 타임 코드에 의해 표현되는 타임에 발생할지를 알아본다.
제1 델타 타임 코드가 노트 이벤트가 발생되는 타임의 경과를 나타낼 경우, 중앙 처리 장치(62)는 노트 이벤트 코드를 자동 연주 피아노(3C)에 공급하여 스트링(31d)의 진동 또는 라우드 스피커(44)를 통해 어쿠스틱 피아노 톤 또는 전자 톤이 생성된다. 자동 연주 피아노(3C)로의 데이터 전송이 완료되면, 중앙 처리 장치(62)는 다음 델타 타임 코드를 페치하며 관련 이벤트 코드에 대한 다음 작업을 실행하기 위한 타이밍에 대해 경과 타임 T와 델타 타임 코드에 의해 표현되는 경과 타임을 주기적으로 비교한다. 이에 따라, 노트 이벤트 코드는 자동 연주 피아노(3C)에 간헐적으로 공급되어 플로피 디스크 FD 내에 레코딩된 연주가 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생과 함께 재생된다.
반면에, 관련 코드가 시스템 익스클루시브 이벤트일 경우, 중앙 처리 장치(62)는 이하에 기술하는 타이밍 조정을 수행하여서 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생과 함께 좋은 앙상블을 이루어 자동 연주 피아노(3C) 연주가 수행된다.
전술한 바와 같이, 음악은, 콤팩트 디스크 CD-A에 레코딩된 음악의 템포와 다소 다른 템포로 콤팩트 디스크 CD-B에 레코딩되었다. 중앙 처리 장치(62)가 임의의 타이밍 조정없이 노트 이벤트 코드를 자동 연주 피아노(3C)에 전송할 경우, 자동 연주 피아노(3C)를 통한 연주의 진행과, 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생의 진행 사이에 타임 랙(lag)이 발생한다.
도 25는 타이밍 조정을 나타낸 도면이다. 콤팩트 디스크 드라이버(1C)가 오디오 음악 데이터 코드 쌍(R(n), L(n))을 콤팩트 디스크 CD-A로부터 인터페이스(65a)에 연속적으로 전송하는 동안, 디지털 신호 처리기(63)는 중기 지표 PL16 및 장기 지표 PL17에 기초하여 특성 이벤트 코드를 생성하며, 자동 연주 피아노(3C)는 노트 이벤트 코드를 중앙 처리 장치(62)에 공급한다. 0.13초, 0.81초,...에서의 특성 이벤트들은 시스템 익스클루시브 이벤트 코드에 저장되며, 시스템 익스클루시브 이벤트 코드는 0.49초, 1.23초,...에서의 노트 이벤트 코드와 함께 표준 MIDI 파일에 저장된다.
표준 MIDI 파일이 동시 재생 모드에서 플로피 디스크 FD로부터 랜덤 액세스 메모리(64)에 전송되면, 특성 이벤트 코드 및 노트 이벤트 코드가 0.13초, 0.81초,..를 나타내는 델타 타임 코드와, 0.49초, 1.23초,.. 를 나타내는 델타 타임 코드 각각과 동반된다. 랜덤 액세스 메모리(64)에 저장된 특성 이벤트 코드는 이하 "특성 이벤트 코드 A"라 칭하고, 그 특성 이벤트는 "특성 이벤트 A"라 칭한다.
콤팩트 디스크 CD-B에 레코딩된 음악의 템포는 콤팩트 디스크 CD-A에 레코딩된 음악의 템포보다 빠르다. 콤팩트 디스크 드라이버(1C)가 오디오 음악 데이터 코드 쌍(r(n), l(n))을 인터페이스(65a)에 전송하는 동안, 디지털 신호 처리기(63)는 중기 지표 PL16' 및 장기 지표 PL17'에 기초하여 0.10초, 0.75초, 1.36초,...에서 특성 이벤트를 생성한다. 동시 재생 모드에서 생성된 특성 이벤트 코드는 이하 "특성 이벤트 코드 B"라 칭하고, 그 특성 이벤트는 "특성 이벤트 B"라 칭한다.
중앙 처리 장치(62)가 델타 타임 코드에 의해 표현된 타임의 경과와 경과 타임 T를 간단히 비교하면, 자동 연주 피아노(3C)를 통해 재생되는 음악의 진행은 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통해 재생되는 음악의 진행보다 지연된다. 자동 연주 피아노(3C)를 통한 재생과 콤팩트 디스크 드라이버/오디오부(1C/4C)을 통한 재생을 동기시키기 위해, 델타 타임 코드에 의해 표현되는 타임의 경과는 이하와 같이 좋은 앙상블에 적절한 다른 경과 타임으로 변경된다.
중앙 처리 장치(62)가 디지털 신호 처리기(63)로부터 각 특성 이벤트 코드 B를 수신하면, 중앙 처리 장치(62)는 도착 타임에 대한 내부 클럭을 체크하고 도착 타임을 나타내는 타임 데이터 코드를 랜덤 액세스 메모리(64)에 저장한다. 타임 데이터 코드는 도시된 바와 같이 0.10초, 0.75초, 1.36초,...를 나타낸다.
중앙 처리 장치(62)가 델타 타임 코드를 수신하면, 중앙 처리 장치는 전술한 바와 같은 델타 타임 코드에 의해 표현되는 타임과 동일한 타임 T 동안 대기한다. 노트 이벤트 코드가 델타 타임 코드와 동반될 경우, 중앙 처리 장치(62)는 노트 이벤트 코드를 자동 연주 피아노(3C)에 공급한다. 그러나, 특성 이벤트 A가 델타 타임 코드와 동반될 경우, 중앙 처리 장치(62)는, 디지털 신호 처리기(62)가 동반된 델타 타임 코드에 의해 표현된 타임 전과 후의 사전설정된 타임 기간 동안 특성 이벤트 B를 생성하였는지 혹은 생성할 것인지 여부를 알아보기 위해 랜덤 액세스 메모리(64)를 체크한다. 이 경우, 사전설정된 타임 기간은 0.2초로 간주된다. 이 때문에, 중앙 처리 장치(62)는, 특성 이벤트 B가 0.2초 내에 생성되었는지 여부를 알기 위해 랜덤 액세스 메모리(64)를 체크하고, 디지털 신호 처리기(63)가 0.2초 내에 특성 이벤트 코드 B를 생성할지 여부를 알기 위해 디지털 신호 처리기(63)에 할당된 데이터 포트를 모니터링한다. 중앙 처리 장치(62)가 사전설정된 타임 기간, 즉 ±0.2초 내에 특성 이벤트 코드 B를 발견하면, 중앙 처리 장치(62)는, 특성 이벤트 코드 B가 특성 이벤트 코드 A에 대응하는 것으로 간주한다. 즉, 특성 이벤트 A가 발생된 음악의 일부는 특성 이벤트 B가 발생한 음악의 일부와 대응된다. 그 후, 중앙 처리 장치(62)는 도착 타임을, 특성 이벤트 A 내의 관련된 델타 타임 코드에 의해 표현된 타임으로 나눈다(즉, 특성 이벤트 B의 도착 타임 / 특성 이벤트 A에 대한 델타 타임 코드에 의해 표현된 타임). 계속해서, 중앙 처리 장치(62)는 실행되지 않은 델타 타임 코드에 의해 표현된 경과 타임과 지수(quotient)를 곱하여 노트 이벤트 코드를 공급하기 위한 타이밍이 재스케쥴링되게 한다. 그 곱은, 조정된 노트 이벤트가 자동 연주 피아노(3C)에 공급될 시가의 경과를 나타낸다. 현재 타임 T가 타임으로 표현된 곱을 따라 잡으면, 중앙 처리 장치(62)는 관련 조정된 노트 이벤트 코드를 자동 연주 피아노(3C)에 공급한다. 전술한 타이밍 조정은, 마지막 노트 이벤트 코드가 자동 연주 피아노(3C)에 공급될 때까지 반복된다.
이에 따라, 0.49초, 1.23초,..에서의 노트 이벤트는 0.41초, 1.14초,..에서의 조정된 노트 이벤트로 변경되며, 플로피 디스크 FD에 레코딩된 연주는 콤팩트 디스크 CD-B에 레코딩된 음악의 재생과 좋은 앙상블을 이루어 자동 연주 피아노(3C)를 통해 재생된다.
도 26은 타이밍 조정의 시퀀스를 나타낸 도면이다. 우선, 중앙 처리 장치(62)는 0.13초에서 제1 델타 타임 코드를 따라잡기 위해 내부 클럭을 알아본다. 중앙 처리 장치(62)는, 임의의 특성 이벤트 B가 0.2초 내에 디지털 신호 처리기(63)로부터 수신되었는지 여부를 알아보기 위해 랜덤 액세스 메모리(64)를 체크한다. 중앙 처리 장치(62)는 특성 이벤트 B가 0.11초에 수신될지를 알아보고 0.11초에서 특성 이벤트 B가 0.13초에서 특성 이벤트에 대응하는 것으로 간주한다. 그 후, 중앙 처리 장치(62)는 0.11을 0.13으로 나누고 델타 타임 코드에 의해 표현되는 경과 타임을 지수(0.11/0.13)와 곱한다. 이것이 제1 타이밍 조정이며, 경과 타임은 0.13초, 0.49초, 0.81초,..에서 0.11초, 0.41초, 0.69초,..으로 변경된다. 이에 따라, 내부 클럭은 0.41초에서 다음 델타 타임 코드를 잡아내며, 중앙 처리 장치(62)는 관련 노트 이벤트를 자동 연주 피아노(3C)에 공급한다.
내부 클럭은 0.69초에서 다음 델타 타임 코드를 잡아내며 중앙 처리 장치(62)는, 임의의 특성 이벤트 B가 0.2초 내에 수신되었는지 여부를 알기 위해 랜덤 액세스 메모리(64)를 체크한다. 그러나, 그 응답은 부정으로 주어진다. 그 후, 중앙 처리 장치(2)는 0.2초를 기다리며, 0.75초에 디지털 신호 처리기(63)로부터 다음 특성 이벤트 B를 수신한다. 제2 특성 이벤트 A와 관련된 델타 타임 코드에 의해 표현된 타임 후의 도착 타임은 0.06초이다. 그 후, 중앙 처리 장치(62)는, 0.75초에서의 특성 이벤트 B가 특성 이벤트 A에 대응하는 것으로 간주한다. 그 후, 중앙 처리 장치는 0.75를 0.69로 나누며 델타 타임 코드에 의해 표현된 경과 타임에 지수(0.75/0.69)를 곱한다. 이 결과, 제2 타이밍 조정을 통해 경과 타임은 0.69초, 1.04초, 1.23초, 1.84초,...에서 0.75초, 1.14초, 1.34초, 2.02초,...으로 변경된다. 내부 클럭이 1.14초에 도달하면, 중앙 처리 장치(62)는 제2 노트 이벤트를 자동 연주 피아노(3C)에 공급한다.
이에 따라, 내부 클럭이 특성 이벤트 A와 관련된 델타 타임 코드를 잡을 때마다, 중앙 처리 장치(62)는 타이밍 조정을 반복하며 노트 이벤트 코드를 자동 연주 피아노(3C)에 공급하기 위한 타이밍을 재스케쥴링한다. 중앙 처리 장치가 제4 특성 이벤트 A에 대응하는 특성 이벤트 B에 대해 랜덤 액세스 메모리(64)를 체크하고 0.2초 동안 기다린다고 해도, 중앙 처리 장치(62)는 ±0.2초 내에 임의의 특성 이벤트 B를 발견할 수 없으며, 이 때문에, 제4 특성 이벤트 A에 대한 타이밍 조정을 스킵한다. 반면에, 제8 특성 이벤트 B가 발생해도, ±0.2초 내에 임의의 특성 이벤트 A가 존재하지 않으며, 중앙 처리 장치(62)는 제8 특성 이벤트 B를 무시한다.
콤팩트 디스크 CD-B에 레코딩된 음악이 라우드 스피커(44)를 통해 재생되는 동안, 디지털 신호 처리기(62)는 타이밍 조정을 반복하며, 노트 이벤트를 자동 연주 피아노(3C)에 공급하기 위한 타이밍을 재스케쥴링한다. 이 때문에, 도 25의 "REGULATED NOTE EVENT"에 의해 나타내지는 바와 같이 자동 연주 피아노(3C)에 노트 이벤트가 공급되며, 콤팩트 디스크 CD-B에 레코딩된 음악의 재생과 좋은 앙상블을 이루어 자동 연주 피아노(3C)를 통해 음악이 재생된다.
음악이 더 느린 템포로 콤팩트 디스크 CD-B에 레코딩된 경우, 데이터 처리 장치(62)는 타이밍 조정을 통해 노트 이벤트를 자동 연주 피아노에 공급하기 위한 타이밍을 재스케쥴링한다. 타이밍 조정은 전술한 것과 유사하다. 따라서, 불필요한 반복을 피하기 위해 이에 대한 상세한 설명은 생략된다.
전술한 설명으로부터 알 수 있는 바와 같이, 제2 실시예를 구현하는 동기 연주 시스템은, 사전 기록 내에서 저주파수 범위의 볼륨이 갑자기 변하는 특성 이벤트를 판별하고, 노트 이벤트 코드와 함께 시스템 익스클루시브 이벤트 코드의 형태로 특성 이벤트 A가 표준 MIDI 파일 내에 저장된다. 음악이 동시 재생으로 다른 콤팩트 디스크 CD-B로부터 재생되는 동안, 동시 재생 시스템은 오디오 음악 데이터 코드(r(n), l(n))에 기초하여 특성 이벤트 B를 판별하고, 특성 이벤트 A 및 대응 특성 이벤트 B 간에 타이밍 조정을 통해 자동 연주 피아노(3C)로 노트 이벤트를 공급하기 위한 타이밍을 재스케쥴링한다. 이에 따라, 콤팩트 디스크 CD-A에 레코딩된 음악과 다른 소정의 템포로 음악이 재생되더라도, 콤팩트 디스크 CD-B에 레코딩된 음악의 재생과 좋은 앙상블을 이루어 자동 연주 피아노를 통해 연주가 재생된다.
제1 변형예
도 27은 제2 실시예의 제1 변형을 도시한 도면이다. 제1 변형예의 동기 연주 시스템은 전반적으로 콤팩트 디스크 드라이버(1D), 플로피 디스크 드라이버(2D), 자동 연주 피아노(3D) 오디오부(4D), 조작 패널/표시부(5D) 및 제어기(6D)를 포함한다. 플로피 디스크 드라이버(2D), 자동 연주 피아노(3D), 오디오부(4D) 및 조작 패널/표시부(5D)는 제2 실시예를 구현하는 동기 연주 시스템과 시스템 구성 및 동작이 유사하며, 구성 요소는 도 17에 도시된 대응 구성요소를 나타내는 참조부호로 표시된다. 제어기(6D)가 제어기(6C)로부터의 데이터 처리와 다르지만, 시스템 구성은 제어기(6C)의 것과 유사하며, 이 때문에 그 구성요소에는 상세한 설명없이 제어기(6C)의 대응 구성요소를 나타내는 참조부호가 부여된다.
제1 변형예는 또한 선택적으로 사전 기록 모드 및 동시 재생 모드로 들어가며, 이들 동작 모드에서의 동작은 동시 재생 시스템의 것과 일반적으로 동일하다. 따라서, 간략하게 하기 위해 그 차이점에 대해서 집중적으로 설명한다.
제어기(6C)는 내부 타이머를 포함하며, 내부 클럭이 특성 이벤트 A와 관련된 델타 타임 코드에 의해 표현되는 타임을 잡을 때 타이밍 조정을 수행한다. 이 특성은 제1 변형예에서 변형된다. 제1 변형예에서, 제어기(6D)는 타이밍 조정과 자동 연주 피아노(3D)로의 데이터 공급을 위해, 오디오 타임 데이터 코드에 의해 표현되는 현재 타임과 델타 타임 코드에 의해 표현되는 타임을 비교한다. 이 때문에, 콤팩트 디스크 드라이버(1D)는 콤팩트 디스크로부터 인터페이스로(65a)로 오디오 음악 데이터 코드뿐만 아니라 오디오 타임 데이터 코드도 전송한다. 제2 실시 예와의 다른 차이점은, 특성 이벤트 코드 B를 생성하기 위한 오디오 음악 데이터 코드 쌍에 대한 분석 후에 타이밍 조정이 수행된다는 점이다.
사전 기록에서의 차이점은, 오디오 타임 데이터 코드에 의해 표현되는 경과 타임이 델타 타임 코드에 기억된다는 점이다. 델타 타임 코드는, 도 24에 도시된 표준 MIDI 파일과 마찬가지로 관련 노트 이벤트 코드 및 특성 이벤트 코드 A와 함께 표준 MIDI 파일 내에 저장된다.
반면에, 동시 재생에서의 차이점은 이하와 같다. 모든 오디오 음악 데이터 코드 쌍(r(n), l(n))은 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송되며, 중앙 처리 장치(62)는 도 20에 도시된 데이터 처리를 통해 특성 이벤트 B를 판별한다. 특성 이벤트 코드 B가 얻어지면, 중앙 처리 장치(62)는 특성 이벤트 A 및 특성 이벤트 B간의 리그레션(regression) 라인을 판별하며 리그레션 라인에 기초하여 노트 이벤트를 자동 연주 피아노(3D)에 공급하기 위한 타이밍을 변경한다. 재스케쥴링이 완료되면, 제어기(6D)는 다시 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 오디오 데이터 코드를 전송할 것을 콤팩트 디스크 드라이버(1D)에 요구하며, 중앙 처리 장치(62)는 관련 델타 타임 코드에 의해 표현되는 타임의 경과에 따라 노트 이벤트를 자동 연주 피아노(3D)에 공급한다.
노트 이벤트 코드가 자동 연주 피아노(3D)에 공급되는 타이밍을 결정하기 위해, 콤팩트 디스크 드라이버(1D)는 타임 클럭을 제어기(6D)에 공급한다.
이제, 사용자가, 콤팩트 디스크 CD-A에 레코딩된 음악의 재생과 함께 키보드(31a)상의 연주를 미리 레코딩할 것을 제어기(6D)에 지시하고, 중앙 처리 장 치(62)는 오디오 데이터 코드, 즉 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드를 콤팩트 디스크 CD-A로부터 인터페이스(65a)로 전송할 것을 콤팩트 디스크 드라이버(1D)에 요청하는 것으로 가정한다.
오디오 데이터 코드가 인터페이스(65a)에 연속적으로 도달하는 동안, 중앙 처리 장치(62)는 오디오 타임 데이터 코드와 함게 오디오 음악 데이터 코드 쌍(R(n), L(n))을 랜덤 액세스 메모리(64)에 저장하고 오디오 음악 데이터 코드(R(n), L(n))를 오디오부(4D)으로 공급한다. 오디오 타임 데이터 코드 쌍은 오디오부(4D)을 통해 전기 톤으로 변환된다.
사전설정된 수의 오디오 음악 데이터 코드 쌍(R(n), L(n))이 랜덤 액세스 메모리(64)에 저장되면, 중앙 처리 장치(62)는 도 20에 도시된 데이터 처리를 개시할 것을 디지털 신호 처리기(63)에 요구한다. 디지털 신호 처리기는 단계 S1 내지 S12로 구성된 루프를 반복하며, 단계 S10에서 부정 응답의 특성 이벤트 A를 중앙 처리 장치(62)에 통지한다. 중앙 처리 장치(62)가 디지털 신호 처리기(63)로부터 통지를 수신하면, 중앙 처리 장치(62)는 시스템 익스클루시브 이벤트 코드 내의 특성 이벤트 A와, 델타 타임 코드 내의 통지 바로 전에 수신된 오디오 타임 데이터 코드에 의해 표현된 타임을 기억한다. 이에 따라, 중앙 처리 장치(62)는 시스템 익스클루시브 이벤트 코드 및 관련 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다.
라우드 스피커(44)를 통해 전기 톤이 재생되는 동안, 사용자는 선택적으로 흑/백 키를 누르거나 떼며 페달(31e)을 밟는다. 키 센서(32) 및 페달 센서(33)는 키 움직임 및 페달 움직임을 제어기(34)에 보고하며, 제어기(34)는 키 움직임 및 톤에 전달되는 이펙트를 나타내는 노트 이벤트 코드를 인터페이스(65a)에 공급한다.
노트 이벤트 코드는 중앙 처리 장치(62)에 의해 페치된다. 중앙 처리 장치(62)는 각 노트 이벤트 도착 바로 전에 수신된 오디오 타임 데이터 코드에 의해 표현된 타임을 기억하며, 노트 이벤트 코드 및 관련 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다.
사용자가 연주를 완료하면, 사용자는 사전 기록을 종료할 것을 제어기(6D)에 지시한다. 중앙 처리 장치(62)는 재생을 중단할 것을 콤팩트 디스크 드라이버(1D)에 요구한다. 또한, 중앙 처리 장치(62)는, 노트 이벤트 코드, 관련 델타 타임 코드, 특성 코드 및 관련 델타 타임 코드가 저장되는 표준 MIDI 파일을 생성하며, 표준 MIDI 파일을 플로피 디스크 FD에 저장할 것을 플로피 디스크 드라이버(2D)에 요구한다. 이에 따라, 표준 MIDI 파일은 플로피 디스크 FD에 저장된다. 표준 MIDI 파일은 도 24에 도시된 바와 동일하다.
사용자는, 콤팩트 디스크 CD-B에 레코딩된 음악의 재생과 좋은 앙상블을 이루어 연주를 재생하도록 제어기(6D)에 지시하도록 간주된다. 중앙 처리 장치(62)는, 표준 MIDI 파일을 플로피 디스크 FD로부터 인터페이스(65a)로 전송할 것을 플로피 디스크 드라이버(2D)에 요구하며 표준 MIDI 파일을 랜덤 액세스 메모리(64)에 저장한다.
계속해서, 중앙 처리 장치(62)는, 오디오 데이터 코드를 판독하여 콤팩트 디 스크 CD-B로부터 인터페이스(65a)로 전송할 것을 콤팩트 디스크 드라이버(1D)에 요구한다. 오디오 음악 데이터 코드 쌍(r(n), l(n)) 및 오디오 타임 데이터 코드는 콤팩트 디스크 CD-B에 연속적으로 전송되며, 중앙 처리 장치(62)는 오디오 음악 데이터 코드(r(n), l(n)) 및 오디오 타임 데이터 코드를 랜덤 액세스 메모리(64)에 저장한다. 그러나, 오디오 음악 데이터 코드는 오디오부(4D)에 제공되지 않는다. 이 때문에, 임의의 전기 톤이 라우드 스피커(44)로부터 방출되지 않는다.
사전설정된 수의 오디오 음악 데이터 코드 쌍, 즉 참조 미가공 데이터가 랜덤 액세스 메모리(64)에 축적되면, 중앙 처리 장치(62)는 도 20에 도시된 데이터 처리를 통해 특성 이벤트 B를 찾을 것을 디지털 신호 처리기(63)에 요구한다. 디지털 신호 처리기(63)가 갑작스런 변화 또는 특성 이벤트 B를 나타내기 위해 중기 지표 및 장기 지표를 발견하면, 디지털 신호 처리기(63)는 특성 이벤트 B를 중앙 처리 장치(62)에 통지한다. 그 후, 중앙 처리 장치(62)는 통지 바로 전에 수신된 오디오 타임 데이터 코드에 대해 랜덤 액세스 메모리(64)를 체크하며 통지의 도착 타임을 나타내는 델타 타임 코드를 생성한다. 특성 이벤트 코드 B 및 관련 델타 타임 코드는 랜덤 액세스 메모리(64)에 저장된다.
데이터 처리가 일단 완료되면, 디지털 신호 처리기는 참조 미가공 데이터로부터 가장 빠른 오디오 음악 데이터 코드 쌍을 제거하고 다음 오디오 음악 데이터 코드 쌍을 참조 미가공 데이터에 더한다. 디지털 신호 처리기(63)는 다시 다른 특성 이벤트 B에 대한 데이터 처리를 실행하고 중앙 처리 장치(62)에 특성 이벤트를 통지한다. 그 후, 중앙 처리 장치(62)는 통지의 도착 타임을 나타내는 델타 타임 코드를 생성하고 특성 이벤트 코드 B 및 관련 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다.
이에 따라, 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 함께 실행되며 주기적으로 갱신된 참조 미가공 데이터에 대한 데이터 처리를 반복한다. 마지막 오디오 음악 데이터 코드 쌍을 포함하는 참조 미가공 데이터에 대해 데이터 처리가 완료되면, 특성 이벤트 코드 B 세트 및 관련 델타 타임 코드가 랜덤 액세스 메모리(64)에 축적되며 중앙 처리 장치(62)는, 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 데이터 전송을 중지할 것을 콤팩트 디스크 드라이버(1D)에 요구한다.
모든 오디오 음악 데이터 코드 쌍에 대한 데이터 처리가 완료되면, 중앙 처리 장치(62)는 타이밍 조정을 실행한다. 도 28은 타이밍 조정에 대해 도시한 도면이다. 제1 내지 제10 특성 이벤트 코드 B는 각각 0.11초, 0.75초, 1.36초, 3.25초, 3.94초, 4.85초, 5.40초, 6.16초, 6.61초 및 7.24초를 나타내는 델타 타임 코드와 수반된다. 반면에, 제1 내지 제10 특성 이벤트 코드 A는 각각 0.13초, 0.81초, 1.45초, 2.83초, 3.42초, 4.16초, 5.12초, 5.70초, 6.96초 및 7.79초를 나타내는 델타 타임 코드와 수반된다. 이하의 설명에서는, "특성 이벤트 코드 A(n)" 및 "특성 이벤트 B(n)"는 각각 n번째 특성 이벤트 코드 A 및 n번째 특성 이벤트 코드 B를 나타낸다. 특성 이벤트 코드 A는 각각 특성 이벤트 코드 B와 쌍을 이루며, 델타 타임 코드의 경과 타임은 ((A81), B(1))=(0.13, 0.11), (A(2), B(2))=(0.81, 0.75), (A(3), B(n))=(1.45, 1.36), ...으로 표현된다. 타이밍 조정 후의 경과 타임은 도 28에 도시되어 있지만, 타이밍 조정은 이 단계에서 실행되지 않는다.
중앙 처리 장치(62)는 최소 스퀘어 방법을 통해 (A(n), B(n))에 대한 리그레션 라인을 판별한다. 리그레션 라인이 제9 특성 이벤트 코드 쌍(A(n), B(n))에 대해 판별되었으면, 리그레션 라인은 도 29에서와 같이 플롯된다. 이 플롯은 B=0.9414A-0.006으로 표현되었다. 이 플롯으로부터, 콤팩트 디스크 CD-A에 레코딩된 음악의 재생의 개시는 콤팩트 디스크 CD-B에 레코딩된 음악의 재생의 개시로부터 0.006초 지연되었으며 콤팩트 디스크 CD-A에 레코딩된 음악의 템포는 콤팩트 디스크 CD-B에 레코딩된 음악의 템포보다 5.86% 느린 것을 알 수 있다.
중앙 처리 장치(62)는 각 노트 이벤트와 관련된 델타 타임 코드에 의해 표현된 타임을 방정식 내의 A 대신에 넣는다. 도 30은 타이밍 조정 전의 경과 타임과 타이밍 조정 후의 경과 타임을 나타낸 도면이다. 이 타이밍은 0.06초 및 5.86% 전진된 것이다.
타이밍 조정이 완료되면, 중앙 처리 장치(62)는, 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드를 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송할 것을 콤팩트 디스크 드라이버(1D)에 요구한다. 콤팩트 디스크 드라이버(1D)가 오디오 데이터 코드를 인터페이스(65a)에 전송하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드를 오디오부(4D)에 전송하고, 오디오 타임 데이터 코드에 의해 표현된 경과 타임을 델타 타임 코드에 의해 표현된 경과 타임과 비교한다. 경과 타임이 동일하게 되면, 중앙 처리 장치(62)는 도 31에 도시된 바와 같이 노트 이벤트를 자동 연주 피아노(3D)에 공급한다. 이로 인해, 자동 연주 피아노(3D)를 통해 재생되는 연주와, 콤팩트 디스크 CD-B에 레코딩된 음악의 재생 사이에 좋은 앙상블이 이루어진다.
다른 변형예
전술한 제2 실시예 및 제1 변형예에서, 시스템 컴포넌트(1C/1D, 2C/2D, 4C/4D, 5C/5D, 6C/6D)는 자동 연주 피아노(3C/3D) 내에 수용된다. 그러나, 제2 변형예는 서로 물리적으로 분리된 복수의 컴포넌트로 구성된다. 제3 변형예를 구현하는 동기 연주 시스템은 이하와 같이 복수의 컴포넌트 내로 물리적으로 분리될 수도 있다.
8. 콤팩트 디스크 드라이버(1C/1D),
9. 플로피 디스크 드라이버(2C/2D),
10. 자동 연주 피아노(3C/3D),
11. 믹서/디지털 아날로그 변환기(41/42),
12. 증폭기(43),
13. 라우드 스피커(44), 및
14. 조작 패널/표시부 및 제어기(5C/5D, 6C/6D).
또한, 제어기(6C/6D)는 레코딩 섹션 및 재생 섹션으로 물리적으로 분리될 수도 있다.
이들 시스템 컴포넌트는 오디오 케이블, MIDI 케이블, 오디오 신호를 위한 광 섬유, USB(Universal Serial Bus) 케이블 및/또는 동시 재생 시스템을 위해 새롭게 설계된 케이블을 통해 접속될 수도 있다. 시장에서 얻을 수 있는, 표준 플로피 디스크 드라이버, 표준 증폭기 및 표준 라우드 스피커가 본 발명에 따른 동시 재생 시스템에서 사용될 수도 있다.
개별적인 유형의 동시 재생 시스템은, 사용자가 이미 소유하고 있는 소정의 시스템 컴포넌트를 이용하여 자신의 시스템을 구성할 수 있기 때문에 사용자에게 바람직하다.
동시 재생 시스템의 제3 변형예는 콤팩트 디스크 드라이버(1C/1D) 및 플로피 디스크 드라이버(2C/2D)를 포함하지 않지만, 제어기(6C/6D)는 하드 디스크와, LAN(Local Area Network), WAN 또는 인터넷에 접속가능한 인터페이스를 구비한다. 이 경우, 오디오 데이터 코드는 인터페이스를 통해 적절한 데이터 소스로부터 공급되며 하드 디스크에 저장된다. 마찬가지로, 표준 MIDI 파일은 인터페이스를 통해 외부 데이터 소스로부터 전송되며 또한 하드디스크에 저장된다. 사용자가 키보드(31a) 상에서 핑거링하고 있는 동안, 오디오 음악 데이터 코드가 하드 디스크로부터 판독되며 오디오부(4C/4D)으로 전송되어 이들을 전기 톤으로 변환한다. 이벤트 코드 및 델타 타임 코드는 트랙 청크에 저장되며, 표준 MIDI 파일은 하드 디스크에 남겨진다.
전술한 바로부터 알 수 있듯이, 본 발명에 따른 동기 연주 시스템은 오디오 시스템, 즉 콤팩트 디스크 CD-A 및 CD-B 간의 차이에 상관없이 콤팩트 디스크 드라이버/오디오부(1C/4D)을 통한 재생과 좋은 앙상블을 이루어 악기, 즉 어쿠스틱 피아노(31A)를 통한 연주를 재생한다. 즉, 음악이 콤팩트 디스크 CD-A 및 CD-B에 서로 다른 템포로 레코딩되어도, 동기 연주 시스템은, 그 음악을 나타내는 오디오 음악 데이터 코드로부터 추출된 사전설정된 주파수 범위 내의 볼륨에 기초하여 특성 이벤트를 발견해내며, 각 노트 이벤트가 자동 연주 피아노로 전송될 타이밍을 재스케쥴링한다. 이에 따라, 키보드 상의 연주는, 콤팩트 디스크 드라이버/오디오부을 통한 음악의 재생과 좋은 앙상블을 이루어 자동 연주 피아노를 통해 재생된다.
제3 실시예
시스템 구성
도 32를 참조하면, 본 발명을 구현하는 동기 연주 시스템은 전반적으로 콤팩트 디스크 드라이버(1E), 플로피 디스크 드라이버(2E), 자동 연주 피아노(3E), 오디오부(4E), 조작 패널/표시부(5E) 및 제어기(6E)를 포함한다. 콤팩트 디스크 드라이버(1E), 플로피 디스크 드라이버(2E), 자동 연주 피아노(3E), 오디오부(4E) 및 조작 패널/표시부(5E)는 신호 라인을 통해 서로 연결되어 있으며, 자동 연주 피아노(3E) 및 오디오부(4E)는 신호 라인을 통해 서로 직접 연결되어 있다.
동시 재생 시스템은 적어도 사전 기록 모드 및 동시 재생 모드를 갖는다. 동시 재생 시스템은 사전에 플로피 디스크 FD 내에 MIDI 파일을 준비하며, 플로피 디스크 FD에는 노트 이벤트 데이터 및 델타 타임 데이터가 음악의 헤드부의 참조 상관 데이터, 참조 특성 이벤트를 나타내는 관리 데이터, 및 기준 개시 타임 및 기준 종료 타임을 나타내는 기준 종료 오디오 데이터 및 타임 데이터와 함께 사전 기록 모드에서 저장된다. 델타 타임 데이터는 앙상블의 개시로부터의 경과 타임을 나타내며, 헤드부에서의 참조 상관 데이터 및 참조 특성 이벤트는, 제1 및 제2 실시예와 유사하다. 관리 데이터는 표준 MIDI 파일에 저장되지 않을 수도 있다.
기준 종료 오디오 데이터는 음악의 종료 부분에서의 아날로그 오디오 신호의 파형을 나타낸다. 기준 개시 타임은, 음악이 시작되는 타이밍을 나타내며, 기준 종료 타임은 음악이 종료되는 타이밍을 나타낸다.
반면에, 동시 재생 시스템은 플로피 디스크 FD로부터 노트 이벤트 데이터, 델타 타임 데이터, 헤드 위치에서 참조 상관 데이터, 관리 데이터, 기준 종료 오디어 데이터 및, 기준 개시 타임 및 기준 종료 타임을 나타내는 타임 데이터를 수신하여 콤팩트 디스크 드라이버(1E)로부터 오디오 음악 데이터를 수신한다. 동시 재생 시스템은 콤팩트 디스크 드라이버(1E)로부터 공급된 오디오 음악 데이터로부터 목표 상관 데이터를 생성하며, 헤드부에서의 참조 상관 데이터 및, 목표 개시 타임을 판별하기 위한 목표 상관 데이터와, 목표 종료 타임을 판별하기 위한 기준 종료 오디오 데이터 및 목표 상관 데이터에 기초하여 정정 분석을 실행한다. 목표 개시 타임 및 목표 종료 타임은 기준 개시 타임 및 기준 종료 타임에 대응하며, 음악의 재생을 개시시키는 타이밍과 음악의 재생을 완료하는 타이밍을 나타낸다.
제어기(6E)가 정정 분석을 통해 목표 개시 타임 및 목표 종료 타임을 획득하면, 제어기(6E)는, 레코딩 타임, 즉 기준 개시 타임으로부터 기준 종료 타임까지의 레코딩 타임과, 대상 개시 타임으로부터 목표 종료 타임까지의 타임 사이의 비율에 기초하여 노트 이벤트가 재생되는 타이밍을 재스케쥴링한다. 노트 이벤트 코드에 대한 델타 타임 코드는 필요할 경우 재스케쥴링을 통해 변경된다. 콤팩트 디스크 드라이버(1E)는 콤팩트 디스크 CD-B에 저장된 오디오 음악 데이터 코드로부터 전기 톤을 재생하며, 제어기(6E)는 적절한 타이밍에 노트 이벤트 코드를 자동 연주 피아노(3E)에 공급하여서 자동 연주 피아노(3E)를 통해 연주가 콤팩트 디스크 드라이버/오디오부(1E/4E)을 통해 재생과 함게 좋은 앙상블을 이루도록 진행된다.
조작 패널/표시부(5E)는 제어기(6E)에 연결된다. 사용자는 조작 패널을 통해 제어기(6E)에 지시를 하며, 제어기(6E)는 표시부 상에 생성된 시각적 이미지를 통해 동시 재생 시스템의 현재 상태를 사용자에게 알려준다. 제어기(6E)는 또한 콤팩트 디스크 드라이버(1E), 플로피 디스크 드라이버(2E), 자동 연주 피아노(3E) 및 오디오부(4E)에도 연결되며, 자동 연주 피아노(3E)는 오디오부(4E)에 직접 연결된다. MIDI 데이터, 오디오 음악 데이터, 델타 타임 데이터, 참조 상관 데이터, 및 그 밖의 다른 종류의 데이터는 에비 레코딩 모드 및 동시 재생 모드 내에서 시스템 컴포넌트(1E, 2E, 3E, 4E, 5E, 6E) 간에 선택적으로 전송된다. 이들 시스템 컴포넌트(1E, 2E, 3E, 4E, 5E, 6E)의 동작은 이하 상세히 설명될 것이다.
콤팩트 디스크 드라이버
판독 입력(read-in), 복수의 프레임 및 판독 출력(read-out)은 음악 악절을 위해 콤팩트 디스크 CD에 일렬로 저장되며, 오디오 타임 데이터 및 오디오 음악 데이터가 사전설정된 종류의 제어 데이터와 함께 프레임을 형성한다. 각 음악의 초기와 같은 지표들도 또한 콤팩트 디스크에 저장된다. 오디오 음악 데이터 및 오디오 타임 데이터는 바이너리 코드 형태를 가지며, 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드 각각에 저장된다. 오디오 음악 데이터 코드는 아날로그 오디오 신호로부터 재생되었다. 우측 채널 및 좌측 채널에 할당되는 아날로그 오디오 신호는 44,100Hz에서 샘플링되며, 샘플링된 이산 값은 우측 및 좌측 채널에 대해 16 비트 오디오 음악 데이터 코드로 양자화된다. 오디오 음악 데이터 코드는 우측 채널 아날로그 오디오 신호로부터 부분적으로 생성되며, "우측 채널 오디오 음악 데이터 코드"로 칭한다. 나머지 오디오 음악 데이터는 좌측 채널 아날로그 오디오 신호로부터 생성되며, "좌측 채널 오디오 음악 데이터 코드"로 칭한다.
콤팩트 디스크 CD는 콤팩트 디스크 드라이버(1E)에 로드되거나 콤팩트 디스크 드라이버(1E)로부터 언로드되며, 컴택트 디스크 드라이버(1E)는 조작 패널/표시부(5E)를 통해 주어진 사용자의 지시에 응답하여 음악 악절의 재생을 개시 및 중단한다. 음악 악절이 재생되는 동안, 오디오 음악 데이터 코드만이 콤팩트 디스크 드라이버(1E)로부터 제어기(6E)에 공급된다. 콤팩트 디스크 드라이버(1E)는 표준형이며, 디스크 트레이, 디스크 트레이를 위한 모터, 모터를 위한 서보 메카니즘, 광학 픽업 유닛, 광학 픽업 유닛을 위한 포커스 서보 메카니즘, 서보 메카니즘을 위한 동기화 회로 및 에러 정정 시스템을 포함한다. 이들 컴포넌트는 당업자에게 잘 알려져 있으며 더 이상의 설명은 하지 않는다.
플로피 디스크 드라이버
플로피 디스크 드라이버(2E)는 컴퓨터 상에서 동작하는 마이크로프로세서를 포함하여서 플로피 디스크 드라이버(2E)가 데이터 처리 능력을 갖게 해준다. 플로피 디스크 드라이버(2E)는 헤드부에서 이벤트 코드, 델타 타임 코드, 참조 상관 데이터를 나타내는 참조 상관 데이터 코드와, 종료 부분에서 참조 특성 이벤트를 나타내는 관리 데이터 및 참조 상관 데이터를 나타내는 기준 정정 코드를 제어기(6E)로부터 수신하며 플로피 디스크 FD 내에 표준 MIDI 파일을 생성한다.
플로피 디스크 드라이버(2E)는 MIDI 음악 데이터 코드, 관련 델타 타임 코 드, 헤드부에서의 참조 상관 데이터, 관리 데이터, 관련 델타 타임 데이터 및 종료 부분에서 참조 상관 데이터를 표준 MIDI 파일로부터 판독하며, MIDI 음악 데이터 코드, 델타 타임 코드, 헤드부에서의 참조 상관 데이터, 관련 델타 타임 코드 및 종료 부분에서의 참조 상관 데이터를 제어기(6E)에 공급한다.
도 33은 표준 MIDI 파일 MFE를 나타낸 도면이다. 표준 MIDI 파일 MFE는 헤더 청크 HC 및 트랙 청크 TC로 분류된다. 헤더 청크 HC는 트랙 청크 TC에 저장될 음악 데이터에 대한 포맷과 타임 단위를 나타내는 제어 데이터에 할당된다. 트랙 청크 TC는 MIDI 음악 데이터 코드, 즉 노트 이벤트 코드, 시스템 익스클루시브 이벤트 코드 및 델타 타임 코드에 할당된다. 델타 타임 코드는, 이벤트 코드와 다음 이벤트 코드 사이의 타임 간격, 또는 재생의 재시로부터의 경과 타임을 나타낸다. 이 경우, 델타 타임 코드는 재생의 개시로부터 경과 타임을 초 단위로 나타낸다. 그러나, 델타 타임 코드는 다른 시스템 내의 하나의 이벤트와 다음 이벤트 사이의 타임 간격을 나타낼 수도 있다.
도 34a, 34b 및 34c는 MIDI 음악 데이터 코드에 대한 포맷을 나타낸다. 도 34a는 노트-온 이벤트 코드 EV1E의 데이터 필드(DF1/DF2/DF3)를 나타내며, 도 34b는 노트-오프 이벤트 코드 EV2E의 데이터 필드(DF4/DF5/DF6)를 나타내며 도 34c는 시스템 익스클루시브 이벤트 코드 EV3E의 데이터 필드(DF7/DF8/DF9/DF10)를 나타낸다. 구별가능한 시스템 익스클루시브 이벤트 코드 이외의 다른 이벤트 코드를 만들기 위해, 다른 이벤트 코드는 이하 "노트 이벤트 코드"라 칭한다. 데이터 필드 DF1 내지 DF10은 제1 실시예와 관련하여 설명된 이벤트 코드의 것과 동일하며, 따 라서 불필요한 반복을 피하기 위해 더 이상의 설명은 생략한다.
이벤트 코드 EV1E, EV2E, 및 EV3E는 임의의 타임 데이터를 가지지 않으며 톤 발생, 톤 감쇠 및 그 밖의 다른 제어에 사용된다. 즉, 이벤트 코드 EV1 및 EV2는 톤의 제어를 위해 즉시 실행되며 사용자의 데이터도 또한 즉시 진행된다. 이러한 종류의 이벤트 코드 EV1E, EV2E 및 EV3E는 표준 MIDI 파일 MF의 트랙 청크를 형성한다.
자동 연주 피아노
자동 연주 피아노(3E)는 일반적으로 어쿠스틱 파이노(31A), 코딩 시스템(31B) 및 자동 연주 시스템(31C)을 포함한다. 사용자는 어쿠스틱 피아노(31A)로 음악 악절을 연주하며 어쿠스틱 피아노 톤은 어크스틱 피아노(31A)를 통해 생성된다. 코딩 시스템(31B) 및 자동 연주 시스템(31C)은 어쿠스틱 피아노(31A)와 관련된다. 사용자가 톤을 연주하는 동안, 키 액션 및 페달 액션은 코딩 시스템(31B)을 통해 이벤트 코드 내에 기억되며, 이벤트 코드는 코딩 시스템(31B)으로부터 제어기(6E)로 전달되며, 이는 플로피 디스크 FD 내에 표준 MIDI 파일 SMF를 생성하기 위해 이벤트 코드를 플로피 디스크 드라이버(2E)에 교대로 전송한다. 반면에, 사용자가, 이벤트 코드에 기초하여 음악 악절을 재생할 것을 자동 연주 시스템(31C)에 요구하면, MIDI 음악 데이터 코드는 제어기(6E)를 통해 자동 연주 시스템(31C)에 공급되며, 어쿠스틱 피아노 톤은 음악 악절과 함께 어쿠스틱 피아노(31A)를 통해 재생된다. 어쿠스틱 연주 피아노(31C)는 또한 MIDI 음악 데이터 코드에 기초하여 디지털 오디오 신호를 생성하도록 동작하며, 디지털 오디오 신 호는 디지털 오디오 신호로부터 전기 톤을 재생하기 위해 오디오부(4E)에 공급된다.
어쿠스틱 피아노(31A)는 표준 그랜드 피아노이며, 키보드(31a), 액션 유닛(31b), 해머(31c), 스트링(31d), 댐퍼(도시하지 않음) 및 페달(31e)을 포함한다. 흑색 키 및 백색 키가 키보드(31a)의 부분을 형성하며, 사용자에 의해 선택적으로 눌려지거나 떼어지게 된다. 눌려진 키들은 액션 유닛(31b)을 활성화시키고 관련 스트링으로부터 댐퍼 공간을 두게 된다. 활성화된 액션 유닛(31b)은 회전을 위해 관련 해머(31c)를 구동시키고, 해머(31c)는 회전의 종료시에 관련 스트링(31d)을 스트라이킹한다. 댐퍼는 이미 스트링으로부터 공간을 두어서 해머(31c)가 어쿠스틱 피아노 톤의 재생을 위한 진동을 일으키게 한다. 페달(31e)은 키보드(31a) 및 댐퍼와 연결되어 있다. 사용자가 연주 동안 페달을 밟으면, 댐퍼는 어쿠스틱 피아노 톤을 길게 늘이며 키보드(31a)는 감소된 어쿠스틱 피아노 톤의 소리의 세기를 만든다.
코딩 시스템(31B)은 키 센서(32), 페달 센서(33) 및 제어기(34)를 포함한다. 키 센서(32)는 흑/백 키 각각을 모니터링하며, 페달 센서(33)는 페달(31e)을 각각 모니터링한다. 키 센서(32)는 관련 흑/백 키(32)의 현재 위치를 나타내는 키 위치 신호를 생성하며, 키 위치 신호를 제어기(34)에 공급한다. 마찬가지로, 페달 센서(33)는 관련 페달(31e)의 현재 위치를 나타내는 페달 위치 신호를 생성하며 페달 위치 신호를 제어기(34)에 공급한다. 제어기(34)는 마이크로프로세서를 포함하며, 마이크로프로세서는 키 위치 신호 및 페달 위치 신호에 의해 표현되는 위치 데 이터를 주기적으로 페치한다. 마이크로프로세서는 사용자가 키/페달중 임의의 하나를 누르는지 여부를 알아보기 위해 위치 데이터를 분석한다. 사용자가 흑색 키를 누르고 페달중 하나를 밟는 것으로 가정한다. 마이크로프로세서는 눌러진 흑색 키 및 페달을 특성화하고 그 속도를 계산한다. 마이크로프로세서는 이들 음악 데이터를 이벤트 코드 내에 기억시키고 이벤트 코드를 제어기(6E)에 제공한다.
자동 연주 시스템(31C)은 제어기(34), 톤 발생기(35), 구동 유닛(36a) 및 솔레노이드 동작되는 키/페달 어레이 액츄에이터(36b)를 포함한다. 제어기(34)는 제어기(6E)로부터 이벤트 코드를 수신한다. 사용자가 전자 톤을 생성할 것을 동기 연주 시스템에 지시할 경우, 제어기(34)는 이벤트 코드를 톤 발생기(35)에 전달하며 톤 발생기(35)는 이벤트 코드에 기초하여 우측 및 좌측 채널에 대한 한 쌍의 디지털 오디오 신호를 생성한다. 반면에, 사용자가 어쿠스틱 피아노 톤을 생성하도록 동시 재생 시스템에 지시할 경우, 제어기(34)는 이동될 흑/백 키의 궤도를 결정하고, 그 궤도를 따라 관련 흑/백 키를 이동시키기 위해 솔레노이드 동작되는 키 액추에이터(36b)를 활성화할 것을 구동 유닛(36a)에 지시한다. 구동 유닛(36a)은 선택적으로 구동 신호를 솔레노이드 동작되는 키/페달 액추에이터(36b)에 공급하여서 솔레노이드 동작되는 키/페달 액추에이터(36b)가 흑/백 키 및 페달(31e)을 이동시키기 위해 키 모션 및/또는 페달 모션을 발생시킨다. 흑/백 키는 액션 유닛(31b)이 활성화되도록 하며, 해머(31c)는 회전의 끝 부분에 스트링(31d)을 스트라이킹한다. 이에 따라, 자동 연주 시스템(31C)은 이벤트 코드에 기초하여 어쿠스틱 피아노 톤 또는 전자 톤을 생성한다.
사용자가 키보드(31a) 상의 연주 동안 이벤트 코드를 톤 발생기(35)에 제공할 것을 제어기(34)에 지시할 경우, 제어기(34)는 이벤트 코드를 톤 발생기(35)에 공급하며 디지털 오디오 신호 쌍이 톤 발생기(35)로부터 오디오부(4E)으로 공급된다.
오디오부
오디오부(4E)는 믹서(41), 디지털-아날로그 변환기(42), 증폭기(43) 및 라우드 스피커(44)를 포함한다. 제어기(6E) 및 톤 발생기(35)는 믹서(41)에 연결되며, 디지털 오디오 신호 쌍 및 다른 디지털 오디오 신호 쌍은 톤 발생기(35) 및 제어기(6E)로부터 믹서(41)에 공급된다. 제어기(6E)로부터 공급된 디지털 오디오 신호 쌍은 오디오 음악 데이터 코드로부터 생성되었다. 믹서(41)는 연산 수단을 통해 우측 채널에 대한 디지털 오디오 신호와 좌측 채널에 대한 디지털 오디오 신호를 한 쌍의 디지털 오디오 신호로 믹싱하여 이 한 쌍의 디지털 오디오 신호를 디지털-아날로그 변환기(42)에 공급한다. 디지털 오디오 신호는 우측 채널에 대한 아날로그 오디오 신호 및 좌측 채널에 대한 다른 아날로그 오디오 신호로 변환되며 이 아날로그 오디오 신호들은 증폭기(43)에 공급된다. 아날로그 오디오 신호는 증폭기(43)를 통해 등화되고 증폭된 후, 라우드 스피커(44)에 공급된다. 라우드 스피커(44)는 아날로그 오디오 신호를 스테레오 전기 톤으로 변환한다.
조작 패널/표시부
조작 패널/표시부(5E)는 키 어레이, 스위치, 인디케이터 및 표시부 윈도우를 포함한다. 사용자는 키 및 스위치를 통해 자신의 지시를 제어기(6E)에 전달하며 제어기(6E)는 인디케이터 및 표시부 윈도우를 통해 현재 상태를 사용자에게 보고한다. 제어기(6E)는 비트 맵 데이터를 나타내는 디지털 제어 신호를 제공하며, 조작 패널/표시부는 캐릭터 및/또는 그 밖의 다른 종류의 시각적 이미지를 표시부 윈도우 상에 생성한다.
제어기
제어기(6E)는 "ROM"으로 축약되는 판독 전용 메모리(51), "CPU"로 축약되는 중앙 처리 장치(62), "DSP"로 축약되는 디지털 신호 처리기(63), "RAM"으로 축약되는 랜덤 액세스 메모리(64), 다른 시스템 컴포넌트(1, 2, 3, 4)와 통신하기 위한 인터페이스(65) 및 버스 시스템(65b)을 포함한다. 판독 전용 메모리(61), 중앙 처리 장치(62), 디지털 신호 처리기(63), 랜덤 액세스 메모리(64) 및 인터페이스(65a)가 버스 시스템(65b)을 통해 연결되어 이 버스 시스템(65b)을 통해 서로 통신가능하다. 도면에 도시하지 않았지만, 클럭 발생기가 제어기(6E) 내에 합체되어 다른 시스템 컴포넌트가 서로 동기하도록 해준다.
판독 전용 메모리(61)는 불휘발성 메모리의 일종이며 컴퓨터 프로그램을 구성하는 인스트럭션 코드가 판독 전용 메모리(61)에 저장된다. 중앙 처리 장치(62)는 범용 마이크로프로세서에 의해 구현된다. 중앙 처리 장치(62)는 연속적으로 인스트럭션 코드를 페치하며, 주어진 작업을 행하기 위한 인스트럭션 코드를 실행한다. 이하 상세히 설명하는 바와 같이, 중앙 처리 장치(62)는 사전 기록 모드 및 동시 재생 모드에서 소정의 컴퓨터 프로그램을 실행시킨다.
디지털 신호 처리기(63)는 고속 특수 목표 마이크로프로세서이며, 중앙 처리 장치(62)의 제어하에서 고속으로 오디오 음악 데이터 코드를 진행시킬 수 있다. 디지털 신호 처리기(63)는 사전 기록 모드에서 헤드부에서의 참조 상관 데이터를 생성하기 위한 참조 미가공 데이터에 대해 작업하며 또한 사전 기록 모드에서 필터 회로와 동등한 데이터 처리를 실행한다. 디지털 신호 처리기(63)는 이하 상세히 설명하는 바와 같이 데이터 처리 등을 통해 얻어진 결과를 중앙 처리 장치(62)에 보고한다.
랜덤 액세스 메모리(64)는 휘발성 메모리의 일종이며, 중앙 처리 장치(62)에 일시적인 데이터 처리를 제공한다. 즉, 랜덤 액세스 메모리(64)는 워킹 메모리로서 기능한다. 인터페이스(65a)는 시스템 컴포넌트(1, 2, 3, 4, 5) 간에 디지털 코드를 전송한다. 데이터 포맷이 시스템 컴포넌트 간에 다를 경우, 인터페이스(65a)는 데이터 포맷으로부터 다른 데이터 포맷으로 디지털 코드를 변경한다.
사전 기록
사용자는 콤팩트 디스크 CD-A에 레코딩된 음악의 재생과 앙상블을 이루어 연주한다. 복수의 음악이 콤팩트 디스크 CD-A에 레코딩되어 있지만, 사용자는 복수의 음악중 하나를 선택하며 복수의 음악중 선택된 하나의 음악을 이하 "음악 N"이라 칭하며, 음악 N을 나타내는 오디오 음악 데이터 코드 세트를 NA라 칭한다.
사용자는 우선 컴팩트 디스크 CD-A를 컴팩트 디스크 드라이버(1E)에 로드하고, 사전 기록을 통해 생성되는 표준 MIDI 파일을 저장하기에 충분한 용량을 갖는 플로피 디스크 FD를 플로피 디스크 드라이버(2E)에 로드한다. 사용자는 조작 패널/표시부(5E) 상의 명령 키를 누르고, 중앙 처리 장치(62)는 사전 기록을 시작 하기 위한 사용자의 명령에 대해 확인해준다. 그런 다음, 중앙 처리 장치(62)는 재생 요청을 나타내는 제어 신호를 인터페이스(65a)를 통해 컴팩트 디스크 드라이버(1E)에게 공급한다.
컴팩트 디스크 드라이버(1E)는 컴팩트 디스크 CD-A를 회전하도록 구동하고, 오디오 음악 데이터 코드들을 인터페이스(65a)에 공급한다. 오디오 음악 데이터 코드들의 쌍이 우채널 및 좌채널에 대해 1/44100초의 간격으로 인터페이스(65a)에 공급한다. 오디오 음악 데이터 코드들의 쌍은 ((R(n), L(n))으로서 표현되고, 오디오 음악 데이터 코드의 값 R(n)/L(n)은 이하 "샘플링된 값(n)"으로서 일컫는다. "n"은 오디오 음악 데이터 코드들의 세트 NA의 헤드로부터 계수한 오디오 음악 데이터 코드들의 쌍의 위치를 나타낸다. 오디오 음악 데이터 코드들의 제1 쌍은 ((R(0), L(0))으로 표현되고, "n"은 "1", "2", "3", ..으로 증가된다. 샘플링된 값은 정수이고, 모든 샘플링된 값들은 -32768부터 +32767까지의 범위 내에 들어온다. "n"은 트랙 내의 오디오 음악 데이터 코드들의 위치를 나타낸다.
오디오 음악 데이터 코드들의 제1 쌍 ((R(0), L(0))이 인터페이스(65a)에 도달한 때, 중앙 처리 장치(62)는 인터페이스(65a)로부터 오디오 음악 데이터 코드들의 쌍 ((R(0), L(0))을 페치하고, 클럭 신호의 클럭들을 계수하기 시작한다. 즉, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 제1 쌍 ((R(0), L(0))의 도착 시간부터 경과하는 시간을 측정하기 위해 내부 클럭을 시동한다. 오디오 음악 데이터 코드들의 제1 쌍 ((R(0), L(0))의 도착 시간은 0.00초이다.
오디오 음악 데이터 코드 쌍들 (R(0), L(0)), (R(1), L(1)), (R(2), L(2)),..이 인터페이스(65a)에 도달하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍들 (R(n), L(n))을 자동 연주 피아노(3E)에 연속적으로 전달하여, 음악 N에 따라 전기 신호로 변환되도록 한다. 컴팩트 디스크 플레이어(1E)는 음악 N의 끝까지 오디오 음악 데이터 코드 쌍들을 계속 전달한다.
중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍들의 샘플링된 값들(n)의 쌍들을 오디오 음악 데이터 코드 쌍들 (R(n), L(n))의 도착 시간들과 함께 랜덤 액세스 메모리(64)에 저장하도록 한다. 오디오 음악 데이터 코드 쌍들 (R(n), L(n))의 도착 시간은 "도착 시간(n)"으로 표현된다. 샘플링된 값들(n)과 관련 도착 시간들(n)의 쌍은 연속적으로 큐에 합류한다. 이 경우, 최대 샘플링된 값들(n)과 그 도착 시간들(n)의 1323000 쌍들이 큐에 수용된다. 샘플링된 값들(1323001)과 그 도착 시간들(1323001)의 쌍이 큐에 도달할 때, 샘플링된 값들(0)과 관련 도착 시간들(0)의 제1 쌍은 큐에서부터 밖으로 밀려나고, 샘플링된 값들(1323001)과 그 도착 시간들(1323001)의 새로운 쌍이 큐의 테일에 합류한다. 샘플링된 값들(n)의 1323000 쌍들은 30분 동안 지속되는 전기 음과 동등하다. 중앙 처리 장치(62)는 샘플링된 값들(n)과 관련 도착 시간들(n)의 마지막 쌍까지 샘플링된 값들(n)과 관련 도착 시간들(n)의 쌍이 큐에 연속해서 합류하도록 만들고, 큐의 길이를 일정하게 유지한다.
중앙 처리 장치(62)는 무음 시간 후, 즉 랜덤 액세스 메모리(64) 내의 제1 전기음의 생성을 개시한 때로부터 샘플링된 값들의 216 쌍들을 저장하도록 동작한 다. 216개의 샘플링된 값들, 즉 오디오 음악 데이터 코드들의 65536 쌍들은 1.49초 동안 지속되는 전기 음과 동등하다. 샘플링된 값들의 216 쌍들은 이하에서 "헤드 부분의 참조 미가공 데이터"로서 일컫는다.
구체적으로, 오디오 음악 데이터 코드들의 제1 쌍 (R(0), L(0))이 중앙 처리 장치(62)에 도달할 때, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 쌍들 (R(0), L(0)) 내지 (R(65535), L(65535))을 체크하기 시작하여 그 쌍의 샘플링된 값들이 임계값을 초과하는지의 여부를 검사한다. 임계값은 무음과 음 사이의 경계를 나타낸다. 이 경우, 임계값은 1000이라고 가정한다. 오디오 음악 데이터 코드들의 쌍 (R(50760), L(50760))의 적어도 하나의 샘플링된 값은 임계값을 초과하는 것으로 가정된다. "n"이 0으로부터 50759까지 증가될 때, 답은 부정으로 주어지고, 중앙 처리 장치(62)는 오디오 음악 데이터 코드들의 쌍들 (R(0), L(0)) 내지 (R(50759), L(50759))을 무시한다. 다시 말해서, 오디오 음악 데이터 코드들의 쌍들 (R(0), L(0)) 내지 (R(50759), L(50759))을 랜덤 액세스 메모리(64)에 축적하지 않는다. 무음 기간은 약 1.15초이다.
"n"이 50760에 도달할 때, 중앙 처리 장치(62)는 답을 긍정으로 바꾼다. 긍정인 답이 주어지면, 중앙 처리 장치(62)는 샘플링된 값이 한계를 초과한 기준 시작 시간을 결정하고, 샘플링된 값들(50760)의 쌍을 기준 시작 시간과 함께 랜덤 액세스 메모리(64)에 저장한다. 중앙 처리 장치(62)는 샘플링된 값들의 65536 쌍들을 연속적으로 랜덤 액세스 메모리(64)에 전달하여, 오디오 음악 데이터 코드들의 쌍들 (R(50760), L(50760)) 내지 (R(116295), L(116295))의 샘플링된 값들이 임계값과의 비교없이 랜덤 액세스 메모리(64)에 축적된다. 따라서, 무음이나 거의 무음을 나타내는 오디오 음악 데이터 코드들의 쌍들의 샘플링된 값들은 랜덤 액세스 메모리(64)에 축적되지 않는다. 오디오 음악 데이터 코드들의 쌍들 (R(50760), L(50760)) 내지 (R(116295), L(116295))의 샘플링된 값들은 헤드 부분의 참조 미가공 데이터로서 기능하고, 기준 시작 시간은 1.15초이다.
중앙 처리 장치(62)가 헤드 부분에 참조 미가공 데이터의 축적을 완료한 때, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 헤드 부분의 참조 미가공 데이터로부터 헤드 부분의 기준 상관 데이터를 생성하도록 요청한다. 헤드 부분의 상관 데이터는 172.27Hz로 샘플링된 오디오 데이터와 동등하다. 디지털 신호 처리기(63)는 헤드 부분의 참조 미가공 데이터로부터 헤드 부분의 기준 상관 데이터를 생성한다. 헤드 부분의 기준 상관 데이터는 오디오 음악 데이터 코드들의 쌍들과 오디오 음악 데이터 코드들의 다른 쌍들 사이의 상관 판정에 사용된다.
도 35는 헤드 부분의 참조 미가공 데이터 혹은 샘플링된 값들(n)로부터 헤드 부분의 기준 상관 데이터를 생성하는 방법을 도시한다. 이 방법은 컴퓨터 프로그램의 형태로 프로그램 메모리에 저장된다. 디지털 신호 처리기(63)가 요청에 확인 에크할 때, 디지털 신호 처리기(63)는 우선 단계 S1에서와 같이, 랜덤 액세스 메모리(64)로부터 참조 미가공 데이터, 즉 오디오 음악 데이터 코드들의 쌍들 (R(n), L(n))의 샘플링된 값들을 판독하고, 단계 S2에서와 같이 입체 음향 오디오 음악 데이터를 모노포닉 오디오 음악 데이터로 변환하기 위해 오디오 음악 데이터 코드들의 쌍들 (R(n), L(n))의 샘플링된 값들의 산술 평균을 계산한다. 입체 음향 오디오 음악 데이터를 모노포닉 오디오 음악 데이터로 변환은 디지털 신호 처리기(63) 상의 부하를 가볍게 만든다.
이어서, 디지털 신호 처리기(63)는 단계 S3에서, 고역 통과 필터링과 동등한 데이터 처리를 통해 산술 평균값들로부터 아날로그 오디오 신호의 직류 성분을 나타내는 값을 제거한다. 계산된 값들은 양과 음의 도메인들에 모두 플롯된다. 상관 판정의 정확도의 관점에서, 계산된 값들이 양과 음의 도메인들 모두에 분산되는 것이 바람직하다. 따라서, 고역 통과 필터링과 동등한 데이터 처리는 상관 판정을 매우 신뢰성있게 만든다.
이어서, 계산된 값들이 단계 S4에서 절대값화된다. 절대값화를 통해 계산된 값들에 대해 샘플링된 값들의 멱수의 대체 값들이 결정된다. 절대값들은 멱수를 나타내는 제곱수들보다 작고, 다음의 데이터 처리에서 다루기가 쉽다. 그럼에도 불구하고, 디지털 신호 처리기(63)가 매우 큰 데이터 처리 용량을 갖는다면, 디지털 신호 처리기(63)는 절대값들 대신 계산된 값들의 제곱수들을 계산할 수 있다.
이어서, 디지털 신호 처리기(63)는 단계 S5에서, 빗 라인 필터와 동등한 데이터 처리를 통해 절대값들로부터 원래 오디오 신호의 파형의 변화의 경향을 나타내는 저주파 성분을 추출한다. 저주파 성분은 보통 저역 통과 필터와 동등한 데이터 처리를 통해 추출되지만, 빗 라인 필터와 동등한 데이터 처리는 저역 통과 필터와 동등한 데이터 처리보다 부하면에서 더 가볍다. 이러한 이유 때문에, 빗 라인 필터와 동등한 데이터 처리, 즉 빗 라인 필터링이 채택된다.
도 36은 빗 라인 필터의 회로 구성을 도시한다. 박스들은 딜레이를 나타내고, 삼각형들은 곱셈기를 나타낸다. "Z-k"는 좌측 박스에 입력되고, "k"는 딜레이 시간이 (샘플링 주기 ×k)와 같음을 나타낸다. 샘플링 주파수는 44100Hz여서, 샘플링 주기가 1/44100초로 된다. 승수는 삼각형들에 배치된다. 도 5에서, "k"는 다음과 같이 주어진다.
Figure 112003030865852-pat00006
승수 "k"로의 곱셈을 통한 데이터 처리는, 빗 라인 필터가 주파수 f에서 하이 패스 필터를 달성하고, 직류 성분이 절대값들로부터 제거되도록 한다. 상관성 분석의 정확도를 증대시키기 위해, 실험적으로 "k"와 "f"를 최적화하는 것이 가능하다.
도 35를 다시 참조하면, 디지털 신호 처리기(63)는 단계 S6에서, 포개진 노이즈로부터 다음 단계의 다운 샘플링을 통해 샘플링된 데이터를 방지하기 위해 로우 패스 필터와 동등한 데이터 처리를 수행한다. 그 다음 단계 S7가 관련하여 설명될 바와 같이, 디지털 신호 처리기(63)는 44100Hz로 샘플링된 값들을 177.27Hz로 다운-샘플링된 값들로 변환하고, 포개진 노이즈가 발생한다. 포개진 노이즈로부터 다운 샘플링된 값들을 방지하기 위해, 86.13Hz, 즉 172.27Hz의 절반보다 고주파수 성분들을 제거하는 것이 필수적이다. 비록 빗 라인 필터가 샘플링된 값들의 쌍들로부터 높은 주파수 성분들을 상당히 제거하더라도, 고주파수 성분들이 샘플링된 값들 내에 여전히 남아있다. 이러한 이유 때문에, 디지털 신호 처리기(63)는 다운-샘플링 전에, 샘플링된 값들로부터 고주파수 성분들을 완전히 제거한다. 디지털 신호 처리기(63)가 큰 데이터 처리 용량을 갖는 경우에, 디지털 신호 처리기(63)는 단계들 S5 및 S6에서의 두 종류의 데이터 처리 대신 고정밀도의 로우 패스 필터링과 동등한 데이터 처리를 수행할 것이다.
이어서, 디지털 신호 처리기(63)는 단계 S7에서, 256 샘플들마다 샘플을 채취한다. 즉, 디지털 신호 처리기(63)는 1/256의 비율로 다운-샘플링을 수행한다. 다운-샘플링이 완료하면, 데이터 양이 65536에서부터 256으로 감소된다. 다운-샘플링 후의 샘플들은 헤드 부분에서의 기준 상관 데이터로서 작용한다. 디지털 신호 처리기(63)의 부하는 다운 샘플링을 통해 가벼워진다. 디지털 신호 처리기(63)가 매우 큰 데이터 처리 용량을 갖는다면, 디지털 신호 처리기(63)는 단계 S6으로부터 단계 S8로 바로 진행한다. 최종적으로, 디지털 신호 처리기(63)는 단계 S8에서와 같이, 헤드 부분의 기준 상관 데이터를 랜덤 액세스 메모리(64)에 저장한다. 따라서, 디지털 신호 처리기(63)는 헤드 부분의 미가공 데이터로부터 헤드 부분의 기준 상관 데이터를 생성하고, 헤드 부분의 기준 상관 데이터를 랜덤 액세스 메모리(64)에 저장한다.
헤드 부분의 제1 참조 미가공 데이터가 인터페이스(65a)에 도달할 때, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 참조 미가공 데이터 내의 특성 이벤트를 찾도록 더 요청한다. 디지털 신호 처리기(63)는 선정된 주파수에서의 저역 통과 필터와 동등한 데이터 처리를 통해 큐 내의 샘플링된 값들의 쌍들로부터 저주 파 성분을 추출하고, 상술한 선정된 주파수보다 더 낮은 다른 선정된 주파수에서의 저역 통과 필터와 동등한 데이터 처리를 통해 큐 내의 샘플링된 값들의 쌍들로부터 극저주파수 성분을 더 추출한다. 서로 다른 주파수에서의 저역 통과 필터링과 동등한 데이터 처리의 완료시, 디지털 신호 처리기(63)는 저역 주파수 성분과 극저주파수 성분을 비교하여, 특성 이벤트가 발생하였는지의 여부를 검사한다. 특성 이벤트는 일종의 플래그이거나 혹은 타이밍 조정에 사용되는 타이밍 데이터이다.
도 37은 특성 이벤트를 나타내는 관리 정보를 생성하는 방법을 도시한다. 이 방법은 디지털 신호 처리기(63)에 의해 실행되는 컴퓨터 프로그램으로서 표현된다.
디지털 신호 처리기(63)가 관리 정보를 생성할 것을 요청받은 때, 디지털 신호 처리기(63)는 단계 S0에서 컴퓨터 프로그램을 시작한다. 디지털 신호 처리기(63)는 단계 S11에서와 같이, 랜덤 액세스 메모리(64) 내의 큐로부터 선정된 개수의 샘플링된 값들의 쌍들을 판독한다. 큐의 테일로부터 데이터 전달이 수행된다. 이 경우, 선정된 개수는 44100이다. 하기의 설명에서, 큐로부터 판독된 샘플링된 값들의 쌍을 "미가공 데이터"로 일컫고, 테일에 샘플링된 값들(n)의 f 쌍을 포함하는 미가공 데이터의 세트는 "미가공 데이터(n)"으로 일컫는다. 관리 정보를 생성할 것을 요청받은 때, 샘플링된 데이터(50760)이 큐의 테일을 점유한다면, 샘플링된 값들의 쌍들 (6601) 내지 (50760)이 랜덤 액세스 메모리(64)로부터 판독되어, 미가공 데이터를 형성한다.
이어서, 단계 S12에서와 같이, 각 쌍의 샘플링된 값들로부터 산술 평균이 계 산된다. 이 대수 연산은 입체 음향 오디오 음악 데이터로부터 모노포닉 오디오 음악 데이터로의 변환과 동등하다. 산술 평균은 디지털 신호 처리기(63)의 부하를 가볍게 만든다.
이어서, 디지털 신호 처리기(63)는 단계 S13에서와 같이, 산술 평균의 절대값들을 결정한다. 절대값화를 통해 멱수의 대체 값들이 결정된다. 절대값들은 멱수를 나타내는 제곱수들보다 작고, 다음의 데이터 처리에서 다루기가 쉽다. 그럼에도 불구하고, 디지털 신호 처리기(63)가 매우 큰 데이터 처리 용량을 갖는다면, 디지털 신호 처리기(63)는 절대값들 대신 계산된 값들의 제곱수들을 계산할 수 있다.
이어서, 디지털 신호 처리기(63)는 단계 S14에서와 같이, 절대값들에 대해 저역 통과 필터와 동등한 데이터 처리를 수행한다. 컷-오프 주파수는 이 경우 100Hz로 가정된다. 저역 통과 필터와 동등한 데이터 처리가 완료시, 샘플링된 값들에 대한 중간-범위 지표가 구해진다. 샘플링된 값들(n)에 대한 중간-범위 지표는 "중기 지표(n)"으로 표현된다. 중기 지표(n)는 중간 범위에서 오디오 파형 내의 샘플링된 값들(n)의 쌍에 대응하는 시간에 변화의 경향을 나타낸다. 일반적으로, 오디오 파형은 단기로 자주 변화된다. 단기 변화는 이전의 샘플링된 값들(n)의 쌍들에 의해 제한되기 때문에, 단기 변화는 저역 통과 필터와 동등한 데이터 처리를 통해, 일련의 샘플링된 값들의 쌍들로부터 제거된다. 그 결과, 중기 변화와 장기 변화를 나타내는 데이터 정보는 디지털 신호 처리기(63)에 남는다. 다시 말해서, , 중기 지표, ...(n-2), (n-1), (n)이 디지털 신호 처리기(63)에 남겨진다. 디지 털 신호 처리기(63)는 단계 S15에서와 같이, 지표를 랜덤 액세스 메모리(64)에 저장하기 위해 중기 지표를 랜덤 액세스 메모리(64)에 전달한다.
이어서, 디지털 신호 처리기(63)는 단계 S16에서와 같이, 빗 라인 필터를 통한 저역 통과 필터링과 동등한 데이터 처리가 수행된다. 단계 S16에서의 컷-오프 주파수는 단계 S14에서의 컷-오프 주파수보다 더 낮다. 이것은 중기 지표에 의해 표현된 파형으로부터 극저주파 성분들을 추출하는 것과 동등하다. 빗 라인 필터와 동등한 데이터 처리는 저역 통과 필터와 동등한 데이터 처리보다 부하면에서 더 가볍기 때문에, 빗 라인 필터가 지털 신호 처리기(63)에 바람직하다.
도 38은 빗형 필터에 대응하는 디지털 프로세싱을 나타낸다. 사각형 및 원들은 직렬로 연결된 두개의 루프를 형성하며, 삼각형은 제2 루프와 데이터 출력 포트 사이에 연결되어 있다. 사각형은 신호 전파에 지연을 도입하고, "Z-k"는 지연 시간이 샘플링 주기와 상수 k의 곱과 같음을 나타낸다. 이하에서 설명할 바와 같이, 샘플링 주파수는 44100 Hz 이다. 이것은 샘플링 주기가 1/44100초임을 의미한다. 삼각형은 승산(multiplication)을 나타내며, "1/k"는 승산자이다. 이하의 설명에서, "k"는 22050으로 가정된다. 1Hz 보다 높은 주파수 성분은 빗형 필터에 대응하는 데이터 처리를 통하여 중기 지표로부터 대략 제거된다. 즉, 단계 S16의 처리의 결과 장기적인 변동을 나타내는 성분들만이 디지털 신호 처리기(63)에 남는다.
계속해서, 디지털 신호 처리기(63)는 플러스의 상수 "h"에 의해 장기적인 변 동을 나타내는 일련의 성분들을 승산처리한다. 다음 단계 S19에서 긍정 응답을 갖는 주파수는 단계 S17에서 승산 처리를 통해 적절한 값으로 조정된다. "h" 값이 작으면, 긍정 결과와 다음의 긍정 결과 사이의 시간 간격이 좁아진다. 긍정 결과 사이의 시간 간격이 지나치게 넓으면, 단계 S11에서 특성 이벤트들은 긴 시간 간격으로 생성되고, 타이밍 조정 처리에서의 정확도가 낮아진다. 한편, 긍정 결과들의 시간 간격이 좁으면, 긍정 결과들은 단계 S20에서 캔슬되는 경향이 있어, 특성 이벤트들이 긴 시간 간격으로 획득된다. 그 결과, 타이밍 조정의 정밀도가 낮아진다. 이 상황에서, 승산자 "h"는 경험적으로 결정된다. 단계 S17에서 승산 처리의 완료 후에, 디지털 신호 처리기(63)에 장기 지표(long-range index)가 남게된다. 샘플값(n)에 대응하는 장기 지표는 이하에서 "장기 지표(n)"이라고 칭한다. 따라서, 장기 지표...(n-2), (n-1) 및 (n)은 단계 S17에서의 데이터 처리의 완료 후에 디지털 신호 처리기(63)에 남게 된다. 디지털 신호 처리기(63)는 장기 지표를 RAM(64)으로 전송하여, 단계 S18에 의해 장기 지표를 RAM(64)의 소정의 메모리 영역에 저장한다.
계속해서, 디지털 신호 처리기(63)는, RAM(64)으로부터, 중기 지표(n)와 장기 지표(n)를 판독하여, 단계 S19에서 이들을 서로 비교하여 중기 지표(n)가 장기 지표(n)와 같거나 큰지의 여부의 판정한다. 단계 S19에서 긍정 결과가 나오는 것은, 참조 미가공 데이터가 도시하는 오디오 파형이, 샘플값(n)에 대응하는 시점에 있어서, 중기적으로 크게 변동하는 것을 나타낸다. 즉, 오디오 파형에 있어서, 1 Hz∼100 Hz 사이의 주파수대에 포함되는 소리의 볼륨이 급속히 커지면, 중기 지표 의 값이 장기 지표의 값보다 커져서, 단계 S19에 있어서의 비교 판정 처리로부터는 긍정인 "예(Yes)"를 얻는다. 그러면, 디지털 신호 처리기(63)는 비교가 긍정 결과를 가져온 현재 시점에 대한 내부 클럭을 체크하여, RAM(64)에 저장한다.
계속해서, 디지털 신호 처리기(63)는 RAM(64)으로부터 이전에 긍정 결과를 취득했던 시간 정보의 기록을 판독하여, 현재 시간으로부터 이전에 긍정 결과를 취득했던 시간을 감산하여, 단계 S20에서 그 차이가 소정값 τ 이하인지의 여부를 판정한다. 그 차이가 소정값 τ보다 크면, 이전의 특성 이벤트의 생성으로부터 긴 시간이 지난 것이다. 따라서, 단계 S20에서의 데이터 처리는 중앙 처리 장치가 짧은 시간 간격에 많은 특성 이벤트를 생성하는 것을 방지한다. 만약, 특성 이벤트가 너무 많으면, 콤팩트 디스크 CD-B로부터 판독된 오디오 음악 데이터 코드의 일련의 샘플값들의 특성 이벤트들을 콤팩트 디스크 CD-A에 저장된 음악 데이터 코드 (R(n), L(n))의 샘플값으로부터 생성된 특성 이벤트에 정확하게 대응하는 것이 어렵게 된다. 소정값 τ는 경험적으로 결정된다. 물론, 디지털 신호 처리기(63)가 최초의 긍정 결과를 획득하는 경우, RAM(64)에는 어느 시간도 없다. 이 상황에서, 단계 S20에서의 결과는 자동적으로 부정으로 된다.
단계 S20에서 부정의 결과가 나오면, 디지털 신호 처리기(63)는 단계 S21에서 특성 이벤트를 생성하고, 중앙 처리 장치(62)로 특성 이벤트를 통지한다.
단계 S19에서의 결과가 부정으로 되면, 디지털 신호 처리기는 단계 S22로 진행한다. 단계 S20에서의 결과가 긍정인 경우에, 디지털 신호 처리기(63)는 단계 S22로 진행한다. 디지털 신호 처리기(63)는 또한 단계 S21에서의 작업의 완료 후 에 단계 S22로 진행한다. 디지털 신호 처리기(63)는 오디오 음악 데이터 코드의 다음 쌍 (R(n+1), L(n+1))를 대기한다. 음악 데이터 코드의 다음 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 샘플값 (n+1)의 쌍을 오디오부(4C)으로 전송하고, 샘플값 (n+1)과 도착 시간이 RAM(64)의 큐에 포함된다. 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 데이터 처리를 다시 반복할 것을 요청한다. 그 다음에, 디지털 신호 처리기(63)는 RAM(64)으로부터 샘플값 (n+1)의 쌍을 말미로 하는 참조 미가공 데이터를 페치하고, 단계 S11로 되돌아 간다..
따라서, 디지털 신호 처리기(63)는, 미가공 데이터가 마지막 쌍의 샘플값을 포함할 때까지 단계 S11 내지 단계 S22를 포함하는 루프를 반복할 수 있다. 그러므로, 디지털 신호 처리기(63)는 미가공 데이터 또는 오디오 음악 데이터 코드로부터 악곡의 진행 중에 복수의 특성 이벤트들을 추출할 수 있다.
본 발명은 도 37에 도시된 컴퓨터 프로그램에 의해 표현된 데이터 처리를 확인한다. 단계 S14의 로우 패스 필터로서, IIR(Infinite Impluse Response) 필터가 사용되었다. 단계 S17의 상수 "h"는 4이고, 기간 τ는 0.55초이었다. 데이터 처리는 도 39에 도시된 플롯 PL16E 및 PL17E와, 특성 이벤트를 발생시킨다. 플롯 PL16E는 중기 지표를 나타내고, 플롯 PL17E는 장기 지표를 나타낸다. 중기 지표 PL16E가 장기 지표 PL17E와 같거나 또는 장기 지표 PL17E를 초과하면, 디지털 신호 처리기(63)는 특성 이벤트를 생성한다. 큰 원에 도시된 바와 같이, 포인트 B와 C까지 소정의 기간인 0.55초를 경과하지 않기 때문에, 중기 지표가 A, B 및 C에서 장기 지표를 초과함에도 불구하고, 디지털 신호 처리기(63)는 특성 이벤트를 A 에서만 생성한다. 악곡 NA로부터 추출된 특성 이벤트는 "참조 특성 이벤트"로서 지칭된다.
콤팩트 디스크 드라이버(1E)가 제어기(6E)를 통하여 오디오 음악 데이터 코드를 음악 유닛(4E)으로 전송할 때, 사용자는 악곡을 연주할 준비를 한다. 음악 유닛(4E)을 통하여 전자 톤이 생성되는 동안에, 사용자는 선택적으로 흑/백 키를 눌렀다 풀었다 하고, 페달(31e)을 밟는다. 어커스틱 피아노 음조는 스트링(31d)의 진동을 통하여 생성되고, 키 센서(32) 및 페달 센서(33)는 키 움직임 및 페달의 움직임을 제어기(34)에 통지한다. 제어기(34)는 노트-온(note-on) 이벤트, 노트-오프(note-off) 이벤트 및 효과를 나타내는 이벤트 코드를 생성하고, 노트 이벤트 코드를 인터페이스(65a)에 제공한다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)로부터의 특성 이벤트 코드 뿐만 아니라, 자동 연주 피아노(3E)로부터의 노트 이벤트 코드를 수신한다.
도 40은 사전 기록 모드의 앙상블 동안에 생성된 특성 이벤트와 노트 이벤트를 도시한다. 중기 지표와 장기 지표는 각각 플롯 PL16E 및 플롯 PL17E에 의해 표시되는 바와 같이 변화하고, 시간은 횡축을 따라 우측으로 진행한다. 첫번째 특성 이벤트는 첫번째 오디오 음악 데이터 코드 쌍의 도착, 즉 기준 시작 시점으로부터 1.51 초에서 발생하고, 다른 특성 이벤트는 2.38초, 4.04초,...에 발생한다. 한편, 중앙 처리 장치(62)는 2.11초에 제1 이벤트 코드를 수신하고, 다른 이벤트 코드들은 인터페이스(65a)에 2.62초, 3.06초,...의 시간이 경과한 시점에 도착한다. 따라서, 특성 이벤트 코드와 노트 이벤트 코드들은 연주 동안에 실시간 방식으로 생성된다. 1.78초의 시점에서 중기 지표 PL16E가 장기 지표 17E를 초과함에도 불구하고, 0.55초를 경과하지 않았기 때문에, 중앙 처리 장치(62)는 1.78초의 시점에서 어떠한 특성 이벤트도 수신하지 않는다.
중앙 처리 장치(62)에 참조 특성 이벤트 코드가 통지되면, 중앙 처리 장치(62)는 참조 특성 이벤트르 그 안에 저장하기 위한 시스템 독점 이벤트 코드(system exclusive event code)를 생성하고, 내부 클럭을 체크하여 참조 특성 이벤트가 어느 시점에 도착했는지를 조사한다. 중앙 처리 장치(62)는 도착 시간을 나타내는 델타 타임 코드를 생성하여, 델타 타임 코드와 참조 특성 이벤트 코드를 RAM(64)에 저장한다.
마찬가지로, 중앙 처리 장치(62)는 노트 이벤트 코드를 수신하면, 내부 클럭을 체크하여 어느 시점에 노트 이벤크 코드가 도착했는지를 확인한다. 중앙 처리 장치(62)는 수신한 노트 이벤트 코드의 도착 시각을 나타내는 델타 타임 코드를 생성하고, 델타 타임 코드와 노트 이벤트 코드를 RAM(64)에 저장한다.
콤팩트 디스크 드라이버(1E)가 오디오 음악 데이터 코드의 최종 쌍을 송신하는 것으로 가정하면, 최종 쌍의 오디오 음악 데이터 코드들의 샘플값은 도착 시간과 함께 큐의 말미에 들어가고, 디지털 신호 처리기(63)는 참조 특성 이벤트를 찾기 위해 말미에 샘플값의 최종 쌍을 포함하는 미가공 데이터들에 대해 데이터 처리를 수행한다. 최종 데이터 처리의 완료 후에, 중앙 처리 장치(62)는, 오디오 음악 데이터 코드쌍의 세트에 악곡 N의 종료 부분을 찾기 위한 컴퓨터 프로그램으로 분 기된다.
상세하게는, 중앙 처리 장치(62)가 특성 이벤트에 대한 데이터 처리를 완료할 때에, 최후의 샘플값과 다른 1322999 쌍의 샘플값이 도착 시간과 함께 큐에 들어와 있다. 샘플값의 최종쌍이 샘플값 (7673399)의 쌍인 경우, 큐에는 샘플값(6350400)의 쌍 내지 최종 샘플값(7673399)의 쌍이, 각각의 샘플값에 대응하는 도착 시간 정보와 함께 기록되어 있다.
중앙 처리 장치(62)는 큐에 기록되어 있는 말미의 샘플값쌍을 판독하여, 판독한 샘플값쌍의 적어도 어느 한 값이 임계치, 이 경우에 1000을 넘고 있는지의 여부의 판정 처리를 행한다. 임계치 판정 처리에 있어서 부정인 결과가 얻어진 경우, 중앙 처리 장치(62)는 큐의 말미로부터 2번째로 기록되어 있는 샘플값 쌍을 판독하여, 판독한 샘플값 쌍에 대하여 샘플값의 적어도 한 값이 임계치를 초과하고 있는지의 여부를 판정한다. 결과가 부정으로 주어지면, 중앙 처리 장치(62)는 큐의 선두를 향하여 순차 샘플값 쌍을 판독하고, 샘플값과 임계값과의 비교를 반복한다.
샘플값 (7634297) 중의 하나는 임계값을 초과하는 것으로 가정한다. 샘플값 (7634928)에 대한 샘플값 (7673399)은 임계치를 초과하지 않는다. 이것은 오디오 음악 데이터 코드 세트의 종료에서 0.89초 동안 침묵이 있음을 의미한다. 임계값보다 큰 적어도 하나의 샘플값을 포함하는 샘플값은, 이하에서 "샘플값 (Z)"으로 지칭된다. 악곡 N은 샘플값 (Z)에서 완료된다. 중앙 처리 장치(62)가 오디오 음악 데이터 코드의 세트에서 샘플값(Z)을 찾으면, 중앙 처리 장치(62)는 악곡의 끝 을 찾는 것을 계속하지 않는다.
악곡의 끝부분에 대한 큐에서의 검색을 위한 데이터 처리의 완료 후에, 중앙 처리 장치(62)는 끝부분 또는 종료의 음악 데이터 부분에서 참조 상관 데이터 부분을 찾기 위한 컴퓨터 프로그램으로 분기한다. 중앙 처리 장치(62)는 미가공 데이터로부터의 끝부분에서 참조 상관 데이터 조각들, 즉 컴퓨터 프로그램에 의해 표현되는 데이터 처리를 통한 큐의 샘플값들을 생성한다. 컴퓨터 프로그램은 디지털 신호 처리기(63)에 의해 실행되어질 여러개의 작업과 함께 도 41에 도시되어 있다.
이하의 설명에서, 샘플값(W)은 큐의 선두를 차지하고, "W"와 "Z"는 6350400 및 7634297로 가정된다. 이것은, 샘플값 (7673399)에 대한 샘플값 (6350400)이 도착 시간의 정보와 함께 큐에 들어왔음을 의미한다. 샘플값 (7634297)은 악곡 N을 점유하고 있다. 또한, 샘플값(n)를 말미로 하는 65536조의 일련의 샘플값을 "종단부의 미가공 데이터 (n)"이라고 칭하며, 샘플값쌍은 종단부에서 미가공 데이터의 끝 부분을 점유한다.
중앙 처리 장치(62)는 우선, 카운터 i 및 카운터 j를 "Z"로, 즉 단계 S31에서 각각 7634297 및 0으로 설정하고, 디지털 신호 처리기에 대하여, 종단부(i-j)의 참조 미가공 데이터로부터 종단부에서 참조 상관 데이터를 생성할 것을 요구한다. 종단부에서 참조 상관 데이터를 생성하기 위한 데이터 처리는 이전에 이미 설명한 헤드부에서 참조 상관 데이터를 생성하기 위한 데이터 처리와 유사하다. 데이터 처리의 완료 후에, 디지털 신호 처리기(63)는 단계 S32에서 종단부의 256개의 참조 상관 데이터를 RAM에 저장한다. 따라서, 종단부에서의 참조 미가공 데이터(n)으로 부터 256 개의 참조 상관 데이터 (n)을 획득한다. (i-j)가 7634297이기 때문에, 종단부의 참조 상관 데이터 (7634297)은 RAM(64)에 저장된다.
계속해서, 중앙 처리 장치(62)는 카운터 j를 체크하여 카운터 j가 단계 S33에서 881999에 도달했는지의 여부를 판정한다. 카운터 j에 저장된 값이 881999 보다 작아 단계 S33에서의 결과가 부정으로 되고, 단계 S34에서 중앙 처리 장치(62)는 카운터 j를 1만큼 증분한다. 카운터 j를 증분한 후에, 중앙 처리 장치(62)는 단계 S31로 돌아간다. 따라서, 중앙 처리 장치는 미가공 데이터의 끝을 1 만큼 시계 방향으로 시프트하고, 20초에 대응하는 샘플값의 쌍에 대해 단계 S32 내지 단계 S34를 포함하는 데이터 처리를 881999회 반복한다. 즉, 종단부에서의 미가공 데이터는 882000회 갱신된다. 디지털 신호 처리기(63)가 샘플값의 65536쌍의 882000번째 세트에서 데이터 처리를 완료하면, 중앙 처리 장치(62)는 881999가 되는 카운터 j를 찾아, 단계 S33에서 긍정으로 변한다. 단계 S33에서 긍정인 결과가 나오면, 참조 상관 데이터 (7634297), 참조 상관 데이터 (7634296), ... 및 참조 상관 데이터 (6752298)은 RAM(64)에 저장된다.
다음에, 중앙 처리 장치(62)는 단계 S35에서 디지털 신호 처리기(63)에 대하여 참조 상관 데이터 (i)와 참조 상관 데이터 (i-j) 사이의 상관 판정을 수행할 것을 요청한다. 디지털 신호 처리기(63)는 두세트의 오디오 데이터 사이의 유사성을 판정하고, 도 42를 참조로 하여 이하에서 설명될 바와 같이 상관 판정에 대한 데이터 처리를 행한다.
중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 상관 판정을 수행할 것을 요청하고, 중앙 처리 장치(62)는 "소스 오디오 데이터(source audio data)"와 "분석되어질 오디오 데이터(audio data to be analyzed)"를 지정한다. 이 경우, 소스 오디오 데이터는 종단부에서는 참조 상관 데이터 (i)이고, 분석되어질 오디오 데이터는 참조 상관 데이터 (i-j)이다. 소스 오디오 데이터는 X(0)∼X(255)로써 표현되며, 분석되어질 오디오 데이터는 Ym(0)∼Ym(255)로서 표현된다. 단, "m"은 (i-j)이고, 샘플값 쌍의 세트의 말미에서의 샘플값 (n)의 쌍의 "n"과 동일하다.
디지털 신호 처리기(63)는 상관 판정에 대한 요청을 응답 확인할 때, 참조 상관 데이터 (i)와 참조 상관 데이터 (i-j)를 판독한다.
그 다음에, 디지털 신호 처리기(63)는 절대 상관 지표를 결정하고, 절대 상관 지표 IDXEa를 상수 p와 비교하여, 절대 상관 지표 IDXEa가 상수 p 이상인지의 여부를 알아본다.
Figure 112003030865852-pat00007
수학식 7의 좌변은 절대 상관 지표 IDXEa를 나타내고, 상수 p는 0부터 1까지의 범위의 값을 나타낸다. 첫번째 계산에서, "i"는 7634297이고, m은 (i-j), 즉 6752298과 같다. 소스 오디오 데이터 X(0)∼X(255)는 각각 분석되어질 오디오 데이터 Ym(0)∼Ym(255)와 밀접하며, 절대 상관 지표 IDXEa는 1보다 큰 값을 갖는다. 수학식 7을 만족하면, 결과는 악곡이 다른 악곡과 매우 높게 상관되어 있으며, 악곡이 서로 대응한다는 것을 나타낸다. 즉, 첫번째 악곡이 다른 악곡과 다르더라 도, 악곡의 일부분을 나타내는 소스 오디오 데이터 X(0)∼X(255)와, 다른 악곡을 나타내는 분석되어질 오디오 데이터 Ym(0)∼Ym(255)는 제1 악곡과 제2 악곡이 서로 대응되는 한 수학식 7을 만족시킨다. 그러나, 악곡과 다른 악곡이 악곡의 다른 부분을 형성하는 경우, 소스 오디오 데이터 X(0)∼X(255)와, 분석되어질 오디오 데이터 Ym(0)∼Ym(255)는 수학식 7을 만족시키지 못한다. 간단히 말해서, 상수 p는 상술한 방식으로 수학식 7을 통한 시험 결과를 발생시키기 위하여 경험적으로 최적화된다.
디지털 신호 처리기는 상대 상관 지표 IDEXr를 더 결정하고, 상대 상관 지표 IDEXr를 상수 q와 비교하여 상대 상관 지표 IDEXr가 상수 q 이상인지의 여부를 확인한다.
Figure 112003030865852-pat00008
수학식 8의 좌변은 상대 상관 지표 IDEXr을 나타내고, 0∼1의 범위의 값을 갖는다. 소스 오디오 데이터 X(0)∼X(255)에 의해 표현되는 오디오 파형이 분석되어질 오디오 데이터 Ym(0)∼Ym(255)에 의해 표현되는 오디오 파형과 더 유사할수록, 상대 상관 지표 IDEXr은 1에 가까와진다. 소스 오디오 데이터 X(0)∼X(255)에 의해 표현되는 오디오 파형이 분석되어질 오디오 데이터 Ym(0)∼Ym(255)에 의해 표현되는 오디오 파형과 유사할지라도, 동적 범위는 이들 오디오 파형 사이에서 다를 수 있다. 이 상황에서, 절대 상관 지표 IDXEa의 값은 변동한다. 반면에, 상대 상관 지표 IDEXr는 동적 범위가 다른 것에 아무 영향도 받지 않는다. 오디오 파형이 서로 유사한 경우, 상대 상관 지표 IDEXr은 동적 범위에서의 차이에 관계없이 1에 가까와진다.
수학식 7 및 8에 대한 양 식의 답이 긍정으로 변경되었다고 가정한다. 디지털 신호 처리기(63)는 단계 S52로 진행하고, 수학식 9 및 10에서 변화율(rate of change)을 계산한다.
Figure 112003030865852-pat00009
Figure 112003030865852-pat00010
X(0)∼X(255) 및 Ym(0)∼Ym(255) 사이의 곱의 합은 이하의 설명에 있어서 "상관값(correlation value) RE"이라고 칭한다. 수학식 9의 좌변은 값 (m)에서의 상관값 RE의 변화율이다. 소스 오디오 데이터 X(0)∼X(255)이 각각 분석되어질 오디오 데이터 Ym(0)∼Ym(255)과 쌍을 이루는 경우, 상관값 RE는 각 쌍의 값이 서로 가까와 진다는 조건 하에서 커지게 된다. 더욱이, 상관값 RE가 m에 관하여 그래프 그려지면, 변화율은 상관값 RE의 함수 상의 극값에서 0이 된다. 따라서, 디지털 신호 처리기(63)는 수학식 9를 통해 극값에 대한 상관값 RE를 체크한다.
그 다음에, 디지털 신호 처리기(63)는 함수 f(RE)를 다시 미분하고 체크하여, 극값이 로컬 최대값 MX인지의 여부를 알아본다. 따라서, 디지털 신호 처리기(63)는 오디오 데이터 X(0)∼X(255)과 Ym(0)∼Ym(255)를 체크하여 단계 S52에서 상관값 RE가 함수 상의 로컬 최대값인지의 여부를 알아본다.
더욱 상세하게는, 이 경우에 오디오 데이터 X(0)∼X(255)과, 분석되어질 오디오 데이터 Ym(0)∼Ym(255)는 이산값이다. 수학식 9의 좌변이 엄밀히 0을 취하는 것은 매우 드물다. 이 때문에, 단계 S52에서의 판정 처리는 다음과 같이 수행된다. 우선, 디지털 신호 처리기(63)는 X(0)∼X(255)과 Ym(0)∼Ym(255)의 곱의 합과, X(0)∼X(255)와 Ym-1(0)∼Ym-1(255)의 곱의 합과의 차 Dm을 계산한다. 그 다음에, 디지털 신호 처리기(63)는 차 Dm과 Dm-1을 체크하여 차 Dm-1이 0보다 큰지의 여부 및 차 Dm이 0 이하인지의 여부를 알아본다. 만약 양측의 답이 긍정으로 되면, 즉 Dm-1이 0보다 크고, Dm이 0 이하이면, 변화율은 플러스 값으로부터 0으로 변화하거나 또는 0을 걸쳐 변화하는 것이다. 그 다음에, 디지털 신호 처리기(63)는 극값이 로컬 최대값인지 또는 로컬 최대값의 근사치인지를 판정한다. 이 경우 단계 S52에서의 판정 결과가 긍정이 된다. 한편, 적어도 하나의 결과가 부정으로 되면, 단계 S52에서의 판정 처리의 결과는 부정으로 된다.
단계 S52에서의 판정 결과가 긍정인 경우, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에 대하여, 분석될 오디오 데이터(Ym(0) 내지 Ym(255))가 소스 오디 오 데이터(X(0) 내지 X(255))와 높게 상관되어 있다는 것을 의미하는, 성공을 통지한다.(단계 S53). 단계 S51 또는 S52에서의 판정 결과가 NO인 경우, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에 대하여, 분석될 오디오 데이터(Ym(0) 내지 Ym(255))에 대응하는 파형이 소스 오디오 데이터(X(0) 내지 X(255))에 대응하는 파형과 유사하지 않다는 것을 의미하는, 실패를 통지한다(단계 S54).
도 43은, 단계 S51 및 S52에 사용되는 식을 통해 계산되는 값들을 나타낸다. 도면 PL21은 상수 p와 식 7의 좌변의 분모와의 곱을 나타내고, 도면 PL22는 식 7의 좌변의 분자를 나타낸다. 도면 PL23은 상수 q와 식 8의 좌변의 분모와의 곱을 나타내고 도면 PL24는 식 8의 좌변의 분자를 나타낸다. 도면 PL25는 식 9의 좌변을 나타낸다. 실험은 다음의 조건하에서 실행된다. 1단의 IIR 필터가 25Hz(도 35의 단계 S3을 참조)에서 하이 패스 필터로 사용되고, 빗형 필터에서 k 및 f는 각각 4410 및 1이다(단계 S5를 참조). 1단의 IIR 필터가 25Hz에서 로우 패스 필터로 사용되고(단계 S6을 참조), 상수 p 및 q는 각각 0.5 및 0.8이다. 식 7은, m이 범위 A 내에 있는 한 만족되고, 식 8은 m이, 범위 A 이내인, 범위 B 내에 있는 조건하에서 만족된다. m이, 범위 B 이내인, C인 경우, 식 9가 만족되고, 식 10도 C에서 만족된다. 따라서, 단계 S52에서의 결과가 C에서 긍정으로 주어진다.
도 41로 돌아가서, 디지털 신호 처리기(63)가 중앙 처리 장치(62)에게 실패를 통지하면, 중앙 처리 장치(62)는 단계 S37에서 "i-j"을 1씩 감소시키고(단계 S37) 다시, 디지털 신호 처리기(62)에게 상관 판정을 요구한다. 반대로, 식 7, 8, 9 및 10이 만족될 경우, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 성공을 통지하고 단계 S36에서 결과는 긍정으로 주어진다. 중앙 처리 장치(62)가 디지털 신호 처리기(63)에게 먼저 상관 판정을 실행하도록 요구할 경우, 소스 오디오 데이터는 참조 상관 데이터(7634297)의 일부분들에 대응하고, 분석될 오디오 데이터는 참조 상관 데이터(6752298)의 일부분들에 대응한다. 일반적으로 상관 판정은 실패로 되고 중앙 처리 장치(62)는 단계 S37을 통해 단계 S35로 돌아간다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 협력하고 단계 S35 내지 S37을 포함하는 루프를 반복한다.
20초 동안의 톤 및/또는 무음과 등가인, 오디오 데이터 NA의 단부 내의 소스 오디오 데이터에 의해 표시되는 오디오 파형과 유사한 임의의 오디오 파형이 존재하지 않는다면, 단계 S35, S36 및 S37을 포함하는 루프가 881999회 반복되고, 단계 S35에서의 상관 판정은 882000회 반복된다. 소스 오디오 데이터, 즉 "i"가 변하지 않더라도, 분석될 오디오 데이터, 즉 "j"는 변한다. 소스 오디오 데이터가 참조 상관 데이터(7634297)의 일부분들에 대응될 경우, 분석될 오디오 데이터는 참조 상관 데이터(6752299)의 일부분, 참조 상관 데이터(6752300)의 일부분 ....을 통해 참조 상관 데이터(6752298)의 일부분으로부터 변화된다. 제882000 상관 판정이 완료된 경우, "j"는 1이 되고 분석될 오디오 데이터는 소스 오디오 데이터와 동일하게 된다. 이는 단계 S36에서 긍정의 결과를 초래한다.
단계 S36에서의 판정결과가 긍정인 경우, 중앙 처리 장치(62)는 "j"를 체크하여 분석될 오디오 데이터가 소스 오디오 데이터와 동일한지 여부를 확인한다(단계 S38). 20초에 해당하는 단부의 소스 오디오 데이터로 표시되는 것과 동일한 임 의의 오디오 파형이 존재하지 않으면, 분석될 오디오 데이터가 소스 오디오 데이터와 동일하게 되고 단계 S38에서의 판정결과가 긍정으로 될 때까지 단계 S36에서의 판정은 계속해서, 부정이 될 것이다. 그 후, 중앙 처리 장치(62)는 RAM(64) 내에 상관 데이터(i)의 일부분 및 그 도착 타임을 저장한다. 다음의 설명에서, "기준 종료 오디오 데이터" 및 "기준 종료 타임"이라는 용어는 각각 RAM(64) 내에 저장된 참조 상관 데이터 및 그 도착 타임을 의미한다. 디지털 신호 처리기(63)가 중앙 처리 장치(62)에게 먼저 상관 판정의 성공을 통지하면, "i"는 7634297이 되고, 샘플링된 값(7634297)의 쌍의 도착 타임, 즉 173.11초는 기준 종료 타임으로서 RAM(64) 내에 저장된다.
반대로, 디지털 신호 처리기(62)가 20초에 해당하는 분석될 오디오 데이터 내에 소스 오디오 데이터로 표시되는 오디오 파형과 유사한 오디오 파형을 발견할 경우, 단계 S35 내지 S37을 포함하는 루프가 881999회 반복되기 이전에 상관 판정에서 식 7, 8, 9 및 10이 만족되고, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 성공을 통지한다. 그 후, 단계 S36에서의 결과가 긍정으로 주어진다. 그러나, 단계 S38에서의 결과가 부정으로 주어진다. 단계 S38에서의 결과가 부정이면 중앙 처리 장치(62)는 "i", 즉 W + 65536 +881999의 합 또는 W + 947535의 합이 7297935와 동일한지 여부를 조사한다(단계 S40). 소스 오디오 데이터가, 큐의 헤드로부터 카운트된 제882000 참조 상관 데이터가면, 단계 S40에서의 결과는 긍정으로 주어진다. 중앙 처리 장치(62)가 먼저 소스 오디오 데이터를 조사하는 경우, "i"는 Z가 되고, 이는 7634297과 동일하며, 단계 S40에서의 결과가 부정으로 주어 진다. 그 후, 중앙 처리 장치는 "i"를 1씩 감소시키고 "j"를 881999까지 변화시킨다(단계 S41). 중앙 처리 장치(62)는 단계 S32로 돌아간다. "i"가 1씩 감소되고 "j"는 88199까지 변화되기 때문에, 참조 미가공 데이터(i-j)의 일부분이 큐의 헤드로 1씩 이동된다.
중앙 처리 장치(62)는 먼저 단계 S41에서의 작업을 달성하는 것으로 가정한다. "i"가 7634296이기 때문에, 중앙 처리 장치(62)는 단계 S32에서 참조 상관 데이터(6752297)에 대한 상관 판정을 실행한다. 이는 상관 데이터(6752297)의 일부분들이 상관 데이터(7634297) - (6752298)의 일부분과 함께 RAM(64)에 새롭게 저장된다는 것을 의미한다. j가 881999이기 때문에, 단계 S33에서의 결과가 긍정으로 주어진다. 중앙 처리 장치(62)는 단계 S35로 진행하고 단계 S35 내지 S37을 포함하는 루프를 반복한다. 디지털 신호 처리기(63)가 중앙 처리 장치(62)에게 성공을 통지할 경우, 단계 S36에서의 결과는 긍정으로 주어지고, 중앙 처리 장치(62)는 단계 S38로 진행한다. 앞서 설명한 바와 같이, 20초에 상당하는 오디오 데이터 NA의 단부 내의 테일(tail)에 샘플링된 값(i)을 갖는 소스 오디오 데이터로 표시되는 오디오 파형과 유사한 임의의 다른 파형이 없는 경우, "j"는 0이고, 중앙 처리 장치(62)는 RAM(64) 내에 기준 종료 오디오 데이터 및 기준 종료 타임을 저장하기 위해 단계 S39로 진행한다.
반대로, 단계 S38에서의 결과가 부정으로 주어지면, 중앙 처리 장치(62)는 단계 S40으로 진행한다. 따라서, 중앙 처리 장치(62) 및 디지털 신호 처리기(63)는, 단계 S38에서의 결과가 긍정으로 주어질 때까지, S32 내지 S38, S40 및 S41을 포함하는 루프를 반복한다. 중앙 처리 장치(62) 및 디지털 신호 처리기(63)가 루프를 반복할 경우, 중앙 처리 장치(62)는 단계 41에서 "i"를 1씩 감소시킨다. 큐 내의 샘플링된 값이 일정한 오디오 파형을 나타내면, 단계 S38에서의 결과는 결코 긍정으로 변화되지 않는다. 결과적으로, "i"는 W와 947535의 합, 즉 7297935와 동일하게 된다. 그 후, 단계 S40에서의 결과는 긍정으로 변화된다. 단계 S40에서 긍정의 결과가 나오는 경우, 중앙 처리 장치(62)는 조작 패널/표시부(5)에 에러 메시지를 생성하도록 요청한다(단계 S42). 에러 메시지는, 기준 종료 오디오 데이터 및 기준 종료 타임에 대한 데이터 처리가 실패했다는 것을 의미한다.
중앙 처리 장치(62)는 기준 종료 오디오 데이터 및 기준 종료 타임을 생성하기 위한 데이터 처리를 성공적으로 완료한 것으로 가정한다. 중앙 처리 장치(62)는 RAM(64)으로부터 (1) 참조 상관 데이터 헤드 부분, (2) 기준 개시 타임, (3) 노트 이벤트(note event), (4) 기준 종료 오디오 데이터 및 (5) 기준 종료 타임을 판독하고, 이러한 데이터 코드들로부터 트랙 청크(track chunk)를 제조한다. 중앙 처리 장치(62)는 헤더 청크를 트랙 청크에 추가한다. 표준 MIDI 파일이 완료된 경우, 중앙 처리 장치(62)는 표준 MIDI 파일을 플로피 디스크 드라이버(2C)에 제공하고 플로피 디스크 드라이버(2C)에게 플로피 디스크(FD) 내의 표준 MIDI 파일을 저장하도록 요구한다.
도 44는 표준 MIDI 파일의 데이터 구조를 보여준다. 표준 MIDI 파일은 헤더 청크 및 트랙 청크로 분해된다. 시스템 익스클루시브 이벤트 코드(system exclusive event code) 및 노트 이벤트 코드들은 각각 델타 타임 코드와 연관되고 트랙 청크 내에 저장된다. 제1 시스템 익스클루시브 이벤트 코드는 참조 상관 데이터 헤드부의 일부분 및 1.15초를 나타내는 기준 개시 타임에 할당된다. 제2 시스템 익스클루시브 이벤트 코드는 기준 종료 오디오 데이터 및 173.11초를 나타내는 기준 종료 타임으로 할당된다. 델타 타임 코드가 제1 및 제2 시스템 익스클루시브 이벤트 코드들에 대해 0.00초를 나타내더라도, 이러한 시스템 익스클루시브 이벤트 코드들은 다른 장소 또는 트랙 청크 내의 장소들로 이동될 수 있고 델타 타임 코드들은 다른 경과 시간을 나타낸다. 제3 내지 최종 시스템 익스클루시브 이벤트 코드들은 노트 이벤트 코드들과 혼합되고, 이러한 시스템 익스클루시브 이벤트 코드들 및 노트 이벤트 코드들은 각각 델타 타임 코드들을 동반한다. 이 경우, 제3 시스템 익스클루시브 이벤트 코드 및 제4 시스템 익스클루시브 이벤트 코드들은 참조 특성 이벤트들을 나타내고 이러한 참조 특성 이벤트들은 각각 1.51초 및 2.38초에서 발생한다. 제1 노트 이벤트는 2.11초에서 발생하고, 어쿠스틱 피아노 톤은 C5에서 생성될 것이다.
도 45는 오디오 데이터 NA로 표시되는 오디오 파형과 표준 MIDI 파일에 저장된, 시스템 익스클루시브/노트 이벤트들 사이의 관계를 나타낸다. 도면 NA는 콤팩트 디스크 CD-A에 기록된 오디오 데이터로 표시되는 오디오 파형을 나타내고, 타임은 오른쪽으로 진행한다. 오디오 파형은 1.15초까지 무음을 나타내고, 전기 톤은 무음 이후에 생성된다. 이 경우, 기준 개시 타임은 1.15초이다.
1.15초부터 2.64초까지의 오디오 음악 데이터 코드들의 쌍은 참조 미가공 데이터의 역할을 하고, 참조 상관 데이터 헤드부는 참조 미가공 데이터 헤드부로부터 생성된다. 특성 이벤트는 참조 미가공 데이터 헤드부로부터 추출된다. 도면 PL16E 및 PL17E는 각각 중기 지표 및 장기 지표를 나타낸다.
171.63초부터 173.11초까지의 오디오 음악 데이터 코드들의 쌍들은, 참조 미가공 데이터 종료 부분의 역할을 하고, 기준 종료 오디오 데이터는 참조 미가공 데이터 종료 부분으로부터 생성된다. 이 경우, 샘플링된 값의 쌍들중 하나는 173.11의 경과 시간이 기준 종료 타임으로서 표준 MIDI 파일에 저장되도록 173.11초에서 임계값보다 낮게 된다.
동기 재생(Synchronous Playback)
동기 재생 모드에 대해 이하 설명될 것이다. 콤팩트 디스크 CD-B는 동기 재생에 사용된다. 음악의 일부가 콤팩트 디스크 CD-B에 기록되더라도, 콤팩트 디스크 CD-B 내의 음악의 일부는 콤팩트 디스크 CD-A에 기록된 음악의 일부와는 다르게 편집된다. 이는, 무음 타임, 동적 범위 및 톤들 사이의 타임 간격이 콤팩트 디스크 CD-A에 기록된 음악의 일부분과 콤팩트 디스크 CD-B에 기록된 음악의 동일한 부분과의 사이에 차이가 있다는 것을 의미한다. 이러한 이유때문에, 콤팩트 디스크 CD-B에 저장된 오디오 데이터는 이하에서 "오디오 데이터 NB"로 나타낸다.
사용자는 콤팩트 디스크 CD-B를 콤팩트 디스크 드라이버(1E)에 탑재하고, 표준 MIDI 파일이 저장되어 있는 플로피 디스크 FD를 플로피 디스크 드라이버(2E)에 탑재한다. 이어서, 사용자는 제어기(6E)에, 콤팩트 디스크 CD-B에 기록된 음악의 일부분의 재생과 양호한 앙상블로 키보드(31e) 상에 연주를 재생하도록 지시한다.
중앙 처리 장치(62)가 사용자의 지시를 수신확인한 경우, 중앙 처리 장치(62)는 플로피 디스크 드라이버(2E)에게 시스템 익스클루시브 이벤트 코드들, 그의 델타 타임 코드, 노트 이벤트 코드들 및 그 델타 타임 코드들을 플로피 디스크(FD)로부터 인터페이스(65a)로 전송하도록 요구한다. 플로피 디스크 드라이버(65a)가 데이터 코드들을 인터페이스(65a)로 전송하는 동안, 중앙 처리 장치(62)는 시스템 익스클루시브 이벤트 코드들, 그들의 델타 타임 코드들, 노트 이벤트 코드들 및 그들의 델타 타임 코드들을, 그들을 저장하기 위한 RAM(64)으로 전송한다.
먼저, 노트 이벤트들을 재스케쥴링하기 위하여 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 협력한다. 연주 이전의 무음 및 연주 이후의 무음은 오디오 데이터 NA와 오디오 데이터 NB 사이의 길이가 상이하다. 더욱이, 콤팩트 디스크 CD-A에 기록된 연주와 콤팩트 디스크 CD-B에 기록된 연주 사이의 템포는 상이하다. 그럼에도 불구하고, 제어기(6E)는 표준 MIDI 파일 내의 델타 타임 코드들로 표시되는 경과 시간과 콤팩트 디스크 드라이버(1E)로부터 전송되는 오디오 타임 코드로 표시되는 경과 시간 사이의 차이를 제거하고, 동기 재생으로 재생될 노트 이벤트들을 재스케쥴한다.
도 46은 노트 이벤트를 재스케쥴하기 위한 방법은 나타낸다. 먼저, 중앙 처리 장치(62)는 카운터 "i"를 정의하고 카운터 "j"를 65535로 조정한다(단계 S61). 이어서, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1E)에게 오디오 데이터 NB를 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송하도록 요청한다. 콤팩트 디스크 드라이버(1E)는 1/44100의 타임 간격으로 오디오 음악 데이터 코드들의 쌍을 인터페이스(65a)로 전송하고, 중앙 처리 장치(62)는 샘플링된 값들 및 RAM(64) 내의 오디오 음악 데이터 코드들의 각 쌍의 도착 타임을 저장한다. 오디오 음악 데이터 코드들중 제1 쌍이 인터페이스(65a)에 도착할 경우, 중앙 처리 장치(62)는 클럭 신호의 클럭 펄스를 카운트하기 시작한다. 클럭 펄스들의 개수는 오디오 음악 데이터 코드들의 제1 쌍의 도착으로부터의 경과 시간, 즉 초기화 타임(Q)를 나타낸다. 오디오 음악 데이터 코드들의 제1 쌍은 샘플링된 값들(0)의 제1 쌍을 표현하고 오디오 음악 데이터 코드들의 다음 쌍은 샘플링된 값들(1)의 쌍을 표현한다. 따라서, 샘플링된 값들 (0), (1), (2) ....의 쌍들이 간헐적으로 인터페이스(65a)에 도착하고, 그들의 도착 시간과 함께 큐에 결합한다. 큐는 RAM(64) 내에 형성된다. 도착 타임은 초기화 타임 Q로부터의 경과 시간과 동일하다. 샘플링된 값(n)의 쌍의 도착 타임이 "도착 타임(n)"으로 표현된다. 이 경우, 큐에 최대로 샘플링된 값들의 1323000쌍들과 그들의 도착 타임들이 큐에 결합한다.
샘플링된 값(i)의 쌍은 도착 타임(i)과 함께 큐에 결합하는 것으로 가정한다. 그 후, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 샘플링된 값들중 65536쌍으로부터 목표 상관 데이터의 일부분을 생성하도록 요구하는데, 이는 본원에서 "목표 미가공 데이터(objective raw material)"로 나타낸다. 샘플링된 값들(i)의 쌍은 목표 미가공 데이터의 테일(tail)을 차지한다. 디지털 신호 처리기(63)는 미가공 데이터로부터 상관 데이터의 일부분들을 생성하기 위한 데이터 처리를 수행한다(단계 S62). 목표 상관 데이터를 생성하기 위한 데이터 처리는 도 35에 나타낸 것과 유사하여 반복을 피하기 위해 설명을 생략한다. 데이터 처리가 완료된 경우, 목표 상관 데이터(i)의 일부분들은 RAM(64)에 저장된다.
이어서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 참조 상관 데이터 헤드 부분과 목표 상관 데이터(i) 사이에서 상관 판정을 실행하도록 요구한다. 디지털 신호 처리기(63)는 RAM(64)으로 전송된 표준 MIDI 파일에 이미 저장된 참조 상관 데이터 헤드부 및 단계 S62에서 RAM에 저장된 목표 상관 데이터를 판독하고 목표 상관 데이터(i)가 참조 상관 데이터 헤드부와 높게 상관되는지 여부를 조사한다(단계 S63). 상관 판정을 위한 데이터 처리는 도 42에 나타낸 데이터 처리와 유사하므로 간단히 하기 위하여 추가 설명은 본원에 포함시키지 않는다.
상관 판정을 위한 데이터 처리가 완료된 경우, 디지털 신호 처리기(63)는 데이터 처리의 결과, 즉 성공 또는 실패를 중앙 처리 장치(62)에 통지한다. 그 후, 중앙 처리 장치(62)는 통지를 확인하여 데이터 처리가 성공적으로 완료되었는지 여부를 확인한다(단계 S64). 목표 상관 데이터(i)가 참조 상관 데이터 헤드 부분과 높게 상관되어 있다면, 결과는 긍정으로 주어진다. 그러나, 무음없이 연주가 시작되는 경우는 드물다. 먼저 데이터 처리의 완료시 단계 S64에서의 결과는 일반적으로 부정으로 주어진다.
단계 S64에서 부정인 결과가 나올 경우, 중앙 처리 장치(62)는 카운터(i)를 체크하여 "i"가 947535, 즉 65535 + 882000인지 여부를 확인한다(단계 S65). 디지털 신호 처리기(63)가 개시로부터 20초에 상당하는 모든 목표 상관 데이터가 참조 상관 데이터 헤드 부분과 보다 덜 상관되는 것을 발견하지 못하면, 단계 S65에서의 결과는 긍정으로 주어지고, 중앙 처리 장치(62)는 상관 판정을 포기한다. 따라서, 단계 S65에서의 데이터 처리는 디지털 신호 처리기(63)가 무한정으로 상관 판정을 하지 못하게 한다.
디지털 신호 처리기(63)가 먼저 상관 판정을 완료한 경우, 카운터(i)는 65535를 나타내고, 따라서, 단계 S65에서의 결과는 부정으로 주어진다. 그 후, 중앙 처리 장치(62)는 카운터(i)를 1씩 증가시키고(단계 S66) 단계 S62로 돌아간다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 협력하여 디지털 신호 처리기(63)가 참조 상관 데이터 헤드 부분과 높게 상관되어 있는 목표 상관 데이터(i)를 찾을 때까지 단계 S62 내지 S66을 포함하는 루프를 반복한다.
디지털 신호 처리기(63)는, 그 헤드를 차지하는 샘플링된 값(28740)의 쌍을 갖는 목표 미가공 데이터로부터 생성되었던 목표 상관 데이터가 참조 상관 데이터와 높게 상관된다는 것을 중앙 처리 장치(62)에게 통지한다고 가정한다. 중앙 처리 장치(62) 및 디지털 신호 처리기(63)가 28740회 동안 참조 상관 데이터와 높게 상관된 목표 상관 데이터를 찾는데 실패하더라도, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 제28741 데이터 처리의 완료시 성공적인 결과를 통지한다. 참조 상관 데이터 및 목표 상관 데이터는 동일한 데이터 처리를 통해 참조 미가공 데이터 헤드 부분 및 음악의 일부분을 나타내는 목표 미가공 데이터로부터 생성된다. 이는 목표 미가공 데이터(97275)의 일부분들의 세트로 표시되는 음악 통로(music passage)가 참조 상관 데이터 헤드 부분의 일부분들로 표시되는 음악 통로에 대응한다는 것을 의미한다.
단계 S64에서 긍정인 결과가 나올 경우, 중앙 처리 장치(62)는 차이(i- 65535)를 44100으로 나누고 기준 개시 타임에 대응하는 목표 개시 타임을 결정한다. 임계값을 초과하는, 샘플링된 값들의 쌍은 목표 개시 타임에서의 위치를 차지한다. 단계 S64에서의 결과가 "i" = 94275에서 변경될 것이라고 가정한다. (94275 - 65535)/44100에 대한 계산은 0.65가 된다. 이는 샘플링된 값들의 쌍이 재생의 개시로부터 0.65초에서 임계값을 초과하는 것을 의미한다. 이어서, 중앙 처리 장치(62)는 RAM(64)으로부터 기준 개시 타임을 판독하고 목표 개시 타임과 기준 개시 타임 사이의 차이를 계산한다. 본원에서 타임 차이는 "톱 오프셋(top offset)"으로 나타낸다. 톱 오프셋은 음악 NB의 일부분의 시작이 음악 NA의 일부분의 시작보다 빠른 경우 음의 값을 가진다. 반대로, 음악 NB의 일부분의 시작이 음악 NA의 일부분의 시작보다 지연되는 경우, 톱 오프셋은 양의 값을 가진다. 목표 개시 타임 및 기준 개시 타임은 각각 0.65초 및 1.15초인 것으로 가정한다. 톱 오프셋은 목표 개시 타임으로부터 기준 개시 타임을 감산, 즉 (0.65 - 1.15)하여 계산되고 0.5초이다. 중앙 처리 장치(62)는 RAM(64)에 톱 오프셋을 저장한다(단계 S67).
이어서, 중앙 처리 장치(62)는 RAM(64)으로부터 기준 개시 타임 및 기준 종료 타임을 판독하고 기준 개시 타임에서 기준 종료 타임을 감산한다. 중앙 처리 장치(62)는 기준 개시 타임과 기준 종료 타임 사이의 차이를 441000으로 곱하여 기준 개시 타임과 기준 종료 타임 사이의 오디오 음악 데이터 코드의 쌍들의 수를 결정한다. 기준 개시 타임과 기준 종료 타임 사이의 오디오 음악 데이터 코드 쌍들의 수는 참조 상관 데이터 헤드부의 제1 부분과 기준 종료 오디오 데이터의 최종 부분 사이의 오디오 음악 데이터 코드 쌍들의 수와 동일하다. 이어서, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍의 수로부터 65536을 감산한다. 차이 "V"는 참조 상관 데이터의 최종 부분과 종료 오디오 데이터의 최종 부분 사이의 오디오 음악 데이터 코드 쌍들의 수와 동일하다.
예를 들면, 기준 개시 타임과 기준 종료 타임은 1.15초 및 173.11초인 것으로 가정한다. 기준 개시 타임과 기준 종료 타임 사이의 기간은 (173.11 - 1.15), 즉 171.96초로 주어진다. 그 후, 오디오 음악 데이터 코드 쌍의 수는 171.96 x 441000로 주어지고, 이는 7583436이 된다. 차이 "V"는 7583436 - 65536 = 7517900으로 주어진다.
이어서, 중앙 처리 장치(62)는 카운터 "j"를 정의하고, 카운터 "j"를 (i + V - 441000)으로 조정한다(단계 S68). 콤팩트 디스크 CD-B에 기록된 목표 미가공 데이터(i) 헤드 부분의 일부분들은 1.49초 동안의 음악 N의 일부분의 통로에 대응한다. 1.49초 동안의 음악 N의 일부분의 최종 부분을 나타내는 오디오 데이터는 목표 미가공 데이터(i + V)인 것으로 추정한다. 목표 미가공 데이터(j)의 일부분들, 즉 (i + V - 441000)은 목표 미가공 데이터(i + V) 이전의 10초이다.
이어서, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1E)에게 오디오 음악 데이터 코드(j - 65535), (j - 65534) ...의 쌍을 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송하도록 요청한다. 콤팩트 디스크 드라이버(1E)가 오디오 음악 데이터 코드(j - 65535), (j - 65534) ...의 쌍을 인터페이스(65a)로 전송하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드의 각 쌍에 대한 도착 타임을 결정하고 도착 타임과 함께 RAM(64)에 샘플링된 값들의 쌍을 저장한다. 샘플링된 값들의 쌍들 및 도착 타임은 RAM(64) 내의 큐에 결합한다.
샘플링된 값들(j)의 쌍들이 큐에 결합하는 경우, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 목표 미가공 데이터(j)로부터 목표 상관 데이터를 생성하도록 요청한다. 그 후, 디지털 신호 처리기(63)는 목표 미가공 데이터(j)로부터 목표 상관 데이터를 생성하기 시작한다(단계 S69). 목표 상관 데이터를 생성하기 위한 데이터 처리는 도 35에 나타낸 것과 유사하다. 데이터 처리가 완료된 경우, 목표 상관 데이터(j)는 RAM(64)에 저장된다.
이어서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 표준 MIDI 파일에 저장된, 기준 종료 오디오 데이터와 단계 S69에서 RAM에 저장된 목표 상관 데이터(j) 사이의 상관 판정을 수행하도록 요청한다. 디지털 신호 처리기(63)는 RAM(64)으로부터 기준 종료 오디오 데이터 및 목표 상관 데이터(j)를 판독하고 기준 종료 오디오 데이터와 높게 상관된 목표 상관 데이터(j)에 대한 상관 판정을 수행한다(단계 S70). 상관 판정을 위한 데이터 처리는 도 42에 나타낸 것과 유사하다. 디지털 신호 처리기(63)가 상관 판정을 위한 데이터 처리를 완료하는 경우, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 상관 판정의 결과를 통지한다.
디지털 신호 처리기(63)는 통지를 체크하여 상관 판정이 성공적인지 여부를 확인한다(단계 S71). 음악 NB의 일부분을 재생하기 위한 타임이 음악 NA의 일부분을 재생하기 위한 타임과 10초정도 상이한 것이 드물다. 이러한 이유때문에, 디지털 신호 처리기(63)가 먼저 데이터 처리를 완료한 경우, 단계 S71에서의 결과는 부 정인 "NO"로 주어진다. 그 후, 중앙 처리 장치(62)는 카운터(i)를 1씩 증가시키고(단계 S72) 디지털 신호 처리기(63)에게 새로운 목표 미가공 데이터로부터 다음 목표 상관 데이터를 생성하도록 요청한다. 카운터(j)가 오디오 데이터 NB의 샘플링된 값들의 쌍들의 전체수보다 크다면, 즉 목표 미가공 데이터가 이미 오디오 데이터 NB의 끝에 도달했다면, 디지털 신호 처리기(63)는 큐로부터 목표 미가공 데이터(j)를 판독하지 못하고, 중앙 처리 장치(62)에게 실패를 통지한다. 이러한 이유때문에, 중앙 처리 장치(62)는 레지스터를 체크하여 디지털 신호 처리기(63)가 에러 메시지를 송신했는지의 여부를 확인한다(단계 S73). 중앙 처리 장치(62)가 카운터(j)를 먼저 증가시킨 경우, 목표 미가공 데이터(j)는 오디오 데이터 NB의 끝에 도달하지 않고 단계 S73에서의 결과는 부정으로 주어진다.
단계 S73에서의 결과가 부정인 경우, 중앙 처리 장치(62)는 단계 S69로 돌아가고, 디지털 신호 처리기(63)에게 목표 미가공 데이터로부터 다음의 목표 상관 데이터(j)를 생성하도록 요청한다. 따라서, 중앙 처리 장치(62) 및 디지털 신호 처리기(63)는 단계 S69 내지 S73을 포함하는 루프를 반복하고, 기준 종료 오디오 데이터와 높게 상관된 목표 상관 데이터(j)에 대한 오디오 데이터 NB를 검색한다.
디지털 신호 처리기(63)가 기준 종료 오디오 데이터와 높게 상관된 목표 상관 데이터를 찾는 경우, 디지털 신호 처리기는 중앙 처리 장치(62)에게 성공을 통지하고, 단계 S69에서의 결과는 긍정인 "YES"로 주어진다. 그 후, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1E)에게 콤팩트 디스크 CD-B로부터 인터페이스(65a)로의 데이터 전송을 중지하도록 요청한다.
이어서, 중앙 처리 장치(62)는 수 "j"를 44100으로 나누고, 음악 NB의 일부분의 재생이 완료되는 목표 종료 타임을 결정한다. 카운터(j)가 7651790을 나타내면, 목표 종료 타임은 7651790/44100, 즉 173.51초이다. 이어서, 중앙 처리 장치(62)는 RAM(64)으로부터 기준 종료 타임을 판독하고 엔드 오프셋, 즉 목표 종료 타임과 기준 종료 타임 사이의 차이를 결정한다. 이 경우, 엔드 오프셋은 0.40초, 즉 173.51 - 173.11이다. 중앙 처리 장치(62)는 RAM(64)에 엔드 오프셋을 저장한다(단계 S74). 또한, 중앙 처리 장치(62)는 톱 오프셋과 엔드 오프셋을 RAM(64)에 이미 전송된 표준 MIDI 파일에 추가한다(단계 S75).
도 47은 표준 MIDI 파일에 추가된 톱 오프셋 및 엔드 오프셋을 나타낸다. 톱 오프셋 및 엔드 오프셋은 시스템 익스클루시브 이벤트 코드에 저장된다. 제1, 제2, 제3 및 제4 시스템 익스클루시브 이벤트 코드들은 각각 톱 오프셋, 엔드 오프셋, 참조 상관 데이터 헤드 부분 및 기준 종료 오디오 데이터로 할당되고, 참조 특성 이벤트들에 할당된 시스템 익스클루시브 이벤트 코드들은 노트 이벤트 코드들과 혼합된다. 모든 시스템 익스클루시브/노트 이벤트 코드들이 델타 타임 코드들과 연관된다. 이 경우, 제1 내지 제4 시스템 익스클루시브 이벤트 코드들은 0을 나타내는 델타 타임 코드들과 연관된다. 그러나, 다른 델타 타임 코드들이 이러한 시스템 익스클루시브 이벤트 코드들에 추가될 수 있다.
톱 오프셋 및 엔드 오프셋을 나타내는 시스템 익스클루시브 이벤트 코드를 표준 MIDI 파일에 추가하는 것이 완료되는 경우, 중앙 처리 장치(62)는 RAM(64) 내에 저장된 표준 MIDI 파일로부터 모든 노트 이벤트 코드들을 판독하고, 노트 이벤 트들을 재스케쥴한다(단계 S76). 재스케쥴링은 다음의 식을 통해 수행된다.
Figure 112003030865852-pat00011
여기서, d는 재스케쥴링 이후의 델타 타임이고 D는 재스케쥴링 이전의 델타 타임이며 NT는 기준 개시 타임이고 NE는 기준 종료 타임이며, OT는 톱 오프셋이고 OE는 엔드 오프셋이다.
식 (11)에서, (NT + OT)는 샘플링된 값들의 제1 쌍을 재생하는 타이밍에 대한 오디오 데이터 NB을 재생하기 시작하는 타이밍을 나타내고, (D - NT)는 음악 N의 일부분을 나타내는 오디오 데이터 NA를 재생하기 시작하는 것에 대한 노트 이벤트를 재생하는 타이밍을 나타낸다. {(NE + OE) - (NT + OT)}는 오디오 데이터 NB로 표시되는 음악 N의 일부분을 재생하는데 소모될 타임을 나타내고 (NE - NT)는 오디오 데이터 NA로 표시되는 음악 N의 일부분을 재생하는데 소모될 타임을 나타낸다. 제2 항인 (D - NT) x {(NE + OE) - (NT + OT)}/(NE - NT)는 오디오 데이터 NB의 재생의 시작에 대한 대응하는 노트 이벤트를 재생하는 타이밍을 나타낸다. 그러므로, d는 오디오 데이터 NB의 샘플링된 값들의 제1 쌍을 재생하는 타이밍에 대한 대응하는 노트 이벤트를 재생하는 타이밍을 나타낸다.
제1 노트 이벤트는 C5에서의 노트-온(note-on)을 나타낸다(도 47을 참조). C5에서의 노트-온은 식 (11)의 계산을 통해 재스케쥴링된다. D는 2.11, NT는 1.15, NE는 173.11, OT는 -0.50, OE는 0.40이다. 노트-온은 식 (11)의 계산을 통해 1.62초에서 재스케쥴링된다. 모든 이벤트 코드들이 재스케쥴되고 동기 재생으로 노트 이벤트들을 생성하는 타이밍을 나타내는, 조정된 델타 타임 코드들이 RAM(64) 내에 저장된다.
재스케쥴링이 완료된 경우, 중앙 처리 장치(62)는 동기 재생, 즉 노트 이벤트들에 의해 표현되는 연주 및 오디오 데이터 NB로 표시되는 음악의 일부분을 동기적으로 재생하기 시작한다(단계 S77). 자세하게는, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1E)에게 오디오 음악 데이터 코드의 쌍을 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송하도록 요청한다. 콤팩트 디스크 드라이버(1E)는 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 1/44100초의 정규 간격으로 오디오 음악 데이터 코드들의 쌍들을 전송하기 시작한다. 오디오 음악 데이터 코드(0)의 제1 쌍이 인터페이스(65a)에 도착하는 경우, 중앙 처리 장치(62)는 클럭 신호에 기초하여 도착 타임을 결정하고 오디오 음악 데이터 코드의 제1 쌍의 도착 타임을 기준 타임 R로 결정한다. 중앙 처리 장치(62)는 기준 타임 R로부터 경과 시간을 측정하기 시작한다.
중앙 처리 장치(62)는 오디오 음악 데이터 코드(0), (1), (2) ....의 쌍을 간헐적으로 수신하고 이들을 오디오부(4E)으로 전송한다. 오디오 음악 데이터 코드의 쌍들은 라우드 스피커(44)를 통해 전기 톤으로 변환된다. 따라서, 사용자는 오디오부(4E)을 통해 음악 NB을 들을 수 있다.
중앙 처리 장치(62)는 이어서 RAM(64)으로부터 조정된(regulated) 델타 타임 코드들을 판독하고 조정된 델타 타임 코드 각각에 의해 표현되는 타임과 경과 시간을 비교하여 관련된 노트 이벤트 코드가 자동 연주 피아노(3E)에 공급될 것인지 여부를 확인한다. 경과 시간이 조정된 델타 타임 코드로 표현된 타임과 동일하게 될 경우, 중앙 처리 장치(62)는 노트 이벤트 코드를 제어기(34)에 공급한다.
제어기(34)가 노트 이벤트 코드를 수신한 경우, 제어기(34)는 사용자의 선택, 즉 어쿠스틱 피아노(31A) 또는 오디오부(4E)에 대한 내부 플래그를 체크한다. 사용자의 선택이 오디오부(4E)이면, 제어기(34)는 톤 발생기(35)에 노트 이벤트 코드를 공급한다. 톤 발생기는 노트 이벤트 코드에 기초하여 디지털 오디오 신호를 생성하고 믹서(41)에 디지털 오디오 신호를 공급한다. 따라서, 동기 재생은 오디오부(4E)만을 통해서 이루어진다. 반대로, 사용자의 선택이 어쿠스틱 피아노(3E)이면, 제어기(34)는 흑/백 키가 이동되는 궤적을 결정한다. 제어기(34)는 드라이버(36a)에 궤적을 통지하고 드라이버(36a)는 통지에 기초하여 구동 신호를 생성한다. 드라이버(36a)는 구동 신호를 솔레노이드-동작하는 키 액츄에이터(36b)에 공급하여 솔레노이드-동작하는 키 액츄에이터(36b)가 흑/백 키의 회전을 일으키도록 한다. 흑/백 키는 동작 유닛(31b)을 작동시켜, 차례로 회전을 위해 해머(31c)를 구동한다. 해머는 회전의 끝에서 스트링(31d)을 치고 어쿠스틱 피아노 톤이 진동하는 스트링(31d)으로부터 방사된다. 노트 이벤트들이 이미 동기 재생을 위한 적절한 타이밍으로 조정되었기 때문에, 사용자는 어쿠스틱 피아노 톤 및 전기 톤들이 앙상블을 이룬다고 느낄 것이다.
중앙 처리 장치(62)가 오디오 음악 데이터 코드의 최종 쌍 및 최종 노트 이벤트를 오디오부(4E) 및 자동 연주 피아노(3E)에 각각 공급하는 경우, 중앙 처리 장치(62)는 조작 패널/표시부에게 예를 들면 "톱 오프셋 및 엔드 오프셋을 저장하기를 원하십니까?"와 같은 프롬프트 메시지를 생성하도록 요청한다. 프롬프트 메시지가 표시부에 생성되고 중앙 처리 장치(62)는 사용자의 지시를 대기한다(단계 S78).
사용자가 부정 응답 "NO"를 보내면, 중앙 처리 장치(62)는 단계 SS에서의 동기 재생을 위한 데이터 처리를 종료한다. 사용자가 제어기(6E)에게 플로피 디스크 FD에 톱 오프셋 및 엔드 오프셋을 저장하도록 지시하는 경우, 중앙 처리 장치(62)는 RAM(64)으로부터 플로피 디스크 드라이버(2E)로 표준 MIDI 파일을 제공하고, 플로피 디스크 드라이버(2E)에게 표준 MIDI 파일을 오버라이트(overwrite)하도록 요청한다. 플로피 디스크 드라이버(2E)는 새로운 표준 MIDI 파일을 오버라이트하고(단계 S79) 새로운 표준 MIDI 파일이 플로피 디스크 FD에 저장된다. 보유가 완료된 경우, 중앙 처리 장치(62)는 단계 SS에서의 동기 재생을 위한 데이터 처리를 종료한다. 플로피 디스크 드라이버(2E)에 의해 오버라이트된 표준 MIDI 파일은 "표준 MIDI 파일 B"로 나타낸다.
오디오 데이터 NB가 오디오 데이터 NA와 많이 상이하지 않는 한 중앙 처리 장치(62)는 동기 재생을 위한 데이터 처리를 성공적으로 완료한다. 그러나, 오디오 데이터 NB와 오디오 데이터 NA 사이의 차이가 심각하다면, 중앙 처리 장치(62) 는 단계 S63 및/또는 S70에서 목표 상관 데이터를 찾는데 실패할 것이다. 이러한 상황에서, 중앙 처리 장치(62)는 노트 이벤트들을 다음과 같이 재스케쥴한다.
먼저, 중앙 처리 장치(62)는 참조 상관 데이터 헤드 부분과 높게 상관된 임의의 목표 상관 데이터(i)를 발견하지 못한 것으로 가정한다. 이러한 상황에서, 중앙 처리 장치(62)는 단계 S64에서 부정인 결과를 반복하고 카운터(i)는 결국 947535에 도달한다. 그 후, 단계 S65에서의 결과가 긍정인 "YES"로 주어지고 사용자는 델타 타임 코드를 수동으로 조정하기 시작한다(단계 S80).
수동 조정은 도 48에 도시된 바와 같이 진행한다. 먼저, 중앙 처리 장치(62)는 카운터(OT 및 OE)를 정의하고 카운터(OT 및 OE)를 0으로 조정한다. 카운터(OT)는 톱 오프셋에 할당되고, 카운터(OE)는 엔드 오프셋에 할당된다. 이어서, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1E)에게 데이터 전송을 중단하도록 요청하고 오디오 데이터 NB의 헤더에서 데이터 전송을 다시 시작한다. 오디오 음악 데이터 코드들의 제1 쌍이 인터페이스(65a)에 도달한 경우, 중앙 처리 장치(62)는 경과 시간을 측정하기 시작한다. 콤팩트 디스크 드라이버(1E)가 오디오 음악 데이터 코드들의 쌍들을 1/44100초의 정규 간격으로 인터페이스(65a)로 전송하는 동안, 중앙 처리 장치(62)는 샘플링된 값들의 쌍들을 오디오부(4E)에 공급한다. 샘플링된 값들의 쌍들이 라우드 스피커(44)를 통해 전기 톤으로 변환된다. 중앙 처리 장치(62)가 경과 시간을 측정하기 시작하는 경우, 중앙 처리 장치(62)는 RAM(64) 내에 이미 저장된 표준 MIDI 파일로부터 제1 델타 타임 코드를 판독하고 제1 델타 타임 코드로 표현된 타임을 내부 클럭과 비교하여 내부 클럭이 델타 타임 코드를 따라가는지 여부를 확인한다. 결과가 긍정으로 주어지면, 중앙 처리 장치(62)는 관련된 노트 이벤트를 자동 연주 피아노(3E)에 공급한다. 어쿠스틱 피아노 톤 또는 전기 톤은 어쿠스틱 피아노(31A) 또는 오디오부(4E)을 통해 재생된다. 따라서, 동기 연주 시스템은 음악 N의 일부를 앙상블로 재생한다(단계 S91).
중앙 처리 장치(62)가 샘플링된 값들의 쌍 및 노트 이벤트 코드들을 오디오부(4E)과 자동 연주 피아노(3E)로 각각 전송하는 동안, 중앙 처리 장치(62)는 조작 패널/표시부(5E)에게 사용자가 톱 오프셋을 조정하도록 촉구하는 프롬프트 메시지를 생성하도록 요구한다. 사용자가 어쿠스틱 피아노 톤이 전기 톤보다 이르다고 느끼는 경우, 사용자는 지연을 위해 키 패드 "-"를 누른다. 반대로, 사용자가 어쿠스틱 피아노 톤이 전기 톤보다 지연된다고 느끼는 경우, 사용자는 전진을 위해 키 패드 "+"를 누른다. 조작 패널/표시부(5E) 상의 조작은 제어기(6E)에 보고된다. 조작 패널/표시부(5E)가 키 패드 "-" 상의 조작을 보고하는 경우, 중앙 처리 장치(62)는 카운터(OT)를 1/75초만큼 증가시킨다. 반대로, 사용자가 키 패드 "+" 를 누르는 경우, 중앙 처리 장치(62)는 카운터(OT)를 1/75초 감소시킨다. 증가 및 감소, 즉 1/75초는 오디오 데이터의 단일 프레임에 대한 타임 주기에 상당하다. 따라서, 사용자는 음악을 들으면서 톱 오프셋을 수동으로 조정할 수 있다.
사용자가 재생 악곡(NB)과 앙상블을 이루어 자동 연주 피아노(3E)를 통해 수동으로 연주를 할 때, 중앙 처리 장치(62)는 식 11을 이용하여 타이밍을 재조정하 여 노트 이벤트를 재생성한다. 델타 타임 코드의 조정을 완료한 뒤, 중앙 처리 장치(62)는 내부 클럭을 조정된 델타 타임 코드를 RAM(64)에 저장한다. 델타 타임 코드의 조정을 완료한 뒤, 중앙 처리 장치(62)는 노트 이벤트 코드가 자동 연주 피아노(3E)에 공급되는지 여부를 알아보기 위하여 내부 클럭을 조정된 델타 타임 코드와 비교한다. 그 결과, 자동 연주 피아노(3E)를 통해 재생되는 악곡의 진행은 진행되거나 지연되고, 단계 S93과 같이, 사용자는 자동 연주 피아노(3E)의 연주가 악곡(NB)의 재생과 앙상블을 이루는지를 알아보기 위하여 동시에 재생을 확인한다.
연주가 진행되거나 지연되면, 중앙 처리 장치(62)는 단계 S92로 돌아가고, 사용자가 톱 오프셋을 다시 변경하도록 한다. 따라서, 사용자는 단계 S93에서의 응답이 긍정으로 바뀔 때까지 톱 오프셋을 반복적으로 조정한다. 사용자가 재생이 앙상블을 이룬다고 느끼면, 사용자는 "ENTER" 키 패드를 누르고 중앙 처리 장치(62)는 단계 S94로 진행한다.
단계 S93에서 긍정 응답이 나오면, 중앙 처리 장치(62)는 사용자가 단계 S94에 의해 화면 상에 표시하는 메세지를 통해 엔드 오프셋을 조정하도록 한다. 사용자가 자동 연주 피아노(3E)를 통한 연주가 오디오부(4E)를 통한 재생보다 점차 빨라지고 있다고 느끼면, 사용자는 "-" 키 패드를 누른다. 반면, 사용자가 자동 연주 피아노(3E)를 통한 연주가 오디오부(4E)를 통한 재생보다 점차 느려지고 있다고 느끼면, 사용자는 "+" 키 패드를 누른다. 사용자가 "-" 키 패드를 누르면, 중앙 처리 장치(62)는 카운터 OE를 1/75초 증가시킨다. 반면, 사용자가 "+" 키 패드를 누르면, 중앙 처리 장치(62)는 카운터 OE를 1/75초 감소시킨다. 따라서, 사용자는 단계 S94와 같이 수동으로 엔드 오프셋을 조정한다.
카운터 OE가 조정되면, 중앙 처리 장치(62)는 타이밍을 재조정하여 식 11을 사용하여 노트 이벤트를 재생성하고 조정된 델타 타임 코드를 RAM(64)에 저장한다. 재조정을 한 뒤, 중앙 처리 장치(62)는 조절된 델타 타임 코드와 내부 클럭을 비교하여 관련된 노트 이벤트 코드가 자동 연주 피아노(3E)에 공급되는지를 파악한다. 따라서, 노트 이벤트를 생성하는 타이밍이 재조정되고, 악곡의 진행이 조절된 델타 타임 코드로 제어된다. 사용자가 자동 연주 피아노(3E)를 통한 연주가 오디오부(4E)를 통한 재생과 앙상블을 이루고 있다고 느끼면, 사용자는 "ENTER" 키패드를 누르고, 중앙 처리 장치(62)는 단계 S95에서의 응답이 긍정이라고 판단한다. 반면, 사용자가 자동 연주 피아노(3E)가 오디오부(4E)와 앙상블을 이루지 않고 있다고 느끼면, 중앙 처리 장치(62)는 단계 S94로 돌아가고 사용자가 "ENTER" 키패드를 누를 때까지 단계 S94에서의 데이터 처리를 반복한다. 단계 S95에서 긍정 응답이 나오면 중앙 처리 장치(62)는 단계 S80에서 수동 조절을 끝내고 단계 S76으로 진행한다.
단계 S80에서 수동적으로 조정된 톱 오프셋과 엔드 오프셋을 사용하여 중앙 처리 장치(62)는 단계 S76에서 타이밍을 재조절하여 주 이벤트를 재생성하고 단계 S77에서 동시 재생을 시작한다. 따라서, 오디오 데이터 NA 및 오디오 데이터 NB 간의 차가 클지라도 제3 실시예를 구현하는 동시 재생 시스템은 자동 연주 피아노(3E)와 오디오부(4E) 간에 좋은 앙상블을 이루게 한다.
단계 S70의 상관 판정이 실패라고 가정을 한다. 이는 CPU가 최후의 오디오 음악 데이터 코드 쌍으로부터 측정된 10초의 엔드부에서의 목적 상관 데이터의 시리즈 내 기준 종료 오디오 데이터와 밀접하게 관련된 목적 상관 데이터를 찾을 수 없다는 것을 의미한다. 그러면, 단계 S73에서의 응답은 긍정으로 주어진다.
단계 S73에서 응답이 긍정이면, 중앙 처리 장치(62)는 단계 S81에서와 같이 타이밍을 재조정하여 참조 특성 이벤트 코드를 사용하여 노트 이벤트를 생성한다.
우선, 중앙 처리 장치(62)는 CD 드라이버(1E)가 오디오 데이터 NB를 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전달하도록 요청한다. CD 드라이버(1E)는 콤팩트 디스크 CD-B로부터 오디오 음악 데이터 코드 쌍 (0), (1), ...를 판독하고 이들을 보통 1/44100초 간격으로 인터페이스(65a)에 전달한다. 오디오 음악 데이터 코드(0)의 첫 번째 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 내부 클럭을 개시하고 시간 경과를 측정한다. CD 드라이버(1E)가 오디오 음악 데이터 코드의 쌍들을 전달하는 동안, 중앙 처리 장치(62)는 각 오디오 음악 데이터 코드의 쌍에 대한 도착 시간을 판정하고, 샘플치의 쌍과 그들의 도착 시간을 결합하여 RAM(64) 내에 큐를 만든다. 또한, 중앙 처리 장치(62)는 오디오 음악 데이터 코드 쌍들을 체크하여 적어도 하나의 샘플치가 임계값을 초과하는지를 판단한다. 본 예에서, 임계값은 1000으로 조정된다.
중앙 처리 장치(62)가 적어도 하나의 샘플치가 임계값보다 큰 것을 발견하면, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에 샘플치의 쌍들 내에서 특성 이벤트를 찾을 것을 요청한다. 특성 이벤트에 대한 데이터 처리는 도 37에 도시한 것과 유사하며, 반복을 피하기 위해 기술하지 않는다. 디지털 신호 처리기(63)가 각 특성 이벤트를 찾아내면, 디지털 신호 처리기(63)는 특성 이벤트의 중앙 처리 장치(62)에 통지한다. 그러면, 중앙 처리 장치(62)는 각 통지에 대한 도착 시간을 판정하고, 특성 이벤트 코드 및 그 도착 시간을 RAM(64)에 저장한다. 특성 이벤트는 이미 표준 MIDI 파일에 저장되고 데이터 처리를 통해 발견되는 특성 이벤트는 각각 "특성 이벤트 A" 및 "특성 이벤트 B"라고 한다.
콤팩트 디스크 CD-B로부터 판독된 최후의 샘플치 쌍에 대한 데이터 처리를 완료하면, 중앙 처리 장치(62)는 특성 이벤트 코드 A와 관련된 델타 타임 코드를 특성 이벤트 코드 B에 대한 도달 타임 코드와 비교하고, 도 49에 도시된 바와 같이 특성 이벤트 A를 특성 이벤트 B와 쌍을 이루도록 만든다.
기준 개시 타임은 좌측 컬럼의 선두를 차지하고, 특성 이벤트 A는 좌측 컬럼의 기준 개시 타임을 따른다. 제1 특성 이벤트 A, 제2 특성 이벤트 A, ... 는 이하 "A1", "A2", ...라고 한다. 반면, 목적 개시 타임의 총 시간 및 및 톱 오프셋은 우측 컬럼의 선두를 차지하고, 특성 이벤트 B는 우측 컬럼의 선두를 차지한다. 좌측 컬럼의 제1 로우는 우측 컬럼의 제1 로우에 대응하고, 좌우 컬럼의 제1 로우에 의해 표시되는 타임 데이터 정보는 이하 "타임 데이터 정보 A" 및 "타임 데이터 정보 B"라 한다.
중앙 처리 장치(62)는 먼저 (특성 이벤트 A1-타임 데이터 정보 A)/(특성 이벤트 B1-타임 데이터 정보 B)를 계산하며 계산 결과는 (1.51-1.15)/(1.01-065)= l.00이다.
계속해서, 중앙 처리 장치(62)는 구한 값이 소정의 값의 범위에 들어가는지를 판정한다. 본 예에서는, 그 범위를 0.97∼1.03, 즉 ±3%로 한다. 구한 값이 소정의 범위에 들어가면, 중앙 처리 장치(62)는 특성 이벤트 A가 특성 이벤트 B에 대응하는 것으로 가정한다. ±3%의 소정의 범위는 변경될 수 있다.
이 구한 값은 특성 이벤트 A1과 B1의 시간 차가 0이라는 것을 의미한다. 그러면, 중앙 처리 장치(62)는 특성 이벤트 A1이 특성 이벤트 B1에 대응하는 것으로 간주한다. 상기 계산 결과가 0.97보다 작은 경우, 특성 이벤트 Al은 특성 이벤트 Bl에 비하여 지나치게 빠르기 때문에, 중앙 처리 장치(62)는 특성 이벤트 A1에 대응하는 특성 이벤트 B는 없는 것으로 간주한다. 그 다음, 중앙 처리 장치(62)는 특성 이벤트 A2와 특성 이벤트 B1을 체크하여 에러가 소정의 범위에 들어가는지를 판정한다. 반면, 그 계산 결과가 1.03보다 큰 경우, 특성 이벤트 A1은 특성 이벤트 B1에 대하여 너무 늦기 때문에, 중앙 처리 장치(62)는 특성 이벤트 B1에 대응하는 특성 이벤트 A는 없는 것으로 간주한다. 그 다음 중앙 처리 장치(62)는 특성 이벤트 A1와 특성 이벤트 B2를 체크하여 그 시간 차가 소정의 범위에 들어가는지를 판정한다.
계속해서, 중앙 처리 장치(62)는 {(시간 데이터 정보 B+(특성 이벤트 An+l-시간 데이터 정보 A)×(특성 이벤트 Bn-시간 데이터 정보 B)/(특성 이벤트 An-시간 데이터 정보 A)}를 계산함으로써, 관련 델타 타임으로 표현되는 시간의 경과를 기초로 하여 특성 이벤트 코드 B가 인터페이스(65a)에 도달할 것으로 기대되는 특성 이벤트 B의 도착 시간을 추정한다.
도 50은 특성 이벤트 B의 추정된 도착 시간을 도시한다. 추정된 도착 시간은 조절된 바와 같다. 특성 이벤트 A1과 B1이 각각 특성 이벤트 An과 Bn과 같을 때, 추정된 도착 시간은 {0.65+(2.38-1.15)×(1.01-0.65)/(1.51-1.15)}=1.88이다.
중앙 처리 장치(62)는, 이 계산 결과를 체크하여 특성 이벤트 B의 도착 시간과 추정된 도착 시간의 차가 -0.20초 내지 +0.20초내에 들어가는지를 판정한다. 중앙 처리 장치(62)가 이 차가 소정의 범위에 들어가는 것을 확인하면, 중앙 처리 장치(62)는 특성 이벤트 An+1가 특성 이벤트 Bn+1에 대응한다고 판정한다. ±0.20%의 범위는 변경될 수 있다.
이 차가 -0.20초보다 작은 경우, 중앙 처리 장치(62)는 특성 이벤트 An+1에 대응하는 특성 이벤트 B는 존재하지 않는다고 추정하고, 특성 이벤트 An+1 대신에 다음의 특성 이벤트 An+2를 이용하여, 상기 데이터 처리를 한다. 반면, 그 차가 +0.20보다 큰 경우, 중앙 처리 장치(62)는 특성 이벤트 Bn+l에 대응하는 특성 이벤트 A가 존재하지 않는 것으로 추정하고, 특성 이벤트 Bn+1 대신에 다음의 특성 이벤트 Bn+2를 이용하여, 상기 데이터 처리를 행한다.
특성 이벤트 An과 Bn이 각각 특성 이벤트 A5와 B5인 경우, 중앙 처리 장치(62)는 특성 이벤트 B는 특성 이벤트 A6와 관련된 델타 타임으로 표현되는 시간 경과에 기초하여 8.25초에 도달하는 것으로 추정한다. 실제 특성 이벤트 B6의 도착 시간은 9.76초이므로, 그 차는 -1.51초가 된다. 따라서, 중앙 처리 장치(62)는 특성 이벤트 A6에는 대응하는 특성 이벤트 B가 존재하지 않는 것으로 판정한다.
특성 이벤트 An과 Bn이 각각 특성 이벤트 A9와 B9인 경우, 중앙 처리 장치(62)는 특성 이벤트 B는 특성 이벤트 A10와 관련된 델타 타임으로 표현되는 시간 경과에 기초하여 17.79초에 도달하는 것으로 추정한다. 실제 특성 이벤트 B9의 도착 시간은 15.57초이므로, 그 차는 2.22초로, ±0.20초의 범위를 벗어나는 것이다. 따라서, 중앙 처리 장치(62)는 특성 이벤트 B9에는 대응하는 특성 이벤트 A가 존재하지 않는 것으로 판정한다.
특성 이벤트 A가 특성 이벤트 B에 대응하도록 하는 상기 데이터 처리를 완료하면, CPU는 델타 타임 코드로 표현되는 시간 경과와 특성 이벤트 B의 도달 간의 관계를 추정한다. 중앙 처리 장치(62)는 추정에 최소 제곱법을 이용할 수 있다. 도 51은 시간 경과(A)와 도착 시간(B) 간에 최소 제곱법을 이용하여 구한 회귀 직선을 도시한다. 회귀 직선은 B=1.0053A-0.5075로 표현된다.
계속해서, 중앙 처리 장치(62)는 RAM(64)에 이미 전달된 표준 MIDI 파일로부터 기준 종료 타임을 판독하고 A에 대해, 기준 종료 타임, 즉, 173.11초를 대입한다. 그 그러면, 목적 종료 타임은 173.52초로 추정된다.
계속해서, 중앙 처리 장치(62)는 엔드 오프셋을 구하기 위해 목적 종료 타임으로부터 기준 종료 타임을 뺀다. 중앙 처리 장치(62)는 RAM(64)에 엔드 오프셋을 저장한다. 중앙 처리 장치(62)는 톱 오프셋과 엔드 오프셋을 저장하기 위한 시스템 전용 이벤트 코드를 생성하고, 시스템 전용 이벤트 코드를 RAM(64) 내의 표준 MIDI 파일에 더한다.
중앙 처리 장치(62)가 표준 MIDI 파일 내의 톱 오프셋과 엔드 오프셋을 나타 내는 시스템 전용 이벤트를 저장하면, 중앙 처리 장치(62)는 단계 S76으로 진행하여 (도 46) 단계 76 내지 단계 S79를 통해 노트 이벤트를 재조정한다. 그 결과 자동 연주 피아노(3E)와 CD 드라이버/오디오부(1E/4E)를 통한 재생이 완벽한 동기를 이루게 된다.
본원의 발명자는 이상 기술한 데이터 처리를 통해 노트 이벤트가 재조정된다는 것을 확인했다. 오디오 아날로그 신호 PL26는 콤팩트 디스크 CD-B에 기록된 오디오 음악 데이터 코드 쌍들로부터 생성된다. 목적 상관 데이터는 오디오 음악 데이터 코드 쌍들로부터 생성되고, 중기 지표 PL27 및 장기 지표 PL28이 오디오 음악 데이터 코드에 저장된 샘플치 쌍들로부터 생성된다. 특성 이벤트 "B"는 중기/장기 지표 PL27/PL28로부터 추출된다. 노트 이벤트는 2.11초, 2.62초, 3.60초, ...로 조정된다. 그러나, 악곡 NB의 개시전의 침묵 시간은 악곡 NA 개시전의 침묵 시간보다 짧다. 또한, 악곡 NB의 재생으로 소비되는 시간은 악곡 NA의 재생에 의해 소비되는 시간보다 길다. 이는 악곡 NB의 재생이 악곡 NA의 재생보다 먼저 개시되고 자동 연주 피아노(3E)를 통한 연주가 악곡 NB의 재생에 선행한다는 것을 의미한다.
본 발명은 도 46에 도시된 데이터 처리를 통해 노트 이벤트를 재조정한다. 그러면, 식 11을 이용하여 노트 이벤트는 1.62초, 2.13초, 3.11초, ...로 재조정된다. 본원의 발명자는 자동 연주 피아노(3E)가 CD 드라이버/오디오부(1E/4E)와 완벽하게 동기화되는 것을 확인했다. 이는 악곡이 자동 연주 피아노(3E)를 통하여 콤팩트 디스크 CD-B에 기록된 악곡과 잘 앙상블을 이루어 연주된다는 것을 의미한다.
표준 MIDI 파일 B로부터 재생
사용자가 제어기(6E)에 악곡 NB의 재생과 앙상블을 이루어 연주할 것을 요구할 때, 사용자는 표준 MIDI 파일 B를 저장하고 있는 플로피 디스크를 플로피 디스크 드라이버(2E)에 로딩할 것이다. 이 경우, 제어기(6E)는 도 46에 도시된 데이터 처리를 처리하지 못할 것이다. 중앙 처리 장치(62)는 다음과 같이 동작한다.
먼저, 중앙 처리 장치(62)는 플로피 디스크 드라이버(2E)에 FD로부터 표준 MIDI 파일 B를 인터페이스(65a)에 전달하고 RAM(64)에 이 표준 MIDI 파일을 저장하라고 요청한다.
이어서, 중앙 처리 장치(62)는 톱 오프셋과 엔드 오프셋을 표준 MIDI 파일 B로부터 판독하고, 식 11을 통해 노트 이벤트를 재조정한다. 조정된 델타 타임 코드는 RAM(64)에 저장된다.
이어서, 중앙 처리 장치(62)는 CD 드라이버(1E)가 콤팩트 디스크 CD-B로부터의 오디오 음악 데이터 코드를 인터페이스(65a)에 전달하라고 요청한다. 오디오 음악 데이터 코드(0)의 첫 번째 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 내부 클럭을 개시하여 경과 시간을 측정한다. 중앙 처리 장치(62)는 샘플치의 쌍을 오디오부(4E)에 공급하여 전기음이 스피커(44)를 통해 나오도록 한다.
중앙 처리 장치(62)는 표준 MIDI 파일 B로부터의 제1 노트 이벤트와 관련된 델타 타임을 불러오고 내부 클럭을 델타 타임 코드와 비교하여 시간 경과가 델타 타임 코드에 의해 표시되는 것과 동일한지 판단한다. 내부 클럭이 델타 타임 코드 를 초과하면, 중앙 처리 장치(62)는 제1 노트 이벤트를 자동 연주 피아노(3E)에 공급하고, 표준 MIDI 파일 B로부터의 다음 노트 이벤트 코드와 관련된 델타 타임 코드를 불러낸다. 중앙 처리 장치(62)는 연속해서 표준 MIDI 파일 B로부터 델타 타임 코드를 불러들여, 관련 노트 이벤트 코드 또는 코드들을 자동 연주 피아노(3E)에 공급한다. 실제 피아노 음이 자동 연주 피아노(3E)를 통해 재생되고, 사용자는 자동 연주 피아도(3E)를 통한 연주가 CD 드라이버/오디오부(1E/4E)를 통한 재생과 좋은 앙상블을 이루고 있다고 느낀다.
그러나, 사용자는 자동 연주 피아노가 CD 드라이버/오디오부(1E/4E)와 동기되지 않다고 느낄 수도 있다. 그러면, 사용자는 수동으로 타이밍을 조절하여 노트 이벤트를 재생성할 수 있다. 구체적으로, 사용자는 우선 수동 조절을 위해 키 패드를 누른다. 그러면, 중앙 처리 장치(62)는 단계 S80으로 진행하여 도 48에 도시된 데이터 처리를 처리한다. 톱 오프셋과 엔드 오프셋은 단계 S91 내지 S95를 통해 변화한다. 사용자가 연주가 재생과 앙상블을 이루고 있다고 느끼면, "ENTER" 키 패드를 누른다. 그러면, 중앙 처리 장치(62)는 톱 오프셋과 엔드 오프셋을 RAM(64) 내의 표준 MIDI 파일 B에 저장한다.
사용자가 표준 MIDI 파일 B를 FD에 저장하기를 원하면, 사용자는 저장이라고 지정된 키 패드를 누른다. 그 다음, 중앙 처리 장치(62)는 표준 MIDI 파일 B를 나타내는 데이터를 FD 드라이버(2E)에 저장 요청과 함께 공급한다. FD 드라이버(2E)는 중앙 처리 장치(62)로부터 수신한 표준 MIDI 파일 B에 중복 기록한다.
본 명세서로부터 이해할 수 있듯이, 동기적 연주 시스템은 적어도 헤드부에 참조 상관 데이터, 기준 개시 타임, 기준 종료 오디오 데이터 및 기준 종료 타임을 준비 기록 모드에서 노트 이벤트와 함께 저장하고, 동기 재생 모드에서 노트 이벤트를 재조정한다. 동기 재생 모드에서, CPU는 목적 상관 데이터 및 헤드부의 참조 상관 데이터/기준 종료 오디오 데이터에 상관 판정을 실행하여 콤팩트 디스크 CD-B에 기록된 악곡 NB에 대해 목적 개시 타임과 목적 종료 타임을 결정한다. 목적 개시 타임과 목적 종료 타임을 알게 되면, 톱 오프셋, 엔드 오프셋, 기준 개시 타임과 목적 개시 타임간의 시간차와 기준 종료 타임과 목적 종료 타임 간의 시간차를 결정하고, 식 11을 사용하여 노트 이벤트를 재생성하는 시간을 결정한다. 재조정을 완료하면, 제어기(6E)는 자동 연주 피아노(3E)를 통한 연주와 CD 드라이버/오디오부(1E/4E)를 통한 재생이 서로 앙상블을 이루어 재생되도록 한다.
참조 특성 이벤트가 사전 기록에서 더 추출되면, 참조 특성 이벤트는 노트 이벤트 코드와 함께 메모리에 저장된다. 이 경우, 제어기(6E)는 우선 목적 특성 이벤트를 콤팩트 디스크 CD-B에 저장된 샘플치 쌍으로부터 생성된 중기/장기 지표로부터 추출하고 최후의 참조 특성 이벤트와 쌍을 이루는 최후의 목적 이벤트를 탐색한다. 최후의 목적 특성 이벤트가 발견되면, 중앙 처리 장치(62)는 톱 오프셋 및 엔드 오프셋을 결정하고, 노트 이벤트를 재조정한다. 따라서, 제어기(6E)가 기준 종료 오디오 데이터와 매우 관련있는 목적 상관 데이터를 찾지 못하더라도 중앙 처리 장치(62)는 기준 및 목적 이벤트에 대한 데이터 처리를 통해 엔드 오프셋을 결정하고 자동 연주 피아노(3E)가 CD 드라이버/오디오부(1E/4E)와 함께 동기적으로 연주를 하도록 할 수 있다.
제1 변형예
도 53은 본 동기 연주 시스템의 제1 변형예를 도시한다. 본 발명을 구현하는 동기 연주 시스템의 제1 변형예는 또한 CD 드라이버(1F), FD 드라이버(2F), 자동 연주 피아노(3F), 오디오부(4F), 조작 패널/표시부(5F) 및 제어기(6F)를 포함한다. FD 드라이버(2F), 자동 연주 피아노(3F), 오디오부(4F), 조작 패널/표시부(5F)는 본 동기 연주 시스템의 것과 유사한 구성이고 유사하게 동작하며, 구성요소부는 도 32에 도시된 대응 구성요소부를 지시하는 참조번호로 표시되어 있다. 제어기(6F)가 제어기(6E)와 데이터 처리에 있어서 약간 다르지만, 시스템 구성은 유사하여, 이 구성요소부도 상세한 설명없이 제어기(6E)의 것과 대응하는 것을 나타내는 참조번호로 표시하였다.
제1 변형예는 또한 선택적으로 사전 기록 모드 및 동기 재생 모드에 들어가고, 이 모드들의 동작은 일반적으로 동기 재생 시스템의 것과 동일하다. 따라서, 설명은 동기 재생 시스템에 의해 실행되는 디지털 처리의 차에 중점을 둔다.
CD 드라이버(1F)는 순차적으로 오디오 음악 데이터 코드 및 오디오 타임 데이터 코드를 콤팩트 디스크 CD-A 및 CD-B로부터 판독하고, 오디오 음악 데이터 코드뿐만 아니라 오디오 타임 데이터 코드를 제어기(6F)에 전달한다. 이것이 CD 드라이버(1E)와의 차이점이다. 오디오 타임 데이터 코드는 각 프레임별로 주어지는데, 여기서 각 프레임에는 588쌍의 오디오 음악 데이터 코드가 기록되어 있으며, 재생 시작부터 경과 시간이 오디오 타임 데이터 코드로 표현되는 것이다.
제어기(6F)는 클럭 신호를 CD 드라이버(1F)에 항상 제공하고 CD 드라이버(1F)는 오디오 음악 데이터 코드를 제어기(6F)에 클럭 신호와 동기적으로 전달한다. 중앙 처리 장치(62)가 RAM(64)의 샘플치 쌍을 저장하며, 중앙 처리 장치(62)는 최후의 오디오 타임 데이터를 델타 타임 코드로 복제하고 이 델타 타임 코드를 샘플치의 쌍과 함께 저장한다. 정확한 타임 데이터가 데이터 처리에 필요하면, 중앙 처리 장치(62)는 카운터를 정의하며, 각 쌍의 오디오 데이터 코드를 수신시 카운터를 증분시켜 오디오 음악 데이터 코드들 간의 시간 간격을 비례적으로 할당하여 시간을 정확하게 결정한다.
중앙 처리 장치(62)가 특성 이벤트를 추출하고 노트 이벤트를 수신하는 동안, 오디오 타임 데이터 코드는 간헐적으로 인터페이스(65a)에 도달하여 중앙 처리 장치(62)는 최후의 오디오 타임 코드로부터 델타 타임 코드를 생성한다.
제1 변형예에서, 예컨대 카운터나 소프트웨어 타이머에 의해 구현되는 내부 클럭은 데이터 처리에 필요하지 않아 시스템 구성 또는 컴퓨터 프로그램이 간략화될 수 있다.
다른 변형예
상기 제3 실시예 및 그 변형예에서, 시스템 구성요소들(1E/1F, 2E/2F, 4E/4F, 5E/5F 및 6E/6F)은 자동 연주 피아노(3E/3F)에 탑재된다. 그러나, 제2 변형예는 복수의 구성요소가 물리적으로 서로 분리되도록 구성된다. 제2 실시예에 따른 동기 연주 시스템은 물리적으로 이하의 복수의 구성요소로 구분된다.
15. CD 드라이버(1E/1F),
16. FD 드라이버(2E/2F),
17. 자동 연주 피아노(3E/3F),
18. 믹서/디지털-아날로그 변환기(41/42),
19. 증폭기(43),
20. 스피커(44), 및
21. 조작 패널/표시부 및 제어기(5E/5F 및 6E/6F)
또한, 제어기(6E/6F)는 물리적으로 기록부와 재생부로 구분될 수 있다.
이들 시스템 구성요소는 오디오 케이블, MIDI 케이블, 오디오 신호용 광섬유, USB 케이블 또는 동기 재생 시스템을 위해 새롭게 고안된 케이블을 통해 접속될 수 있다. 시장에서 구할 수 있는 표준 FD 드라이버, 표준 증폭기 및 표준 스피커가 본 발명에 따른 동기 재생 시스템에 사용될 수 있다.
분리형 동기 재생 시스템이 사용자에게 바람직한데, 사용자는 이미 그들 자신의 시스템에 일부 구성요소들을 가지고 있기 때문이다.
동기 재생 시스템의 제3 변형예는 CD 드라이버(1E/1F) 및 FD 드라이버(2E/2F)를 포함하지 않지만 제어기(6E/6F)는 HD 드라이버 및 LAN(Local Area Network), WAN이나 인터넷에 접속가능한 인터페이스를 포함한다. 이 경우, 오디오 데이터는 적당한 데이터 소스로부터 인터페이스를 통해 공급되고, HD에 저장된다. 유사하게, 표준 MIDI 파일은 외부 데이터 소스로부터 인터페이스를 통해 전달되고 또한 HD에 저장된다. 사용자가 키보드(31a)를 사용하는 동안 오디오 음악 데이터 코드가 HD로부터 판독되고 오디오부(4E/4F)로 전달되어 전기음으로 변형한다. 이벤트 코드 및 델타 타임 코드가 트랙 청크에 저장되고 표준 MIDI 파일은 HD에 남는다.
제3 실시예를 구현하는 동기 재생 시스템에서, 디지털 신호 처리기(63)는 완전 상관 지표 상의 분석, 상대적 상관 지표 상의 분석 및 상관치 상의 분석을 통해 생관 분석을 한다. 3종류의 분석이 상관 판정을 정확하게 하지만, 세 종류의 분석은 너무 부담이 된다. 따라서, 제4 변형예는 이 세 종류의 분석 중 하나 또는 둘을 통해 상관 판정을 행한다.
제4 변경예는 식 (10)만으로 단계 S52의 결정을 한다. 구체적으로, 디지털 신호 처리기는 Dm-1과 Dm과의 곱을 계산하여 그것이 0이하인지를 판정한다. 곱이 0 이하이면, 상관치의 함수인 변화율을 0이거나 0을 거쳐 변한다. 이는 상관치가 최대이거나 최대 근처라는 것을 의미한다. 따라서, 단계 S52에서의 응답은 긍정이다. 최소와 최대가 서로 근접할 확률이 거의 없는 경우, 간단한 데이터 처리를 통해 동일한 응답이 얻어진다.
제3 실시예에서, 샘플값이 임계값을 초과하면, 중앙 처리 장치(62)는 기준 개시 타임과 기준 종료 타임을 결정한다. 따라서, 헤드부의 참조 상관 데이터 및 기준 종료 오디오 데이터는 음악 NA의 헤드부의 참조 미가공 및 음악 NA의 종료부의 참조 미가공로부터 생성된다. 반면, CPU는 제6 실시예에서 기준 개시 타임과 탐조 종료 타임을 임의의 음악 NA의 일부 미가공를 기초로 판정한다. 예컨대, CPU는 재생의 개시로부터 어떤 시간의 경과와 재생 종료전 다른 어떤 시간을 기준 개시 시간과 기준 종료 시간으로 각각 제6 실시예에서 지정할 수 있다. 이 특성은 라이브 콘서트에서 기록되는 음악에 적합하다. 음성 및/또는 박수가 기록되는 음악에 혼합되지만, 참조 미가공 데이터는 적당한 악곡에서 음성 및/또는 박수의 영향과 무관하게 추출된다. 연주 개시 직후에 공백이 반복될 수 있다. 그런 경우에도, 미가공는 특정 공백을 나타내는 악곡의 중간 부분으로부터 추출된다.
제7 변형예의 특별한 특성은 표준 MIDI 파일에 저장된 태그나 식별 정보에 있다. 태그는 악곡 NB가 기록되는 트랙 번호의 조합 또는 콤팩트 디스크 CD-B에 배타적으로 사용되는 식별 데이터를 나타낼 수 있다. 식별 데이터는 콤팩트 디스크 CD-B에 지표로 저장되어 중앙 처리 장치(62)가 CD 드라이버가 CD의 지표로부터 식별 정보를 전달하도록 요청한다. 중앙 처리 장치(62)는 트랙 번호와 식별 번호를 나타내는 복합 데이터가 저장되는 시스템 고유의 이벤트 코드를 생성하고 이 시스템 고유의 이벤트 코드를 표준 MIDI 파일에 부가한다. 표준 MIDI 파일을 완료하면, 중앙 처리 장치(62)는 그것을 FD 드라이버에 전달하고, FD 드라이버가 그것을 FD에 저장하도록 한다.
사용자는 제7 변경예에서 콤팩트 디스크 드라이버와 플로피 디스크 드라이버에 각각 콤팩트 디스크와 플로피 디스크를 로딩한 후에 동기 재생을 수행하도록 명령하는 것으로 가정한다. 사용자가 콤팩트 디스크에 저장된 곡을 지정하는 경우, 중앙 처리 장치는 콤팩트 디스크 드라이버에게 콤팩트 디스크에 할당된 판별적 데이터들과 곡이 인터페이스에 기록되어 있는 트랙 번호를 전송할 것을 요청한다.
계속해서, 중앙 처리 장치는 판별적 데이터와 트랙 번호를 플로피 디스크 드라이버에게 제공하고, 플로피 디스크 드라이버에게, 동일한 판별적 데이터와 동일 한 트랙 번호를 나타내는 시스템 독점 이벤트가 저장되어 있는 표준 MIDI 파일을 찾도록 플로피 디스크를 검색하도록 요청한다. 플로피 디스크 드라이버가 성공적으로 검색을 완료하면, 플로피 디스크 드라이버는 표준 MIDI 파일을 제어기로 전송하고, 제어기는 동기 재생을 시작한다. 반면에, 플로피 디스크 드라이버가 플로피 디스크 내의 표준 MIDI 파일을 찾지 못하면, 플로피 디스크 드라이버는 제어기로 실패를 통지하고, 제어기는 조작 패널/표시부에게 에러 메시지를 생성하도록 요청한다.
제7 변경예는 플로피 디스크를 쉽게 관리할 수 있게 한다. 또한, 제7 변경예는 악곡에 대한 플로피 디스크를 자동적으로 검색하여 사용자가 쉽게 동기 재생을 즐길 수 있도록 한다.
제4 실시예
도 54는 본 발명에 따른 다른 동기 플레이어 시스템을 보여준다. 제4 실시예를 구현하는 동기 플레이어 시스템은 또한 크게는 콤팩트 디스크 드라이버(1G), 플로피 디스크 드라이버(2G), 자동 연주 피아노(3G), 오디오부(4G), 조작 패널/표시부(5G) 및 제어기(6G)를 포함한다. 콤팩트 디스크 드라이버(1G), 플로피 디스크 드라이버(2G), 자동 연주 피아노(3G), 오디오부(4G), 조작 패널/표시부(5G)는 동기 플레이어 시스템의 구성요소들 1E/2E/3E/4E/5E의 구성 및 동작과 유사하고, 구성 요소부는 도 32에 도시된 대응 구성요소부를 지시하는 참조번호로 표시되어 있다. 비록 제어기(6G)가 데이터 처리에 있어서 제어기(6E)와 약간 다르다고 할지라고, 시스템 구성은 제어기(6E)의 구성과 유사하며, 이 때문에, 이 구성 요소들도 상세 한 설명 없이 제어기(6E)의 것과 대응하는 구성 요소들을 나타내는 참조번호로 표시하였다.
도 55는 표준 MIDI 파일 MFE를 보여주며, 이것은 제4 실시예를 구현하는 동기 플레이어 시스템에서 이용가능하다. 표준 MIDI 파일 MFE는 헤더 청크 HC 와 트랙 청크 TC로 갈라진다. 헤더 청크 HC에는 트랙 청크 TC에 저장되어질 음악 데이터에 대한 포맷을 나타내는 제어 데이터들 및 단위 시간이 지정된다. 트랙 청크 TC에는 MIDI 음악 데이터 코드들, 즉 노트 이벤트 코드, 시스템 독점 이벤트 코드 및 델타 타임 코드가 지정된다. 델타 타임 코드는 이벤트 코드와 다음 이벤트 코드 사이의 시간 간격, 또는 재생의 시작으로부터의 시간 경과를 나타낸다. 이 경우에 있어서, 델타 타임 코드는 재생의 시작으로부터 경과한 시간을 초로 나타낸다. 그러나, 델타 타임 코드는 다른 시스템에서 이벤트와 다음 이벤트 사이의 시간 간격을 나타낼 수 있다.
도 56A, 56B 및 56C는 MIDI 음악 데이터 코드용의 포맷을 나타낸다. 도 56A는 노트-온 이벤트 코드 EV1E의 데이터 필드 DF1/DF2/DF3을 나타내고, 도 56B는 노트-오프 이벤트 코드 EV2E의 데이터 필드 DF4/DF5/DF6을 나타내고, 도 56C는 시스템 독점 이벤트 코드 EV3E의 데이터 필드 DF7/DF8/DF9/DF10을 나타낸다. 시스템 독점 이벤트 코드를 제외한 다른 이벤트 코드들이 구별가능해질 수 있도록 하기 위하여, 다른 이벤트 코드들은 이하에서 "노트 이벤트 코드"라고 칭한다. 데이터 필드 DF1 내지 DF10의 내용은 제1 실시예와 함께 설명된 이벤트 코드들의 내용과 동일하고, 이 때문에 바람직하지 못한 반복을 피하기 위해 이하에서 더이상의 설명을 기재하지 않는다.
이벤트 코드 EV1E, EV2E 및 EV3E는 어떠한 시간 데이터도 갖지 않으며, 톤 생성, 톤 감쇠 및 다른 제어에 사용된다. 즉, 이벤트 코드 EV1과 EV2는 톤을 제어기히 위해 즉시 실행되고, 사용자의 데이터 또한 즉시 처리된다. 이들 종류의 이벤트 코드들 EV1E, EV2E 및 EV3E는 표준 MIDI 파일 MF의 트랙 청크를 형성한다.
사전 기록
사용자는 콤팩트 디스크 CD-A에 기록된 악곡의 재생과 함께 연주를 수행한다. 복수개의 악곡이 콤팩트 디스크 CD-A에 기록되어 있다고 하더라고, 사용자는 복수개의 악곡 중에서 하나를 선택하고, 복수개의 악곡 중에서 선택된 하나는 이하에서 "악곡 N"으로 지칭되며, 악곡 N을 나타내는 오디오 음악 데이터 코드들의 세트는 NA 로 지칭한다.
사용자는 우선 콤팩트 디스크 CD-A를 콤팩트 디스크 드라이버(1G)로 로딩하고, 사전 기록을 통해 생성되어질 표준 MIDI 파일을 저장하기에 충분한 용량을 갖는 플로피 디스크 FD를 플로피 디스크 드라이버(2G)로 로딩한다. 사용자는 조작 패널/표시부(5G) 상의 명령 키를 눌러서 중앙 처리 장치(62)가 사용지의 명령에 응답하여 사전 기록을 시작하도록 한다. 그 다음에, 중앙 처리 장치(62)는 인터페이스(65a)를 통한 재생에 대한 요청을 나타내는 제어 신호를 콤팩트 디스크 드라이버(1G)에 제공한다.
콤팩트 디스크 드라이버(1G)는 회전용의 콤팩트 디스크 CD-A를 구동시키고, 오디오 음악 데이터 코드를 인터페이스(65a)에 전송한다. 오디오 음악 데이터 코 드쌍은 1/44100초마다의 간격으로 우측 채널과 좌측 채널용의 인터페이스(65a)로 전송된다. 오디오 음악 데이터 코드쌍은 (R(n), L(n))으로써 표현되고, 오디오 음악 데이터 코드 R(n)/L(n)의 값은 이하에서 "샘플값 (n)"으로 칭한다. "n"은 오디오 음악 데이터 코드 NA 세트의 헤드로부터 카운트되는 오디오 음악 데이터 코드쌍 (R(n), L(n))의 위치를 나타낸다. 오디오 음악 데이터 코드의 첫번째쌍은 (R(0), L(0))으로써 표현되며, "n"은 "1", "2", "3",...을 통하여 증가한다. 샘플값은 정수이며, 모든 샘플값은 -32768로부터 +32767까지의 범위에 속한다. "n"은 트랙에서의 오디오 음악 데이터 코드의 위치를 나타낸다.
오디오 음악 데이터 코드의 첫번째쌍 (R(0), L(0))이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 오디오 음악 데이터 코드쌍 (R(0), L(0))을 인터페이스(65a)로부터 페치하고, 클럭 신호의 클럭을 카운트하기 시작한다. 즉, 중앙 처리 장치(62)는 오디오 음악 데이터 코드의 첫번째쌍 (R(0), L(0))의 도착 시간으로부터 경과한 시간을 측정하기 위해 내부 클럭을 시작한다. 오디오 음악 데이터 코드의 첫번째 쌍 (R(0), L(0))의 도착 시간은 0.00초이다.
오디오 음악 데이터 코드쌍 (R(0), L(0)), (R(1), L(1)), (R(2), L(2)),...이 인터페이스(65a)에 도달하는 동안, 중앙 처리 장치(62)는 오디오 음악 데이터 코드쌍 (R(n), L(n))을 자동 연주 피아노(3G)로 전송하고, 악곡 N을 따라 전기 신호로 변환한다. 콤팩트 디스크 플레이어(1G)는 악곡 N의 종료까지 모든 쌍의 오디오 음악 데이터 코드를 계속해서 전송한다.
중앙 처리 장치(62)는 더 동작하여 오디오 음악 데이터 코드쌍의 샘플값 (n) 을 RAM(64)에, 오디오 음악 데이터 코드쌍 (R(n), L(n))의 도착 시간과 함께 저장한다. 오디오 음악 데이터 코드쌍 (R(n), L(n))의 도착 시간은 "도착 시간(n)"으로써 표현된다.
샘플값(n)과 이와 관련된 도착 시간(n)의 쌍은 연속적으로 큐에 들어간다. 이 경우에, 최대한 1323000 쌍의 샘플값(n)과 이것의 도착시간(n)이 큐에 들어간다. 샘플값(1323001)과 도착 시간(1323001)의 쌍이 큐에 도달하면, 샘플값(0)과 도착시간(0)의 첫번째 쌍이 큐로부터 밀어져서, 새롭게 수신한 샘플값(1323001)과 도착시간(1323001)의 쌍이 큐의 말미에 기록되게 된다. 1323000쌍의 샘플값은 30분 동안 계속되는 전자 톤과 대등하다. 중앙 처리 장치(62)는 샘플값 쌍과 이의 도착 시간(n)이 최종 샘플값 쌍과 이의 도착 시간까지 큐를 결합시켜, 큐 상수의 길이를 유지한다.
또한, 중앙 처리 장치(62)는 사일런트 시간 후에, 즉, 랜덤 액세스 메모리(64)에서 제1 전기 톤의 발생 개시로부터 216쌍의 샘플값을 저장하도록 동작한다. 216쌍의 샘플값, 즉 65536 쌍의 오디오 악곡 데이터는 1.49초동안 지속된 전기 톤과 등가이다. 이하, 216쌍의 샘플값은 "선두 참조 미가공 데이터"라고 칭한다.
상세하게는, 제1 쌍의 오디오 악곡 데이터 코드 (R(0), L(0))이 중앙 처리 장치(62)에 도달하면, 중앙 처리 장치(62)는 그 제1 쌍의 오디오 악곡 데이터 코드(R(0), L(0)) 내지 (R(65535))을 체크하기 시작하여 샘플값 쌍이 임계값을 초 과하는지의 여부를 확인한다. 이 임계값은 사일런트과 제1 음 사이의 경계를 나타낸다. 이 경우, 임계값을 1000으로 가정하자. 오디오 악곡 데이터 코드(R(50760), L(50760)) 쌍 중 적어도 하나의 샘플값은 임계값을 초과하는 것으로 가정한다. "n"이 0부터 50759까지 증가하는 경우에, 결과는 부정으로 주어지고, 중앙 처리 장치(62)는 이들 쌍의 오디오 악곡 데이터 코드(R(0), L(0)) 내지 (R(50759), L(50759))을 무시한다. 즉, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드 쌍(R(0), L(0)) 내지 (R(50759), L(50759))을 랜덤 액세스 메모리(64)에 축적하지 않는다. 사일런트 시간 주기는 약 1.15초이다.
"n"이 50760에 도달한 경우, 중앙 처리 장치(62)는 결과를 긍정으로 변환시킨다. 긍정 결과인 경우에, 중앙 처리 장치(62)는 샘플값이 경계값을 초과하는 기준 개시 시간을 결정하고, 그 기준 개시 시간과 함께 샘플값(50760) 쌍을 랜덤 액세스 메모리(64)에 저장한다. 중앙 처리 장치(62)는 65536 쌍의 샘플값을 연속적으로 랜덤 액세스 메모리(64)에 전송하여 오디오 악곡 데이터 코드 쌍의 샘플값(R(50760), L(50760)) 내지 (R(116295), L(116295))이 임계값과의 비교없이 랜덤 액세스 메모리(64)에 저장되도록 한다. 이렇게 하여, 사일런트가거나 거의 사일런트를 나타내는 이들 오디오 악곡 데이터 코드 쌍의 샘플값은 랜덤 액세스 메모리(64)에 축적되지 않는다. 오디오 악곡 데이터 코드 쌍의 샘플값(R(50760), L(50760)) 내지 (R(116295), L(116295))는 선두 참조 미가공 데이터로서 기능하고, 기준 개시 시간은 1.15초이다.
중앙 처리 장치(62)가 선두 참조 미가공 데이터의 축적을 완료한 경우, 중앙 처리 장치(62)는 선두 참조 미가공 데이터로부터 선두 참조 상관 데이터 곡을 생성하도록 디지털 신호 처리기(63)에게 요구한다. 선두 참조 상관 데이터 곡은 172.27㎑로 샘플링된 오디오 데이터 곡과 등가이다. 디지털 신호 처리기(63)는 선두 미가공 데이터 곡으로부터 선두 참조 상관 데이터 곡을 생성한다. 선두 참조 상관 데이터 곡은 오디오 악곡 데이터 코드 쌍과 오디오 악곡 데이터 코드의 다른 쌍과의 상관 판정에 사용된다.
도 57은 선두 참조 미가공 데이터 또는 샘플값(n)의 쌍으로부터 선두 참조 상관 데이터 곡을 생성하는 방법을 도시한다. 이 방법은 컴퓨터 프로그램의 형태로 프로그램 메모리에 저장된다. 디지털 신호 처리기(63)가 요구에 대하여 응답 확인하는 경우에, 디지털 신호 처리기(63)는 우선 단계 S1에서 참조 미가공 데이터 곡, 즉 랜덤 액세스 메모리(64)로부터의 오디오 악곡 데이터 코드 쌍의 샘플값(R(n), L(n))을 판독하고, 단계 S2에서 스테레오 오디오 악곡 데이터를 모노 오디오 악곡 데이터로 변환하기 위해, 각 쌍의 오디오 악곡 데이터 코드의 샘플값(R(n), L(n))의 산술 평균을 계산한다. 스테레오 오디오 악곡 데이터의 모노 오디오 악곡 데이터로의 변환은 디지털 신호 처리기(63)에 대한 부담을 경감시킨다.
계속해서, 단계 S3에서 디지털 신호 처리기(63)는 고역 통과 필터링과 등가인 데이터 처리를 통해 산술 평균의 값으로부터 아날로그 오디오 신호의 직류 성분을 나타내는 값을 제거한다. 그 계산된 값은 포지티브 및 네거티브 도메인에 플로팅된다. 상관 판정의 정확성 관점에서는, 계산된 값은 포지티브 및 네거티브 도메 인에 분산되는 것이 바람직하다. 이렇게 하여, 고역 통과 필터링과 등가인 데이터 처리를 통해 높은 신뢰성의 상관 판정이 가능하게 된다.
계속해서, 그 계산된 값은 단계 S4에서 절대값이 취해진다. 샘플값 누승의 치환값은 절대화를 통해 각 계산된 값에 대하여 결정된다. 절대값은 누승을 나타내는 제곱수보다 작아서, 후속 데이터 처리에서 다루기 쉽다. 그럼에도 불구하고, 신호 처리 프로세서(63)는 극도의 데이터 처리 용량을 갖아, 절대값대신에 제곱수를 계산할 수도 있다.
계속해서, 디지털 신호 처리기(63)는 단계 S5에서 빗 라인 필터와 등가인 데이터 처리를 통해 절대값으로부터 원래의 오디오 신호 파형의 변동 경향을 나타내는 저주파수 성분을 추출한다. 저주파수 성분이 저역 통과 필터와 등가인 데이터 처리를 통해 통상적으로 추출되지만, 빗 라인 필터와 등가인 데이터 처리는 저역 통과 필터와 등가인 데이터 처리보다는 로드 측면에서 더 가볍다. 이러한 이유로, 빗 라인 필터와 등가인 데이터 처리, 즉 빗 라인 필터링이 채용된다.
도 58은 빗 라인 필터의 회로 구성을 도시한다. 박스는 지연 회로를 의미하고, 삼각형은 승산을 의미한다. "Z-K"는 좌측 박스로 들어가고, "k"는 지연 시간을 의미한다(샘플링 주기×k). 샘플링 주파수가 44100㎑이므로 샘플링 주기는 1/44100초가 된다. 승산기는 삼각형내에 각각 들어 있다. 도 58에서, "k"는 하기와 같이 주어진다.
Figure 112003030865852-pat00012
승수 "k"를 갖는 승산을 통한 데이터 처리에 의해서, 빗 라인 필터는 주파수 f로 고역 통과 필터링을 행할 수 있어, 직류 성분은 절대값으로부터 완전하게 제거된다. 상관 판정에서의 정확성을 향상시키기 위해 "k" 및 "f"는 실험적으로 최적화되는 것이 바람직하다.
도 57을 다시 참조하면, 디지털 신호 처리기(63)는 다음 단계에서의 다운-샘플링을 통한 샘플 데이터의 폴드-오버 잡음을 방지하기 위하여 단계 S56에서 저역 통과 필터와 등가인 데이터 처리를 실행한다. 다음 단계 57과 관련하여 후술하겠지만, 디지털 신호 처리기(63)는 44100㎐에서의 샘플값을 172.27㎐ 다운-샘플값으로 변환하여, 폴드-오버 잡음이 발생한다. 다운-샘플값의 폴드-오버 잡음을 방지하기 위하여, 86.13㎐, 즉 172.27㎐의 절반보다 높은 주파수 성분을 제거할 필요가 있다. 빗 라인 필터가 샘플값 쌍으로부터 고주파수 성분을 공평하게 제거하지 못할지라도, 고주파수 성분은 여전히 샘플값에 남아 있다. 이런 이유로, 디지털 신호 처리기(63)는 다운-샘플링 전에 샘플값으로부터 고주파수 성분을 완전하게 제거한다. 디지털 신호 처리기(63)가 큰 데이터 처리 용량을 갖는 경우에, 디지털 신호 처리기(63)는 단계 S5 및 S6에서의 2가지 데이터 처리 대신에 고정밀도의 저역 통과 필터링과 등가인 데이터 처리를 실행할 수도 있다.
계속해서, 디지털 신호 처리기(63)는 단계 S7에서 매 256 샘플마다 샘플을 선택한다. 즉, 디지털 신호 처리기(63)는 1/256에서 다운-샘플링을 실행한다. 다운-샘플링이 완료되면, 데이터의 양은 65536에서 256으로 감소한다. 다운-샘플링 후의 샘플은 선두 참조 상관 데이터 곡으로 기능한다. 디지털 신호 처리기(63)에 대한 로드는 다운-샘플링을 통해 경감된다. 디지털 신호 처리기(63)가 큰 데이터 처리 용량을 갖는다면, 디지털 신호 처리기(63)는 단계 S6에서 단계 S8로 바로 진행한다. 최종적으로, 디지털 신호 처리기(63)는 단계 S8에서 선두 참조 상관 데이터 곡을 랜덤 액세스 메모리(64)에 저장한다. 따라서, 디지털 신호 처리기(63)는 선두 미가공 데이터 곡으로부터 선두 참조 상관 데이터 곡을 생성하여, 그 선두 참조 상관 데이터를 랜덤 액세스 메모리(64)에 저장한다.
선두 참조 미가공 데이터의 제1 곡이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 또한 디지털 신호 처리기(63)가 모든 참조 미가공 데이터 곡에서 특성 이벤트를 찾도록 요구한다. 디지털 신호 처리기(63)는 사전 결정된 주파수에서의 저역 통과 필터링과 등가인 데이터 처리를 통해 큐에서의 샘플값 쌍으로부터 저주파수 성분을 추출하고, 그 사전 결정된 주파수보다 더 낮은, 사전 결정된 다른 주파수에서의 저역 통과 필터링과 등가인 데이터 처리를 통해 큐에서의 샘플값 쌍으로부터 더 낮은 저주파수 성분을 추출한다. 서로 다른 주파수에서의 저역 통과 필터링과 등가인 데이터 처리의 완료시, 디지털 신호 처리기(63)는 저주파수 성분과 더 낮은 저주파수 성분을 비교하여, 특성 이벤트가 발생하였는지의 여부를 확인한다. 이 특성 이벤트는 플래그 종류나 타이밍 조정 처리에 사용된 타이밍 데이터이다.
도 59는 특성 이벤트를 나타내는 관리 정보곡을 생성하는 방법을 도시한다. 이 방법은 디지털 신호 처리기(63)에 의해 실행되는 컴퓨터 프로그램으로 구현된다.
디지털 신호 처리기(63)가 관리 정보를 생성하기 위한 요구를 수신한 경우, 디지털 신호 처리기(63)는 단계 S0에서 컴퓨터 프로그램을 기동시킨다. 디지털 신호 처리기(63)는 단계 S11에서 랜덤 액세스 메모리(64)내의 큐로부터 사전 결정된 수의 샘플값 쌍을 판독한다. 데이터 전송은 큐의 후단부터 실행된다. 이 경우, 사전 결정된 수는 44100이다. 물론, 다른 자연수가 사전 결정된 수로 될 수도 있다. 하기의 설명에서, 큐로부터 판독된 샘플값 쌍은 "미가공 데이터 곡"이라 칭하고, 후단에서 샘플값(n) 쌍을 갖는 미가공 데이터 곡의 세트를 "미가공 데이터 곡(n)"으로 부른다. 샘플 데이터(50760)의 쌍이 관리 정보를 생성하기 위한 요구의 수신에서 큐의 후단을 차지한다면, 샘플값 쌍 (6601) 내지 (50760)은 랜덤 액세스 메모리(64)로부터 판독되어, 미가공 데이터를 형성한다.
계속해서, 산술 평균은 단계 S12에서 샘플값의 각 쌍으로부터 계산된다. 이 산술 동작은 스테레오 소리로부터 모노 소리로의 변환과 등가이다. 산술 평균은 디지털 신호 처리기(63) 에 대한 로드를 경감시킨다.
계속해서, 디지털 신호 처리기(63)는 단계 S13에서 산술 평균의 절대값을 결정한다. 누승에 대한 치환값은 절대화를 통해 얻어진다. 이 절대값은 누승을 나타내는 제곱수보다 작아서, 후속 데이터 처리를 조정하기가 쉬워진다. 그럼에도 불구하고, 신호 처리 프로세서(63)는 대용량 데이터 처리 용량을 갖고 있어서, 디 지털 신호 처리기(63)는 절대값대신에 계산값의 제곱수를 계산할 수도 있다.
계속해서, 디지털 신호 처리기(63)는 단계 S14에서 절대값을 저역 통과 필터링하는 것과 등가인 데이터 처리를 실행한다. 이 경우, 컷오프 주파수는 100㎐로 가정한다. 물론, 다른 주파수가 컷오프 주파수로 기능할 수도 있다. 저역 통과 필터링과 등가인 데이터 처리의 완료시에, 중기 지표가 샘플값에 대해 얻어진다. 샘플값(n)에 대한 중기 지표는 "중기 지표(n)"로 표현된다. 중기 지표(n)는 중기에서의 오디오 파형내의 샘플값(n)의 쌍에 대응하는 시점에서의 변동 경향을 나타낸다. 일반적으로, 오디오 파형은 짧은 범위에서 자주 변한다. 이 단기 편차는 앞선 샘플값 쌍에 의해 제한되기 때문에, 단기의 편차는 저역 통과 필터링과 등가인 데이터 처리를 통해 일련의 샘플값 쌍으로부터 제거된다. 그 결과, 중기 편차 및 장기 편차를 나타내는 데이터 정보는 디지털 신호 처리기(63)에 남게된다. 즉, 중기 지표 ...(n-2), (n-1), (n)은 디지털 신호 처리기(63)에 남게 된다. 디지털 신호 처리기(63)는 단계 S15에서 랜덤 액세스 메모리(64)에 지표를 저장하기 위해 랜덤 액세스 메모리(64)로 중기 지표를 전송한다.
계속해서, 디지털 신호 처리기(63)는 단계 S16에서 빗 라인 필터를 통한 저역 통과 필터링과 등가인 데이터 처리를 실행한다. 단계 S16에서의 컷오프 주파수는 단계 S14에서의 컷오프 주파수보다 작다. 이는 중기 지표로 표현된 파형으로부터 아주 작은 저주파수 성분의 추출과 같다. 빗 라인 필터와 등가인 데이터 처리는 저역 통과 필터와 등가인 데이터 처리보다 부하가 더 가벼워지므로, 디지털 신호 처리기(63)에 빗 라인 필터가 바람직하다.
도 60은 빗 라인 필터와 등가인 디지털 처리를 나타낸다. 박스와 원은 직렬로 연결된 2개의 루프를 형성하고, 삼각형은 제2 루프와 데이터 출력 포트 사이를 연결한다. 이들 박스는 신호 전파에 지연을 도입하고, "Z-k"는 샘플링 주기와 상수 k 간의 곱과 등가인 지연 시간을 나타낸다. 상기한 바와 같이, 샘플링 주파수는 44100㎐이다. 이는 샘플링 주기는 1/44100초 이다. 삼각형은 승산을 나타내고, "1/k"는 승수이다. 하기의 설명에서, "k"는 22050으로 가정한다. 1㎐보다 큰 주파수 성분은 빗 라인 필터와 등가인 데이터 처리를 통해 중기 지표로부터 거의 제거된다. 따라서, 장기 편차를 나타내는 성분은 단계 S16에서 데이터 처리의 완료시에 디지털 신호 처리기(63)에 남게된다.
계속해서, 디지털 신호 처리기(63)는 장기 편차를 나타내는 일련의 성분과 긍정 상수 "h"를 승산한다. 다음 단계 S19에서의 긍정 결과를 갖는 주파수는 단계 S17에서의 승산을 통해 적절한 값으로 조정된다. "h"가 작다면, 긍정 결과과 다음 긍정 결과 사이의 시간 간격은 좁게 된다. 긍정 결과의 시간 간격이 너무 넓은 경우에, 특성 이벤트가 긴 시간 간격에서 생성되고, 타이밍 조정 처리의 정확성이 더 낮아진다. 한편, 긍정 결과의 시간 간격이 좁으면, 긍정 결과는 단계 S20에서 소거되는 경향이 생기고, 특성 이벤트는 긴 시간 간격에서 얻어진다. 이로 인해 타이밍 조정 처리의 정확성이 낮아진다. 이 상황에서, 승수 "h"는 실험적으로 결정된다. 단계 S17에서의 승산 완료시에, 장기 지표는 디지털 신호 처리기(63)에 남게 된다. 샘플값(n)에 대응하는 장기 지표는 이하, "장기 지표(n)"로 부른다. 따 라서, 장기 지표 ... (n-2), (n-1) 및 (n)는 단계 S17에서의 데이터 처리 완료시에 디지털 신호 처리기(63)에 남게된다. 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)에 장기 지표를 전송하고, 이 장기 지표는 단계 S18에서 랜덤 액세스 메모리(64)의 사전 결정된 메모리 영역에 저장된다.
계속해서, 단계 S19에서 디지털 신호 처리기는 중기 지표(n) 및 장기 지표(n)를 랜덤 액세스 메모리(64)로부터 판독하고 서로 비교하여, 중기 지표(n)가 장기 지표(n)보다 큰지 또는 동일한 지의 여부를 확인한다. 단계 S19에서의 긍정 결과는 샘플 포인트(n)에 대응하는 포인트에서의 참조 미가공 데이터로 표현되는 오디오 파형 상의 중기에서의 급격한 변동을 지시한다. 더 상세하게는, 1㎐와 100㎐ 사이의 주파수 범위에서의 볼륨이 오디오 파형 상에서 갑자기 커지는 경우에, 중기 지표는 장기 지표보다 더 커지고, 단계 S19에서의 결과는 긍정인 "예"로 주어진다. 다음에, 디지털 신호 처리기(63)는 비교 결과가 긍정 결과인 현 시간에서 내부 클록을 체크하여, 랜덤 액세스 메모리(64)에 현 시간을 저장한다.
계속해서, 단계 S20에서 디지털 신호 처리기(63)는 앞선 긍정 결과가 랜덤 액세스 메모리(64)로부터 얻어진 시간을 판독하고, 현 시간으로부터 앞선 긍정 결과의 시간을 추출하여, 이 차가 사전 결정된 값 τ보다 작은지 또는 동일한 지의 여부를 확인한다. 이 차가 사전 결정된 값 τ보다 커다면, 앞선 특성 이벤트 생성으로부터 긴 시간이 걸린 것이다. 따라서, 단계 S20에서 데이터 처리는 중앙 처리 장치(62)가 짧은 시간간격에서 생성된 많은 특성 이벤트를 방지한다. 특성 이벤트가 너무 많으면, 콤팩트 디스크 CD-A에 저장된 오디오 악곡 데이터 코드의 샘플값(R(n), L(n))으로부터 생성된 특성 이벤트에 정확하게 대응하는 콤팩트 디스크 CD-B로부터 일련의 오디오 악곡 데이터 코드의 샘플값 내의 특성 이벤트를 판독하는 것이 어려워진다. 사전 결정된 값 τ은 실험적으로 결정된다. 물론, 디지털 신호 처리기(63)는 제1 긍정 결과를 획득하는 경우에, 랜덤 액세스 메모리(64)에 어떤 시간도 저장되어 있지 않다. 이 상황에서는, 단계 S20에서 결과는 자동적으로 부정이다.
단계 S20에서 부정 결과인 경우에, 단계 S21에서 디지털 신호 처리기(63)는 특성 이벤트를 생성하고, 중앙 처리 장치(62)에 그 특성 이벤트를 통지한다.
단계 S19에서 결과가 부정으로 주어지면, 디지털 신호 처리기는 단계 S22로 진행한다. 단계 S20에서 결과가 긍정으로 주어지는 경우에, 디지털 신호 처리기(63)는 또한 단계 S22로 진행한다. 단계 S21에서의 작업이 완료된 경우에 디지털 신호 처리기(63)는 또한 단계 S22로 진행한다. 디지털 신호 처리기(63)는 오디오 악곡 데이터 코드의 다음 쌍(R(n+1), L(n+1))을 대기한다. 오디오 악곡 데이터 코드의 다음 쌍이 인터페이스(65a)에 도달하는 경우에, 중앙 처리 장치(62)는 샘플값(n+1)의 쌍을 오디오부(4C)에 전송하고, 샘플값(n+1)의 쌍 및 도착 시간은 랜덤 액세스 메모리(64)내의 큐를 조인한다. 중앙 처리 장치(62)는 디지털 신호 처리기(63)에 다시 데이터 처리를 반복하도록 요구한다. 다음에, 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)로부터의 후단에서의 샘플값(n+1)의 쌍을 갖는 참조 미가공 데이터를 페치하여, 단계 S11로 복귀한다.
따라서, 디지털 신호 처리기(63)는 미가공 데이터가 최종 샘플값을 가질때까 지 루프를 형성하는 단계 S11 내지 S22를 반복한다. 따라서, 디지털 신호 처리기(63)는 악곡 진행 동안 미가공 데이터 또는 오디오 악곡 데이터 코드 쌍의 세트로부터 다수의 특성 이벤트를 추출한다.
본 발명자는 도 59에 도시된 컴퓨터 프로그램으로 구현된 데이터 처리를 확인하였다. IIR(Infinite Ompulse Response) 필터는 단계 S14에서 저역 통과 필터로 사용된다. 단계 S17에서 상수 "h"는 4이고, 시간 주기 τ는 0.55초 이다. 데이터 처리는 플롯 PL16E 및 PL17E이 되고, 도 61에 특성 이벤트가 도시되어 있다. 플롯PL16E는 중기 지표를 나타내고, 플롯PL17E는 장기 지표를 나타낸다. 중기 지표 PL16E는 장기 지표 Pl17E보다 크거나 같은 경우에, 디지털 신호 처리기(63)는 특성 이벤트를 생성한다. 큰 원으로 도시된 바와같이, A, B 및 C에서 중기 지표 트라이스가 장기 지표보다 크더라도, 사전 결정된 시간 0.55초가 포인트 B 및 C까지 끝나지 않았기 때문에, 디지털 신호 처리기(63)는 단지 A에서만 특성 이벤트를 생성한다. 악곡 NA로부터 추출된 특성 이벤트는 이하, "참조 특성 이벤트"로 부른다.
콤팩트 디스크 드라이버(1G)가 제어기(6G)를 통해 오디오부(4G)에 오디오 악곡 데이터 코드를 전송을 개시하는 경우에, 사용자는 악곡 실행을 준비한다. 전기 톤이 오디오부(4G)을 통해 생성되는 동안, 사용자는 흑/백 키를 선택적으로 누르고 띄며, 페달(31e)을 밟는다. 피아노 음향은 스트링(31d)의 진동으로 생성되고, 키 센서(32) 및 페달 센서(33)는 키 움직임과 페달 움직임을 제어기(34)에 보고한다. 제어기(34)는 피아노 음향으로 나누어지는 노트-온 이벤트, 노트-오프 이벤트 및 이펙트를 나타내는 이벤트 코드를 생성하여, 그 노트 이벤트 코드를 인터페이스(65a)에 공급한다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)로부터의 참조 특성 이벤트뿐만 아니라, 자동 연주 피아노(3G)로부터의 노트 이벤트 코드도 수신한다.
도 62는 사전 기록 모드에서의 앙상블동안 생성된 특성 이벤트 및 노트 이벤트를 도시한다. 중기 지표 및 장기 지표는 플롯 PL16E 및 PL17E에 의해 지시된 바와같이 각각 변화되고, 시간의 오른쪽은 가로축을 따라 움직인다. 제1 특성 이벤트는 오디오 악곡 데이터 코드의 제1 쌍의 도달으로부터 1.51초 후에, 즉 기준 개시 시간에 발생하고, 다른 특성 이벤트는 2.38초, 4.04초, ...에서 발생한다. 한편, 중앙 처리 장치(62)는 2.11초에서 제1 이벤트 코드를 수신하고, 다른 이벤트 코드는 2.62초, 3.06초,..에서 인터페이스(65)에 도달한다. 따라서, 특성 이벤트 코드 및 노트 이벤트 코드는 앙상블 동안 실시간 방식으로 생성된다. 비록 중기 지표PL16E가 1.78초에서 장기 지표PL17E보다 크더라도, 사전 결정된 시간 0.55초가 아직 끝나지 않았기 때문에, 중앙 처리 장치(62)는 임의의 특성 이벤트를 수신하지 않는다.
중앙 처리 장치(62)가 참조 특성 이벤트 코드를 통지하는 경우에, 중앙 처리 장치(62)는 참조 특성 이벤트를 저장하기 위한 시스템 전용 이벤트 코드를 생성하고 내부 클록을 체크하여, 참조 특성 이벤트가 얼마만에 내부 클록에 도달하는지 확인한다. 중앙 처리 장치(62)는 도착 시간을 나타내는 델타 타임 코드를 생성하고, 그 델타 타임 코드 및 참조 특성 이벤트 코드를 랜덤 액세스 메모리(64)에 저 장한다.
마찬가지로, 중앙 처리 장치(62)가 노트 이벤트 코드를 불러들이는 경우에, 중앙 처리 장치(62)는 내부 클록을 체크하여 노트 이벤트 코드가 얼마만에 내부 클록에 도달하는지 확인한다. 중앙 처리 장치(62)는 도착 시간을 타나내는 델타 타임 코드를 생성하고, 랜덤 액세스 메모리(64)에 그 델타 타임 코드 및 노트 이벤트 코드를 저장한다.
콤팩트 디스크 드라이버(1G)가 오디오 악곡 데이터 코드의 최종 쌍을 공급한다고 가정하면, 오디오 악곡 데이터 코드의 최종 쌍의 샘플값은 도착 시간과 함께 후단에서 큐를 조인하고, 디지털 신호 처리기(63)는 참조 특성 이벤트를 찾기 위한 후단 위치에서 최종 쌍의 샘플값을 갖는 미가공 데이터 상에서 데이터 처리를 실행한다. 최종 데이터 처리의 완료시에, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드에서 악곡N의 종단을 찾기 위한 컴퓨터 프로그램으로 분기한다.
상세하게는, 중앙 처리 장치(62)가 참조 특성 이벤트에 대한 데이터 처리를 완료하는 경우에, 최종 쌍의 샘플값 및 나머지 1322999개의 샘플값 쌍은 도착 시간과 함께 큐에 남게된다. 최종 쌍이 샘플값이 샘플값(7673399)의 쌍으로 표현되면, 샘플값(6350400)의 쌍 내지 최종 쌍의 샘플값(7673399)은 그들의 도착 시간과 함께 큐를 조인한다.
중앙 처리 장치(62)는 큐의 후단에서 샘플값 쌍을 판독하고, 샘플값 쌍을 체크하여, 샘플값 쌍의 적어도 하나가 임계값, 여기에서는 1000을 초과하는지의 여부를 확인한다. 결과가 부정으로 주어진다면, 중앙 처리 장치(62)는 후단에 앞 한곳 에서 샘플값 쌍을 판독하고 샘플값 쌍을 체크하여, 샘플값의 적어도 하나가 임계값을 초과하는지를 확인한다. 결과가 부정으로 주어지는 동안, 중앙 처리 장치(62)는 큐의 선두쪽의 샘플값 쌍을 판독하고 샘플값과 임계값을 비교하는 것을 반복한다.
샘플값(7634297) 중의 하나가 임계값을 초과한다고 가정한다. 샘플값(767399)의 쌍 내지 샘플값(7634298)의 쌍은 임계값을 초과하지 않는다. 이는 오디오 악곡 데이터 코드의 세트의 종단에서 0.89초 동안 사일런트가 계속된다는 것을 의미한다. 샘플값의 적어도 하나가 임계값보다 큰 샘플값 쌍은 이하, "샘플값(Z)의 쌍"으로 부른다. 악곡N은 샘플값(Z)의 쌍에서 완료된다. 중앙 처리 장치(62)가 오디오 악곡 데이터 코드 쌍의 세트에서 샘플값(Z)의 쌍을 찾는 경우에, 중앙 처리 장치(62)는 악곡의 종단용 검색을 계속하지 않는다.
악곡의 종단용 큐를 검색하는 데이터 처리의 완료시에, 중앙 처리 장치(62)는 종단 부분 또는 오디오 데이터 종단에서 참조 상관 데이터 곡을 생성하는 컴퓨터 프로그램으로 분기한다. 중앙 처리 장치(62)는 종단 미가공 데이터로부터 종단 참조 상관 데이터곡, 즉 컴퓨터 프로그램으로 구현된 데이터 처리를 통한 큐에서의 샘플값 쌍을 생성한다. 도 63에 도시된 컴퓨터 프로그램과 함께 몇몇 작업은 디지털 신호 처리기(63)에 의해 실행된다.
다음의 설명에서는, 샘플값(W)의 쌍은 큐의 선두를 차지하고, "W" 및 "Z"는 각각 6350400 및 7634297로 가정한다. "W" 및 "Z"는 다른 예에서는 서로 다른 값을 가질 수 있다. 이는 샘플값(6350400)의 쌍 내지 샘플값(7673399)의 쌍은 도착 시간과 함께 큐를 조인한다. 샘플값(7634297)의 쌍은 악곡N의 종단을 차지한다. 65536개의 샘플값 쌍은 "종단 미가공 데이터(n) 곡"으로 부르고, 샘플값(n)의 쌍은 종단 미가공 데이터의 종단을 차지한다.
우선, 단계 S31에서 중앙 처리 장치(62)는 카운터 i 및 j를 "Z"로, 즉 7634297 및 0으로 설정하고, 디지털 신호 처리기(63)가 종단 위치(i-j)에서 참조 미가공 데이터로부터 종단 위치 또는 오디오 데이터 종단에서 참조 상관 데이터곡을 생성하도록 요구한다. 종단 참조 상관 데이터곡을 생성하는 데이터 처리는 이미 상기한 선두 참조 상관 데이터곡을 생성하는 것과 마찬가지이다. 데이터 처리의 완료시, 단계 S32에서 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)에 종단 서 256개의 참조 상관 데이터곡을 저장한다. 따라서, 종단에서의 256개의 참조 상관 데이터(n)곡은 종단 참조 미가공 데이터(n)으로부터 획득된다. (i-j)가 7634297이기 때문에, 종단 참조 상관 데이터(7634297)는 랜덤 액세스 메모리(64)에 저장된다.
계속해서, 단계 S33에서 중앙 처리 장치(62)는 카운터j를 체크하여 카운터 j가 881999에 도달하였는지를 확인한다. 카운터 j에 저장된 값이 881999보다 작아서, 단계 S33의 결과가 부정으로 주어지고, 중앙 처리 장치(62)는 단계 S34에서 카운터 j를 1만큼 증가시킨다. 카운터 j가 증가한 후, 중앙 처리 장치(62)는 단계 S31로 복귀한다. 따라서, 중앙 처리 장치는 미가공 데이터의 종단을 계단식으로 1만큼 시프트하고, 단계 S32 내지 S34를 구성하는 데이터 처리를 20초에 상당하는 샘플값 쌍에 대해 881999번 반복한다. 즉, 종단 미가공 데이터는 882000번 새롭게 된다. 디지털 신호 처리기(63)가 65536개의 샘플값 쌍의 세트를 882000번째 데이터 처리를 완료한 경우에, 중앙 처리 장치(62)는 카운터 j가 881999가 된것을 발견하고, 단계 S33에서의 결과는 긍정으로 변경된다. 단계 S33에서의 결과가 긍정으로 주어지는 경우에, 참조 상관 데이터(7634297), 참조 상관 데이터(7634296), ... 및 참조 상관 데이터(6752298)은 랜덤 액세스 메모리(64)에 저장된다.
계속해서, 단계 S35에서 중앙 처리 장치(62)는 디지털 신호 처리기(63)가 참조 상관 데이터(i)와 참조 상관 데이터(i-j) 사이의 상관 판정을 하도록 요구한다. 디지털 신호 처리기(63)는 2개의 오디오 데이터 세트 사이의 동일성을 결정하고, 상관 판정에 대한 데이터 처리는 도 42를 참조하여 후술한다.
중앙 처리 장치(62)는 디지털 신호 처리기(63)가 상관 판정을 실행하도록 요구하는 경우에, 중앙 처리 장치(62)는 "소스 오디오 데이터" 및 "분석될 오디오 데이터"를 특정한다. 예를들어, 소스 오디오 데이터는 종단 참조 상관 데이터(i)이고, 분석될 오디오 데이터는 참조 상관 데이터(i-j)이다. 소스 오디오 데이터곡은 X(0) 내지 X(255)로 표현되고, 분석될 오디오 데이터곡은 Ym(0) 내지 Ym(255)로 표현된다. "m"은 (i-j)이고, 샘플값 쌍의 세트의 후단에서 샘플값(n) 쌍의 "n"과 같다.
디지털 신호 처리기(63)가 상관 판정 요구에 대해 응답 수신을 한 경우에, 디지털 신호 처리기(63)는 참조 상관 데이터(i) 곡 및 참조 상관 데이터 (i-j) 곡을 판독한다.
계속해서, 디지털 신호 처리기(63)는 절대 상관 지표를 결정하고, 절대 상관 지표 IDXEa와 상수 p를 비교하여, 절대 상관 지표 IDXEa가 상수 p보다 크거나 같은지를 확인한다.
Figure 112003030865852-pat00013
수학식의 좌변은 절대 상관 지표 IDXEa를 나타내고, 상수 p는 0에서 1까지의 범위를 갖는다. 첫번째 계산에서, "i"는 7634297이고, m은 (i-j), 즉 6752298이다. 소스 오디오 데이터 X(0) 내지 X(225)는 분석될 오디오 데이터 Ym(0) 내지 Ym(255)와 각각 밀접한 경우에, 절대 상관 지표 IDXEa는 1보다 크지만 근접한 값을 갖는다. 수학식 13이 만족한다면, 결과는 악곡 일절이 다른 악곡 일절과 아주 상관되었다는 것을 의미하고, 악곡 일절은 서로 대응한다. 즉, 제1 악곡 일절이 다른 악곡 일절과는 에디션이 서로 다르더라도, 악곡 일절의 곡을 나타내는 소스 오디오 데이터 X(0) 내지 X(225) 및 다른 악곡 일절을 나타내는 분석될 오디오 데이터 Ym(0) 내지 Ym(255)는 제1 및 제2 악곡 일절이 서로 대응하는한 수학식 13을 만족한다. 그러나, 악곡 일절 및 다른 악곡 일절이 악곡의 서로 다른 부분을 형성하는 경우에, 소스 오디오 데이터 X(0) 내지 X(225) 및 분석될 오디오 데이터 Ym(0) 내지 Ym(255)는 수학식 13을 만족하지 않는다. 다시 말해서, 상수 p는 상기한 방식으로 수학식 13을 통해 시험을 얻기하기 위해 실험적으로 최적화되었다.
또한 디지털 신호 처리기(63)는 상대적 상관 지표 IDXEr을 결정하고 상대적 상관 지표 IDXEr을 상수 q와 비교하여, 상대적 상관 지표 IDXEr가 상수 q보다 크거나 같은지를 확인한다.
Figure 112003030865852-pat00014
수학식 14의 좌변은 상대적 상관 지표 IDXEr를 나타내고, 0에서 1까지의 범위를 갖는다. 소스 오디오 데이터 X(0) 내지 X(225)로 표현된 오디오 파형과 분석될 오디오 데이터 Ym(0) 내지 Ym(255)로 표현된 오디오 파형이 더 유사할수록, 상대적 상관 지표 IDXEr는 1에 가까워진다. 소스 오디오 데이터 X(0) 내지 X(225)로 표현된 오디오 파형이 분석될 오디오 데이터 Ym(0) 내지 Ym(255)로 표현된 오디오 파형이 유사한 경우더라도, 이들 오디오 파형간의 동적범위는 서로 달라질 수 있다. 이 상황에서, 절대 상관 지표 IDXEa의 값은 가변된다. 한편, 동적 범위에서의 차이는 상대적 상관 지표 IDXEr 상에 임의의 영향을 주지 않는다. 오디오 파형이 서로서로 유사한 경우에, 동적 범위에서의 차이에 상관없이 상대적 상관 지표 IDXEr는 1에 근사한다.
수학식 13 및 14에 대한 모든 결과가 긍정으로 변한다고 가정한다. 디지털 신호 처리기(63)는 단계 S52로 진행하고, 수학식 15 및 16으로 변화율을 계산한다.
Figure 112003030865852-pat00015
Figure 112003030865852-pat00016
X(0) 내지 X(225)와 Ym(0) 내지 Ym(255) 사이의 곱 합은 이하, "상관값 RE"로 부른다. 수학식 15의 좌변은 "m"에서의 상관값 RE의 변화율이다. 소스 오디오 데이터곡X(0) 내지 X(225)이 분석될 오디오 데이터곡 Ym(0) 내지 Ym(255)와 각각 쌍을 이루는 경우에, 상관값 RE는 각 쌍의 값이 서로 근사한다는 조건하에서 점점 커진다. 또한, 상관값 RE는 m의 관점으로 구성된다면, 변화율은 상관값 RE의 함수 상에서 극한값인 0이 된다. 따라서, 디지털 신호 처리기(63)는 수학식 15을 통해 극한값에 대한 상관값 RE를 체크한다.
계속해서, 디지털 신호 처리기(63)는 함수 f(RE)를 다시 미분하고, 체크하여 극한값이 국부 최소값 MX인지의 여부를 확인한다. 따라서, 디지털 신호 처리기(63)는 X(0) 내지 X(225) 및 Ym(0) 내지 Ym(255)를 체크하여 상관값 RE가 단계 S52에서 함수의 국부 최대값인지의 여부를 확인한다.
더 상세하게는, 오디오 데이터곡 X(0) 내지 X(225) 및 분석될 오디오 데이터곡 Ym(0) 내지 Ym(255)은 이 예에서 이산 값이다. 수학식 15의 좌변은 엄격히 거의 0이다. 그 이유는, 단계 S52에서의 결정이 이하에서 실행된다. 우선, 디지털 신 호 처리기(63)는 X(0) 내지 X(225)와 Ym(0) 내지 Ym(255)의 합 곱와 X(0) 내지 X(225)와 Ym-1(0) 내지 Ym-1(255)의 합 곱 간의 차 Dm을 계산한다. 계속해서, 디지털 신호 처리기(63)는 차 Dm Dm-1를 체크하여, 차 Dm-1가 0보다 큰지의 여부 및 차 Dm가 0보다 작거나 같은지의 여부를 확인한다. 두개의 결과가 긍정으로 주어진다면, 즉 Dm-1이 0보다 크고 Dm이 0보다 작거나 같으면, 변화율은 긍정값으로부터 0 또는 0근처의 값으로 가변한다. 다음으로, 디지털 신호 처리기(63)는 극한값이 국부 최대값 또는 국부 최대값 근방인지를 결정한다. 이는 단계 S52에서 긍정 결과를 초래한다. 한편, 결과중 적어도 하나가 부정으로 주어진다면, 단계 S52에서의 결과는 부정으로 주어진다.
단계 S52에서 긍정 결과인 경우에, 단계 S53에서 디지털 신호 처리기(63)는 분석될 오디오 데이터 Ym(0) 내지 Ym(255)가 소스 오디오 데이터 X(0) 내지 X(225)와 매우 상관하는 것을 의미하는 성공을 중앙 처리 장치(62)에 통지한다. S51 또는 S52에서의 결과가 부정으로 주어지면, 단계 S54에서 디지털 신호 처리기(63)는 분석될 오디오 데이터 Ym(0) 내지 Ym(255)에 해당하는 파형이 소스 오디오 데이터 X(0) 내지 X(225)에 해당하는 파형과 유사하지 않다는 것을 의미하는 실패를 중앙 처리 장치(62)에게 통지한다.
도 65는 단계 S51 및 S52에 사용된 수학식을 통해 계산된 값을 나타낸다. 플롯 PL21은 상수 p와 수학식 13의 좌변 분모와의 곱를 나타내고, 플롯 PL22는 수 학식 13의 좌변 분자를 나타낸다. 플롯 PL23은 상수 q와 수학식 14의 좌변 분모와의 곱을 나타내고, 플롯 PL24는 수학식 14의 좌변 분자를 나타낸다. 플롯 PL25는 수학식 좌변을 나타낸다. 실험은 하기의 조건하에서 실행된다. 단일 스테이지 IIR 필터는 25㎐에서의 고역 통과 필터로 사용되고(도 57의 단계 S3을 참조), 빗 라인 필터에서는 k 및 f는 각각 4410 및 1이다(도 57의 단계 S5를 참조). 단일 스테이지 IIR 필터는 25㎐에서의 저역 통과 필터로 사용되고(다음 단계 6을 참조), 상수 p 및 q는 각각 0.5 및 0.8이다. 수학식 13은 m이 범위 A내에 있는 한 만족하고, 수학식 14는 m이 범위 A 내에 있는 범위 B에 있는 조건하에서 만족한다. m이 범위 B내인 C인 경우에, 수학식 15는 만족하고, 또한 수학식 16도 C에서 만족한다. 따라서, 단계 S52에서의 결과는 C에서 긍정으로 주어진다.
도 63을 다시 참조하면, 디지털 신호 처리기(63)가 중앙 처리 장치(62)에게 실패를 통지한다면, 중앙 처리 장치(62)는 단계 S37에서 "i-j"를 1만큼 감소시키고, 디지털 신호 처리기(63)에게 상관 판정을 다시 요구한다. 한편, 수학식 13, 14, 15 및 16이 만족된 경우에, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에게 성공을 통지하고, 단계 S36에서의 결과는 긍정으로 주어진다. 중앙 처리 장치(62)가 디지털 신호 처리기(63)에게 처음으로 상관 판정 실행을 요구하는 경우에, 소스 오디오 데이터는 참조 상관 데이터곡(7634297)에 해당하고, 분석될 오디오 데이터는 참조 상관 데이터곡(6752298)에 해당한다. 상관 판정이 자주 실패로 끝나면, 중앙 처리 장치(62)는 단계 S37을 통해 단계 S35로 복귀한다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 협조하여, 단계 S35 내지 S37로 구성된 루프 를 반복 수행한다.
20초 동안 사일런트 및/또는 음과 등가인 오디오 데이터 NA의 종단에 있는 소스 오디오 데이터로 표현되는 오디오 파형과 유사한 임의의 오디오 파형이 존재하지 않는다면, 루프는 단계 S35, S36으로 구성되고 S36이 881999번 반복되며, 단계 S35에서 상관 판정이 882000번 반복된다. 소스 오디오 데이터, 즉, "i"가 변하지 않더라도, 분석될 오디오 데이터, 즉 "j"는 변경된다. 소스 오디오 데이터가 참조 상관 데이터(7634297)의 곡에 대응할 때, 그 분석될 오디오 데이터는 참조 상관 데이터(6752299)의 곡, 참조 상관 데이터(6752300), ...등의 곡을 통해 참조 상관 데이터(6752298)의 곡으로부터 변경된다. 882000번째 상관 판정이 완료되면, "j"는 "i"와 동일해지며, 그 분석될 오디오 데이터는 소스 오디오 데이터와 동일해진다. 그 결과 단계 S36에서 긍정 결과를 얻게 된다.
단계 S36에서 긍정 결과가 주어지면, 중앙 처리 장치(62)는 단계 S38에 의해 "j"를 검사하여 분석될 오디오 데이터가 소스 오디오 데이터와 동일한지 여부를 확인한다. 20초와 동등한 종단에서의 소스 오디오 데이터에 의해 표현되는 것과 동일한 임의의 오디오 파형이 존재하지 않는다면, 단계 S36에서의 결과는 그 분석될 오디오 데이터가 소스 오디오 데이터와 동일해질 때까지 계속해서 부정으로 되며, 단계 S38에서의 결과가 긍정으로 된다. 이후, 중앙 처리 장치(62)는 단계 S39에 의해 상관 데이터(i)의 곡 및 그 도착 시간을 랜덤 액세스 메모리(64)에 저장한다. 다음의 설명에서, "참조 종료 오디오 데이터" 및 "기준 종료 시간"은 각각 랜덤 액세스 메모리(64)에 저장된 참조 상관 데이터 및 그 도착 시간을 의미한다. 디지털 신호 처리기(63)가 중앙 처리 장치(62)에 상관 판정 성공을 처음으로 통지하면, "i"는 7634297이고, 샘플값(7634297) 쌍의 도착 시간, 즉, 173.11초가 랜덤 액세스 메모리(64)에 기준 종료 시간으로서 저장된다.
반면에, 20초와 동일한 것으로 분석되는 소스 오디오 데이터에 의해 표현되는 오디오 파형과 유사한 오디오 파형을 디지털 신호 처리기(62)가 발견하면, 수학식 13, 14, 15, 16은 단계 S35 내지 S37로 구성되는 루프가 881999번 반복되기 전에 상관 판정에서 충족되며, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에 그 성공을 통지한다. 이후, 단계 S36에서의 결과는 긍정으로 변경된다. 그러나, 단계 S38에서의 결과는 부정으로 된다. 단계 S38에서의 부정 결과으로 인해, 중앙 처리 장치(62)는 "i" 즉, W + 65536 + 881999의 합, 또는 W + 947535의 합이 단계 S40에 의한 7297935와 동일한지 여부를 조사한다. 소스 오디오 데이터가 큐의 선두로부터 계수된 882000번째 참조 상관 데이터라면, 단계 S40에서의 결과는 긍정으로 된다. 중앙 처리 장치(62)이 소스 오디오 데이터를 처음으로 조사할 때, "i"는 Z와 동일하고, 이것은 7634297과 동일하며, 단계 S40에서의 결과는 부정으로 된다. 이후, 중앙 처리 장치는 단계 S41에 의해 "i"를 1씩 감분하고, "j"를 881999로 변경한다. 중앙 처리 장치(62)는 단계 S32로 복귀한다. 참조 미가공 데이터(i-j)의 곡은 큐의 선두에 1씩 시프트되며, 그 이유는 "i"가 1씩 감분되고 "j"가 88199로 변경되었기 때문이다.
중앙 처리 장치(62)는 처음으로 단계 S41에서의 작업을 달성하는 것으로 가정된다. 중앙 처리 장치(62)는 단계 S32에서 참조 상관 데이터(6752297) 상의 상 관 판정을 수행하며, 그 이유는 "i"가 7634296이기 때문이다. 이것은 상관 데이터(6752297)의 곡이 상관 데이터의 곡(7634297 - 6752298)과 함께 랜덤 액세스 메모리(64)에 새롭게 저장되는 것을 의미한다. j가 881999이기 때문에, 단계 S33에서의 결과는 긍정으로 된다. 중앙 처리 장치(62)는 단계 S35로 진행하여, 단계 S35 내지 S37로 구성되는 루프를 반복 수행한다. 디지털 신호 처리기(63)가 중앙 처리 장치(62)에 그 성공을 통지하면, 단계 S36에서의 결과는 긍정으로 되며, 중앙 처리 장치(62)는 단계 S38로 진행한다. 상기한 바와 같이, 20초와 동일한 오디오 데이터 NA의 종단의 후단에서 샘플값(i)을 갖는 소스 오디오 데이터에 의해 표현되는 오디오 파형에 유사한 임의의 다른 파형이 존재하지 않는 경우, "j"는 0 이고, 중앙 처리 장치(62)는, 참조용 종료 오디오 데이터 및 기준 종료 시간을 랜덤 액세스 메모리(64)에 저장하기 위한 단계 S39로 진행한다.
반면에, 단계 S38에서의 결과가 부정이면, 중앙 처리 장치(62)는 단계 S40으로 진행한다. 따라서, 중앙 처리 장치(62) 및 디지털 신호 처리기(63)는, 단계 S38에서의 결과가 긍정으로 변경될 때까지 단계 S32 내지 S38, S40, 및 S41로 구성되는 루프를 반복 수행한다. 중앙 처리 장치(62) 및 디지털 신호 처리기(63)가 그 루프를 반복하는 동안, 중앙 처리 장치(62)는 단계 S41에서 "i"를 1씩 감분한다. 큐에서의 샘플값이 일정한 오디오 파형을 나타내는 것이라면, 단계 S38에서의 결과는 절대로 긍정으로 변경되지 않는다. 그 결과, "i"는 W 및 947535의 합, 즉, 7297935과 동일해진다. 이후, 단계 S40에서의 결과는 긍정으로 변경된다. 단계 S40에서의 긍정 결과에 의해, 중앙 처리 장치(62)는 단계 S42에서와 같이 에러 메 시지를 발생시킬 것을 조작 패널/표시부(5)에게 요구한다. 이 에러 메시지는 참조용 종료 오디오 데이터 및 기준 종료 시간을 처리하는 데이터에 실패가 발생하였음을 의미한다.
중앙 처리 장치(62)는 참조용 종료 오디오 데이터 및 기준 종료 시간을 발생시키기위한 데이터 처리를 성공적으로 완료하는 것이다. 중앙 처리 장치(62)는 (1) 선두 참조 상관 데이터, (2) 기준 개시 시간, (3) 노트 이벤트, (4) 참조용 종료 오디오 데이터, 및 (5) 기준 종료 시간을 랜덤 액세스 메모리(64)으로부터 판독해내고, 이러한 데이터 코드로부터 트랙 청크를 제조한다. 중앙 처리 장치(62)는 헤더 청크를 트랙 청크에 추가한다. 표준 MIDI 파일이 완성될 때, 중앙 처리 장치(62)는 그 표준 MIDI 파일을 플로피 디스크 드라이버(2C)에 공급하고, 플로피 디스크 드라이버(2C)가 표준 MIDI 파일을 플로피 디스크(FD)에 저장하도록 요구한다.
도 66은 표준 MIDI 파일의 데이터 구조를 도시한다. 표준 MIDI 파일은 헤더 청크 및 트랙 청크 내에 분산된다. 시스템 전용 이벤트 코드 및 노트 이벤트는 각각 델타 타임 코드와 관련되며 트랙 청크에 저장된다. 제1 시스템 전용 이벤트 코드는 1.15초를 나타내는 기준 개시 시간 및 선두 참조 상관 데이터의 곡에 할당된다. 제2 배타적 이벤트 코드는 참조용 종료 오디오 데이터 및 173.11초를 나타내는 기준 종료 시간에 할당된다. 델타 타임 코드는 제1 및 제2 시스템 전용 이벤트 코드를 위한 0.00초를 나타내지만, 이러한 시스템 전용 이벤트 코드는 트랙 청크에서의 하나 이상의 위치로 이동되어도 되며, 그 델타 타임 코드는 다른 경과 시간을 나타낸다. 제3 시스템 전용 이벤트 코드 내지 최종 시스템 전용 이벤트 코드는 노트 이벤트 코드와 혼합되며, 이러한 시스템 전용 이벤트 코드 및 노트 이벤트 코드 각각에는 델타 타임 코드가 부가된다. 이 경우, 제3 시스템 전용 이벤트 코드 및 제4 시스템 전용 이벤트 코드는 참조용 특성 이벤트를 나타내고, 이 참조용 특성 이벤트 각각은 1.51초 및 2.38초에서 발생한다. 제1 노트 이벤트는 2.11초에서 발생하고, 피아노 음향은 C5에서 발생된다.
도 67은 표준 MIDI 파일에 저장된 시스템 전용/노트 이벤트 및 오디오 데이터 NA로 표현되는 오디오 파형 간의 관계를 도시한다. NA는 콤팩트 디스크 CD-A에 기록된 오디오 데이터로 표현되는 오디오 파형을 나타내고, 시간은 우측으로 진행한다. 오디오 파형은 1.15초까지 사일런트를 나타내고, 전기 톤은 그 사일런트 이후에 발생된다. 이 경우, 기준 개시 시간은 1.15초이다.
1.15초로부터 2.64초까지의 오디오 악곡 데이터 코드 쌍은 참조 미가공 데이터 역할을 하는 것이며, 선두 참조 상관 데이터는 선두 참조 미가공 데이터로부터 발생한다. 특성 이벤트는 선두 참조 미가공 데이터로부터 추출된다. PL16E 및 PL17E는 각각 중기 지표 및 넓은 범위 지표를 나타낸다.
171.63초로부터 173.11초까지의 오디오 악곡 데이터 코드 쌍은 종단 참조용용 미가공 데이터 역할을 하고, 참조용 종료 오디오 데이터는 그 종단 참조용용 미가공 데이터로부터 발생된다. 이 경우, 샘플값 쌍들중 하나는 173.11초에서 임계값보다 작아지게 되어 173.11초 경과 시간이 표준 MIDI 파일에 기준 종료 시간으로서 저장된다.
동기 재생
이하, 동기 재생 모드에 대하여 설명한다. 콤팩트 디스크 CD-B는 동기 재생에 사용된다. 악곡도 그 콤팩트 디스크 CD-B에 기록되지만, 그 콤팩트 디스크 CD- B 내의 악곡은 콤팩트 디스크 CD-A에 기록된 악곡과는 다르게 편집된다. 이것은 톤 간의 사일런트 시간, 동적 범위, 및 시간 간격이 콤팩트 디스크 CD-A에 기록된 악곡과 콤팩트 디스크 CD-B에 기록된 동일한 악곡 간에 상이하다는 것을 의미한다. 이러한 이유 때문에, 콤팩트 디스크 CD-B에 기록된 오디오 데이터를 이하 "오디오 데이터 NB"라 칭한다.
사용자는 콤팩트 디스크 CD-B를 콤팩트 디스크 드라이버 1G에, 그리고 표준 MIDI 파일이 저장되어 있는 플로피 디스크 FD를 플로피 디스크 드라이버 2G에 로딩한다. 다음으로, 사용자는 콤팩트 디스크 CD-B에 기록된 악곡 재생과 적절히 앙상블되도록 키보드(31e) 상의 연주 재생을 제어기(6G)에 명령한다.
중앙 처리 장치(62)가 사용자의 명령을 확인통지할 때, 중앙 처리 장치(62)는 플로피 디스크 드라이버(2G)로 하여금 시스템 전용 이벤트 코드, 이 시스템 전용 이벤트 코드의 델타 타임 코드, 노트 이벤트 코드, 및 이 노트 이벤트 코드의 델타 타임 코드를 플로피 디스크(FD)로부터 인터페이스(65a)에 전송하도록 지시한다. 플로피 디스크 드라이버(65a)가 그러한 데이터 코드들을 인터페이스(65a)에 전송하는 동안, 중앙 처리 장치(62)는 시스템 전용 이벤트 코드, 이 시스템 전용 이벤트 코드의 델타 타임 코드, 노트 이벤트 코드, 및 이 노트 이벤트 코드의 델타 타임 코드를 랜덤 액세스 메모리(64)에 전송하여 저장시킨다.
먼저, 중앙 처리 장치(62)는 노트 이벤트를 재스케쥴링하기 위해 디지털 신호 처리기(63)와 협조한다. 연주 이전의 사일런트 및 연주 후의 사일런트는 오디오 데이터 NA 및 오디오 데이터 NB 간의 길이에 차이를 갖는다. 또한, 콤팩트 디스크 CD-A에 기록된 연주와 콤팩트 디스크 CD-B에 기록된 연주 간의 템포가 상이하다. 그럼에도 불구하고, 제어기(6G)는 표준 MIDI 파일에서 델타 타임 코드에 의해 나타낸 경과 시간 및 콤팩트 디스크 드라이버(1G)로부터의 오디오 시간 코드에 의해 나타낸 경과 시간 간의 차이를 제거하며, 노트 이벤트가 동기 재생 모드에서 재생되도록 재스케쥴링한다.
도 68은 노트 이벤트를 재스케쥴링하는 방법을 도시한다. 먼저, 중앙 처리 장치(62)는 카운터 "i"를 규정하고, 단계 S61에서와 같이 카운터 "i"를 65535로 조정한다. 다음으로, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1G)에게 오디오 데이터 NB를 콤팩트 디스크 CD-B로부터 인터페이스(65a)에 전송하도록 지시한다. 콤팩트 디스크 1G는 1/44100초의 시간 간격으로 오디오 악곡 데이터 코드 쌍을 인터페이스(65a)에 전송하고, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드의 각 쌍의 도착 시간 및 샘플값 쌍을 랜덤 액세스 메모리(64)에 저장한다. 오디오 악곡 데이터 코드의 제1 쌍이 인터페이스(65a)에 도달할 때, 중앙 처리 장치(62)는 클록 신호의 클록 펄스를 계수하기 시작한다. 클록 펄스 개수는 오디오 악곡 데이터 코드의 제1 쌍의 도달로부터의 경과 시간, 즉, 개시 시간 Q를 나타낸다. 오디오 악곡 데이터 코드의 제1 쌍은 샘플값(0)의 제1 쌍을 나타내며, 오디오 악곡 데이터 코드의 그 다음 쌍은 샘플값(1)의 쌍을 나타낸다. 따라서, 샘플값(0, 1, 2...)의 쌍들은 간헐적으로 인터페이스(65a)에 도달하고, 그 쌍들의 도착 시간과 함께 큐에 결합한다. 큐는 랜덤 액세스 메모리(64)에 형성된다. 도착 시간은 개시 시간 Q로부터의 경과 시간과 동일하다. 샘플값(n)의 쌍의 도착 시간은 "도착 시간(n)"으로 표현된다. 이 경우, 샘플값의 1323000 쌍 및 이들의 도착 시간은 최고 상태로 큐에 결합한다.
샘플값(i)의 쌍은 도착 시간(i)과 함께 큐에 결합되는 것이다. 이후, 중앙 처리 장치(62)는 디지털 신호 처리기(63)로 하여금 샘플값의 665536 개 쌍으로부터 목표 상관 데이터 곡을 발생시키도록 지시하며, 이하 "목표 미가공 데이터"라 칭한다. 샘플값(i)의 쌍은 목표 미가공 데이터의 후단을 점유한다. 디지털 신호 처리기(63)는 단계 S62에서와 같이 미가공 데이터로부터 상관 데이터의 곡을 생성하도록 데이터 처리를 수행한다. 목표 상관 데이터를 생성하기 위한 데이터 처리는 도 57에 도시한 것과 유사하며, 이에 대한 설명은 생략한다. 데이터 처리가 완료되면, 목표 상관 데이터(i)의 곡은 랜덤 액세스 메모리(64)에 저장된다.
다음으로, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에게 목표 상관 데이터(i) 및 선두 참조 상관 데이터 간의 상관 판정을 수행할 것을 지시한다. 디지털 신호 처리기(63)는 단계 S62에서 랜덤 액세스 메모리(64)에 전송된 표준 MIDI 파일에 이미 저장되어 있는 선두 참조 상관 데이터, 및 랜덤 액세스 메모리(64)에 저장된 목표 상관 데이터를 판독하고, 단계 S63에서와 같이 그 목표 상관 데이터(i)가 선두 참조 상관 데이터와 높은 상관성을 갖는지 여부를 조사한다. 상관 판정용 데이터 처리는 도 64에 도시한 데이터 처리와 유사하며, 설명의 편의상 이에 대한 설명은 생략한다.
상관 판정용 데이터 처리가 완료되면, 디지털 신호 처리기(63)는 그 데이터 처리 결과, 즉, 실패 또는 성공을 중앙 처리 장치(62)에게 통지한다. 이후, 중앙 처리 장치(62)는 그 통지를 확인하여 단계 S64에서와 같이 데이터 처리가 성공적으로 완료되었는지 여부를 검사한다. 목표 상관 데이터(i)가 선두 참조 상관 데이터와 높은 상관성을 갖는다면, 그 결과는 긍정으로 된다. 그러나, 사일런트없이 연주를 개시하는 일은 드물다. 단계 S64에서의 결과는 흔히 처음으로 처리를 완료하였을 때 부정으로 주어진다.
단계 S64에서의 부정 결과에 의해, 중앙 처리 장치(62)는 단계 S65에서와 같이 카운터(i)를 검사하여 "i"가 947535, 즉, 65535 + 882000 인지 여부를 확인한다. 디지털 신호 처리기(63)가, 선두 참조 상관 데이터와 덜 상관되는 개시로부터 20초와 동일한 모든 목표 상관 데이터를 찾지 못하면, 단계 S65에서의 결과는 부정으로 되고, 중앙 처리 장치(62)는 상관 판정을 종료한다. 따라서, 단계 S65에서의 데이터 처리로 인해 디지털 신호 처리기(63)가 상관 판정을 끝없이 수행하지 않게 된다.
디지털 신호 처리기(63)가 처음으로 상관 판정을 종료하면, 카운터(i)는 65535를 나타내고, 따라서 단계 S65에서의 결과는 부정으로 된다. 이후, 중앙 처리 장치(62)는 단계 S66에서와 같이 카운터(i)를 1씩 증분시키고, 단계 S62로 복귀한다. 따라서, 중앙 처리 장치(62)는 디지털 신호 처리기(63)와 협조하고, 선두 참조 상관 데이터와 높은 상관성을 갖는 목표 상관 데이터(i)를 디지털 신호 처리 기(63)가 찾을 때까지 단계 S62 내지 S66으로 구성된 루프를 반복 수행한다.
디지털 신호 처리기(63)는, 목표 미가공 데이터의 선두를 점유하는 샘플값(28740) 쌍을 갖는 그 목표 미가공 데이터로부터 발생된 목표 상관 데이터가 참조 상관 데이터와 높은 상관성을 갖는다는 것을, 중앙 처리 장치(62)에 통지하는 것이다. 중앙 처리 장치(62) 및 디지털 신호 처리기(63)가 참조 상관 데이터와 높은 상관성을 갖는 목표 상관 데이터를 28740번 동안 찾지 못하면, 디지털 신호 처리기(63)는 28741번째 데이터 처리 완료시 성공적인 결과를 중앙 처리 장치(62)에게 통지한다. 참조 상관 데이터 및 목표 상관 데이터는, 동일한 데이터 처리를 통해 악곡 곡을 나타내는 목표 미가공 데이터 및 선두 참조 미가공 데이터로부터 발생한다. 이것은, 목표 미가공 데이터의 곡 세트에 의해 표현되는 악절이 선두 참조 상관 데이터의 곡에 의해 표현되는 악절에 대응한다는 것을 의미한다.
단계 S64에서의 긍정인 결과에 의해, 중앙 처리 장치(62)는 차이(i - 65535)를 44100으로 나누고, 기준 개시 시간에 대응하는 목표 개시 시간을 결정한다. 임계값을 초과하는 샘플값 쌍은 목표 개시 시간의 곡을 점유한다. 단계 S64에서의 결과는 i = 94275 에서 변경된다. (94275-65535)/44100 을 계산하면 0.65가 나온다. 이것은, 샘플값 쌍이 재생 개시로부터 0.65초에서 임계값을 초과한다는 것을 의미한다. 다음으로, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)으로부터 기준 개시 시간을 판독해내고, 목표 개시 시간과 기준 개시 시간 간의 차이를 계산한다. 이하, 시간차를 "톱 오프셋"이라 칭하다. 이 톱 오프셋은, 악곡 NB의 개시가 악곡 NA의 개시보다 빠르다면 마이너스의 값을 취한다. 반면에, 악곡 NB의 개시가 악곡 NA의 개시보다 지연되면, 톱 오프셋은 포지티브의 값을 취한다. 목표 개시 시간 및 기준 개시 시간은 각각 0.65초 및 1.15초이다. 톱 오프셋은 목표 개시 시간으로부터 기준 개시 시간을 감산, 즉 (0.65 - 1.15)함으로써 계산되어, -0.50초로 된다. 중앙 처리 장치(62)는 단계 s67에서와 같이 랜덤 액세스 메모리(64)에 톱 오프셋을 저장한다.
다음으로, 중앙 처리 장치(62)는 기준 개시 시간 및 기준 종료 시간을 랜덤 액세스 메모리(64)로부터 판독해내고, 기준 개시 시간으로부터 기준 종료 시간을 감산한다. 중앙 처리 장치(62)는 기준 개시 시간 및 기준 종료 시간 사이의 오디오 악곡 데이터 코드 쌍의 수를 결정하기 위해 기준 개시 시간과 기준 종료 시간 간의 차이를 441000으로 곱한다. 기준 개시 시간 및 기준 종료 시간 간의 오디오 악곡 데이터 코드 쌍의 수는, 선두 참조 상관 데이터의 제1 부분 및 참조용 종료 오디오 데이터의 최종 부분 간의 오디오 악곡 데이터 코드 쌍의 수와 동일하다. 다음으로, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드 쌍의 수로부터 65536을 감산한다. 차이(V)는 참조 상관 데이터의 최종 부분과 종료 오디오 데이터의 최종 부분 간의 오디오 악곡 데이터 코드 쌍의 수와 동일하다.
예를 들어, 기준 개시 시간 및 기준 종료 시간은 1.15초 및 173.11이다. 기준 개시 시간 및 기준 종료 시간 간의 시간 주기는 173.11 - 1.15, 즉, 171.96초이다. 이후, 오디오 악곡 데이터 코드 쌍의 수는 171.96 x 44100, 즉, 7583436 이다. 차이(V)는 7583436 - 65536, 즉, 7517900 이다.
다음으로, 중앙 처리 장치(62)는 카운터 "j"를 규정하고, 단계 S68에서와 같 이 카운터 "j"를 (i + V - 441000)으로 조정한다. 콤팩트 디스크 CD-B에 기록된 선두에서의 목표 미가공 데이터의 곡은 1.49초동안의 음악 N의 악절에 대응한다. 1.49초 동안의 악절 N의 최종 부분을 나타내는 오디오 데이터는 목표 미가공 데이터(i + V) 근처에 존재할 것으로 추정된다. 목표 미가공 데이터의 곡, 즉, (i + V + 441000)는 목표 미가공 데이터(i + V)보다 10초 전에 발견된다.
다음으로, 중앙 처리 장치(62)는, 오디오 음악 코드 (j - 65535), (j - 65534),...의 쌍을 콤팩트 디스크 CD-B로부터 인터페이스(65a)로 전송할 것을 콤팩트 디스크 드라이버(1G)에게 지시한다. 콤팩트 디스크 드라이버(1G)가 오디오 악곡 데이터 코드(j - 65535), (j - 65534),...쌍을 인터페이스(65a)에 전송하는 동안, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드의 각 쌍의 도착 시간을 결정하고, 랜덤 액세스 메모리(64)에 그 도착 시간과 함께 샘플값 쌍을 저장한다. 샘플값 쌍 및 도착 시간은 랜덤 액세스 메모리(64) 내의 큐에 결합한다.
샘플값(j)의 쌍이 그 큐에 결합할 때, 중앙 처리 장치(62)는 목표 미가공 데이터(j)로부터 목표 상관 데이터를 생성할 것을 디지털 신호 처리기(63)에게 지시한다. 이후, 디지털 신호 처리기(63)는 단계 S69에서와 같이 목표 미가공 데이터로부터 목표 상관 데이터를 생성하기 시작한다. 목표 상관 데이터를 처리하기 위한 데이터 처리는 도 57에 도시한 것과 유사하다. 데이터 처리를 완료하면, 목표 상관 데이터(j)는 랜덤 액세스 메모리(64)에 저장된다.
다음으로, 중앙 처리 장치(62)는, 단계 S69에서와 같이 표준 MIDI 파일에 저장된 참조용 종료 오디오 데이터, 및 RAM에 저장된 목표 상관 데이터(j) 간의 상 관 판정을 수행할 것을 디지털 신호 처리기(63)에게 지시한다. 디지털 신호 처리기(63)는 랜덤 액세스 메모리(64)으로부터 참조용 종료 오디오 데이터 및 목표 상관 데이터(j)를 판독해내고, 단계 S70에서와 같이 참조용 종료 오디오 데이터와 높은 상관성을 갖는 목표 상관 데이터에 대한 상관 판정을 수행한다. 상관 판정을 위한 데이터 처리는 도 64에 도시한 것과 유사하다. 디지털 신호 처리기(63)가 상관 판정용 데이터 처리를 완료하면, 디지털 신호 처리기(63)는 그 상관 판정 결과를 중앙 처리 장치(62)에게 통지한다.
디지털 신호 처리기(63)는 단계 S71에서와 같이 그 통지를 검사하여 상관 판정 결과가 성공적인지 여부를 확인한다. 악곡 NB 재생 시간이 악곡 NA 재생 시간과 10초만큼 상이한 경우는 드물다. 이러한 이유 때문에, 디지털 신호 처리기(63)가 데이터 처리를 처음으로 완료하면, 단계 S71에서의 결과는 No로 주어진다. 이후, 중앙 처리 장치(62)는 단계 S72에서와 같이 카운터(j)를 1씩 증분시키고, 새로운 목표 미가공 데이터로부터 그 다음 목표 상관 데이터를 생성할 것을 디지털 신호 처리기(63)에게 지시한다. 카운터(j)가 오디오 데이터 NB의 샘플값 쌍의 전체 수보다 크면, 즉, 목표 미가공 데이터가 이미 오디오 데이터 NB의 끝에 도달했다면, 디지털 신호 처리기(63)는 큐로부터 목표 미가공 데이터(j)를 판독해낼 수 없고, 중앙 처리 장치(62)에 실패를 통지한다. 이러한 이유 때문에, 중앙 처리 장치(62)는 단계 S73에서와 같이 레지스터를 검사하여 디지털 신호 처리기(63)가 에러 메시지를 전송하였는지 여부를 확인한다. 중앙 처리 장치(62)가 카운터(j)를 처음으로 증분시키면, 목표 미가공 데이터(j)는 오디오 데이터 NB의 끝에 도달하지 않으며, 단계 S73에서의 결과는 부정으로 된다.
단계 S73에서의 부정 결과로 인해, 중앙 처리 장치(62)는 단계 S69로 복귀하고, 목표 미가공 데이터로부터 그 다음 목표 상관 데이터(j)를 생성하도록 디지털 신호 처리기(63)에게 지시한다. 따라서, 중앙 처리 장치(62) 및 디지털 신호 처리기(63)는 단계 S69 내지 S73으로 구성된 루프를 반복 실행하고, 참조용 종료 오디오 데이터와 높은 상관성을 갖는 목표 상관 데이터(j)용 오디오 데이터 NB를 검색한다.
디지털 신호 처리기(63)가 참조용 종료 오디오 데이터와 높은 상관성을 가갖는 목표 상관 데이터를 발견하면, 디지털 신호 처리기(63)는 그 성공 결과를 중앙 처리 장치(62)에게 통지하고, 단계 S69에서의 결과는 Yes로 된다. 다음으로, 중앙 처리 장치(62)는 콤팩트 디스크 CD-B로부터 인터페이스(65a)로의 데이터 전송을 중지할 것을 콤팩트 디스크 드라이버(1G)에게 지시한다.
다음으로, 중앙 처리 장치(62)는 "j"를 44100으로 나누고, 악곡 NB 재생이 완료되는 목표 종료 시간을 결정한다. 카운터(j)가 7651790을 나타내면, 목표 종료 시간은 7651790 / 44100, 즉, 173.51초이다. 다음으로, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)으로부터 기준 종료 시간을 판독해내고, 엔드 오프셋, 즉, 목표 종료 시간 및 기준 종료 시간 간의 차이를 결정한다. 이 경우, 엔드 오프셋은 0.40초, 즉, 173.51 - 173.11 이다. 중앙 처리 장치(62)는 단계 S74에서와 같이 그 엔드 오프셋을 랜덤 액세스 메모리(64)에 저장한다. 또한, 중앙 처리 장치(62)는, 단계 S75에서와 같이 랜덤 액세스 메모리(64)에 이미 전송된 표준 MIDI 파일에 톱 오프셋 및 엔드 오프셋을 추가한다.
도 69는 톱 오프셋 및 엔드 오프셋을 표준 MIDI 파일에 도시한다. 톱 오프셋 및 엔드 오프셋은 시스템 전용 이벤트 코드에 저장된다. 제1, 제2, 제3, 및 제4 시스템 전용 이벤트 코드는 각각 톱 오프셋, 엔드 오프셋, 선두 참조 상관 데이터, 및 참조용 종료 오디오 데이터에 할당되고, 참조용 특성 이벤트에 할당되는 시스템 전용 이벤트 코드는 노트 이벤트 코드와 혼합된다. 모든 시스템 전용/노트 이벤트 코드는 델타 타임 코드와 관련된다. 이 경우, 제1 내지 제4 시스템 전용 이벤트 코드는 0을 나타내는 델타 타임 코드와 관련된다. 그러나, 다른 델타 타임 코드는 이러한 시스템 전용 이벤트 코드에 추가되어도 된다.
톱 오프셋 및 엔드 오프셋을 나타내는 시스템 전용 이벤트 코드를 표준 MIDI 파일에 추가하는 것을 완료하면, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 저장되어 있는 표준 MIDI 파일로부터 모든 노트 이벤트 코드를 판독해내고, 단계 S76에서와 같이 노트 이벤트를 재스케쥴링한다. 재스케쥴링을 다음의 수학식에 의해 수행한다.
Figure 112003030865852-pat00017
여기서 d는 재스케쥴링 이후 델타 타임이고, D는 재스케쥴링 전의 델타 타임이며, NT는 기준 개시 시간이고, NE는 기준 종료 시간이며, OT는 톱 오프셋이고, OE는 엔드 오프셋이다.
수학식 17에서, (NT + OT)는 샘플값의 제1 쌍을 재생하기 위해 타이밍에 대한 오디오 데이터 NB의 재생을 시작하는 상기 타이밍을 나타내며, (D - NT)는 악곡 N을 나타내는 오디오 데이터 NA의 재생 개시에 대한 노트 이벤트를 재생하는 타이밍을 나타낸다. {(NE + OE) - (NT + OT)}는 오디오 데이터 NB로 표현되는 악곡 N을 재생하는 소모 시간을 나타내며, (NE - NT)는 오디오 데이터 NA로 표현되는 악곡 N을 재생하는 소모 시간을 나타낸다. 두번째 항인 (D - NT) x {(NE + OE) - (N T + OT)} / (NE - NT)은, 오디오 데이터 NB의 재생 개시에 대한 대응하는 노트 이벤트를 재생하기 위한 타이밍을 나타낸다. 따라서, d는 오디오 데이터 NB의 샘플값의 제1 쌍을 재생하는 타이밍에 대응하는 노트 이벤트를 재생하는 타이밍을 의미한다.
제1 노트 이벤트는 C5에서의 노트-온을 나타낸다(도 69 참조). C5에서의 노트-온은 수학식 17의 계산에 의해 재스케쥴링된다. D는 2.11, NT는 1.15, NE는 173.11, OT는 -0.50, 및 OE는 0.40이다. 노트-온은 수학식 17의 계산에 의해 1.62에서 재스케쥴링된다. 모든 이벤트 코드는 재스케쥴링되고, 동기 재생에서 노트 이벤트를 생성하는 타이밍을 나타내는 조정된 델타 타임 코드는 랜덤 액세스 메모리(64)에 저장된다.
재스케쥴링을 완료하면, 중앙 처리 장치(62)는 동기 재생, 단계 S77에서와 같이 오디오 데이터 NB에 의해 표현되는 악곡 및 노트 이벤트에 의해 표현되는 동기 재생 연주를 시작한다. 상세히 설명하면, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드를 콤팩트 디스크 CD-B로부터 인터페이스(65a)에 전송할 것을 콤팩트 디스크 드라이버(1G)에게 지시한다. 콤팩트 디스크 드라이버(1G)는 1/44100초의 일정한 간격으로 콤팩트 디스크 CD-B로부터 인터페이스(65a)에 오디오 악곡 데이터 코드 쌍을 전송하기 시작한다. 오디오 악곡 데이터 코드(0)의 제1 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 클록 신호에 따라 도착 시간을 결정하고, 오디오 악곡 데이터 코드의 제1 쌍의 도착 시간을 참조용 시간 R로서 결정한다. 중앙 처리 장치(62)는 참조용 시간 R로부터 경과된 시간을 측정하기 시작한다.
중앙 처리 장치(62)는 오디오 악곡 데이터 코드 (0), (1), (2),...의 쌍을 간헐적으로 수신하고, 이들을 오디오부(4E)에 전송한다. 오디오 악곡 데이터 코드의 쌍은 스피커(44)를 통해 전기 톤으로 변환된다. 따라서, 사용자는 오디오부(4G)을 통해 악곡 NB을 듣게 된다.
중앙 처리 장치(62)는 조정된 델타 타임 코드를 랜덤 액세스 메모리(64)으로부터 순차적으로 판독해내고, 경과 시간을 각 조정된 델타 타임 코드에 의해 표현되는 시간과 비교하여 관련된 노트 이벤트 코드가 자동 연주 피아노(3G)에 공급되는지 여부를 확인하다. 그 경과 시간이 조정된 델타 타임 코드에 의해 표현되는 시간과 동일해지면, 중앙 처리 장치(62)는 노트 이벤트 코드를 제어기(34)에 공급한다.
제어기(34)가 노트 이벤트 코드를 수신하면, 제어기(34)는 사용자 옵션, 즉, 어쿠스틱 피아노(31A) 또는 오디오부(4G)용 내부 플래그를 검사한다. 사용자 옵션 이 오디오부(4G)이면, 제어기(34)는 노트 이벤트 코드를 톤 발생기(35)에 공급한다. 톤 발생기는 그 노트 이벤트 코드에 기초하여 디지털 오디오 신호를 생성하고, 그 디지털 오디오 신호를 믹서(41)에 공급한다. 따라서, 오디오부(4G)만을 통해 동기 재생을 달성하게 된다. 반면에, 사용자 옵션이 어쿠스틱 피아노(3G)라면, 제어기(34)는 흑/백 키가 눌러지는 궤도를 결정한다. 제어기(34)는 드라이버(36a)에 그 궤도를 통지하고, 드라이버(36a)는 그 통지에 따라 구동 신호를 생성한다. 드라이버(36a)는 구동 신호를 솔레노이드-조작 키 액추에이터(36b)에 공급하여 솔레노이드-조작 키 액추에이터(36b)에 의해 흑/백 키를 회전시킨다. 흑/백 키는 액션 유닛(31b)을 동작시키고, 이 액션 유닛은 해머(31c)를 회전 구동시킨다. 해머는 회전의 종료때 스트링(31d)을 타격하고, 피아노 음향이 진동 스트링(31d)으로부터 방사된다. 동기 재생용으로 적절한 타이밍으로 노트 이벤트가 이미 조정되어 있기 때문에, 사용자는 피아노 음향 및 전기 톤이 서로 잘 앙상블을 이룬다고 느끼게 된다.
중앙 처리 장치(62)가 최종 노트 이벤트 및 오디오 악곡 데이터 코드의 최종 쌍을 오디오부(4G) 및 자동 연주 피아노(3G)에 각각 공급하면, 중앙 처리 장치(62)는, 예를 들어, "톱 오프셋 및 엔드 오프셋을 저장하길 원하십니까?"와 같은 프롬프트 메시지를 발생시키도록 조작 패널/표시부에게 지시한다. 프롬프트 메시지는 디스플레이 상에 표시되고, 중앙 처리 장치(62)는 단계 S78에서와 같이 사용자의 지시를 기다린다.
사용자가 "No"라고 결과하면, 중앙 처리 장치(62)는 단계 SS에서 동기 재생 용 데이터 처리를 종료한다. 사용자가 플로피 디스크 FD에 톱 오프셋 및 엔드 오프셋을 저장할 것을 제어기(6G)에 지시하면, 중앙 처리 장치(62)는 표준 MIDI 파일을 랜덤 액세스 메모리(64)으로부터 플로피 디스크 드라이버(2G)에 공급하고, 표준 MIDI 파일을 오버라이트하도록 플로리 디스크 드라이버(2G)에게 지시한다. 플로피 디스크 드라이버(2G)는 단계 S79에서와 같이 새로운 표준 MIDI 파일을 오버라이트하고, 그 새로운 표준 MIDI 파일은 플로피 디스크 FD에 저장된다. 저장이 완료되면, 중앙 처리 장치(62)는 단계 SS에서 동기 재생용 데이터 처리를 종료한다. 이하, 플로피 디스크 드라이버(2G)에 의해 오버라이트된 표준 MIDI 파일을 "표준 MIDI 파일 B"라 칭한다.
중앙 처리 장치(62)는 오디오 데이터 NB가 오디오 데이터 NA와 크게 다르지만 않으면 동기 재생용 데이터 처리를 성공적으로 완료한다. 그러나, 오디오 데이터 NB와 오디오 데이터 NA 간의 차이가 크다면, 중앙 처리 장치(62)는 단계 S63 및/또는 S70에서와 같이 목표 상관 데이터를 찾지 못한다. 이 경우, 중앙 처리 장치(62)는 노트 이벤트를 다음와 같이 재스케쥴링한다.
먼저, 중앙 처리 장치(62)는 선두에서 참조용 데이터와 높은 상관성을 갖는 임의의 목표 상관 데이터(i)를 찾는다. 이때, 중앙 처리 장치(62)는 단계 S64에서 부정 결과를 반복하게 되고, 카운터(i)는 결국 947535로 도달하게 된다. 이후, 단계 S65에서의 결과가 "Yes"로 주어지면, 사용자는 단계 S80에서와 같이 델타 타임 코드를 수동으로 조정하기 시작한다.
수동 조정은 도 70에 도시한 바와 같이 진행된다. 먼저, 중앙 처리 장치(62)는 카운터(OT, OE)를 규정하고, 카운터(OT, OE)를 0으로 조정한다. 카운터(OT)는 톱 오프셋에 할당되며, 카운터(OE)는 엔드 오프셋에 할당된다. 그 다음으로, 중앙 처리 장치(62)는 데이터 전송을 중지하고 오디오 데이터 NB의 선두에서 데이터 전송을 재개할 것을 콤팩트 디스크 드라이버(1G)에 지시한다. 오디오 음악 코드의 제1 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 경과 시간을 측정하기 시작한다. 콤팩트 디스크 드라이버(1G)가 1/44100초의 일정한 간격으로 오디오 악곡 데이터 코드의 쌍을 인터페이스(65a)에 전송하는 동안, 중앙 처리 장치(62)는 샘플값 쌍을 오디오부(4G)에 공급한다. 샘플값 쌍은 스피커(44)를 통해 전기 톤으로 변환된다. 중앙 처리 장치(62)는 경과 시간을 측정하기 시작하고, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 이미 저장되어 있는 표준 MIDI 파일로부터 제1 델타 타임 코드를 판독하며, 제1 델타 타임 코드에 의해 표현되는 시간을 내부 클록과 비교하여 그 내부 클록이 델타 타임 코드를 따라잡는지 여부를 확인한다. 그 결과가 긍정이면, 중앙 처리 장치(62)는 관련된 노트 이벤트를 자동 연주 피아노(3G)에 공급한다. 피아노 음향 또는 전기 톤은 어쿠스틱 피아노(31A) 또는 오디오부(4G)을 통해 재생된다. 따라서, 동기 연주 스템은 단계 S91에서와 같이 앙상블을 이루며 악곡 N을 재생한다.
중앙 처리 장치(62)가 노트 이벤트 코드 및 샘플값 쌍을 오디오부(4G) 및 자동 연주 피아노(3G)에 각각 전송하는 동안, 중앙 처리 장치(62)는 사용자에게 톱 오프셋을 조정하라는 프롬프트 메시지를 발생시키는 것을 조작 패널/표시부(5G)에 지시한다. 사용자가 전기 톤보다 피아노 음향을 먼저 느끼면, 사용자는 키 패드 "-" 를 눌러 지연시킨다. 반면에, 사용자가 피아노 음향보다 전기 톤을 먼저 느끼면, 사용자는 키 패드 "+"눌러 미리 진행시킨다. 조작 패널/표시부(5G)상의 이러한 조정이 제어기(6G)에게 보고된다. 조작 패널/표시부(5G)가 키 패드상의 조정 "-"을 보고하면, 중앙 처리 장치(62)는 카운터(OT)를 1/75초만큼 증분시킨다. 반면에, 사용자가 키 패드 "+"를 누르면, 중앙 처리 장치(62)는 카운터(OT)를 1/75초만큼 감분시킨다. 증분 및 감분, 즉, 1/75초는 오디오 데이터의 하나의 프레임의 시간 주기와 동일하다. 따라서, 사용자는 악곡을 들음으로써 톱 오프셋을 수동으로 조정한다.
사용자가 악곡 NB의 재생과 앙상블을 이루며 자동 연주 피아노(3G)를 수동으로 연주하면, 중앙 처리 장치(62)는 수학식 17을 이용함으로써 타이밍을 재스케쥴링하여 노트 이벤트를 재생시킨다. 델타 타임 코드의 조정 처리가 종료되면, 중앙 처리 장치(62)는 그 조정된 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다. 델타 타임 코드의 조정 처리가 종료되면, 중앙 처리 장치(62)는 그 조정된 델타 타임 코드와 내부 클록을 비교하여 노트 이벤트 코드가 자동 연주 피아노(3G)에 공급되는지 여부를 확인한다. 그 결과, 자동 연주 피아노(3G)를 통해 재생된 음악의 진행이 계속되거나 지연되고, 사용자는 단계 S93과 같이 다시 동기 재생을 체크하여 자동 연주 피아노(3G)를 통한 연주가 음악 NB의 재생과 양호한 앙상블을 이루는지 여부를 알 수 있다.
그 재생이 여전히 진행되거나 지연되는 경우, 중앙 처리 장치(62)는 단계 S92로 되돌아가서, 다시 톱 오프셋의 조정을 사용자에게 재촉한다. 이렇게 하여, 사용자는 단계 S93에서의 결과가 긍정으로 변경될 때까지 톱 오프셋을 반복적으로 조정한다. 사용자가 재생이 양호한 앙상블을 이룬다고 느낄 때, 키 패드 "ENTER"를 누르면, 중앙 처리 장치(62)는 단계 S94로 진행한다.
단계 S93에서의 결과가 긍정이면, 중앙 처리 장치(62)는 단계 S94와 같이 디스플레이 상에 생성된 메시지를 통해 사용자에게 엔드 오프셋의 조정을 재촉한다. 사용자가 자동 연주 피아노(3G)를 통한 연주가 오디오부(4G)를 통한 재생보다 빠르다고 느낄 경우, 사용자는 키 패드 "-"를 누른다. 한편, 사용자가 자동 연주 피아노(3G)를 통한 연주가 오디오부(4G)을 통한 재생보다 늦다고 느낄 경우에는, 사용자는 키 패드 "+"를 누른다. 사용자가 키 패드 "-"를 누르면, 중앙 처리 장치(62)는 카운터 OE를 1/75초 증가한다. 한편, 사용자가 키 패드 "+"를 누르면, 중앙 처리 장치(62)는 카운터 OE를 1/75초 감소한다. 이렇게 하여, 사용자는 단계 S94와 같이 엔드 오프셋를 수동으로 조정한다.
카운터 OE가 조절되면, 중앙 처리 장치(62)는 타이밍을 재스케쥴링하여 수학식 17을 이용하여 노트 이벤트를 재생하고, 조정된 델타 타임 코드를 랜덤 액세스 메모리(64)에 저장한다. 재스케쥴링 처리 후에, 중앙 처리 장치(62)는 내부 클록과 그 델타 타임 코드를 비교하여 관련 노트 이벤트 코드가 자동 연주 피아노(3G)에 공급되는지 여부를 확인하다. 이렇게 하여, 노트 이벤트를 생성하기 위한 타이 밍이 재스케쥴링되고, 조정된 델타 타임 코드에 따라 악곡의 진행이 제어된다. 사용자가 자동 연주 피아노(3G)를 통한 연주가 오디오부(4G)을 통한 재생과 양호한 앙상블을 이룬다고 느낄 경우, 사용자가 키 패드 "ENTER"를 누르면, 중앙 처리 장치(62)는 단계 S95에서의 결과가 긍정인 것으로 판단한다. 한편, 사용자가 자동 연주 피아노(3G)가 오디오부(4G)과 동기가 맞지 않는다고 느낄 경우, 중앙 처리 장치(62)는 단계 S94로 되돌아가서, 사용자가 키 패드 "ENTER"를 누를때까지 단계 S94에서의 데이터 처리를 반복한다. 단계 S95에서의 결과가 긍정이면, 중앙 처리 장치(62)는 단계 S80에서의 수동 조정 처리를 종료하여 단계 S76으로 진행한다.
단계 S76에서 중앙 처리 장치(62)는 단계 S80에서 수동으로 조정된 톱 오프셋 및 엔드 오프셋을 이용하여 타이밍을 재스케쥴링하여 노트 이벤트를 재생하고, 단계 S77에서 동기 재생을 개시한다. 이렇게 하여, 오디오 데이터 NA 및 오디오 데이터 NB 간의 차가 심각할지라도, 제3 실시예를 구현하는 동기 재생 시스템은 자동 연주 피아노(3G)와 오디오부(4G) 간의 양호한 앙상블을 이룬다.
단계 S70에서의 상관판정처리의 결과가 실패인 것으로 가정한다. 이는, 중앙 처리 장치가, 최후의 오디오 악곡 데이터 코드 쌍으로부터 측정된 10초에 상당하는 종료 부분에서의 일련의 목표 상관 데이터에서, 참조용 종료 오디오 데이터와 높은 상관성을 갖는 목표 상관 데이터를 찾을 수 없는 것을 의미한다. 그후, 단계 S73에서의 판정 결과는 긍정으로 주어진다.
단계 S73에서의 결과가 긍정이면, 중앙 처리 장치(62)는 타이밍을 재스케쥴링하여 단계 S81과 같이 참조용 특성 이벤트 코드를 이용하여 노트 이벤트를 생성 한다.
우선, 중앙 처리 장치(62)는, 캠팩트 디스크 CD-B로부터의 오디오 데이터 NB를 인터페이스(65a)에 전송하도록 콤팩트 디스크 드라이버(1G)에 요청한다. 콤팩트 디스크 드라이버(1G)는 콤팩트 디스크 CD_B로부터 오디오 악곡 데이터 코드(0), (1),…의 쌍을 판독하고, 이들을 1/44100초의 일정 간격에서 인터페이스(65a)에 전송한다. 제1쌍의 오디오 악곡 데이터 코드(0)가 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 내부 클록을 기동시켜 경과 시간을 측정한다. 콤팩트 디스크 드라이버(1G)가 오디오 악곡 데이터 코드 쌍을 인터페이스(65a)에 전송하고 있는 동안, 중앙 처리 장치(62)는 각 오디오 악곡 데이터 코드 쌍에 대한 도착 시간을 결정하여, 샘플값 쌍을 생성하고, 그들 도착 시간은 랜덤 액세스 메모리(64) 내의 큐와 결합된다. 또한, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드 쌍을 체크하여 샘플값 쌍의 적어도 하나가 임계값을 초과하는지 여부를 판단하다. 이 경우, 임계값은 1000으로 조정된다.
중앙 처리 장치(62)는 임계값보다 큰 샘플값 쌍의 적어도 하나를 찾을 경우, 중앙 처리 장치(62)는 디지털 신호 처리기(63)에 요청하여 샘플값 쌍에서 특성 이벤트를 찾도록 한다. 특성 이벤트에 대한 데이터 처리는 도 59에 도시한 것과 마찬가지로서, 그에 대한 설명은 생략한다. 디지털 신호 처리기(63)가 각 특성 이벤트를 찾으면, 디지털 신호 처리기(63)는 중앙 처리 장치(62)에 그 특성 이벤트를 통지한다. 그후, 중앙 처리 장치(62)는 각 통지에 대한 도착 시간을 판단하여 특성 이벤트 코드와 그 도착 시간 코드를 랜덤 액세스 메모리(64)에 저장한다. 표준 MIDI 파일로 이미 저장된 특성 이벤트와 데이터 처리를 통해 발견된 특성 이벤트를 각각 "특성 이벤트 A" 및 "특성 이벤트 B"로 칭한다.
콤팩트 디스크 CD-B로부터 판독된 최후 샘플값 쌍에 대한 데이터 처리가 종료되면, 중앙 처리 장치(62)는 특성 이벤트 코드 A와 관련된 델타 타임 코드와 특성 이벤트 B에 대한 도착 시간 코드를 비교하여, 도 71에 도시한 바와 같이 특성 이벤트 B와 쌍을 이룬 특성 이벤트 A를 생성한다.
기준 개시 시간은 좌측 열의 선두를 점유하고 있고, 특성 이벤트 A는 기준 개시 시간에 후속하여 위치하고 있다. 이하, 제1 특성 이벤트 A, 제2 특성 이벤트 A, …는 "A1", "A2", …로 표시되어 있다. 한편, 목표 개시 시간 및 톱 오프셋의 총 시간은 우측 열의 선두를 차지하고 있고, 특성 이벤트 B는 그 총 시간에 후속하여 위치하고 있다. 이하, 좌측 열의 제1 행은 우측 열의 제1 행에 대응하고, 좌우측 열의 제1 행에 표시된 시간 데이터 정보의 부분은 "시간 데이터 정보 A" 및 "시간 데이터 정보 B"라고 칭한다.
중앙 처리 장치(62)는 우선 (특성 이벤트 A1-시간 데이터 정보 A)/(특성 이벤트 B1-시간 데이터 정보 B)를 계산하고, 그 계산에 의해서 (1.51-1.15)/(1.01-0.65)=1.00이 얻어진다.
계속해서, 중앙 처리 장치(62)는 지수를 체크하여 그 지수가 사전 결정된 범위 내에 들어가는지 여부를 확인하다. 이 경우, 사전 결정된 범위는 0.97∼1.03, 즉 ±3%인 것으로 가정한다. 만일, 지수가 사전 결정된 범위에 들면, 중앙 처리 장치(62)는 특성 이벤트 A가 특성 이벤트 B에 대응하는 것으로 추정한다. ±3%의 사전 결정된 범위는 변경가능하다.
지수는 특성 이벤트 A1과 B1 간의 시간 차가 제로인 것을 의미한다. 그 후, 중앙 처리 장치(62)는 특성 이벤트 A1은 특성 이벤트 B1에 대응하는 것으로 결정한다. 지수가 0.97이면, 특성 이벤트 A1은 특성 이벤트 B1에 대하여 너무 이르게 되고, 중앙 처리 장치(62)는 어떠한 특성 이벤트 B1도 특성 이벤트 A1에 대응하지 않는다고 결정한다. 그후, 중앙 처리 장치(62)는 특성 이벤트 A2와 특성 이벤트 B2를 체크하여, 에러가 사전 결정된 범위에 들어가는지 여부를 확인하다. 한편, 지수가 1.03보다 크면, 특성 이벤트 A1은 특성 이벤트 B1에 대하여 너무 느리게 되고, 중앙 처리 장치(62)는 어떠한 특성 이벤트 A도 특성 이벤트 B1에 대응하지 않는다고 결정한다. 그후, 중앙 처리 장치(62)는 특성 이벤트 A1과 특성 이벤트 B2를 체크하여, 시간차가 사전 결정된 범위에 들어가는지 여부를 확인하다.
중앙 처리 장치(62)는 계속해서 특성 이벤트 A와 B를 체크하여, 시간차가 사전 결정된 범위에 들어가는지 여부를 확인하다. 이하, 서로 대응하는 최종 특성 이벤트 A와 B는 "특성 이벤트 An 및 Bn"로 칭한다.
다음에, 중앙 처리 장치(62)는 특성 이벤트 B의 도착 시간을 추정하며, 이 도착 시간에서 특성 이벤트 코드 B는 {(시간 데이터 정보 B+(특성 이벤트 An+1―시간 데이터 정보 A)×(특성 이벤트 B―시간 데이터 정보 B)/(특성 이벤트 An―시간 데이터 정보 A)}를 이용하여 관련 델타 타임 코드로 나타낸 경과 시간을 단위로 하여 인터페이스(65a)에서 도달할 것으로 예상된다.
도 72는 특성 이벤트 B의 추정 도착 시간을 도시한다. 추정 도착 시간은 조 정 처리된 도착 시간과 등가이다. 특성 이벤트 A1 및 B1이 각각 특성 이벤트 An 및 Bn으로서 기능하는 경우, 추정 도착 시간은 {0.65+(2.38-1.15)×(1.01-0.65)/(1.51-1.15)}=1.88로 계산된다.
중앙 처리 장치(62)는 계산 결과를 체크하여, 특성 이벤트 B의 도착 시간과 추정 도착 시간 간의 차가 -0.20초∼ +0.20초의 범위에 드는지 여부를 확인한다. 그 시간차가 상기 범위에 든다고 판단되면, 중앙 처리 장치(62)는 특성 이벤트 Bn+1이 특성 이벤트 An+1에 대응한다고 결정한다. 범위 ±0.20은 변경가능하다.
시간차가 -0.20초 미만이면, 중앙 처리 장치(62)는 어떠한 특성 이벤트 B도 특성 이벤트 An+1에 대응하지 않는 것으로 추정하고, 전술한 데이터 처리를 위하여 특성 이벤트 An+1을 다음의 특성 이벤트 An+2로 변경한다. 한편, 시간차가 +0.20보다 크면, 중앙 처리 장치(62)는 어떠한 특성 이벤트 A도 특성 이벤트 Bn+1에 대응하지 않는 것으로 추정하고, 전술한 데이터 처리를 반복하기 위하여 특성 이벤트 Bn+1을 다음의 특성 이벤트 Bn+2로 변경한다.
특성 이벤트 A5 및 B5가 각각 특성 이벤트 An 및 Bn으로서 기능하는 경우, 중앙 처리 장치(62)는, 특성 이벤트 B가 특성 이벤트 A6과 관련된 델타 타임 코드로 나타낸 경과 시간을 단위로 하여 8.25초에 도달하였다고 추정한다. 특성 이벤트 B6의 실제 도착 시간은 9.76초이고, 시간차는 ±0.20초 범위를 벗어난 -1.51초이다. 그러한 이유로, 중앙 처리 장치(62)는 어떠한 특성 이벤트 B도 특성 이벤트 A6에 대응하지 않는 것으로 결정한다.
특성 이벤트 A9 및 B8이 각각 특성 이벤트 An 및 Bn으로서 기능하는 경우, 중앙 처리 장치(62)는, 특성 이벤트 B가 특성 이벤트 A10과 관련된 델타 타임 코드로 나타낸 경과 시간을 단위로 하여 17.79초에 도달하였다고 추정한다. 특성 이벤트 B9의 실제 도착 시간은 15.57초이고, 시간차는 ±0.20초 범위를 벗어난 2.22초이다. 그러한 이유로, 중앙 처리 장치(62)는 어떠한 특성 이벤트 A도 특성 이벤트 B9에 대응하지 않는 것으로 결정한다.
특성 이벤트 B에 대응하는 특성 이벤트 A를 생성하기 위한 전술한 데이터 처리를 종료하면, 중앙 처리 장치(62)는 델타 타임 코드로 나타낸 경과 시간과 특성 이벤트 B의 도착 시간 간의 관계를 추정한다. 중앙 처리 장치(62)는 그러한 추정을 위해 최소 2승법을 이용하여도 된다. 도 73은 경과 시간 (A)와 도착 시간 (B) 간의 최소 2승법을 통해 추정된 회귀선을 도시한다. 이 회귀선은 B=1.0053A-0.5075로 표현된다.
다음에, 중앙 처리 장치(62)는 랜덤 액세스 메모리(64)에 이미 전송된 표준 MIDI 파일로부터 참조용 말미 시간을 판독하고, 그 참조용 말미 시간, 즉 A에 대하여 173.11초로 치환된다. 그후, 목표 말미 시간이 173.52초로 추정되게 된다.
다음에, 중앙 처리 장치(62)는 엔드 오프셋을 추정하기 위하여 목표 말미 시간으로부터 참조용 말미 시간을 감산한다. 중앙 처리 장치(62)는 엔드 오프셋을 랜덤 액세스 메모리(64)에 저장한다. 중앙 처리 장치(62)는 톱 오프셋 및 엔드 오프셋을 저장하기 위한 시스템 전용 이벤트 코드를 생성하고, 그 시스템 전용 이벤트 코드를 랜덤 액세스 메모리(64) 내의 표준 MIDI 파일에 추가한다.
중앙 처리 장치(62)가 톱 오프셋 및 엔드 오프셋을 나타내는 시스템 전용 이 벤트를 표준 MIDI 파일로 저장하면, 단계 S76(도 68 참조)으로 진행하여 단계 S76 내지 단계 S79에서의 데이터 처리를 통해 노트 이벤트를 재스케쥴링한다. 그 결과, 자동 연주 피아노(3G)를 통한 연주와 콤팩트 디스크 드라이버/오디오부(4G)을 통한 재생 간의 완전한 동기가 얻어진다.
본 발명자들은 노트 이벤트가 후술하는 데이터 처리를 통해 재스케쥴링되는 것을 확인하였다. 오디오 아날로그 신호 PL26은 콤팩트 디스크 CD-B에 기록된 오디오 악곡 데이터 코드 쌍으로부터 생성되었다. 목표 상관 데이터는 오디오 악곡 데이터 코드 쌍으로 생성되었고, 중기 지표(PL27) 및 장기 지표(PL28)가 오디오 악곡 데이터 코드 쌍에 저장된 샘플값 쌍으로부터 생성되었다. 특성 이벤트 "B"는 중기 지표(PL27) 및 장기 지표(PL28)로부터 추출되었다. 노트 이벤트는 2.11초, 2.62초, 3.60초, …에서 재스케쥴링되었다. 그러나, 악곡 NB 전의 무음 기간은 악곡 NA전의 무음 기간보다 짧았다. 또한, 악곡 NB의 재생에 의해 소비된 기간은 악곡 NA의 재생에 의해 소비된 기간보다 길었다. 이는, 악곡 NB의 재생이 악곡 NB의 재생보다 빠르게 기동되었고, 자동 연주 피아노(3E)를 통한 연주가 악곡 NB의 재생보다 빨랐다는 것을 의미한다.
본 발명자들은 도 68에 도시한 데이터 처리를 통해 노트 이벤트를 재스케쥴링하엿다. 그후, 노트 이벤트는 수학식 17을 이용함으로써 1.62초, 2.13초, 3.11초, …에서 재스케쥴링되었다. 본 발명자들은 자동 연주 피아노(3G)가 콤팩트 디스크 드라이버/오디오부(4G)과 완전하게 동기된 것을 확인하였다. 이는, 악곡이 콤팩트 디스크 CD-B에 기록된 악곡과 양호한 앙상블을 이루면서 자동 연주 피아노(3G)를 통해 연주되는 것을 의미한다.
표준 MIDI 파일 B로부터의 재생
사용자가 악곡 NB의 재생과 양호한 앙상블을 이루면서 연주를 재생하도록 제어기(6G)에 요청할 때, 사용자는 표준 MIDI 파일 B를 저장하는 플로피 디스크를 플로피 디스크 드라이버(2G)에 장전한다. 이 경우에, 제어기(6G)는 도 68에 도시한 데이터 처리를 수행한다고는 기대되지 않는다. 중앙 처리 장치(62)는 다음과 같은 동작을 취한다.
우선, 중앙 처리 장치(62)는 플로피 디스크 드라이버(2G)에 요청하여, 플로피 디스크 FD로부터의 표준 MIDI 파일 B를 인터페이스(65a)에 전당하고, 그 표준 MIDI 파일 B를 랜덤 액세스 메모리(64)에 저장하도록 한다.
다음에, 중앙 처리 장치(62)는 표준 MIDI 파일 B로부터 톱 오프셋 및 엔드 오프셋을 판독하여 수학식 17을 통해 노트 이벤트를 재스케쥴링한다. 조정 처리된 델타 타임 코드는 랜덤 액세스 메모리(64)에 저장된다.
계속해서, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버(1G)에 요청하여, 콤팩트 디스크 CD-B로부터의 오디오 악곡 데이터 코드 쌍을 인터페이스(65a)에 전송하도록 한다. 제1 오디오 악곡 데이터 코드 쌍이 인터페이스(65a)에 도달하면, 중앙 처리 장치(62)는 경과 시간을 측정하기 위하여 내부 클록을 개시한다. 중앙 처리 장치(62)는 샘플값 쌍을 오디오부(4G)에 공급하여, 전기 톤이 스피커(44)로부터 출력되도록 한다.
중앙 처리 장치(62)는 표준 MIDI 파일 B로부터 제1 노트 이벤트에 관련된 델 타 타임을 불러들여, 그 델타 타임 코드와 내부 클록을 비교하여 경과 시간이 델타 타임 코드로 나타낸 시간과 동일하게 되었는지 여부를 확인한다. 내부 클록이 델타 타임 코드과 동일한 수준으로 된 경우, 중앙 처리 장치(62)는 제1 노트 이벤트를 자동 연주 피아노(3G)에 공급하고, 표준 MIDI 파일 B로부터 다음의 노트 이벤트에 관련된 델타 타임 코드를 불러들인다. 계속해서 중앙 처리 장치(62)는 표준 MIDI 파일 B로부터 델타 타임 코드를 불러들여, 내부 클록이 델타 타임 코드와 같게 되었을 때, 그 관련 델타 타임 코드 또는 코드들을 자동 연주 피아노(3G)에 공급한다. 피아노 음은 자동 연주 피아노(3G)를 통해 재생되고, 사용자는 그 자동 연주 피아노(3G)를 통한 연주가 콤팩트 디스크 드라이버/오디오부(4G)을 통한 재생과 양호한 앙상블을 이루는 것으로 느끼게 된다.
그러나, 사용자는 자동 연주 피아노가 콤팩트 디스크 플레이어/오디오부(4G)과 동기되지 않은 것을 느낄 수도 있다. 그러면, 사용자는 타이밍을 수동으로 조정하여 노트 이벤트를 발생시킨다. 상술하면, 사용자는 우선 수동 조정을 위하여 키 패드를 누른다. 그러면, 중앙 처리 장치(62)는 단계 S80으로 진행하여, 도 70에 도시한 데이터 처리를 수행한다. 톱 오프셋 및 엔드 오프셋은 단계 S91 내지 S95를 통해 변경된다. 사용자가 연주와 재생이 양호한 앙상블을 이룬다고 느낄 때, 키 패드 "ENTER"를 누른다. 그후, 중앙 처리 장치(62)는 표준 MIDI 파일 B의 톱 오프셋 및 엔드 오프셋을 랜덤 액세스 메모리(64)에 저장한다.
사용자가 표준 MIDI 파일 B를 플로피 디스크 FD에 저장하기를 원할 경우, 사용자는 리텐션에 할당된 키 패드를 누른다. 그러면, 중앙 처리 장치(62)는 표준 MIDI 파일 B를 나타내는 데이터를 리텐션에 대한 요구와 함께 플로피 디스크 드라이버(2G)에 공급한다. 플로피 디스크 드라이버(2G)는 중앙 처리 장치(62)로부터 수신한 표준 MIDI 파일 B를 재기입한다.
전술한 설명으로부터 알 수 있듯이, 동기형 플레이어 시스템은 적어도 선두 부분에서의 참조 상관 데이터, 기준 개시 시간, 참조용 종료 오디오 데이터 및 기준 종료 시간을 노트 이벤트와 함께 사전 기록 모드로 저장하고, 그 노트 이벤트를 동기 재생 모드로 재스케쥴링한다. 동기 재생 모드에서, 중앙 처리 장치는 콤팩트 디스크 CD-B에 기록된 악곡 NB에 대한 목표 개시 시간 및 목표 종료 시간을 결정하기 위하여, 목표 상관 데이터 및 선두 부분에서의 참조 상관 데이터/참조용 종료 오디오 데이터에 대하여 상관 판정을 수행한다. 목표 개시 시간 및 목표 종료 시간이 알려져 있으면, 중앙 처리 장치(62)는 톱 오프셋 및 엔드 오프셋, 기준 개시 시간과 목표 개시 시간 간의 시간차 및 기준 종료 시간과 목표 종료 시간 간의 시간차을 결정하고, 수학식 17을 이용함으로써 타이밍을 결정하여 노트 이벤트를 재생한다. 재스케쥴링 처리가 종료되면, 제어기(6E)는 자동 연주 피아노(3G)를 통한 연주와 콤팩트 디스크 드라이버/오디오부(4G)를 통한 재생이 서로 양호한 앙상블을 이룬 상태에서 재생한다.
참조용 특성 이벤트가 사전 기록에서 더 추출되면, 그 참조용 특성 이벤트는 노트 이벤트 코드와 함께 메모리에 더 저장된다. 이 경우, 제어기(6G)는 우선 콤팩트 디스크 CD-B에 저장된 샘플값 쌍으로 생성되는 중기중기스로부터 목표 특성 이벤트를 추출하고, 목표 이벤트가 최종 참조용 특성 이벤트와 쌍을 이루는지를 조 사한다. 최종 참조용 특성 이벤트가 발견되면, 중앙 처리 장치(62)는 톱 오프셋 및 엔드 오프셋을 결정하고 노트 이벤트를 재스케쥴링한다. 이렇게 하여, 제어기(6E)가 참조용 종료 오디오 데이터와 높은 상관성을 갖는 목표 상관 데이터를 찾지 못하더라도, 중앙 처리 장치(62)는 참조용 이벤트 및 목표 이벤트에 대한 데이터 처리를 통해 엔드 오프셋을 결정하고, 자동 연주 피아노(3G)가 콤팩트 디스크 드라이버(1G)/오디오부(4G)과 함께 연주를 동시에 재생하도록 한다.
제1 변형예
도 75는 제1 변형예에 따른 동기형 플레이어 시스템을 도시한다. 본 발명을 구현하는 제1 변형에의 동기형 플레이어 시스템은 크게 콤팩트 디스크 드라이버(1H), 플로피 디스크 드라이버(2H), 자동 연주 피아노(3H), 오디오부(4H), 조작 패널/표시부(5H) 및 제어기(6H)를 포함한다. 플로피 디스크 드라이버(2H), 자동 연주 피아노(3H), 오디오부(4H) 및 조작 패널/표시부(5H)는 동기형 플레이어 시스템의 것과 구성 및 동작과 마찬가지이고, 구성 요소에는 도 54에 도시한 대응하는 구성 요소를 나타내는 참조부호로 붙이고 있다. 제어기(6H)는 제어기(6G)에 대하여 데이터 처리에 있어서 약간 상이하지만, 시스템 구성은 제어기(6G)의 구성과 유사하고, 이러한 이유로, 구성 요소에는 상세한 설명없이 제어기(6G)의 대응 구성 요소를 나타내는 참조부호로 붙인다.
제1 변형예는 또한 사전 기록 모드 및 동기 재생 모드를 선택적으로 입력하고, 이들 조작 모드의 행동은 일반적으로 동기형 플레이어 시스템의 행동과 동일하다. 이러한 이유로, 동기형 플레이어 시스템에 의해 실행되는 데이터 처리와 상이 한 것에 대하여 설명한다.
콤팩트 디스크 드라이버(1H)는 콤팩트 디스크 CD-A 및 CD-B로부터 오디오 악곡 데이터 코드 및 오디오 타임 데이터 코드를 순차적으로 판독하고, 오디오 악곡 데이터 코드뿐만 아니라 오디오 타임 데이터 코드도 제어기(6H)에 전송한다. 이 것이 콤팩트 디스크 드라이버(1G)의 행동과 다른 점이다. 오디오 타임 데이터 코드는 각 프레임마다 공급되며, 이 경우 588쌍의 오디오 악곡 데이터 코드가 기입되며, 재생 개시로부터의 경과 시간이 오디오 타임 데이터 코드로 표현된다.
제어기(6H)는 모든 시간에서 클록 신호를 콤팩트 디스크 드라이버(1G)에 공급하고, 콤팩트 디스크 드라이버(1H)는 오디오 악곡 데이터 코드를 클록 신호와 동기하여 제어기(6H)에 전송한다. 중앙 처리 장치(62)는 샘플값 쌍을 랜덤 액세스 메모리(64)에 저장하고, 최신의 오디오 타임 데이터를 델타 타임 코드로 복제하여 그 델타 타임 코드를 샘플값 쌍과 함께 저장한다. 데이터 처리를 위해 정확한 타임 데이터가 요구되는 경우, 중앙 처리 장치(62)는 오디오 악곡 데이터 코드 간의 시간 간격에 대한 비례 배분을 통해 시간을 정확하게 결정하기 위하여, 카운터를 정의하고 오디오 악곡 데이터 코드의 각 쌍의 수신시에 카운터를 증분시킨다.
중앙 처리 장치(62)는 특성 이벤트를 추출하고 노트 이벤트를 수신하고 있지만, 오디오 악곡 데이터 코드가 인터페이스(65a)에 간헐적으로 도달하여, 중앙 처리 장치(62)는 최신의 오디오 타임 코드로부터 델타 타임 코드를 생성한다.
제1 변형예에서, 일예로서 카운터 또는 소프트웨어 타이머에 의해 구현되는, 어떠한 내부 클록도 데이터 처리시에 필요로 하지 않으므로, 시스템 구성 또는 컴 퓨터 프로그램이 단순하게 된다.
다른 변형예
전술한 제3 실시예 및 그 변형예에 있어서, 시스템 구성 요소(1G/1H, 2G/2H, 4G/4H, 5G/5H, 6G/6H)는 자동 연주 피아노(3H)에 내장된다. 그러나, 제2 변형예는 서로 물리적으로 분리되어 있는 복수의 구성 요소에 의해 구성된다. 제2 변형예를 구현하는 제2 변형예는 하기와 같이 복수의 구성 요소로 물리적으로 분리될 수도 있다.
22. 콤팩트 디스크 드라이버(1G/1H)
23. 플로피 디스크 드라이버(2G/2H)
24. 자동 연주 피아노(3G/3H)
25. 믹서/디지털-아날로그 변환기(41/42)
26. 증폭기(43)
27. 스피커(44)
28. 조작 패널/표시부(5G/5H) 및 제어기(6G/6H)
또한, 제어기(6G/6H)는 기록부 및 재생부로 물리적으로 분리되어도 된다.
이들 시스템 구성 요소는 오디오 케이블, MIDI 케이블, 오디오 신호용 광 화이버, USB(Universal Serial Bus) 케이블 및/또는 동기형 플레이어 시스템용으로 새로이 설계된 케이블을 통해 접속되어도 된다. 표준 플로피 디스크 드라이버, 표준 증폭기 및 표준 스피커는 시장에서 구입가능한 것으로, 본 발명에 따른 동기형 플레이어 시스템에 이용되어도 된다.
대부분의 사용자는 이미 갖고 있는 시스템 구성 요소의 곡을 이용하여 그들 자신의 시스템을 구성하기 때문에, 사용자에 있어서 분리형 동기형 플레이어 시스템이 바람직하다.
제3 변형예에 따른 동기형 플레이어 시스템은 콤팩트 디스크 드라이버(1G/1H) 및 플로피 디스크 드라이버(2G/2H)를 구비하지 않지만, 제어기(6G/6H)는 하드디스크 드라이버 및 LAN(Local Area Network), WAN 또는 인터넷과 접속가능한 인터페이스를 갖는다. 이 경우, 오디오 데이터 코드는 적절한 데이터 소스로부터 인터페이스를 통해 공급되어 하드디스크에 저장된다. 마찬가지로, 표준 MIDI 파일이 외부 데이터 소스로부터 인터페이스를 통해 전송되어, 또한 하드디스크에 저장된다. 사용자가 키보드(31a)상에서 핑거링을 하고 있는 동안, 오디오 악곡 데이터 코드는 하드디스크로부터 판독되어, 판독 코드를 전기 톤으로 변환하기 위하여 오디오부(4G/4H)으로 전송된다. 이벤트 코드 및 델타 타임 코드는 트랙 청크에 저장되고, 표준 MIDI 파일은 하드디스크에 남는다.
제4 실시예를 구현하는 동기형 플레이어 시스템에 있어서, 디지털 신호 처리기(63)는 절대 상관 지표에 대한 분석, 상대적 상관 지표에 대한 분석 및 상관치에 대한 분석을 통해 상관 판정을 수행한다. 이들 3종류의 분석에 의해서 상관 판정이 정확하게 될지라도, 이들 3종류의 분석은 너무 부담이 된다. 이러한 이유로, 제4 변형예는 이들 3종류의 분석 중의 하나 또는 두개를 통해 상관 판정을 수행한다.
제5 변형예는 표현(15)만을 통해 단계 S52에서의 판단을 수행한다. 상술하 면, 디지털 신호 처리기는 Dm-1과 Dm의 곱을 계산하고, 그 곱이 제로 이하인지 여부를 확인한다. 제로 이하이면, 상관치 함수에서의 변화율이 제로이거나 제로 부근으로 변하게 된다. 이것은, 상관치가 최대치이거나 최대치 부근에 있는 것을 의미한다. 이러한 이유로, 단계 S52의 결과는 긍정으로 주어진다. 최소치 및 최대치가 서로 근접하게 될 가능성이 적은 경우, 동일한 결과가 간단한 데이터 처리를 통해 얻어진다.
제4 실시예에서, 샘플값가 임계값을 초과할때, 중앙 처리 장치(62)는 기준 개시 시간 및 기준 종료 시간을 결정한다. 따라서, 헤드부에서의 참조 상관 데이터 및 참조용 종료 오디어 데이터는, 악곡 NA의 헤드부에서의 참조 미가공 데이터 및 악곡 NA의 후미부에서의 참조 미가공 데이터로부터 생성된다. 한편, 중앙 처리 장치는 제6 변형예에서 악곡 NA의 임의의 부분에서의 어떤 미가공 데이터에 기초하여 기준 개시 시간 및 기준 종료 시간을 결정한다. 예를 들면, 중앙 처리 장치는 제6 변형예에서, 재생 개시로부터 임의의 경과 시간과 재생 종료전에 다른 임의의 시간을 각각 기준 개시 시간과 기준 종료 시간으로서 지정할 수도 있다. 이러한 특성은, 악곡이 라이브 콘서트에서 기록되는 경우에 바람직하다. 보이스 및/또는 핸드 클램핑이 기록과 악곡과 혼합될지라도, 보이스 및/또는 핸드 클램핑에 영향을 주지않고도, 참조 미가공 데이터가 악곡의 적절한 부분으로부터 추출된다. 연주 개시 직후에 일절이 반복될 수도 있다. 그러할지라도, 미가공 데이터는 특성적인 일절을 나타내는 악곡의 중간 부분으로부터 추출된다.
제7 변형예의 특정한 특성은 표준 MIDI 파일에 저장된 차별 정보의 태그 또는 곡에 관한 것이다. 태그는 콤팩트 디스크 CD-B용으로 배타적으로 사용된 차별 데이터 또는 악곡 NB가 기록된 트랙 번호의 조합을 나타낼 수도 있다. 이 차별 데이터는 지표로서 콤팩트 디스크 CD-B에 저장되어, 중앙 처리 장치(62)는 콤팩트 디스크 드라이버에 요청하여 그 차별 데이터를 콤팩트 디스크의 지표로부터 전송하도록 한다. 중앙 처리 장치(62)는 트랙 번호 및 차별 번호를 나타내는 복합 데이터가 저장되는 시스템 전용 이벤트 코드를 생성하고, 그 시스템 전용 이벤트 코드를 표준 MIDI 파일에 추가한다. 표준 MIDI 파일을 완료하면, 중앙 처리 장치(62)는 이를 플로피 디스크 드라이버에 전송하고, 플로피 디스크 드라이버가 그 파일을 플로피 디스크에 저장하도록 요청한다.
사용자는 제7 변형예에서 콤팩트 디스크 드라이버 및 플로피 디스크 드라이버에 각각 콤팩트 디스크 및 플로피 디스크를 장전한 후 동기 재생을 실행하도록 명령한다. 사용자가 콤팩트 디스크에 저장된 악곡을 특정할 때, 중앙 처리 장치는 콤팩트 디스크 드라이버에 요청하여, 콤팩트 디스크에 할당된 차별 데이터 및 악곡이 기록된 트랙 번호를 인터페이스에 전송하도록 한다.
계속해서, 중앙 처리 장치는 차별 데이터와 트랙 번호를 플로피 디스크 드라이버에 공급하고, 플로피 디스크 드라이버로 하여금 동일한 차별 데이터 및 동일한 트랙 번호를 나타내는 시스템 전용 이벤트 코드가 저장된 표준 MIDI 파일용 플로피 디스크를 검색하도록 한다. 플로피 디스크 드라이버가 그 검색을 성공적으로 완료하면, 표준 MIDI 파일을 제어기에 전송하고, 제어기는 동기 재생을 개시한다. 한 편, 플로피 디스크 드라이버가 플로피 디스크 내에서 표준 MIDI 파일을 검색하지 못하면, 그 검색 실패를 제어기에게 보고하고, 조작 패널/표시부에게 에러 메시지를 생성하도록 요청한다.
제7 실시예에 의해 플로피 디스크 관리가 편해진다. 또한, 제7 실시예는 플로피 디스크에서 악곡을 자동으로 검색하여 사용자가 동기 재생을 편하게 즐길 수 있다.
본 발명의 특정 실시예를 도시 및 설명하였지만, 본 발명의 사상과 범위로부터 벗어나지 않고 다양하게 변경 및 수정이 가능하다는 것은 자명할 것이다.
예를 들어, 상기한 실시예를 실시하는 동기 연주 시스템은 사전 녹음 및 동기 재생을 수행하더라도, 델타 타임 코드 각각은 하나의 이벤트/복수의 이벤트 및 그 다음 이벤트 간의 시간 간격을 표현할 수 있다. 그 이유는 경과 시간이 시간 간격의 총 합과 동일하기 때문이다. 동기 연주 시스템은 시간 간격을 경과 시간로 변환하는 누산기를 포함하여도 된다. 델타 타임 코드를 위한 시간 간격이 필요한 경우, 제어기는 이벤트에서의 경과 시간을 레지스터에 저장하고, 그 다음 이벤트에서 그 경과 시간을 레지스터에 저장되어 있는 경과 시간로부터 감산한다. 이후, 시간 간격이 델타 타임 코드용으로 결정된다. 따라서, 본 발명에 따른 동기 연주 시스템은 시간 간격을 나타내는 델타 타임 코드에 기초하여 사전 녹음 및 동기 재생 모드에서 동작가능하다.
시간 주기 값은 예일 뿐이며, 본 발명의 기술적 범위를 제한하는 것이 아니다. 실시예에 의해 결정된 값은 소정의 악곡에 대하여 적절한 것이다. 그러나, 다른 악곡에 대해서는 다른 값이 최적으로 될 수 있다.
오디오 데이터 코드 및 MIDI 데이터 코드는 본 발명의 기술적 범위를 제한하지 않는다. 악곡 또는 악절은 다른 표준에 따라 일련의 디지털 코드로 변환될 수 있고, 키보드 상의 연주는 다른 종류의 악곡 데이터 코드 및 시간 데이터 코드로 변환될 수 있다. 연주 또는 오디오를 나타내는 아날로그 신호는 정보 기억 매체에 기록되어도 되며, 그 매체로부터 재생된다. 이 경우, 상관 판정 또는 특성 이벤트용 분석을 그 아날로그 신호 상에서 수행한다.
중앙 처리 장치(62) 및 디지털 신호 처리기(63)의 조합은 본 발명의 기술적 범위를 제한하지 않는다. 제어기(6, 6A, 6B, 6C, 6D, 또는 6E)에서 고성능 마이크로프로세서가 이용되면, 이 마이크로프로세서는 중앙 처리 장치(62)와 디지털 신호 처리기(63) 간의 모든 작업을 달성한다.
표준 MIDI 파일은 본 발명의 기술적 범위를 제한하지 않는다. 본 발명에 따라 동기 재생 시스템용으로 임의의 데이터 파일이 이용가능하다.
자동 연주 피아노는 본 발명의 기술적 범위를 제한하지 않는다. 악기가 노트 이벤트를 발생시키고 그 노트 이벤트로부터 톤을 재생하는 한 동기 연주 시스템용으로 임의의 악기가 이용가능하다. 악기는 현악기, 관악기 또는 비브라폰과 같은 타악기에 속해도 된다. 작곡 프로그램을 실행시키는 퍼스널 컴퓨터는 데이터 소스 및/또는 음원으로서 역할을 수행할 수 있다.
플로피 디스크 드라이버(2-2G), 플로피 디스크(FD), 콤팩트 디스크 드라이버(1-1G), 및 콤팩트 디스크(CD-A/CD-B)는 본 발명의 기술적 범위를 제한하 는 것이 아니다. 본 발명에 따라, 예를 들어, 하드 디스크, 광자기 디스크, 및 메모리 스틱과 같은 임의의 데이터 저장 장치가 동기 연주 시스템용으로 이용가능하다.
ROM(61) 및 랜덤 액세스 메모리(64)는 본 발명의 기술적 범위를 제한하지 않는다. 예를 들어, 버블 메모리, 전기적으로 프로그래밍가능하고 삭제가능한 메모리, 및 레지스터 어레이와 같은 임의의 메모리가 프로그램 메모리 및 작업 메모리용으로 이용가능하다.
실시예와 청구 범위 간의 대응
상기한 실시예의 시스템 구성요소는 다음과 같은 청구 범위에서 쓰이는 용어와 상관성을 갖는다. 인터페이스(65a)는 인터페이스에 대응되고, ROM(61), 중앙 처리 장치(62), 디지털 신호 처리기(63), 랜덤 액세스 메모리(64), 및 버스 시스템(65b) 모두는 데이터 처리 유닛을 구성한다. 노트 이벤트 코드, 오디오 악곡 데이터 코드는 각각 악곡 데이터의 제1 종류의 곡, 및 악곡 데이터의 제2 종류의 곡/다른 곡에 대응된다. 참조 상관 데이터의 곡 및 참조용 특성 이벤트 데이터의 곡은 참조용 특성 데이터의 곡 역할을 수행하여 극단적인 값/로컬 최대 및 참조용 특성 이벤트는 오디오 파형의 특정한 특성을 나타낸다. 같은 방식으로, 목표 상관 데이터의 곡 및 목표 특성 이벤트 데이터의 곡은 목표 특성 데이터의 곡 역할을 수행한다.
자동 연주 피아노(3/3A/3B/3C/3D/3E/3F/3G/3H), 및 콤팩트 디스크 드라이버(1/1A/1B/1C/1D/1E/1F/1G/1H)와 콤팩트 디스크(CD-A)의 조합, 플로피 디스 크 드라이버(2/2A/2B/2C/2D/2E/2F/2G/2H)와 플로피 디스크(FD)의 조합은 각각 레코더를 규정하는 독립항에서 데이터 소스, 다른 데이터 소스, 및 수신지 역할을 한다.
플로피 디스크 드라이버(2-2G)와 플로피 디스크(FD)의 조합, 콤팩트 디스크 드라이버(1-1G)와 콤팩트 디스크(CD-B)의 조합, 자동 연주 피아노(3-3G), 자동 연주 피아노(3-3G)와 오디오부(4-4G)는 각각 악곡 데이터 파일 소스, 데이터 소스, 음원, 및 다른 음원 역할을 한다.
자동 연주 피아노(3-3G), 콤팩트 디스크 드라이버(1-1G)와 콤팩트 디스크(CD-A/CD-B)의 조합, 플로피 디스크 드라이버(2-2G)와 플로피 디스크(FD)의 조합, 자동 연주 피아노(3-3G), 및 오디오부(4-4G) 각각은, 동기 연주 시스템을 규정하는 독립항에서 데이터 소스, 다른 데이터 소스, 악곡 데이터 파일 소스, 음원 및 다른 음원 역할을 한다.
참조용 특성 이벤트 코드 및 참조 상관 데이터의 곡은 특성 데이터의 곡 역할을 하며, 참조 상관 데이터를 발생시키기 위한 데이터 처리(도 4, 6, 8, 9A-9C;35; 43, 45 참조) 및 참조용 특성 데이터를 발생시키기 위한 데이터 처리(도 20, 22, 23; 37, 39, 40, 45 참조)는, 특성 데이터의 곡을 추출하기 위한 레코더의 데이터 처리 유닛에 의해 실행되는 데이터 처리에 대응한다. 표준 MIDI 파일은 악곡 데이터 파일 역할을 한다. 특성 데이터의 곡은 시스템 전용 이벤트의 형태로 악곡 데이터 파일에 저장된다.
도 10, 13, 15, 41, 및 52에 도시된 데이터 처리 및 도 25, 28, 31, 49, 및 50에 도시된 데이터 처리는, 연주자의 데이터 프로세서에 의해 실행되는 참조용 목표 특성 데이터의 곡와 목표 특성 데이터의 곡을 비교하기 위한 데이터 처리에 대응한다.
본 발명은 콤팩트 디스크에 기록되어 있는 악곡의 오디오 파형의 특성부와 다른 콤팩트 디스크에 기록되어 있는 악곡의 다른 오디오 파형의 대응하는 특성부간의 비교를 통해, 복수의 기기를 동기화할 수 있는 동기 연주 시스템을 제공하는 효과를 갖는다.

Claims (33)

  1. 제1 종류의 음악 데이터로 표현되는 연주를, 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터로 표현되는 악곡의 재생과 앙상블을 이루어 기록하는 레코더에 있어서,
    상기 제1 종류의 음악 데이터의 데이터 소스와, 상기 제2 종류의 음악 데이터의 다른 데이터 소스와, 음악 데이터 파일이 공급되는 수신지에 접속된 인터페이스; 및
    상기 인터페이스에 접속된 데이터 처리 장치를 포함하고,
    상기 데이터 처리 장치는
    상기 제2 종류의 음악 데이터로부터 상기 악곡을 표현하는 오디오 파형의 특성부를 나타내는 참조 특성 데이터를 추출하여, 상기 제1 종류의 음악 데이터, 상기 참조 특성 데이터 및 상기 연주에서 생성되는 톤을 재생할 타이밍을 나타내는 시간 데이터를 상기 음악 데이터 파일내에 형성하고, 상기 음악 데이터 파일을 상기 인터페이스를 통해 상기 수신지에 공급하는 것을 특징으로 하는 레코더.
  2. 제1항에 있어서, 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로부터 임의 주파수 성분의 변동을 나타내는 참조 상관 데이터를 상기 참조 특성 데이터로서 추출하고, 상기 참조 상관 데이터가 상기 악곡과 다른 악곡간의 상관 판정처리에 이용되는 것을 특징으로 하는 레코더.
  3. 제2항에 있어서, 상기 악곡은 음악의 헤드부를 포함하고, 상기 데이터 처리 장치는 상기 음악 데이터 파일에서 상기 헤드부의 연주 동안 상기 제2 종류의 음악 으로부터 임의의 참조 상관 데이터가 생성되는 시간을 기억하는 것을 특징으로 하는 레코더.
  4. 제1항에 있어서, 상기 제1 종류의 음악 데이터용 포맷은 MIDI(Musical Instrument Digital Interface)에 규정되고, 상기 제2 종류의 음악 데이터용 포맷은 콤팩트 디스크용 레드 북(Red Book)에 규정되어 있는 것을 특징으로 하는 레코더.
  5. 제4항에 있어서, 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로부터 임의 주파수 성분의 변동을 나타내는 참조 상관 데이터를 상기 참조 특성 데이터로서 추출하고, 상기 참조 상관 데이터가 상기 악곡과 다른 악곡간의 상관 판정처리에 이용되는 것을 특징으로 하는 레코더.
  6. 제5항에 있어서, 상기 악곡은 음악의 헤드부를 포함하고, 상기 데이터 처리 장치는 상기 참조 상관 데이터와, 상기 헤드부의 연주 동안 임의의 참조 상관 데이터가 생성되는 시간을 시스템 익스클루시브 이벤트 코드의 형태로 상기 음악 데이터 파일에 기억하는 것을 특징으로 하는 레코더.
  7. 제6항에 있어서, 상기 참조 상관 데이터는, 상기 악곡이 상기 시간에서 개시하도록, 무음을 나타내는 상기 제2 종류의 음악 데이터 바로 뒤에 상기 악곡을 나타내는 상기 제2 종류의 음악 데이터의 헤드부를 포함하는 것을 특징으로 하는 레코더.
  8. 제4항에 있어서, 상기 데이터 처리 장치는, 상기 악곡의 헤드부를 나타내는 상기 제2 종류의 음악 데이터로부터 임의 주파수 성분의 변동을 나타내는 헤드부의 참조 상관 데이터와, 상기 악곡의 엔드부를 나타내는 상기 제2 종류의 음악 데이터로부터 임의 주파수 성분의 변동을 나타내는 엔드부의 다른 참조 상관 데이터를 상기 참조 특성 데이터로서 추출하고, 상기 헤드부의 상기 참조 상관 데이터와 상기 엔드부의 상기 다른 참조 상관 데이터가 상기 악곡과 다른 악곡간의 상관 판정처리에 이용되는 것을 특징으로 하는 레코더.
  9. 제8항에 있어서, 상기 데이터 처리 장치는, 상기 헤드부의 상기 참조 상관 데이터와, 상기 헤드부의 연주 동안 상기 제2 종류의 음악 데이터로부터 상기 헤드부의 임의의 참조 상관 데이터가 생성되는 시간과, 상기 엔드부의 상기 다른 참조 상관 데이터와, 상기 엔드부의 연주 동안 상기 제2 종류의 다른 음악 데이터로부터 상기 엔드부의 임의의 다른 참조 상관 데이터가 생성되는 시간을 시스템 익스클루시브 이벤트 코드의 형태로 상기 음악 데이터 파일에 기억하는 것을 특징으로 하는 레코더.
  10. 제9항에 있어서, 상기 헤드부의 상기 임의의 참조 상관 데이터와 상기 엔드부의 상기 임의의 다른 참조 상관 데이터는, 일련의 상기 제2 종류의 음악 데이터 의 선두와 상기 일련의 상기 제2 종류의 음악 데이터의 말미를 포함하고, 상기 악곡의 길이는 상기 시간에 기초하여 판정되는 것을 특징으로 하는 레코더.
  11. 제1항에 있어서, 상기 데이터 처리 장치는, 상기 제2 종류의 음악 데이터로부터 사운드의 속성의 급격한 변동을 상기 참조 특성 데이터로서 추출하고, 상기 급격한 변동은 상기 급격한 변동이 일어나는 타이밍을 나타내는 상기 시간 데이터와 함께 상기 음악 데이터 파일에 기억되는 것을 특징으로 하는 레코더.
  12. 제11항에 있어서, 상기 급격한 변동은 전체 악곡으로부터 추출되며, 상기 급격한 변동을 다른 악곡을 나타내는 상기 제2 종류의 음악 데이터로부터 추출된 급격한 변동에 대응하게 함으로써 상기 다른 악곡이 상기 악곡과 일치하게 되는 것을 특징으로 하는 레코더.
  13. 제4항에 있어서, 상기 데이터 처리 장치는, 상기 제2 종류의 음악 데이터로부터 사운드의 속성의 급격한 변동을 상기 참조 특성 데이터로서 추출하고, 상기 급격한 변동은 상기 급격한 변동이 일어나는 타이밍을 나타내는 상기 시간 데이터 와 함께 상기 음악 데이터 파일에 시스템 익스클루시브 이벤트 코드의 형태 및 시간 데이터 코드의 형태로 기억되는 것을 특징으로 하는 레코더.
  14. 제13항에 있어서, 상기 급격한 변동은 전체 악곡으로부터 추출되며, 상기 급격한 변동을 다른 악곡을 나타내는 상기 제2 종류의 음악 데이터로부터 추출된 급격한 변동에 대응하게 함으로써 상기 다른 악곡이 상기 악곡과 일치하게 되는 것을 특징으로 하는 레코더.
  15. 제1항에 있어서, 자동 연주 피아노가 상기 데이터 소스로 사용되어 사용자가 상기 자동 연주 피아노를 조작할 때 상기 제1 종류의 음악 데이터가 상기 인터페이스에 공급되고, 콤팩트 디스크 드라이버에 탐재된 콤팩트 디스크가 상기 다른 데이터 소스로 사용되어 사용자가 상기 자동 연주 피아노를 조작할 때 상기 제2 종류의 데이터가 상기 콤팩트 디스크로부터 상기 인터페이스로 전송되는 것을 특징으로 하는 레코더.
  16. 제1 종류의 음악 데이터로 표현되는 연주의 톤을, 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터로 표현되는 악곡의 재생과 앙상블을 이루어 재생하는 플레이어에 있어서,
    인터페이스; 및
    상기 인터페이스에 접속된 데이터 처리 장치를 포함하고,
    상기 인터페이스는
    상기 제1 종류의 음악 데이터, 상기 악곡을 표현하는 상기 제2 종류의 다른 음악 데이터로 나타낸 오디오 파형의 특성부를 나타내는 참조 특성 데이터 및 상기 연주에서 상기 톤을 재생할 타이밍을 나타내는 시간 데이터를 포함하는 적어도 하나의 음악 데이터 파일을 기억하는 음악 데이터 파일의 소스;
    상기 제2 종류의 음악 데이터의 데이터 소스;
    상기 제1 음악 데이터에 기초하여 상기 톤을 생성하는 사운드 소스; 및
    상기 제2 종류의 음악 데이터로부터 다른 톤을 생성하는 다른 사운드 소스
    에 접속되며,
    상기 데이터 처리 장치는
    상기 제2 종류의 음악 데이터로부터 상기 악곡을 표현하는 다른 오디오 파형의 특성부를 나타내는 목표 특성 데이터를 추출하고, 상기 목표 특성 데이터를 참조 목표 특성 데이터와 비교하여 상기 오디오 파형의 특성부와 상기 다른 오디오 파형의 특성부간의 시간차를 찾아내고, 상기 시간 데이터를 변경함으로써 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급하는 타이밍을 조정하고, 변경된 시간 데이터로 표현되는 타이밍으로 상기 제2 종류의 음악 데이터를 상기 다른 사운드 소스에 공급하고 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급하는 것을 특징으로 하는 플레이어.
  17. 제16항에 있어서, 상기 참조 특성 데이터 및 상기 목표 특성 데이터는 상기 제2 종류의 음악 데이터로부터 추출된 임의의 주파수 성분의 변동 및 상기 제2 종류의 음악 데이터로부터 추출된 상기 임의의 주파수 성분의 변동을 나타내는 것이고, 상기 데이터 처리 장치는 상기 참조 특성 데이터와 상기 목표 특성 데이터를 그들 간의 상관 판정처리를 통해 비교하는 것을 특징으로 하는 플레이어.
  18. 제17항에 있어서, 상기 참조 특성 데이터는 상기 악곡의 임의의 부분을 나타내는 상기 제2 종류의 다른 음악 데이터로부터 추출되고, 상기 데이터 처리 장치는 상기 참조 특성 데이터와 상기 목표 특성 데이터 간의 상관 판정처리를 행하여 상기 제2 종류의 음악 데이터로 표현되는 상기 악곡의 상기 임의의 부분에 대응하는 상기 악곡의 부분을 찾아내는 것을 특징으로 하는 플레이어.
  19. 제18항에 있어서, 상기 임의의 부분은 상기 악곡의 헤드부이고, 상기 데이터 처리 장치는 상기 악곡의 재생이 상기 상관 판정처리 후의 상기 다른 음악 데이터로 표현되는 상기 악곡의 재생과 동일한 타이밍으로 개시되게 하는 것을 특징으로 하는 플레이어.
  20. 제18항에 있어서, 상기 임의의 부분은 상기 악곡의 헤드부 및 엔드부이고, 상기 데이터 처리 장치는 상기 제2 종류의 다른 음악 데이터로 표현되는 상기 악곡의 재생의 길이와 상기 상관 판정처리 후의 상기 제2 종류의 음악 데이터로 표현되는 상기 악곡의 재생의 길이간의 차이를 판정하고, 상기 데이터 처리 장치는 상기 차이를 최소화하는 방식으로 상기 제1 종류의 음악을 공급할 타이밍을 조정하는 것을 특징으로 하는 플레이어.
  21. 제16항에 있어서, 상기 참조 특성 데이터 및 상기 목표 특성 데이터는 상기 오디오 파형에서 발견된 사운드의 속성의 임의의 급격한 변동 및 상기 다른 오디오 파형에서 발견된 사운드의 속성의 다른 급격한 변동을 각각 나타내는 것이고, 상기 데이터 처리 장치는 상기 다른 급격한 변동을 상기 임의의 급격한 변동과 대응하게 하여 상기 시간 차이를 판정하는 것을 특징으로 하는 플레이어.
  22. 제21항에 있어서, 상기 속성은 임의의 주파수 대역에서의 사운드의 크기인 것을 특징으로 하는 플레이어.
  23. 제16항에 있어서, 상기 제1 종류의 음악 데이터용 포맷 및 상기 제2 종류의 음악 데이터용 포맷은, 콤팩트 디스크를 위한 MIDI(Musical Instrument Digital Interface) 표준 및 레드 북(Red Book)에 각각 규정되어 있는 것을 특징으로 하는 플레이어.
  24. 제23항에 있어서, 상기 적어도 하나의 음악 데이터 파일에 시스템 익스클루시브 이벤트 코드의 형태로 기억되어 있는 상기 참조 특성 데이터 및 상기 목표 특성 데이터는 상기 제2 종류의 음악 데이터로부터 추출된 임의의 주파수 성분의 변 동 및 상기 제2 종류의 음악 데이터로부터 추출된 상기 임의의 주파수 성분의 변동을 각각 나타내는 것이고, 상기 데이터 처리 장치는 상기 참조 특성 데이터와 상기 목표 특성 데이터를 그들 간의 상관 판정처리를 통해 비교하는 것을 특징으로 하는 플레이어.
  25. 제24항에 있어서, 상기 참조 특성 데이터는 상기 악곡의 임의의 부분을 나타내는 상기 제2 종류의 음악 데이터로부터 추출되고, 상기 데이터 처리 장치는 상기 참조 특성 데이터와 상기 목표 특성 데이터 간의 상관 판정처리를 행하여 상기 제2 종류의 음악 데이터로 표현되는 상기 악곡의 상기 임의의 부분에 대응하는 상기 악곡의 부분을 찾아내는 것을 특징으로 하는 플레이어.
  26. 제25항에 있어서, 상기 임의의 부분은 상기 악곡의 헤드부이고, 상기 데이터 처리 장치는 상기 악곡의 재생이 상기 상관 판정처리 후의 상기 다른 음악 데이터로 표현되는 상기 악곡의 재생과 동일한 타이밍으로 개시되게 하는 것을 특징으로 하는 플레이어.
  27. 제25항에 있어서, 상기 임의의 부분은 상기 악곡의 헤드부 및 엔드부이고, 상기 데이터 처리 장치는 상기 제2 종류의 음악 데이터로 표현되는 상기 악곡의 재생의 길이와 상기 상관 판정처리 후의 상기 제2 종류의 음악 데이터로 표현되는 상기 악곡의 재생의 길이간의 차이를 판정하고, 상기 데이터 처리 장치는 상기 차이 를 최소화하는 방식으로 상기 제1 종류의 음악을 공급할 타이밍을 조정하는 것을 특징으로 하는 플레이어.
  28. 제23항에 있어서, 상기 참조 특성 데이터 및 상기 목표 특성 데이터는 상기 오디오 파형에서 발견된 사운드의 속성의 임의의 급격한 변동 및 상기 다른 오디오 파형에서 발견된 사운드의 속성의 다른 급격한 변동을 각각 나타내는 것이고, 상기 데이터 처리 장치는 상기 다른 급격한 변동을 상기 임의의 급격한 변동과 대응하게 하여 상기 시간 차이를 판정하는 것을 특징으로 하는 플레이어.
  29. 제28항에 있어서, 상기 속성은 임의의 주파수 대역에서의 사운드의 크기인 것을 특징으로 하는 플레이어.
  30. 제23항에 있어서, 콤팩트 디스크 드라이브에 탑재된 콤팩트 디스크, 자동 연주 피아노 및 오디오 장치가 각각 상기 데이터 소스, 상기 오디오 소스 및 상기 다른 오디오 소스로 사용되는 것을 특징으로 하는 플레이어.
  31. 적어도 사전 기록 및 동기 재생을 실행하는 동기 연주 시스템에 있어서,
    인터페이스; 및
    상기 인터페이스에 접속된 데이터 처리 장치를 포함하고,
    상기 인터페이스는
    연주시 생성되는 톤을 나타내는 제1 종류의 음악 데이터의 데이터 소스;
    악곡을 표현하는 상기 제1 종류의 음악 데이터와는 포맷이 상이한 제2 종류의 음악 데이터 및 상기 악곡을 표현하는 상기 제2 종류의 다른 음악 데이터의 다른 데이터 소스;
    상기 제1 종류의 음악 데이터, 상기 제2 종류의 음악 데이터로 나타낸 오디오 파형의 특성부를 나타내는 참조 특성 데이터 및 상기 연주에서 상기 톤을 생성할 타이밍을 나타내는 시간 데이터를 포함하는 적어도 하나의 음악 데이터 파일을 기억하는 음악 데이터 파일의 소스;
    상기 제1 종류의 음악 데이터에 기초하여 상기 톤을 생성하는 사운드 소스;
    상기 제2 종류의 다른 음악 데이터로부터 다른 톤을 생성하는 다른 사운드 소스
    에 접속되며,
    상기 데이터 처리 장치는
    상기 사전 기록을 위해 상기 데이터 소스, 상기 다른 데이터 소스 및 상기 음악 데이터 파일의 소스와 통신하고, 상기 동기 재생을 위해 상기 음악 데이터 파일의 소스, 상기 사운드 소스 및 상기 다른 사운드 소스와 통신하며,
    상기 데이터 처리 장치는
    상기 제2 종류의 음악 데이터로부터 참조 특성 데이터를 추출하여, 상기 제1 종류의 음악 데이터, 상기 참조 특성 데이터 및 시간 데이터를 상기 음악 데이터 파일내에 형성하고, 상기 음악 데이터 파일을 상기 인터페이스를 통해 상기 음악 데이터 파일의 소스에 공급하고,
    상기 데이터 처리 장치는
    상기 제2 종류의 다른 음악 데이터로부터 상기 악곡을 표현하는 다른 오디오 파형의 특성부를 나타내는 목표 특성 데이터를 추출하고, 상기 목표 특성 데이터를 참조 목표 특성 데이터와 비교하여 상기 오디오 파형의 특성부와 상기 다른 오디오 파형의 특성부간의 시간차를 찾아내고, 상기 시간 데이터를 변경함으로써 상기 제1 종류의 음악 데이터를 상기 제1 사운드 소스에 공급하는 타이밍을 조정하고, 변경된 시간 데이터로 표현되는 타이밍으로 상기 제2 종류의 다른 음악 데이터를 상기 다른 사운드 소스에 공급하고 상기 제1 종류의 음악 데이터를 상기 사운드 소스에 공급하는 것을 특징으로 하는 동기 연주 시스템.
  32. 제31항에 있어서, 상기 제1 종류의 음악 데이터용 포맷 및 상기 제2 종류의 음악 데이터용 포맷은, 콤팩트 디스크를 위한 MIDI(Musical Instrument Digital Interface) 표준 및 레드 북(Red Book)에 각각 규정되어 있는 것을 특징으로 하는 동기 연주 시스템.
  33. 제32항에 있어서, 자동 연주 피아노가 상기 데이터 소스 및 상기 사운드 소스로 사용되고, 콤팩트 디스크 드라이브에 탑재된 콤팩트 디스크 및 오디오 장치가 각각 상기 다른 데이터 소스 및 상기 다른 오디오 소스로 사용되는 것을 특징으로 하는 동기 연주 시스템.
KR1020030057908A 2002-08-22 2003-08-21 좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템,및 앙상블을 위한 레코더 및 플레이어 KR100569774B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00242481 2002-08-22
JP2002242482A JP3969249B2 (ja) 2002-08-22 2002-08-22 音声データと演奏データの同期再生を行うための装置および方法
JPJP-P-2002-00242482 2002-08-22
JP2002242481A JP3925349B2 (ja) 2002-08-22 2002-08-22 音声データと演奏データの同期再生を行うための装置および方法
JPJP-P-2002-00316806 2002-10-30
JP2002316806A JP4063048B2 (ja) 2002-10-30 2002-10-30 音声データと演奏データの同期再生を行うための装置および方法
JP2002316807A JP4048917B2 (ja) 2002-10-30 2002-10-30 音声データと演奏データの同期再生を行うための装置および方法
JPJP-P-2002-00316807 2002-10-30

Publications (2)

Publication Number Publication Date
KR20040018185A KR20040018185A (ko) 2004-03-02
KR100569774B1 true KR100569774B1 (ko) 2006-04-11

Family

ID=31950737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030057908A KR100569774B1 (ko) 2002-08-22 2003-08-21 좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템,및 앙상블을 위한 레코더 및 플레이어

Country Status (4)

Country Link
US (1) US7863513B2 (ko)
EP (1) EP1400948B1 (ko)
KR (1) KR100569774B1 (ko)
CN (1) CN100339907C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103931199A (zh) * 2011-11-14 2014-07-16 苹果公司 多媒体片段的生成

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100636906B1 (ko) * 2004-03-22 2006-10-19 엘지전자 주식회사 미디 재생 장치 그 방법
JP4524798B2 (ja) * 2004-07-27 2010-08-18 ヤマハ株式会社 鍵盤楽器のペダルのハーフポイント特定方法及び装置、並びにプログラム
US7592533B1 (en) 2005-01-20 2009-09-22 Gary Lee Audio loop timing based on audio event information
JP4752425B2 (ja) * 2005-09-28 2011-08-17 ヤマハ株式会社 合奏システム
JP4765765B2 (ja) * 2006-05-23 2011-09-07 ヤマハ株式会社 電子楽器システム及びそのためのプログラム
US7420759B2 (en) * 2006-10-31 2008-09-02 Samsung Electronics Co., Ltd. Apparatus and method for internal calibration of normalized playback transfer curve in a hard disk drive
JP5168968B2 (ja) * 2007-03-23 2013-03-27 ヤマハ株式会社 鍵駆動装置付き電子鍵盤楽器
JP4998033B2 (ja) * 2007-03-23 2012-08-15 ヤマハ株式会社 鍵駆動装置付き電子鍵盤楽器
JP5119932B2 (ja) * 2008-01-11 2013-01-16 ヤマハ株式会社 鍵盤楽器、ピアノおよび自動演奏ピアノ
US20100286989A1 (en) * 2008-01-16 2010-11-11 Shingo Urata Recording/reproduction device
JP5338312B2 (ja) * 2008-12-26 2013-11-13 ヤマハ株式会社 自動演奏同期装置、自動演奏鍵盤楽器およびプログラム
KR101037220B1 (ko) * 2009-05-18 2011-05-26 (주)신진정밀 자동차의 창문 브라켓용 체결장치
JP2011145541A (ja) * 2010-01-15 2011-07-28 Yamaha Corp 再生装置、楽音信号出力装置、再生システム及びプログラム
JP2011242560A (ja) * 2010-05-18 2011-12-01 Yamaha Corp セッション端末及びネットワークセッションシステム
WO2012123824A2 (en) * 2011-03-17 2012-09-20 Moncavage, Charles System and method for recording and sharing music
JP6641965B2 (ja) * 2015-12-14 2020-02-05 カシオ計算機株式会社 音響処理装置、音響処理方法、プログラム、及び電子楽器
US9756281B2 (en) 2016-02-05 2017-09-05 Gopro, Inc. Apparatus and method for audio based video synchronization
JP6805422B2 (ja) * 2016-03-08 2020-12-23 株式会社電通 装置、プログラム及び情報処理方法
CN109478398B (zh) * 2016-07-22 2023-12-26 雅马哈株式会社 控制方法以及控制装置
US9697849B1 (en) 2016-07-25 2017-07-04 Gopro, Inc. Systems and methods for audio based synchronization using energy vectors
US9640159B1 (en) 2016-08-25 2017-05-02 Gopro, Inc. Systems and methods for audio based synchronization using sound harmonics
US9653095B1 (en) * 2016-08-30 2017-05-16 Gopro, Inc. Systems and methods for determining a repeatogram in a music composition using audio features
JP6414164B2 (ja) * 2016-09-05 2018-10-31 カシオ計算機株式会社 自動演奏装置、自動演奏方法、プログラムおよび電子楽器
US9916822B1 (en) 2016-10-07 2018-03-13 Gopro, Inc. Systems and methods for audio remixing using repeated segments
JP7343268B2 (ja) * 2018-04-24 2023-09-12 培雄 唐沢 任意信号挿入方法及び任意信号挿入システム
US10311844B1 (en) * 2018-05-04 2019-06-04 Peter T. Godart Musical instrument recording system
KR102597852B1 (ko) * 2021-10-21 2023-11-03 주식회사 픽스트리 온라인 협연 시스템

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59207076A (ja) * 1983-05-10 1984-11-24 Naoyuki Murakami 音楽再生装置
JP2830422B2 (ja) 1989-09-04 1998-12-02 カシオ計算機株式会社 自動演奏装置
JP2753641B2 (ja) 1989-12-18 1998-05-20 カシオ計算機株式会社 自動演奏装置
JPH05297867A (ja) 1992-04-16 1993-11-12 Pioneer Electron Corp 同期演奏装置
US6166314A (en) * 1997-06-19 2000-12-26 Time Warp Technologies, Ltd. Method and apparatus for real-time correlation of a performance to a musical score
AU2325800A (en) 1999-03-08 2000-09-28 Faith, Inc. Data reproducing device, data reproducing method, and information terminal
JP2001195063A (ja) * 2000-01-12 2001-07-19 Yamaha Corp 演奏支援装置
JP4608718B2 (ja) * 2000-01-12 2011-01-12 ヤマハ株式会社 楽器
JP4200621B2 (ja) * 2000-01-12 2008-12-24 ヤマハ株式会社 同期制御方法および同期制御装置
JP3582444B2 (ja) 2000-01-28 2004-10-27 ヤマハ株式会社 音楽情報データ通信方法、音楽情報データ送信装置、音楽情報データ受信装置および記憶媒体
JP4403658B2 (ja) 2001-01-18 2010-01-27 ヤマハ株式会社 楽曲データ出力装置及び楽曲データ出力方法
JP4250342B2 (ja) 2001-01-23 2009-04-08 ローランド株式会社 楽音生成装置
JP2002358080A (ja) * 2001-05-31 2002-12-13 Kawai Musical Instr Mfg Co Ltd 演奏制御方法、演奏制御装置及び楽音発生装置
JP3597800B2 (ja) 2001-06-27 2004-12-08 日本信号株式会社 デジタル伝送式自動列車制御装置
WO2003026273A2 (en) * 2001-09-15 2003-03-27 Michael Neuman Dynamic variation of output media signal in response to input media signal
JP3804536B2 (ja) 2002-01-16 2006-08-02 ヤマハ株式会社 楽音再生記録装置、記録装置及び記録方法
US6737571B2 (en) * 2001-11-30 2004-05-18 Yamaha Corporation Music recorder and music player for ensemble on the basis of different sorts of music data
JP3867580B2 (ja) 2001-11-30 2007-01-10 ヤマハ株式会社 楽曲再生装置
US7897865B2 (en) * 2002-01-15 2011-03-01 Yamaha Corporation Multimedia platform for recording and/or reproducing music synchronously with visual images
JP3885587B2 (ja) * 2002-01-16 2007-02-21 ヤマハ株式会社 演奏制御装置及び演奏制御用プログラム、並びに記録媒体
JP3823855B2 (ja) * 2002-03-18 2006-09-20 ヤマハ株式会社 記録装置、再生装置、記録方法、再生方法及び同期再生システム
JP3835324B2 (ja) * 2002-03-25 2006-10-18 ヤマハ株式会社 楽曲再生装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103931199A (zh) * 2011-11-14 2014-07-16 苹果公司 多媒体片段的生成

Also Published As

Publication number Publication date
EP1400948B1 (en) 2013-06-26
EP1400948A2 (en) 2004-03-24
CN1495788A (zh) 2004-05-12
CN100339907C (zh) 2007-09-26
EP1400948A3 (en) 2010-03-24
KR20040018185A (ko) 2004-03-02
US7863513B2 (en) 2011-01-04
US20040055444A1 (en) 2004-03-25

Similar Documents

Publication Publication Date Title
KR100569774B1 (ko) 좋은 앙상블로 음악을 재생하기 위한 동기 재생 시스템,및 앙상블을 위한 레코더 및 플레이어
US5834670A (en) Karaoke apparatus, speech reproducing apparatus, and recorded medium used therefor
EP1233403B1 (en) Synchronizer for supplying music data coded synchronously with music data codes differently defined therefrom
US6737571B2 (en) Music recorder and music player for ensemble on the basis of different sorts of music data
KR101136974B1 (ko) 재생장치 및 재생방법
US20060000343A1 (en) Method for making electronic tones close to acoustic tones, recording system
US6949705B2 (en) Audio system for reproducing plural parts of music in perfect ensemble
JP3885587B2 (ja) 演奏制御装置及び演奏制御用プログラム、並びに記録媒体
JP2001215979A (ja) カラオケ装置
KR20040077784A (ko) 검색된 음악 부분과 결합하기 위한 음악 검색 시스템
JPH10214083A (ja) 楽音生成方法および記憶媒体
JP3783267B2 (ja) Bgm端末装置
JP3750533B2 (ja) 波形データ録音装置および録音波形データ再生装置
JP3925349B2 (ja) 音声データと演奏データの同期再生を行うための装置および方法
JPH05333890A (ja) カラオケ装置
JP4107212B2 (ja) 楽曲再生装置
JP4236533B2 (ja) 楽音発生装置及びそのプログラム
JP5375869B2 (ja) 楽曲再生装置、楽曲再生方法及びプログラム
JP4063048B2 (ja) 音声データと演奏データの同期再生を行うための装置および方法
JP4049465B2 (ja) 波形再生装置のピッチ制御装置
JP5754404B2 (ja) Midi演奏装置
JP2000003175A (ja) 楽音生成方法、楽音デ―タ作成方法、楽音波形デ―タ作成方法、楽音デ―タ生成方法、および記憶媒体
JP2000122672A (ja) カラオケ装置
JP3879684B2 (ja) 曲データ変換装置および曲データ変換プログラム
JP2004085610A (ja) 音声データと演奏データの同期再生を行うための装置および方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130318

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee