KR100521575B1 - 악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및기억 매체 - Google Patents

악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및기억 매체 Download PDF

Info

Publication number
KR100521575B1
KR100521575B1 KR10-2003-7002365A KR20037002365A KR100521575B1 KR 100521575 B1 KR100521575 B1 KR 100521575B1 KR 20037002365 A KR20037002365 A KR 20037002365A KR 100521575 B1 KR100521575 B1 KR 100521575B1
Authority
KR
South Korea
Prior art keywords
data
sound source
sound
management information
time management
Prior art date
Application number
KR10-2003-7002365A
Other languages
English (en)
Other versions
KR20030020991A (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
Application filed by 야마하 가부시키가이샤 filed Critical 야마하 가부시키가이샤
Publication of KR20030020991A publication Critical patent/KR20030020991A/ko
Application granted granted Critical
Publication of KR100521575B1 publication Critical patent/KR100521575B1/ko

Links

Classifications

    • 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/002Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof
    • G10H7/004Instruments in which the tones are synthesised from a data store, e.g. computer organs using a common processing for different operations or calculations, and a set of microinstructions (programme) to control the sequence thereof with one or more auxiliary processor in addition to the main processing unit
    • 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
    • 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
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • 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/021Mobile ringtone, i.e. generation, transmission, conversion or downloading of ringing tones or other sounds for mobile telephony; Special musical data formats or protocols herefor
    • 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/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • 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/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/061MP3, i.e. MPEG-1 or MPEG-2 Audio Layer III, lossy audio compression
    • 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/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
    • G10H2240/241Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
    • G10H2240/251Mobile telephone transmission, i.e. transmitting, accessing or controlling music data wirelessly via a wireless or mobile telephone receiver, analog or digital, e.g. DECT GSM, UMTS
    • 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/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/311MIDI transmission
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/571Waveform compression, adapted for music synthesisers, sound banks or wavetables
    • G10H2250/581Codebook-based waveform compression
    • G10H2250/585CELP [code excited linear prediction]
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
    • G10H2250/571Waveform compression, adapted for music synthesisers, sound banks or wavetables
    • G10H2250/591DPCM [delta pulse code modulation]
    • G10H2250/595ADPCM [adaptive differential pulse code modulation]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones

Abstract

증가된 회로 규모를 가지는 하드웨어를 요하지 않고, 그 CPU에 막중한 처리를 부가하지 않은 악음 생성 장치, 이 악음 생성 장치를 포함하는 휴대 단말 장치, 악음 생성 방법, 및 상기 방법을 실행하는 프로그램을 기록한 기억 매체가 제공된다. CPU는 RAM에 기억되어 있는 음악 컨텐츠 데이터를 음원 하드웨어 제어 데이터로 변환하여, RAM에 기억시킨다. 재생시, CPU는 음원 하드웨어 제어 데이터를 판독하여 하드웨어 음원으로 보낸다. 하드웨어 음원의 데이터 디코더 회로는 순차적으로 FIFO로부터 음원 하드웨어 제어 데이터를 판독하여, 판독된 데이터를 시간 관리 정보와 악음을 생성하기 위한 파라미터의 데이터로 분리하여 시간 관리 정보를 카운터에 세트한다. 시간 관리를 하는 카운터의 제어하에, 레지스터 롸이트 콘트롤러는 시간 관리 정보에 의하여 나타낸 타이밍에서 상기 파라미터의 데이터를 음원 제어 레지스터에 기록한다. 음원부는 음원 제어 레지스터에 기억된 데이터에 따라 악음을 생성한다.

Description

악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및 기억 매체{MUSICAL SOUND GENERATOR, PORTABLE TERMINAL, MUSICAL SOUND GENERATING METHOD, AND STORAGE MEDIUM}
본 발명은 멜로디를 생성할 수 있는 간단한 구성의 악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및 이 방법을 실행하는 프로그램을 기록한 기억 매체에 관한 것이다.
종래의 악음 생성장치는 하드웨어를 사용하여 악음을 생성하도록 한 하드웨어 악음 생성장치와, 악음 생성 프로그램을 컴퓨터에서 실행시키도록 함으로써 악음을 생성하는 소프트웨어 악음 생성 장치가 있었다.
종래의 하드웨어 악음 생성 장치의 구성예를 도 25에 도시하였다. 도 25에서, CPU(Central Processing Unit)(110)은 MIDI(Musical Instrument Digital Interface) 데이터와, 후술하는 SMAF(Synthetic Music Mobile Application Format) 데이터 등의 음악 콘텐츠 데이터(111)를 하드웨어 음 생성기(115)에 공급하고 있다. 이 경우, MIDI 데이터 및 SMAF 데이터는 장치의 외부로부터 전송된 데이터이거나, 장치의 기억수단으로부터 독출된 데이터로 구성된다. 하드웨어 음 생성기(115)에는 시퀀서(132)와 하드웨어로 구성되는 음 생성부(133)가 구비되어 있다. 시퀀서(132)는 MIDI 데이터 및 SMAF 데이터를 하드웨어 음 생성기(115)에 고유의 제어 데이터로 변환하는 하드웨어 고유 제어 데이터 생성부(132a)와, 데이터 내 포함된 시간 관리 정보에 따라, 악음의 발음의 타이밍을 제어하는 시간 관리부(132b)를 구비하고 있다.
이와 같이 구성된 하드웨어 악음 생성장치에 있어서는, 제어 데이터 내에 포함되어 있는 이벤트들 간 시간 간격들을 나타내는 인터벌 데이터와, 발음 기간을 나타내는 게이트 타임 데이터에 기초한 타이밍에서, 시간 관리부(132b)가 하드웨어 고유 제어 데이터 생성부(132a)에 데이터 출력의 지시를 하고 있다. 이 지시에 응답하여, 하드웨어 고유 제어 데이터 생성부(132a)는 이에 의해 생성된 하드웨어 고유 제어 데이터를 음 생성부(133)에 출력한다. 음 생성부(133)에서는 공급된 하드웨어 고유 제어 데이터에 기초하여 악음들을 생성한다. 이에 의해, 악음들이 재생된다.
종래의 소프트웨어 악음 생성 장치의 구성예를 도 26에 도시하였다. 도 26에서, CPU(210)은 CPU(210)가 시퀀서 프로그램을 실행함으로써 실현되는 시퀀서 기능 수단(232)를 포함한다. 시퀀서 기능 수단(232)은 하드웨어 고유 제어 데이터 생성수단(210a)과, 시간 관리 수단(201b)을 구비하고 있다. 하드웨어 고유 제어 데이터 생성수단(210a)은 MIDI 데이터 및 SMAF 데이터(211)를 하드웨어 음 생성기(215)에 고유의 제어 데이터로 변환하고, 시간 관리 수단(210b)은 악음들을 발음하는 타이밍을 제어한다. 하드웨어 고유 제어 데이터 생성수단(210a)에 의해 변환된 MIDI 데이터 및 SMAF 데이터는 장치의 외부로부터 전송된 데이터이거나, 장치의 기억수단으로부터 독출된 데이터일 수 있음에 유의한다. 또한, 하드웨어 고유 제어 데이터로부터 악음들을 생성하는 하드웨어 음 생성기(215)는 하드웨어로 구현되는 음 생성부(233)를 포함한다.
이와 같이 구성된 소프트웨어 악음 생성 장치에 있어서, CPU(210)의 시간 관리 수단(210b)은 이벤트들 간 시간 간격들을 나타내는 듀레이션 데이터 및 발음 기간을 나타내는 게이트 타임 데이터는 변환된 하드웨어 고유 제어 데이터 내 포함된 것들로서 이들에 기초한 타이밍에서, 하드웨어 고유 제어 데이터 생성 수단(210a)에 데이터 출력의 지시를 행한다. 이 지시에 응답하여, 하드웨어 고유 제어 데이터 생성 수단(210a)은 이에 의해 생성된 하드웨어 고유 제어 데이터를 하드웨어 음 생성기(215)에 출력한다. 하드웨어 음 생성기(215)에서는 공급된 하드웨어 고유 제어 데이터에 기초하여 음 생성부(233)가 악음들을 생성하여 출력한다. 이에 의해, 악음들이 소프트웨어 악음 생성 장치에 의해 재생된다.
그러나, 악음 생성 장치를 하드웨어로 실현하는 하드웨어 악음 생성 장치에서 있어서는 시퀀서(132)가 음악 콘텐츠 데이터의 변환 및 시간 관리를 행하고 있어, 시퀀서(132)의 구성이 복잡하게 되어, 시퀀서(132)의 회로 규모가 크게 되어 제조 비용이 증가하게 된다.
또한, 악음 생성 장치를 소프트웨어로 실현하는 소프트웨어 악음 생성 장치에 있어서는 CPU(210)가 음악 콘텐츠 데이터의 변환 및 시간관리를 행하고 있으므로, CPU(210)이 큰 부담을 지게 되므로, 고속의 CPU가 필요하게 된다. 특히, CPU가 통신 제어 등의 중요도가 높은 다른 처리를 주요 기능으로서 행하는 것인 경우에는 시퀀서 처리를 행하기 위해서 고가의 고속 CPU가 필요하게 된다.
또한, 종래의 하드웨어 악음 생성 장치 및 종래의 소프트웨어 악음 생성 장치에 있어서는 악음을 재생할 때에는 곡의 선두부터 재생되고 있다. 그러면, 휴대전화기 등의 착신 음악으로서 악곡이 재생되고 있을 때에는 곡의 선두의 부분밖에 들을 수 없게 되는 문제점이 있었다.
<발명의 개시>
본 발명의 제1 목적은 하드웨어의 회로 규모가 크게 되지 않게 함과 아울러, 소프트웨어에 대량의 짐을 과하지 않는 악음 생성장치, 이 악음 생성 장치를 구비한 휴대 단말 장치, 악음 생성 방법, 및 악음 생성 방법을 실행하는 프로그램을 기록한 기억매체를 제공하는 것이다.
본 발명의 제2 목적은 악음 생성 장치 및 셀룰라 전화가 곡의 원하는 위치부터 악곡을 재생할 수 있게 하는 것이다.
상기 제1 목적을 달성하기 위해서, 본 발명의 제1 면에 따라서, 시간 관리 정보와 이벤트 데이터를 포함하는 악음 콘텐츠 데이터에 기초하여, 음원 하드웨어 제어 데이터를 생성하는 소프트웨어 처리 수단과, 하드웨어로 구성된 음원부를 내장하고, 상기 소프트웨어 처리 수단으로부터 공급된 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하는 음원 하드웨어 수단을 구비하고, 상기 소프트웨어 처리 수단은 상기 악음 콘텐츠 데이터에 포함되는 상기 이벤트 데이터를 상기 음원 하드웨어 수단이 처리가능한 고유의 데이터로 변환하고, 상기 음원 하드웨어 제어 데이터를 상기 변환된 변환 데이터와 상기 시간 관리 정보를 포함한 데이터로서 생성하고, 상기 음원 하드웨어 수단은 공급된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 상기 음원부에 의하여 악음 생성하기 위한 파라미터를 추출함과 동시에, 상기 시간 관리 정보에 기초한 타이밍에 도달할 때 마다, 상기 파라미터에 기초하여 악음을 생성하는 것을 특징으로 하는 악음 생성 장치가 제공된다.
이와 같은 악음 생성 장치에 따라서, 소프트웨어 처리 수단은 음악 콘텐츠 데이터를 하드웨어 음 생성기 제어 데이터로 변환하며, 시간 관리는 하드웨어 음 생성기 수단으로 행해진다. 그러므로, 하드웨어 음 생성기 수단에 설치된 시퀀서의 회로 규모를 작게 할 수 있다. 이 경우, 시간 관리는 카운터 수단을 사용하여 간단한 구성으로 행할 수 있다. 또한, 소프트웨어 처리 수단에서는 시간 관리를 위한 처리를 행할 필요가 없으므로, 소프트웨어 처리 수단의 부하를 경감시킬 수 있어, 고속의 CPU를 필요로 하지 않을 수 있다.
바람직하게는 상기 악음 생성 장치는 상기 음악 콘텐츠 데이터를 기억하는 기억 수단을 구비하고, 상기 소프트웨어 처리 수단은 소프트웨어 처리 수단이 여유 처리 능력을 갖는 동안의 시간을 이용하여 상기 기억수단에 기억되어 있는 상기 음악 콘텐츠 데이터를 상기 하드웨어 음 생성기 제어 데이터로 변환하고, 변환된 상기 하드웨어 음 생성기 제어 데이터를 상기 기억수단에 기억시킨다.
이 바람직한 실시예에 따라서, 소프트웨어 처리 수단은, 소프트웨어 처리 수단이 여유 처리 능력을 갖는 동안의 시간을 이용하여 상기 기억수단에 기억되어 있는 상기 음악 콘텐츠 데이터를 상기 하드웨어 음 생성기 제어 데이터로 변환한다. 그러므로, 소프트웨어 처리 수단에 부하가 집중하는 것을 방지할 수 있어, 고속의 소프트웨어 처리 수단으로 할 필요성을 또한 낮출 수 있다.
바람직하게는, 상기 하드웨어 음 생성기 수단은 소정량의 상기 하드웨어 음 생성기 제어 데이터를 기억할 수 있는 버퍼 메모리 수단을 구비하고, 상기 소프트웨어 처리 수단은 결과적인 하드웨어 음 생성기 제어 데이터를 상기 버퍼 메모리 수단에 기억시킬 수 있는 양으로 음악 콘텐츠 데이터를 변환하고, 결과적인 하드웨어 음 생성기 제어 데이터를 상기 버퍼 메모리 수단에 전송한다.
바람직하게는, 상기 하드웨어 음 생성기 수단은 기준 시간 단위가 경과했을 때마다 발생되는 클럭 신호를 클럭들을 카운트를 시작하는 카운터 수단과, 상기 악음 생성용의 파라미터에 기초하여, 악음의 생성을 제어하는 음 생성기 제어 레지스터와, 상기 카운터 수단의 카운터 값이, 상기 시간 관리 정보의 값 이상으로 되었을 때에, 상기 시간 관리 정보에 이어 파라미터를 상기 음 생성기 제어 레지스터에 기입하는 기입 수단을 포함한다.
특히 상기 제2 목적을 달성하기 위해서, 상기 악음 생성 장치는 임의의 연주 개시 위치의 데이터를 기억하는 포인트 레지스터 수단을 포함하고, 상기 하드웨어 음 생성기 수단은 상기 포인트 레지스터 수단에 기억되어 있는 연주 개시 위치의 데이터에 대응하는 위치부터 시작하여 하드웨어 음 생성기 제어 데이터에 기초하여 악음을 생성한다.
이 바람직한 실시예에 따라, 악음 생성 장치는 임의의 연주 개시 위치의 데이터를 기억하는 포인트 레지스터 수단을 구비하고, 악음들은 포인트 레지스터 수단에 기억된 연주 개시 위치의 데이터에 대응하는 위치부터 하드웨어 음 생성기 제어 데이터에 기초하여 재생되므로, 음악 콘텐츠 데이터로 되어 있는 곡의 임의의 위치로부터 재생하는 것이 가능하게 된다. 이에 의해서, 재생되는 악곡을 착신 음악으로서 사용할 때에는 곡의 원하는 위치로부터의 착신 음악을 들 수 있게 한다.
바람직하게는, 상기 소프트웨어 처리 수단이 상기 음악 콘텐츠 데이터를 상기 하드웨어 음 생성기 제어 데이터로 변환할 때, 시간 관리 정보들이 동일한 값을 갖고 있고 악음 생성용의 파라미터를 기입할 어드레스를 나타내는 인덱스 정보들이 서로 연속한 경우는 상기 시간 관리 정보 항목들에 바로 이은 인덱스 정보의 바로 다음의 것을 선두의 인덱스 정보 항목으로 하고, 이 인덱스 정보 항목에 바로 이은 악음 생성용의 파라미터는 서로 연속하는 인덱스 정보들에 대응하는 복수의 파라미터에 의해 형성된다.
이 바람직한 실시예에 따라서, 시간 관리 정보들이 동일한 값을 갖고, 악음 생성용의 파라미터를 기입할 어드레스들을 나타내는 인덱스 정보들이 서로 연속한 경우는 시간 관리 정보에 바로 이은 인덱스 정보의 바로 다음의 것을 선두의 인덱스 정보로 하고, 바로 다음의 인덱스 정보에 이은 악음 생성용의 파라미터는 서로 간에 연속한 인덱스 정보들에 대응하는 복수의 파라미터들로 형성됨으로써, 하드웨어 기반의 음 생성기 제어 데이터량을 저감시킬 수 있어, 소프트웨어 처리 수단 및 소프트웨어 기반의 음 생성기 수단의 부담을 경감시킬 수 있다.
보다 바람직하게는, 상기 하드웨어 음 생성기 수단은 기준 시간 단위가 경과하였을 때마다 발생되는 클럭 신호의 클럭들을 카운트를 개시하는 하는 카운트 수단과, 상기 악음 생성용의 파라미터에 기초하여, 악음의 생성을 제어하는 음 생성기 제어 레지스터와, 상기 카운터 수단의 카운트 값이, 상기 시간 관리 정보의 값 이상으로 될 때, 상기 시간 관리 정보에 이은 파라미터를 상기 음 생성기 제어 레지스터에 기입하는 기입 수단을 구비하고, 상기 파라미터가 복수의 파라미터 데이터로 구성되어 있는 경우는 상기 인덱스 정보가 나타내는 어드레스를 하나씩 증분하면서 각각의 파라미터 데이터를 상기 음 생성기 제어 레지스터에 기입한다.
보다 바람직하게는 소프트웨어 처리 수단은 상기 음 생성기 하드웨어 제어 데이터를, 상기 악음 생성용의 파라미터와 상기 시간 관리 정보로 분리하는 분리수단을 구비한다.
바람직하게는 상기 하드웨어 음 생성기 제어 데이터는, 각 단위가, 한 세트의 상기 시간 관리 정보와, 상기 음 생성기 제어 레지스터의 어드레스를 지정하는 적어도 한 쌍의 인덱스 및 이 어드레스에 기입할 상기 파라미터의 데이터로 구성되는 단위들로 구성된다.
바람직하게는, 상기 음 생성기 하드웨어 제어 데이터의 상기 단위 각각은 시간 관리 정보와, 상기 인덱스와, 상기 파라미터의 데이터로 구성된다.
바람직하게는 상기 시간 관리 정보는 직후의 데이터가, 상기 시간 관리 정보의 상기 값의 데이터인지 여부를 나타내는 시간관리 정보 식별 어드레스를 포함한다.
상기 제1 목적을 달성하기 위해서, 본 발명의 제2 면에 따라, 시간 관리 정보와 이벤트 데이터를 포함하는 악음 콘텐츠 데이터에 기초하여, 음원 하드웨어 제어 데이터를 생성하는 소프트웨어 처리 수단과, 하드웨어로 구성된 음원부를 내장하고, 상기 소프트웨어 처리 수단으로부터 공급된 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하는 음원 하드웨어 수단을 구비하고, 상기 소프트웨어 처리 수단은 상기 악음 콘텐츠 데이터에 포함되는 상기 이벤트 데이터를 상기 음원 하드웨어 수단이 처리가능한 고유의 데이터로 변환하고, 상기 음원 하드웨어 제어 데이터를 상기 변환된 변환 데이터와 상기 시간 관리 정보를 포함한 데이터로서 생성하고, 상기 음원 하드웨어 수단은 공급된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 상기 음원부에 의하여 악음 생성하기 위한 파라미터를 추출함과 동시에, 상기 시간 관리 정보에 기초한 타이밍에 도달할 때 마다, 상기 파라미터에 기초하여 악음을 생성하는 악음 생성 장치와, 휴대 단말 기능 처리를 수행하는 처리 장치를 구비하고, 상기 소프트웨어 처리 수단은 상기 처리 장치의 기능의 일부로서 실현되는 휴대 단말 장치가 제공된다.
이 휴대 단말 장치에 따라, 상술과 동일한 효과가 얻어질 수 있다.
특히 상기 제2 목적을 달성하기 위해서, 상기 휴대 단말 장치는 상기 악음 생성 장치가, 임의의 연주 개시 위치의 데이터를 기억하는 포인트 레지스터 수단을 구비하고, 상기 하드웨어 음 생성기 수단은 이 포인트 레지스터 수단에 기억되어 있는 연주 개시 위치의 데이터에 대응하는 위치부터의 하드웨어 음 생성기 제어 데이터에 기초하여 악음들을 생성하도록 한 것이 바람직하다.
이 바람직한 실시예에 따라, 상술과 동일한 효과가 얻어질 수 있다.
상기 제1 목적을 달성하기 위해서, 본 발명의 제3 면에 따라, 소프트웨어 처리 수단에 의하여 시간 관리 정보와 이벤트 데이터를 포함하는 음악 컨텐츠 데이터에 기초하여 음원 하드웨어 제어 데어터를 생성하는 소프트웨어 처리 단계와, 하드웨어로 구성되는 음원부를 내장하는 음원 하드웨어 수단에 의하여 상기 소프트웨어 처리 단계에서 생성된 음원 하드웨어 제어데이터에 근거하여 악음을 생성하는 악음 생성 단계를 구비하고, 상기 소프트웨어 처리 단계는 상기 악음 컨텐츠 데이터에 포함되는 상기 이벤트 데이터를 상기 음원 하드웨어 수단이 처리가능한 고유의 데이터로 변환하고, 상기 음원 하드웨어 제어 데이터를 상기 변환된 변환 데이터와 상기 시간 관리 정보를 포함한 데이터로서 생성하고, 상기 악음 생성 단계는 공급된 상기 음원 하드웨어 제어 데이터에 근거하여, 상기 변환 데이터로부터 상기 음원부에 의하여 악음 생성하기 위한 파라미터를 추출함과 동시에, 상기 시간 관리 정보에 근거한 타이밍에 도달할 때 마다, 상기 파라미터에 근거하여 악음을 생성하는 것을 특징으로 하는 악음 생성 방법이 제공된다.
이 악음 생성 방법에 따라, 상술과 동일한 효과가 얻어질 수 있다.
상기 제1 목적을 달성하기 위해서, 본 발명의 제4 면에 따라서, 음악 콘텐츠 데이터를 재생 가능한 하드웨어 음 생성기 제어 데이터로 변환하는 변환 처리 모듈과, 상기 하드웨어 음 생성기 제어 데이터에 포함되어 있는 시간 관리 정보에 기초한 타이밍에 도달한 때마다, 상기 하드웨어 음 생성기 제어 데이터에 포함된 악음 생성용의 파라미터에 기초하여 악음을 생성하는 하드웨어 음 생성기 모듈을 포함하는 것으로 컴퓨터로 하여금 악음 생성 방법을 실행하게 하는 프로그램을 기억한 기억매체가 제공된다.
이 기억매체에 따라, 상술과 동일한 효과가 얻어질 수 있다.
도 1은 본 발명의 제1 실시예에 따라 악음 생성 장치를 구비한 휴대 단말 장치를 휴대전화기에 적용한 경우의 제1 실시형태의 구성예를 도시한 도면이다.
도 2는 본 발명의 제1 실시예에 따라 악음 생성 장치의 구성예를 도시한 도면이다.
도 3a는 SMAF 포맷의 데이터 포맷을 도시한 도면이다.
도 3b는 SMAF 데이터 포맷이 데이터 포맷의 데이터 구조에 스코어 트랙 청크의 데이터 구조를 도시한 도면이다.
도 4는 SMAF 데이터 포맷의 스코어 트랙 청크 내 시퀀스 데이터 청크의 데이터 구조를 도시한 도면이다.
도 5는 SMAF 데이터의 일예로서의 시퀀스 데이터를 시간 축 상에서 나타낸 도면이다.
도 6은 본 발명의 제 1 실시형태에 관한 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 시간관리정보를 생략한 음원 제어 레지스터 맵 대응 데이터를 변환전의 SMAF 데이터에 대응시켜 나타내는 도면이다.
도 7은 본 발명의 제 1 실시형태에 관한 악음 생성 장치에 있어서의 음원 제어 레지스터 맵을 나타내는 도면이다.
도 8은 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 시간 관리 정보를 포함하는 음원 하드웨어 제어 데이터의 제 1 데이터 구성을 나타내는 도면이다.
도 9는 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 1 데이터 구성에 의한 데이터 예를 나타내는 도면이다.
도 10은 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 1 데이터 구성에 의한 데이터를 데이터조 마다 정리하여 나타내는 도면이다.
도 11은 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 1 데이터 구성에 의한 데이터가 기입되는 타이밍을 나타내는 도면이다.
도 12는 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 2 데이터 구성을 나타내는 도면이다.
도 13은 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 2 데이터 구성에 의한 데이터 예를 나타내는 도면이다.
도 14는 본 발명의 제 1 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 2 데이터 구성에 의한 데이터를 데이터 조마다 정리하여 나타내는 도면이다.
도 15는 본 발명의 제 1 실시형태에 관한 악음 생성 장치에 있어서의 제 1 구성의 음원 제어 레지스터 데이터를 재생할 때에, 음원 하드웨어의 시퀀서로 실행되는 재생처리의 플로 챠트를 나타내는 도면이다.
도 16은 본 발명의 제 1 실시형태에 관한 악음 생성 장치에 있어서의 제 2 구성의 음원 제어 레지스터 데이터를 재생할 때에, 음원 하드웨어의 시퀀서로 실행되는 재생처리의 플로 챠트를 나타내는 도면이다.
도 17은 본 발명의 제 2 실시형태에 관한 악음 생성 장치의 구성예를 나타내는 도면이다.
도 18은 본 발명의 제 3 실시형태에 관한 악음 생성 장치의 구성을 나타내는 도면이다.
도 19는 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서의 음원 하드웨어 제어 데이터의 제 3 데이터 구성을 나타내는 도면이다.
도 20은 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서, 다수 이벤트에 대응하는 음원 제어 레지스터 롸이트 데이터를 1행으로 나타내는 구체예를 나타내는 도면이다.
도 21은 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서의 재생 스타트 처리의 플로 챠트를 나타내는 도면이다.
도 22는 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서의 재생 스타트 처리의 시간 관리 정보부 처리의 플로 챠트를 나타내는 도면이다.
도 23은 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서의 재생 스타트 처리의 어드레스부 처리의 플로 챠트를 나타내는 도면이다.
도 24는 본 발명의 제 3 실시형태의 악음 생성 장치에 있어서의 재생 스타트 처리의 데이터부 처리의 플로 챠트를 나타내는 도면이다.
도 25는 종래의 하드웨어로 구성한 악음 생성 장치의 구성을 나타내는 도면이다.
도 26은 종래의 소프트웨어로 구성한 악음 생성 장치의 구성을 나타내는 도면이다.
이하, 본 발명의 실시형태를 도면을 참조하면서 설명한다.
도 1은 본 발명의 악음 생성 장치를 구비하는 본 발명의 제 1 실시형태에 관한 휴대단말장치를 적용한 휴대전화기의 구성예 및 기지국을 나타낸다.
도 1에 나타내는 휴대전화기(1)는 일반적으로 리트랙터블하게 된 안테나(25)를 구비하고 있고, 기지국(2)과 무선회선에 의해 접속가능하게 되어 있다. 안테나(25)는 변조/복조기능을 갖는 통신부(13)에 접속되어 있다. 중앙처리장치(Central Processing Unit: CPU; 1O)는 전화 기능 프로그램을 실행함으로써 휴대전화기(1)의 각 부의 동작을 제어하는 시스템 제어부이고, 동작시의 경과시간을 나타내거나, 특정한 시간간격으로 타이머 인터럽트를 발생하는 타이머를 구비하고 있다. 또한, CPU(10)는 후술하는 데이터 변환 처리후 등의 악음 생성 관련 처리를 행한다. RAM(11)은 기지국(2)을 통해 접속한 다운로드 센터 등으로부터 다운로드된 배신(distribution) 포맷으로 된 음악 컨텐츠 데이터의 격납 에어리어나, 음악 컨텐츠 데이터를 변환한 음원 하드웨어 제어 데이터의 격납 에어리어, 및 CPU(10)의 워크 에어리어 등이 설정되는 RAM(Random Access Memory)이다. ROM(12)은 CPU(10)가 실행하는 송신이나 착신의 각종 전화 기능 프로그램이나 악음 생성 관련 처리 등의 프로그램이나, 프리세트된 음원 하드웨어 제어 데이터 등의 각종 데이터가 격납되어 있는 ROM(Read Only Memory)이다.
또한, 통신부(13)는 안테나(25)에서 수신된 신호의 복조를 행하는 동시에, 송신하는 신호를 변조하여 안테나(25)에 공급하고 있다. 통신부(13)로 복조된 수화 신호는 음성처리부(코더/디코더; 14)에서 복호되고, 마이크(21)로부터 입력된 통화 신호는 음성처리부(14)에서 압축부호화된다. 음성처리부(14)는 음성을 고능률 압축부호화/복호하고 있고, 예를 들면 CELP(Code Excited LPC)계나 ADPCM(적응차분 PCM 부호화)방식의 코더/디코더로 되어 있다. 음원 하드웨어(15)는 음성처리부(14)로부터의 수신 신호를 수화용 스피커(22)로부터 방음하거나, 변환된 음원 하드웨어 제어 데이터를 재생함으로써 착신 멜로디, 보류음을 생성하여 출력할 수 있다. 또한, 착신 멜로디는 착신용 스피커(23)로부터 방음되고, 보류음은 수화 신호와 믹스되어 수화용 스피커(22)로부터 방음된다.
또한, 음악 컨텐츠 데이터의 포맷은 배신하기에 편리한 MIDI 포맷이나 SMAF 포맷으로 되어 있고, CPU(10)가 이들 포맷의 음악 컨텐츠 데이터를 음원 하드웨어(15)에 고유한 포맷의 음원 하드웨어 제어 데이터로 변환함으로써, 재생가능하게 하고 있다. 변환된 음원 하드웨어 제어 데이터는 RAM(11)에 기억할 수 있다. 음원 하드웨어(15)는 음원 하드웨어 제어 데이터에 따라서 악음을 재생하고 있고, 이 때에 내부에 소정량의 음원 하드웨어 제어 데이터를 일시 기억하는 FIFO가 형성되어 있다. 이 FIFO는 1곡분의 음원 하드웨어 제어 데이터를 기억할 수 있는 기억 용량으로 되어도 되지만, 기억 용량이 작아서 1곡분의 음원 하드웨어 제어 데이터를 기억할 수 없는 경우는 FIFO에 소정량의 빈 에어리어가 생겼을 때에, 음원 하드웨어(15)가 FIFO 데이터 리퀘스트 신호를 CPU(10)에 부여하여, CPU(10)가 RAM(11) 또는 ROM(12)에 기억되어 있는 음원 하드웨어 제어 데이터를 계속 판독하여 음원 하드웨어(15)에 전송하도록 해도 된다. 이와 같이 하면, 작은 용량의 FIFO를 이용하더라도 큰 데이터량으로 되는 음원 하드웨어 제어 데이터의 악곡을 재생할 수 있게 된다.
또한, 인터페이스(1/F; 16)는 퍼스널 컴퓨터 등의 외부기기(20)로부터 음악 컨텐츠 데이터 등을 다운로드하기 위한 인터페이스이다. 입력부(17)는 휴대전화기(1)에 구비된 「0」내지「9」의 다이얼 버튼이나 각종 버튼으로부터 구성되는 입력수단이다. 표시부(18)는 전화 기능의 메뉴나, 다이얼 버튼 등의 버튼 조작에 따른 표시가 되는 표시기이다. 바이브레이터(19)는 착신시에 착신음 대신에 휴대전화기(1)의 본체를 진동시킴으로써, 착신을 유저에게 알리는 바이브레이터이다. 또한, 각 기능 블록은 버스(24)를 통해 데이터 등의 수수를 행하고 있다.
도 2은 본 발명의 제 1 실시형태에 관한 악음 생성 장치의 구성을 나타내고 있고, 휴대전화기(1)에 있어서 음원 하드웨어(15)로서 사용되고 있다. 단, 수화용 스피커(22), 착신용 스피커(23) 및 그것에 관련되는 구성을 생략하여 나타내고 있다. 또한, 도면 중의 CPU(10)와 음원 하드웨어(15) 또는 RAM(11)은 도시되어 있지 않지만, 버스(24)를 통해 데이터의 수수를 행하고 있다.
도 2에 나타내는 본 발명의 악음 생성 장치에 있어서, RAM(11)에는 음악 컨텐츠 데이터인 파일화된 MIDI 데이터나 SMAF 데이터 등이 영역(11a)에 격납되어 있다. 또한, CPU(1O)에서 처리에 여유가 있거나 빈 시간 등이 있을 때나, 또는 음악 컨텐츠의 재생지시가 있는 경우에, CPU(10)는 RAM(11)의 영역(11a)으로부터 음악 컨텐츠 데이터를 판독하여 음원 하드웨어 제어 데이터로 변환하는 변환처리를 실행하여, 변환후의 음원 하드웨어 제어 데이터를 RAM(11)의 영역(11b)에 격납하고 있다. 영역(11a)에는 다수 곡분의 음악 컨텐츠 데이터가 기억가능하게 되고, 영역(11b)에도 다수 곡분의 음원 하드웨어 제어 데이터가 기억가능하게 되어 있다.
상술한 바와 같이, CPU(10)는 RAM(11)의 영역(11a)으로부터 음악 컨텐츠 데이터를 판독하여 음원 하드웨어 제어 데이터로 변환하는 변환처리를 실행하여, 변환후의 음원 하드웨어 제어 데이터를 RAM(11)의 영역(11b)에 격납하고 있다. 이 변환처리는 CPU(10)에 있어서의 음원 하드웨어 제어 데이터 생성수단(1Ob)이 실행하지만, 음원 하드웨어 제어 데이터 생성수단(1Ob)은 소프트웨어로 실현되고 있다. CPU(10)에 있어서, 음악 컨텐츠 데이터를 음원 하드웨어 제어 데이터로 변환할 때에는 메모리 컨트롤러(10a)가 RAM(11)의 영역(11a)으로부터 변환해야 할 음악 컨텐츠 데이터를 선두로부터 순차 판독하여, 음원 하드웨어 제어 데이터 생성수단(1Ob)에 공급한다. 음원 하드웨어 제어 데이터 생성수단(1Ob)은 공급된 음악 컨텐츠 데이터를 해석하여 차차 음원 하드웨어 제어 데이터로 변환한다. 변환된 음원 하드웨어 제어 데이터는 메모리 컨트롤러(10a)가 RAM(11)의 영역(11b)으로 순차적으로 기입한다. 이렇게 하여, CPU(10)는 음악 콘텐츠를 음원 하드웨어 제어 데이터로 변환한다.
또한, CPU(10)에 의한 데이터 변환처리를 행하면서 악음 재생을 행하는 경우는, 메모리 컨트롤러(10a)는 음원 하드웨어(15)의 FIFO(First-In First-Out; 31)에 변환된 음원 하드웨어 제어 데이터(f)를 기입하도록 한다.
음원 하드웨어(15)는 소정량의 음원 하드웨어 제어 데이터를 격납할 수 있는 FIFO(31)를 구비하고, 시퀀서(32)는 이 FIFO(31)로부터 순차 음원 하드웨어 제어 데이터를 판독한다. FIFO(31)는 음원 하드웨어 제어 데이터를, 예컨대 32개 워드분을 격납할 수 있는 FIFO 방식의 기억수단에서 먼저 기입된 음원 하드웨어 제어 데이터로부터 순차적으로 판독하도록 되어있다. 또한, FIFO(31)로부터 음원 하드웨어 제어 데이터가 판독되어 설정된 소정량의 빈 에어리어가 FIFO(31)에 발생한 때에는 FIFO(3l)는 FIFO 데이터 리퀘스트 신호(e)를 CPU(10)의 메모리 컨트롤러(10a)에 보내어, 계속해서 음원 하드웨어 제어 데이터(f)를 FIFO(31)에 전송하도록 요구하고 있다. 이것에 의해, 작은 용량의 FIFO(31)를 이용하더라도 큰 데이터량으로 되는 음원 하드웨어 제어 데이터의 악곡을 재생할 수 있도록 된다.
음원 하드웨어(15)에 있어서의 시퀀서(32)는 데이터 디코더 회로(32b)를 구비하여, 데이터 디코더 회로(32b)는 FIFO(31)로부터 판독된 음원 하드웨어 제어 데이터를 시간 관리 정보와 음원 제어 레지스터 롸이트(write) 데이터로 분리하고 있다. 이 경우, 시간 관리 정보에 전치하여 시간 관리 정보 식별 어드레스가 부가되어 있는 경우는, 시간 관리 정보 식별 어드레스에 계속해서 예컨대 1 바이트의 데이터를 시간 관리 정보로서 분리한다. 시간 관리 정보 식별 어드레스 및 시간 관리 정보를 제외한 데이터인 음원 제어 레지스터 롸이트 데이터는 악음 생성용 파라미터 데이터로, 레지스터 롸이트 컨트롤러(32c)의 제어하에 음원부(33)의 음원 제어 레지스터(33a)에 기입되도록 된다. 레지스터 롸이트 컨트롤러(32c)는 레지스터 롸이트 허가 신호(d)가 출력된 타이밍에서 음원 제어 레지스터 롸이트 데이터를 음원 제어 레지스터(33a)에 기입하지만, 레지스터 롸이트 허가 신호(d)는 후술하지만 시간 관리 정보의 지속기간의 값이나 게이트 타임의 값과 카운터(타이머; 32a)의 카운트값이 일치한 타이밍에서 출력된다.
시퀀서(32)에 있어서의 카운터(32a)는 기준 시간 단위으로 되는, 예컨대 1ms 마다 출력되는 클럭을 계수하고, 이 계수는 CPU(10)로부터 출력되는 시퀀서 스타트 신호(g)가 인가되었을 때에 개시된다. 또한, 시퀀서 스타트 신호(g)는 음원 제어 레지스터(33a) 중의 시퀀서(32)에 구비되어 있는 레지스터(01h)에 데이터 "01h"를 기입, 그 D0(start)를 "1"로 세트함으로써, 시퀀서 개시를 지시한다. 이것에 의해, 시퀀서(32)는 시퀀서 처리를 스타트하여, 카운터(32a)가 계수를 개시하면, 카운터(32a)는 데이터 디코드 스타트 신호(a)를 데이터 디코더 회로(32b)에 인가한다. 이것을 받아, 데이터 디코더 회로(32b)는 FIFO(31)으로부터 음원 하드웨어 제어 데이터를 판독하여, 시간 관리 정보를 분리한다. 분리된 시간 관리 정보(b)는 카운터(32a)에 보낸다. 그리고, 카운터(32a)에서 카운트값이 시간 관리 정보(b) 이상이 되었을 때에, 카운터(32a)는 레지스터 롸이트 허가 신호(d)를 레지스터 롸이트 컨트롤러(32c)에 인가하여, 데이터 디코더 회로(32b)에서 분리된 음원 제어 레지스터 롸이트 데이터(c)를 음원 제어 레지스터(33a)에 기입한다. 이것에 의해, 음원부(33)에 있어서 그 음원 제어 레지스터 롸이트 데이터(c)에 의거하는 악음이 생성되어 출력되도록 된다. 이어서, 데이터 디커더 회로(32b)는 FIFO(31)로부터 다음 음원 하드웨어 제어 데이터를 판독한다.
그리고, 데이터 디코더 회로(32b)는 FIFO(31)로 판독한 다음 음원 하드웨어 제어 데이터로부터 다음 시간 관리 정보를 분리하여, 상술한 처리와 동일한 처리를 반복하여 행한다. 즉, 카운터(32a)에서 카운트값이 다음 시간 관리 정보(b) 이상이 되었을 때에, 카운터(32a)는 레지스터 롸이트 허가 신호(d)를 레지스터 롸이트 컨트롤러(32c)에 인가하여, 데이터 디코더 회로(32b)에서 분리된 다음 음원 제어 레지스터 롸이트 데이터(c)를 음원 제어 레지스터(33a)에 기입한다. 이것에 의해, 음원부(33)에 있어서 다음 음원 제어 레지스터 롸이트 데이터(c)에 의거하는 악음이 생성되어 출력된다. 이어서 데이터 디코더 회로(32b)는 FIFO(31)로부터 다음 다음 의 음원 하드웨어 제어 데이터를 판독한다. 이와 같이 FIFO(31)로부터 순차 음원 하드웨어 제어 데이터를 판독하여 나감으로써, 음원부(33)에 있어서 악음이 재생되어 간다.
다음에, 악음 생성 장치에 재생 지시가 되었을 때의 도 2에 나타내는 악음 생성 장치의 동작을 설명한다.
우선, SMAF 포맷에 관해서 설명한다. SMAF 포맷의 데이터 구조를 도 3a, 도 3 b 및 도 4에 나타낸다. 도 3a에 도시하는 바와 같이 SMAF는 청크(Chunk) 구조로 되어 있고, 컨텐츠 정보 청크(Contents Info Chunk; 40), 스코어 트랙 청크(Score Track Chunk; 41), PCM 오디오 트랙 청크(PCM Audio Track Chunk; 42) 등의 청크로 구성되어 있다. 컨텐츠 정보 청크(40)는 컨텐츠의 정보나 정의를 포함하는 청크이고, 스코어 트랙 청크(41)는 음원 시퀀스 트랙을 격납하는 청크이며, PCM 오디오 트랙 청크(42)는 ADPCM이나 MP3(MPEG audio layer 3), TwinVQ 등의 압축된 PCM계 오디오 발음을 이벤트 형식으로 격납하는 청크이다.
스코어 트랙 청크(41)의 데이터 구조를 도 3b에 나타낸다. 이 도면에 나타내는 바와 같이, 스코어 트랙 청크(41)는 포맷 타입(Format Type), 시퀀스 타입(Sequence Type) 등의 데이터와, 세트업 데이터 청크(Setup Data Chunk; 43),시컨스 데이터 청크(Sequence Data Chunk; 44) 등의 청크로 구성되어 있다. 포맷 타입 데이터는 이 청크의 실제 포맷을 정의하는 상태이고, 예는 핸디 폰 스탠더드 타입 등으로 정의할 수 있다. 시퀀스 타입 데이터는 2종류의 시퀀스 데이터 중 어느 한 타입을 나타내고 있고, 타입에는 스트림 시퀀서 타입과 서브시퀀서 타입이 있다. 세트업 데이터 청크(43)는 음색 데이터나 이펙트 설정 등을 격납하는 청크이고, 시퀀스 데이터 청크(44)는 실제 연주 데이터로 되는 시퀀스 시퀀스 데이터를 격납하는 청크이다.
다음에, 시퀀스 데이터 청크(44)에 격납되는 시퀀스 데이터의 데이터 구조를 도 4에 나타낸다. 이 도면에 나타내는 바와 같이, 새퀀스 데이터는 1 바이트의 지속기간(Duration) 데이터와, 2 바이트 또는 3 바이트로 되는 이벤트(Event) 데이터가 교대로 배열되어 구성되어 있다. 이 경우, 이벤트 데이터 전에는 반드시 지속기간이 존재하는 것으로 되어 있다. 지속기간 데이터는 그 전에 배치된 이벤트와 그 후에 배치된 이벤트의 시간간격을 나타내는 시간 정보이다. 또한, 이벤트에는 발음을 제어하는 노트 메시지(Note Message), 볼륨이나 모듈레이션 등을 컨트롤하는 컨트롤 메시지(Contorol Message), 메이커 독자의 정보를 보낼 수 있는 익스클루시브 메시지(Exclusive Message) 등의 이벤트가 있다. 또한, 노트 메시지는 도시하는 바와 같이 지정되는 발음 채널을 니타내는 채널 넘버(Channel Number), 발음하는 음고를 나타내는 노트 넘버(Note Number), 발음 기간을 나타내는 게이트 타임(Gate time)의 각 데이터로 구성된다.
도 4에 나타내는 지속기간 데이터 1∼지속기간 데이터 3과 이벤트 데이터 1∼이벤트 데이터(3)로 이루어지는 시퀀스 데이터를 시간축상으로 나타내면 도 5에 도시하는 바와 같이 나타낸다. 예컨대, 이벤트 1, 이벤트 2, 이벤트 3을 노트 온(발음)의 노트 메시지로 하면, 지속기간 1에 나타내는 시간이 경과한 시점에서 이벤트 1에 의한 발음이 개시된다. 또한, 이벤트1에 의한 발음의 개시 후에 게이트 타임1에 나타내어지는 시간이 경과시 이벤트에 의한 발음은 정지되고, 그 다음 듀레이션1로 나타내어지는 시간의 경과 후에 듀레이션2로 나타내어지는 시간이 경과할 때, 이벤트2에 의한 발음이 개시된다. 그 다음, 게이트 타임2로 나타내어지는 시간이 경과할 때, 이벤트2에 의한 발음이 정지된다. 또한, 듀레이션2로 나타내어지는 시간의 경과 후에 듀레이션3으로 나타내어지는 시간이 경과할 때, 이벤트3에 의한 발음이 개시된다. 그 다음, 이벤트3에 의한 발음의 개시 후에 게이트 타임3에 의해 나타내어지는 시간이 경과할 때, 이벤트3에 의한 발음이 정지된다. 이후, 도 4의 시퀀스 데이터를 "SMAF 데이터"라고 한다.
도 2를 다시 참조하면, 음원 하드웨어 제어 생성 수단(10b)은, 음악 콘텐츠 데이터인, 예를 들면 SMAF 데이터를 음원 하드웨어 생성 제어 데이터로 변환한다. 여기서, 변환에 의해 생성된 음원 하드웨어 제어 데이터는 음원 하드웨어(15)로 순차 전송되고, 음원부(33)는 음원 하드웨어 제어 데이터에 기초하여 악음을 생성한다. 이를 위해, 음원 하드웨어 제어 데이터는 음원부(33)의 음원 제어 레지스터(33a)의 레지스터 맵에 대응되는 데이터 구성을 갖도록 구성되어 있다. 여기서, SMAF를 변환함으로써 형성된 음원 하드웨어 제어 데이터의 예가 나타내어진다. 음원 하드웨어 제어 데이터가 듀레이션과 게이트 타임에 상당하는 시간 관리 정보를 포함하더라도, 시간 관리 정보는 음원 제어 레지스터(33a)에 기입되지 않는다. 음원 하드웨어 제어 데이터에서 시간 관리 정보를 생략함으로써 형성된 음원 제어 레지스터 대응 데이터는 변환전의 SMAF 데이터와 대응시켜 도 6에 도시된다.
도 6에서, SMAF 데이터의 프로그램 변경 메시지의 듀레이션 데이터 "00"과 이벤트 "00 30 47"은 인덱스 "18h"와 데이터 "10h"로 변환된다. 이들 데이터에서, "h"는 수값이 16진법인 것을 나타내고 있다. 인덱스는, 도 7에 음원 제어 레지스터(33a)의 음원 제어 레지스터 맵에 도시된 레지스터의 어드레스를 나타내고, 인덱스 다음에 계속되는 데이터가 인덱스로 나타내어지는 어드레스를 갖는 레지스터에 기입된다. 이 경우에, 각 레지스터는 1바이트의 용량을 가지고, 음원 제어 레지스터(33a)는, 인덱스 "01h"로 어드레스되는 하나의 레지스터, 각각의 인덱스 "18h" 내지 "1Fh"로 어드레스되는 8개의 레지스터, 각각의 인덱스 "B0h" 내지 "BFh"로 어드레스되는 16개의 레지스터, 각각의 인덱스 "C0h" 내지 "CFh"로 어드레스되는 16개의 레지스터, 및 각각의 인덱스 "E0h" 내지 "EFh"로 어드레스되는 16개의 레지스터를 갖는다. 인덱스 "01h"로 어드레스되는 레지스터 "01h"만이 도 2에 도시된 바와 같이 시퀀서(32) 내에 배치된다는 것에 유의하여야 한다. 또한, 각 인덱스의 길이는 1바이트이므로, 각 레지스터는, 대응하는 1바이트의 길이를 갖는 데이터를 기억하기 위해, 8비트로 형성되어 있다.
각각의 인덱스 "18h" 내지 "1Fh"로 어드레스되는 8개의 레지스터의 각각은 채널 n의 음색 번호와 다음 채널 n+1의 음색 번호를 지정하는데 사용된다. 이 때문에, 16채널의 각각의 음색을 지정할 수 있다. 또한, 각각의 인덱스 "B0h" 내지 "BFh"로 어드레스되는 16개의 레지스터의 각각은, 건반의 각 건에 할당된 음고의 주파수에 비례한 수값인 10비트로 정의된 F 넘버 내의 하위 8비트를 기억한다. 또한, 각각의 인덱스 "C0h" 내지 "CFh"로 어드레스되는 16개의 레지스터의 각각은, 그 각각의 비트 D0 및 D1에 나머지 상위 2비트의 F 넘버, 그 각각의 비트 D2, D3, D4에 3비트의 옥타브 정보, 및 그 각각의 비트 D5에 키-온 정보를 기억한다. 이것에 의해, 16 채널의 각각에 대해, F 넘버 및 옥타브로 정의되는 음고와, 키-온을 지정할 수 있다. 또한, 각각의 인덱스 "E0h" 내지 "EFh"로 어드레스되는 16개의 레지스터의 각각은 각각의 비트 D0 내지 D4에 5비트의 채널 볼륨 정보를 기억한다. 이와 같이, 16 채널의 각각에 대해 채널 볼륨 정보가 지정될 수 있다.
따라서, SMAF 데이터의 프로그램 변경 메시지의 듀레이션 데이터 "00"과 이벤트 "00 30 47"가 인덱스 "18h"와 데이터 "10h"로 변환되더라도, 데이터 "1h0h"는 레지스터 18h에 기억되고, 이것에 의해 음색 번호 "01h"를 갖는 음색이 채널1에 지정되고, 음색 번호 "1h"를 갖는 음색이 채널2에 지정된다.
또한, 다음 SMAF 데이터의 채널 변경 메시지의 듀레이션 데이터 "00"과 이벤트 "00 37 7F"가 인덱스 "E0h"와 데이터 "1Fh"로 변환된다. 변환에 의해 형성된 데이터 "1Fh"는 레지스터 E0h에 기억되고, 이것에 의해 데이터 "1Fh"는 채널1의 볼륨값을 "1Fh"로 지정한다.
또한, 다음 SMAF 데이터의 노트 메시지의 듀레이션 데이터 "00"과 이벤트 "2C 50"이 인덱스 "B0h"와 데이터 "B2h" 및 인덱스 "C0h"와 데이터 "32h"로 변환된다. 변환에 의해 형성된 데이터 "B2h"가 레지스터 B0h에 기억되고, 변환에 의해 형성된 데이터 "32h"가 레지스터 C0h에 기억된다. 데이터 "B2h"(이진법의 "1010010")에 의해 제공된 0번째 비트 내지 8번째 비트와 데이터 "32h"(이진법의 "00110010")의 비트 D0 및 D1에서의 9번째 비트와 10번째의 비트에 의해 형성된 10비트는 채널1의 F 넘버를 지정한다. 또한, 데이터 "32h"의 각각의 비트 D2, D3, D4에서 3비트 "100"이 채널1의 옥타브를 지정한다. 또한, 데이터 "32h"의 비트 D5에서의 "1"이 채널1의 키-온을 지정한다.
또한, 다음 SMAF 데이터의 노트 메시지의 듀레이션 데이터 "5C"와 이벤트 "2B 20"이 인덱스 "B0h"와 데이터 "8Bh" 및 인덱스 "C0h"와 데이터 "32h"로 변환된다. 변환에 의해 형성된 데이터 "8Bh"는 레지스터 B0h에 기억되고, 변환에 의해 형성된 데이터 "32h"는 레지스터 C0h에 기억된다. 데이터 "8Bh"(이진법의 "10001011")에 의해 제공된 0번째 비트 내지 8번째 비트와 데이터 "32h"(이진법의 "00110010")의 비트 D0 및 D1에서의 9번째 비트와 10번째의 비트에 의해 형성된 10비트는 채널1의 F 넘버를 지정한다. 또한, 데이터 "32h"의 각각의 비트 D2, D3, D4에서 3비트의 "100"이 채널1의 옥타브를 지정한다. 또한, 데이터 "32h"의 비트 D5에서 "1"이 채널1의 키-온을 지정한다.
SMAF 데이터와 이 SMAF 데이터를 변환함으로써 생성된 음원 제어 레지스터 맵 대응 데이터는 전술한 바와 같이 서로 대응되고, 다음에 계속되는 데이터도 동일하게 변환되고 있다.
SMAF 데이터의 노트 메시지의 이벤트 "2C 50"과 이벤트 "2B 20"이 16진법으로 표시되고, 이들 내의 "50"과 "20"은 악음의 발음이 수행되는 기간을 각각 나타내는 게이트 타임인 것에 유의하여야 한다. 즉, 이들 노트 메시지의 발음은 "50h" 또는 "20h"의 기준 시간이 경과할 때에 정지되어야 한다. 즉, 발음 개시 후의 "50h" 또는 "20h"의 기준 시간의 경과시 노트-오프를 이루기 위해서, "50h" 또는 "20h"로 설정된 듀레이션 데이터가 필요하고, 키-온/키-오프 정보가 "0"으로 설정되는 키 오프를 지시하는 메시지는 필요하지 않다.
이와 같은 노트 메시지는, 도 6에 도시되어 있지 않지만, 데이터 변환 시에, 변환전의 SMAF 데이터의 해석을 통해 음원 하드웨어 제어 데이터 생성 수단(10b)에 의해 자동적으로 생성된다. 따라서, 설명의 도움을 위해, 시간 관리 정보를 포함하는 SMAF 데이터로부터 변환된 음원 하드웨어 제어 데이터의 제1 데이터 구조가 도 8에 도시되고, 도 6의 SMAF 데이터를 형성함으로써 형성된 제1 데이터 구조를 갖는 음원 하드웨어 제어 데이터의 예가 도 9에 도시된다. 또한, 데이터의 세트로 재정리된 도 9의 음원 하드웨어 제어 데이터가 도 10에 도시된다.
도 8에 도시된 바와 같이, 음원 하드웨어 제어 데이터의 제1 데이터 구조에서는, 시간 관리 정보 식별 어드레스와 시간 관리 정보가 한 세트의 데이터를 형성하고, 시간 관리 정보 식별 어드레스가 시간 관리 정보 직전의 위치에 배열된다. 즉, 시간 관리 정보 식별 어드레스가 검출될 때에, 검출된 시간 관리 정보 식별 어드레스의 다음의 데이터는 시간 관리 정보로 생각된다. 이 시간 관리 정보 다음에 계속해서, 각각 한 쌍의 인덱스와 데이터로 형성된 적어도 한 세트의 데이터가 제공된다. 인덱스는, 전술한 바와 같이, 음원 제어 레지스터(33a)에 구비되어 있는 각 레지스터를 나타내는 정보이고, 인덱스 다음에 계속되는 데이터는 그 어드레스로 나타내어진 레지스터에 기입된다. 또한, 데이터가 레지스터에 기입되는 타이밍은 적어도 한쌍의 인덱스와 데이터 직전의 위치에 배치되는 시간 관리 정보에 의해 지정되어 있다. 음원 하드웨어 제어 데이터 생성 수단(10b)은 SMAF 데이터를 도 8에 도시된 음원 하드웨어 제어 데이터로 변환하고 있다.
도 9는 음원 하드웨어 제어 데이터 생성 수단(10b)에 의해 도 6의 SMAF 데이터를 해석하여 변환함으로써 형성된 음원 하드웨어 제어 데이터를 도시하고 있다. 도 9의 음원 하드웨어 제어 데이터에서는, 시간 관리 정보에 더하여 시퀀서 종료 데이터도 부가되어 있다. 즉, 제1 데이터는 시간 관리 정보 식별 어드레스로서 정의되어 있는 "FFh"로 설정된 다음에, 듀레이션 데이터로서의 시간 관리 정보 "00h"가 다음에 계속되고 있다. 듀레이션 데이터 다음에 계속되는 데이터는, 전술한 바와 같이, 인덱스 "18h"와 데이터 "10h" 쌍으로 형성된 데이터의 세트, 인덱스 "B0h"와 데이터 "B2h"의 쌍 및 인덱스 "C0h"와 데이터 "32h" 쌍으로 형성된 데이터의 세트 등이다. 이 데이터의 시퀀스는 채널1의 키-온과 음고 뿐만 아니라 채널 1과 2의 음색, 및 채널1의 볼륨을 지정한다.
다음에 계속되는 데이터는, 도 6에 도시되지 않은, 채널1을 통해 재생된 악음의 발음을 종료시키기 위한 데이터이다. 채널1의 발음의 개시의 타이밍은 발음 데이터 직전의 위치에 배치된 시간 관리 정보 "00h"로 나타내어지는 타이밍으로 설정되어 있다. 그 다음, 게이트 타임의 경과 타이밍에서 발음이 종료된다. 다시 말하면, 발음이 정지되는 데이터의 시간 관리 정보는 게이트 타임에 상당하는 데이터 값이다. 즉, 시간 관리 정보 식별 어드레스로서의 "FFh"와 시간 관리 정보 "50h" 쌍으로 형성된 데이터 세트와, 이것에 후속하는, 인덱스 "B0h"와 데이터 "B2h"의 쌍 및 인덱스 "C0h"와 데이터 "12h"의 쌍에 의해 형성된 데이터 세트에 의해 발음을 종료시키기 위한 데이터가 형성된다. 이 데이터에 의해, 기준 시간 "50h" 경과시 레지스터 B0h에 데이터 "B2h"가 기억되고 레지스터 C0h에 데이터 "B2h"가 기억되고, 이것에 의해 데이터 "B2h"(이진법의 "10110010")에 의해 형성된 0번째 비트 내지 8번째 비트와 데이터 "12h"(이진법의 "00010010")의 비트 D0 및 D1에서 "10"개 가운데 9번째 비트와 10번째의 비트에 의해 형성된 10비트 "1010110010"은 채널1의 옥타브를 지정한다. 또한, 데이터 "12h"의 비트 D5에서 "0"은 채널1의 키-오프를 지정한다. 이것에 의해, 지정된 옥타브와 F 넘버에 기초하여 발음되는 채널1의 악음이 기준 시간 "50h"의 경과시 정지된다.
다음에 계속되는 데이터도 음원 제어 레지스터(33a)에 기입된다. 음원 하드웨어 제어 데이터의 최후에는, 시간 관리 정보 식별 어드레스 "FFh"와 시간 관리 데이터 "00h"의 쌍으로 형성된 데이터, 및 이것에 후속하는 인덱스 "01h"와 데이터 "00h"(이진법의 "000000000")의 쌍으로 형성된 데이터가 제공된다. 이 경우에, 데이터 "00h"는, 직전의 이벤트의 발생부터 기준 시간 "01h"의 경과의 타이밍으로, 음원 제어 레지스터(33a) 중의 시퀀서(32)에 배치되어 있는 레지스터(01h)로 설정된다. 이것은 "0"을 도 7에 도시된 레지스터 01h의 비트 D0(start)로 설정하고, 이것에 의해, 시퀀서 동작의 종료가 시퀀서(32)에 지시된다. 즉, 인덱스 "01h"와 데이터 "00h"는 시퀀서 종료 데이터를 형성한다.
도 10은 음원 하드웨어 제어 데이터 생성 수단(10b)에 의해 SMAF 데이터의 해석과 변환을 통한 제1 데이터 구조를 갖는 음원 하드웨어 제어 데이터를 데이터의 세트로 재정리하는 것을 도시하고 있다. 이 도면에 도시된 바와 같이, 제1 데이터 구조를 갖는 음원 하드웨어 제어 데이터는 각각 시간 관리 정보 식별 어드레스와 시간 관리 정보의 쌍으로 형성된 데이터 및 각각 인덱스와 데이터의 쌍으로 형성된 데이터로 구성된다. 이와 같이 SMAF 데이터로부터 변환된 음원 하드웨어 제어 데이터를 지정함으로써 악곡의 재생이 지시될 때에 수행되는 도 2의 악음 생성 장치의 동작이 도 2 및 도 10을 참조하여 설명된다. 그러나, CPU(10)에 의해 음원 하드웨어 제어 데이터가 SMAF 데이터로부터 변환되고 결과의 데이터가 악곡의 재생 이전에 RAM(11)의 영역(11b)에 기억되어 있는 것으로 가정한다.
CPU(10)의 메모리 컨트롤러(10a)는, RAM(1)의 영역(11b)으로부터 재생을 위해 지정된 악곡에 대응하는 도 10에 도시된 음원 하드웨어 제어 데이터(f)를 32바이트분을 독출하여 음원 하드웨어(15)의 FIFO(31)로 전송한다. 동시에, CPU(10)는 시퀀서 스타트 신호(g)를 시퀀서(32)의 카운터(32a)로 공급한다.
또한, 시퀀서 스타트 신호(g)가 레지스터(01h)에 음원 제어 레지스터(33a)의 일부로서 기입되어 그 비트 D0(start)를 1로 설정함으로써, 시퀀서의 동작 개시를 지시한다. 이것에 의해, 시퀀서(32)는 시퀀서 동작을 개시하고, 카운터(32a)는, 시퀀서 스타트 신호(g)에 응답하여 동작하여 기준 시간의 단위로서 클록 카운팅을 개시하는 동시에, 데이터 디코드 스타트 신호(a)를 데이터 디코더 회로(32b)에 인가한다. 데이터 디코더 회로(32b)는 데이터 디코드 스타트 신호(a)에 응답하여 동작하여 FIFO(31)로부터 1바이트씩 데이터를 독출한다. 이 경우에, 독출된 데이터가 시간 관리 정보 식별 어드레스 "FFh"이면, 또 하나의 바이트가 더 독출된다. 도 10에 도시된 바와 같이, 시간 관리 정보 식별 어드레스 다음에 계속되는 데이터는 시간 관리 정보이므로, 이 정보는 카운터(32a)에 설정된다.
또한, 데이터 디코더 회로(32b)는 FIFO(31)로부터 다음에 계속되는 데이터의 독출을 지속하고, 독출된 인덱스 "18h"와 계속해서 독출된 데이터 "10h" 모두는 음원 제어 레지스터 라이트 데이터이기 때문에, 레지스터 라이트 컨트롤러(32c)로 전송된다. 레지스터 라이트 컨트롤러(32c)는, 인덱스 "18h"로 나타내어진 어드레스를 갖는 레지스터(18h)에 데이터 "10h"의 기입을 준비한다. 이 경우도, 카운터(32a)로 전송된 시간 관리 정보는 "00h"이기 때문에, 즉시 카운터(32a)는 레지스터 라이트 컨트롤러(32c)에 레지스터 라이트 허가 신호(d)를 인가하고, 그 후에, 이 신호에 응답하여, 레지스터 라이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(18h)에 데이터 "10h"를 기입한다. 레지스터(18h)는 채널1과 2의 음색 번호를 지정하여, 음원부(33)로부터 생성된 악곡의 채널1과 채널2의 음색이 지정된다.
또한, 데이터 디코더 회로(32b)는, FIFO(31)로부터 다음에 계속되는 데이터의 독출을 지속하고, 독출된 인덱스 "E0h"와 계속하여 독출된 데이터 "1Fh" 모두가 음원 제어 레지스터 라이트 데이터이기 때문에, 레지스터 라이트 컨트롤러(32c)로 전송된다. 레지스터 라이트 컨트롤러(32c)는 인덱스 "E0h"로 나타내어진 어드레스를 갖는 레지스터(E0h)에 데이터 "1Fh"의 기입을 준비한다. 이 경우도, 카운터(32a)로 전송된 시간 관리 정보는 "00h"이기 때문에, 즉시 카운터(32a)는 레지스터 라이트 컨트롤러(32c)에 레지스터 라이트 허가 신호(d)를 인가하고, 그 후에, 이 신호에 응답하여, 레지스터 라이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(18h)에 데이터 "1Fh"를 기입한다. 레지스터(E0h)는 채널1의 채널 볼륨을 지정하여, 음원부(33)로부터 생성된 악곡의 채널1의 채널 볼륨이 지정된다.
또한, 데이터 디코더 회로(32b)는, FIFO(31)로부터 다음에 계속되는 데이터의 독출을 지속하고, 독출된 인덱스 "E0h"와 계속하여 독출된 데이터 "B2h" 모두가 음원 제어 레지스터 라이트 데이터이기 때문에, 레지스터 라이트 컨트롤러(32c)로 전송된다. 레지스터 라이트 컨트롤러(32c)는 인덱스 "B0h"로 나타내어진 어드레스를 갖는 레지스터(B0h)에 데이터 "B2h"의 기입을 준비한다. 이 경우도, 카운터(32a)로 전송된 시간 관리 정보는 "00h"이기 때문에, 즉시 카운터(32a)는 레지스터 라이트 컨트롤러(32c)에 레지스터 라이트 허가 신호(d)를 인가하고, 그 후에, 이 신호에 응답하여, 레지스터 라이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(B0h)에 데이터 "B2h"를 기입한다. 레지스터(B0h)는 채널1의 F 넘버의 하위 8비트를 지정한다.
또한, 데이터 디코더 회로(32b)는, FIFO(31)로부터 다음에 계속되는 데이터의 독출을 지속하고, 독출된 인덱스 "C0h"와 계속하여 독출된 데이터 "32h" 모두가 음원 제어 레지스터 라이트 데이터이기 때문에, 레지스터 라이트 컨트롤러(32c)로 전송된다. 레지스터 라이트 컨트롤러(32c)는 인덱스 "C0h"로 나타내어진 어드레스를 갖는 레지스터(C0h)에 데이터 "32h"의 기입을 준비한다. 이 경우, 카운터(32a)에 설정된 시간 관리 정보는 "00h"가 되기 때문에, 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 즉시 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 데이터 "32h"를 음원 제어 레지스터(33a)의 레지스터(C0h)에 기입한다. 레지스터(C0h)는 채널 1의 F 번호의 상위 2 비트와 함께 옥타브를 지정하며, 이와 동시에 채널 1의 키-온/키-오프를 지정하고, 그 비트(D5)에 "1"이 설정되어(D5 = 1) 키-온을 지정함으로써, 채널 1의 키-온이 지정되어, 음원 제어 레지스터(33a)에 설정되어 있는 옥타브 및 F 번호의 음고, 음량 및 음색으로 악음의 발생을 시작한다.
이어서, 데이터 디코더 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출한다. 독출된 데이터는 시간 관리 정보-식별 어드레스 "FFh"이기 때문에, 계속해서 독출된 시간 관리 정보 "50h"가 시간 관리 정보(b)로서 카운터(32a)에 설정된다. 데이터 디코더 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "B0h"이기 때문에, 계속해서 독출된 데이터 "B2h"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "B0h"로 지정된 어드레스를 갖는 레지스터(B0h)에 데이터 "B2h"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "50h"이기 때문에, 카운터(32a)의 계수치가 "50h"가 될 때까지 처리는 대기한다.
그리고, 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "C0h"이기 때문에, 계속해서 독출된 데이터 "12h"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "C0h"로 지정된 어드레스를 갖는 레지스터(C0h)에 데이터 "12h"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "50h"이기 때문에, 카운터(32a)의 계수치가 "50h"가 될 때까지 처리는 대기한다. 그리고, 카운터(32a)의 계수치가 진행하여 "50h"에 대응하는 시간 주기가 경과한 타이밍으로(시간 포인트 50h), 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 데이터 "B2h"를 음원 제어 레지스터(33a)의 레지스터(B0h)에 기입하는 동시에, 레지스터(C0h)에 데이터 "12h"를 기입한다. 레지스터(B0h)는 채널 1의 F 번호의 하위 8 비트를 지정하는 한편, 레지스터(C0h)는 채널 1의 F 번호의 상위 2 비트와 함께 옥타브를 지정하는 동시에, 그 비트(D5)에 의해 채널 1의 키-온/키-오프를 지시한다. 이 경우, 레지스터(C0h)의 비트(D5)에 "0"이 설정되어(D5 = 0) 키-오프를 지정한다. 이것에 의해, 지정된 옥타브와 F 번호의 음고로 음원부(33)에 의해 생성되는 채널 1의 악음의 키-오프가 지시되어, 악음의 생성이 정지된다.
또한, 카운터(32a)의 계수치가 "50h"에 대응하는 값 이상이 되면, 데이터 디코더 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출한다. 독출된 데이터는 시간 관리 정보-식별 어드레스 "FFh"이기 때문에, 그것에 계속해서 독출되는 시간 관리 정보 "0Ch"를 시간 관리 정보(b)로서 카운터(32a)에 설정한다. 데이터 디코더 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "B0h"이기 때문에, 계속해서 독출된 데이터 "8Bh"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "B0h"로 지정된 어드레스를 갖는 레지스터(B0h)에 데이터 "8Bh"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "0Ch"이기 때문에, 카운터(32a)의 계수치가 "0Ch"가 될 때까지 처리는 대기한다.
이어서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "C0h"이기 때문에, 계속해서 독출된 데이터 "32h"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "C0h"로 지정된 어드레스를 갖는 레지스터(C0h)에 데이터 "32h"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "0Ch"이기 때문에, 카운터(32a)의 계수치가 "0Ch"가 될 때까지 처리는 대기한다. 그리고, 카운터(32a)의 계수치가 진행하여 시간 포인트 "50h"로부터 "0Ch"에 대응하는 시간 주기가 경과한 타이밍으로(시간 포인트 5Ch (= 50h + 0Ch)), 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 데이터 "8Bh"를 음원 제어 레지스터(33a)의 레지스터(B0h)에 기입하는 동시에, 레지스터(C0h)에 데이터 "32h"를 기입한다. 레지스터(B0h)는 채널 1의 F 번호의 하위 8 비트를 지정하는 한편, 레지스터(C0h)는 채널 1의 F 번호의 상위 2 비트와 함께 옥타브를 지정하는 동시에, 채널 1의 키-온/키-오프를 지시한다. 이 경우, 레지스터(C0h)의 비트(D5)에 "1"이 설정되어(D5 = 0) 키-온을 지정한다. 이것에 의해, 채널 1의 악음의 키-온이 지시되어, 채널 1의 키-온이 지정됨으로써, 음원 제어 레지스터(33a)에 설정되어 있는 옥타브 및 F 번호의 음고, 음량 및 음색으로 악음의 발생을 시작한다.
계속해서, 데이터 디코더 회로(32b)는 FIFO(31)로부터 이어지는 데이터의 독출을 계속한다. 독출된 데이터는 시간 관리 정보-식별 어드레스 "FFh"이기 때문에, 그것에 계속해서 독출되는 시간 관리 정보 "20h"가 시간 관리 정보(b)로서 카운터(32a)에 설정된다. 이어서, 데이터 디코더 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "B0h"이기 때문에, 계속해서 독출된 데이터 "8Bh"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "B0h"로 지정된 어드레스를 갖는 레지스터(B0h)에 데이터 "8Bh"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "20h"이기 때문에, 카운터(32a)의 계수치가 "20h"가 될 때까지 처리는 대기한다.
이어서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 데이터를 독출하고, 독출된 데이터는 음원 제어 레지스터 쓰기 데이터인 인덱스 "C0h"이기 때문에, 계속해서 독출된 데이터 "12h"와 함께 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "C0h"로 지정된 어드레스를 갖는 레지스터(C0h)에 데이터 "12h"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "20h"이기 때문에, 카운터(32a)의 계수치가 "20h"가 될 때까지 처리는 대기한다. 그리고, 카운터(32a)의 계수치가 진행하여 "20h"에 대응하는 시간 주기가 더 경과한 타이밍으로(시간 포인트 7Ch (= 5Ch + 20h)), 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 데이터 "8Bh"를 음원 제어 레지스터(33a)의 레지스터(B0h)에 기입하는 동시에, 레지스터(C0h)에 데이터 "12h"를 기입한다. 레지스터(B0h)는 채널 1의 F 번호의 하위 8 비트를 지정하는 한편, 레지스터(C0h)는 채널 1의 F 번호의 상위 2 비트와 함께 옥타브를 지정하는 동시에, 채널 1의 키-온/키-오프를 지시한다. 이 경우, 비트(D5)에 "0"이 설정되어(D5 = 0) 키-오프를 지정한다. 이것에 의해, 지정된 옥타브와 F 번호의 음고로 음원부(33)에 의해 생성되는 채널 1의 악음의 키-오프가 지시되어, 악음의 생성이 정지된다.
이하, 1 바이트씩 데이터가 독출되고, 마찬가지의 처리가 실행된다. 마지막으로, FIFO(31)에서는 인덱스 "01h"와 계속되는 데이터 "00h"가 독출된다. 이들 데이터의 독출에 앞서, 시간 관리 정보-식별 어드레스 "FFh"와 시간 관리 정보 "01h"가 FIFO(31)로부터 독출된다. 시간 관리 정보 "01h"는 시간 관리 정보(b)로서 카운터(32a)에 설정되고, 계속해서 독출된 인덱스는 음원 제어 레지스터 쓰기 데이터(c)로서 레지스터 쓰기 컨트롤러(32c)에 보내진다. 또한, 데이터 디코더 회로(32b)는 다음에 독출된 데이터 "00h"를 레지스터 쓰기 컨트롤러(32c)에 보낸다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "01h"로 지정된 어드레스를 갖는 레지스터(01h)에 데이터 "00h"(2진으로 "00000000")를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "01h"이기 때문에, 카운터(32a)의 계수치가 "01h"가 될 때까지 처리는 대기한다. 그리고, 카운터(32a)의 계수치가 1개 진행하여 "01h"에 대응하는 시간 주기가 경과한 타이밍으로, 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 시퀀서(32)에 배치된 레지스터(01h)에 데이터 "00h"를 기입한다. 레지스터(01h)의 비트(D0)는 시퀀서(32) 동작의 시작/정지를 지시하고, 이 경우, 시퀀서(32) 동작의 비트(D0)에 "0"이 설정되어(D0 = 0) 시퀀서(32) 동작의 정지를 지정한다. 이것에 의해, 시퀀서(32)에 그 동작의 종료가 지시되어, 시퀀서(32)는 그 동작을 정지한다. 상술한 바와 같이, 인덱스 "01h"와 "00h"로 이루어지는 쌍의 데이터는 시퀀서 종료 데이터이다.
도 11은 음원 제어 레지스터(33a)에 데이터를 기입하는 타이밍을 나타내는 타이밍도이다.
도 11에서 가로 좌표는 기준 시간의 단위로서 1 ㎳씩 측정되는 시간을 지정하고 있다. 그러나, 시간의 값은 16진법으로 표시되고, 표시 방법을 나타내기 위해 시간 단위를 hms로 나타내고 있다. 우선, 카운터(32a)가 계수를 시작하는 시간 0 hms에서 시간 관리 정보 "00h"에 관련된 데이터가 음원 제어 레지스터(33a)에 기입된다. 이 경우, 기입된 데이터는 도 10에 나타낸 인덱스 "FFh" 내지 데이터 "32h"로 이루어지는 5쌍의 음원 제어 레지스터 기입 데이터 A가 된다. 그에 따라, 50 hms의 경과 후에 시간 포인트 50 hms가 되면, 시간 관리 정보 "00h" 다음의 시간 관리 정보 "50h"에 계속되는 데이터가 음원 제어 레지스터(33a)에 기입된다. 이 경우, 기입된 데이터는 도 10에 나타낸 인덱스 "B0h" 내지 데이터 "12h"로 이루어지는 2쌍의 음원 제어 레지스터 쓰기 데이터 B가 된다.
또한, 0C hms의 경과 후에 시간 포인트 5C hms가 되면, 시간 관리 정보 "50h" 다음의 시간 관리 정보 "0Ch"에 계속되는 데이터가 음원 제어 레지스터(33a)에 기입된다. 이 경우, 기입된 데이터는 도 10에 나타낸 인덱스 "B0h" 내지 데이터 "32h"로 이루어지는 2쌍의 음원 제어 레지스터 쓰기 데이터 C가 된다. 또한, 20 hms의 경과 후에 시간 포인트 7C hms가 되면, 다음 시간 관리 정보 "0Ch"인 시간 관리 정보 "20h"에 계속되는 데이터가 음원 제어 레지스터(33a)에 기입된다. 이 경우, 기입되는 데이터는 도 10에 나타낸 인덱스 "B0h" 내지 데이터 "12h"로 이루어지는 2쌍의 음원제어 레지스터 쓰기 데이터 D가 된다. 또한, 0D hms의 경과 후에 시간 포인트 89 hms가 되면, 다음 시간 관리 정보 "20h"인 시간 관리 정보 "0Dh"에 계속되는 데이터가 음원 제어 레지스터(33a)에 기입된다. 이 경우, 기입된 데이터는 도 10에 나타낸 인덱스 "B3h" 내지 데이터 "32h"로 이루어지는 4쌍의 음원 제어 레지스터 쓰기 데이터 E가 된다.
이후의 데이터는, 도 10에 도시하지 않았지만, 마지막에 인덱스 "01h"와 데이터 "00h"로 이루어지는 시퀀서 종료 데이터가, 전술한 바와 같이, 시퀀서(32)에 배치된 레지스터(01h)에 기입될 때까지, 상술한 것과 동일한 형태로 음원 제어 레지스터(33a)에 기입된다. 이 경우, 카운터(32a)의 계수도 정지된다. 그 후에 악음의 재생이 지시된 경우, 카운터(32a)는 클리어 되어 새롭게 카운트를 시작하게 된다.
이와 같이, 음원 제어 레지스터(33a)에는 시간 관리 정보에 계속되는 데이터가 다음 시간 관리 정보가 독출될 때까지 순차 기입된다. 그리고, 도 11에 나타낸 타이밍으로 음원 제어 레지스터(33a)에 악음을 생성하는 파라미터가 기입되므로, 도 5에 나타낸 타이밍으로 악음이 생성된다.
다음에, 하드웨어 음원 제어 데이터 생성수단(10b)의 변환에 의해 생성된 하드웨어 음원 제어 데이터의 제2 데이터 구성의 예를 도 12에 도시하고, 도 6의 SMAF 데이터에 대응하는 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터의 예를 도 13에 도시한다. 또, 도 13에 도시한 하드웨어 음원 제어 데이터를 데이터 세트로 정리하여 도 14에 도시하고 있다.
제2 데이터 구성에서는, 도 12에 도시하는 바와 같이, 하드웨어 음원 제어 데이터는 시간 관리 정보, 인덱스 및 데이터를 1 세트로 각각 구성하고 있다. 즉, 이 데이터 구성에서는, 데이터 바로 전에 인덱스가 배치되고, 인덱스 바로 전에 시간 관리 정보가 배치된다. 인덱스는 전술한 바와 같이 음원 제어 레지스터(33a)에 구비되어 있는 각 레지스터의 어드레스를 나타내는 1 바이트의 정보이고, 인덱스에 이어지는 1 바이트의 데이터는 그 어드레스를 갖는 레지스터에 기입된다. 그리고, 레지스터에 데이터가 기입되는 타이밍이 1 바이트 또는 2 바이트의 시간 관리 정보로 나타내진다. 시간 관리 정보가 2 바이트로 이루어진 경우에는, 최초 바이트의 MSB(최상위 비트)가 "1"로 설정된다. 또한, 제1 데이터 구성과 달리, 제2 데이터 구성에로서 시간 관리 정보는 반드시 인덱스 바로 전에 배치된다. 이와 같이, 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터는 3 바이트 또는 4 바이트를 1 세트로 하는 데이터로 구성되어, 각 데이터 세트의 선두에는 시간 관리 정보가 배치된다.
도 13은 하드웨어 음원 제어 데이터 생성수단(10b)에 의한 SMAF 데이터의 해석 및 변환에 의해 형성된, 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터의 예를 도 13에 도시한다. 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터는, 도면에 도시하는 바와 같이, 시간 관리 정보, 인덱스 및 데이터를 1 세트로 하여 각각 형성된 데이터로 구성된다. 도 14는 도 13에 도시한 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터를 데이터 세트에 따라 정리한 것을 나타내고 있다. 이하, 이들 도면과 도 2를 참조하여, 제2 데이터 구성을 갖는 하드웨어 음원 제어 데이터에 따른 악곡의 재생을 설명한다. 단, 하드웨어 음원 제어 데이터에서 SMAF 데이터는 악곡의 재생에 앞서 CPU(10)에 의해 변환되어, 그 변환된 데이터가 RAM(11)의 영역(11b)에 기억되어 있는 것으로 한다.
CPU(10)의 메모리 컨트롤러(10a)는 재생이 지정된 악곡에 대응하며 제2 데이터 구조를 갖는, 도 14에 도시한 하드웨어 음원 제어 데이터(f)를 RAM(11)의 영역(11b)으로부터 예컨대 32 바이트 분량 독출하여, 하드웨어 음원(15)의 FIFO(31)에 전송한다. 동시에, CPU(10)는 시퀀서 시작 신호(g)를 시퀀서(32)의 카운터(32a)에 공급한다.
또한, 시퀀서 시작 신호(g)는 음원 제어 레지스터(33a)의 한 음으로서 레지스터(01h)에 기입되어, 그 비트(D0)(시작)에 "1"을 설정함으로써 시퀀서 동작의 시작을 지시한다. 이것에 의해, 시퀀서(32)는 시퀀서 동작을 시작하고, 시퀀서 시작 신호(g)에 응하여, 카운터(32a)는 기준 시간의 단위인 클록의 계수를 시작하는 동시에, 데이터 디코더 회로(32b)에 데이터 디코드 시작 신호(a)를 인가한다. 데이터 디코드 시작 신호(a)에 응하여, 데이터 디코더 회로(32b)는 FIFO(31)로부터 1 바이트씩 데이터를 독출한다. 이 경우, 독출된 선두의 데이터는 시간 관리 정보이고, 이 데이터 "00h"는 시간 관리 정보(b)로서 카운터(32a)에 설정된다. 이 경우, 시간 관리 정보의 MSB는 "0"이기 때문에, 이 데이터 세트의 데이터량은 총 3 바이트가 된다.
독출된 인덱스 "18h"와 계속해서 독출된 데이터 "10h"는 둘 다 음원 제어 레지스터 쓰기 데이터이기 때문에, 레지스터 쓰기 컨트롤러(32c)에 보내진다. 레지스터 쓰기 컨트롤러(32c)는 인덱스 "18h"에 의해 지정된 어드레스를 갖는 레지스터(18h)에 데이터 "10h"를 기입할 준비를 한다. 이 경우, 카운터(32a)에 설정되어 있는 시간 관리 정보는 "00h"이기 때문에, 카운터(32a)는 레지스터 쓰기 허가 신호(d)를 레지스터 쓰기 컨트롤러(32c)에 즉시 인가하고, 그 후에, 이 신호에 응하여, 레지스터 쓰기 컨트롤러(32c)는 인덱스 "18h"에 의해 지정된 어드레스를 갖는 레지스터(18h)에 데이터 "10h"를 기입한다. 레지스터(18h)가 채널 1과 채널 2의 음색 번호를 지정하여, 음원부(33)에서 생성되는 악음의 채널 1과 채널 2의 음색이 지정된다.
또한 이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 세트의 데이터를 읽어 내지만, 읽어 낸 선두의 데이터는 시간 관리 정보이며, 이 데이터 "00h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우, 시간 관리 정보의 MSB는 "0"이므로 이 세트의 전체의 데이터량도 3바이트가 된다. 읽어 내어진 인덱스 "E0h"와 이어서 읽어 낸 데이터 "1Fh"도 음원 제어 레지스터 롸이트 데이터이므로, 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "E0h"를 어드레스로 하는 레지스터(E0h)에 데이터 "1Fh"를 기입하는 준비를 행한다. 이 경우도, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "00h"가 되어 있으므로, 즉시 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가되고, 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(E0h)에 데이터 "1Fh"를 기입한다. 레지스터(E0h)는 채널(1)의 채널 볼륨을 지정하는 레지스터이므로, 이것으로, 음원부(33)에서 생성되는 악음의 채널(1)의 채널 볼륨이 지정된다.
또한 이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 세트의 데이터를 읽어 내지만, 읽어 낸 선두의 데이터는 시간 관리 정보이며, 이 데이터 "00h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우, 시간 관리 정보의 MSB은 "0"이므로 이 세트의 전체의 데이터량도 3바이트가 된다. 읽어 내어진 인덱스 "B0h"와 이어서 읽어 낸 데이터 "B2h"도 음원 제어 레지스터 롸이트 데이터이므로, 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "B0h"를 어드레스로 하는 레지스터(B0h)에 데이터 "B2h"를 기입하는 준비를 행한다. 이 경우도, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "00h"가 되어 있으므로, 즉시 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가되고, 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(B0h)에 데이터 "B2h"를 기입한다. 레지스터(B0h)는 채널(1)의 F 넘버의 하위 8비트를 지정하는 레지스터이다.
또한 이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 세트의 데이터를 읽어 내지만, 읽어 낸 선두의 데이터는 시간 관리 정보이며, 이 데이터 "00h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우, 시간 관리 정보의 MSB은 "0"이므로 이 세트의 전체의 데이터량도 3바이트가 된다. 읽어 내어진 인덱스 "C0h"와 이어서 읽어 낸 데이터 "32h"도 음원 제어 레지스터 롸이트 데이터이므로, 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "C0h"를 어드레스로 하는 레지스터(C0h)에 데이터 "32h"를 기입하는 준비를 행한다. 이 경우도, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "00h"가 되어 있으므로, 즉시 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가되고, 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(C0h)에 데이터 "32h"를 기입한다. 레지스터(C0h)는 채널(1)의 F 넘버의 상위 2비트와 옥타브를 지정함과 더불어, 채널(1)의 키 온/키 오프를 지시하는 레지스터이며, 키 온으로서 "1"(D5=1)이 세트된다. 이것으로, 채널(1)의 키 온이 지시되어서, 음원 제어 레지스터(33a)에 세트되어 있는 옥타브 및 F 넘버의 음고(ton pitch), 볼륨 및 음색의 악음이 채널(1)에서 생성 개시된다.
또한 이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 세트의 데이터를 읽어 내지만, 읽어 낸 선두의 데이터는 시간 관리 정보이며, 이 데이터 "50h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우, 시간 관리 정보의 MSB은 "0"이므로 이 세트의 전체의 데이터량은 3바이트가 된다. 이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 데이터를 읽어 낸다. 읽어 내어진 데이터는 인덱스 "B0h"이며 음원 제어 레지스터 롸이트 데이터이므로, 이어서 읽어 낸 데이터 "B2h"와 함께 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스에 B0h"를 어드레스로 하는 레지스터(B0h)에 데이터 "B2h"를 기입하는 준비를 행한다. 이 경우, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "50h"가 되어 있으므로, 카운터(32a)의 계수값이 50h 진행하기까지 대기된다.
그리고, 카운터(32a)의 계수값이 진행해 50h시간 경과한 시간(50h)의 타이밍으로, 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가된다. 이것을 받아서 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(B0h)에 데이터 "B2h"를 기입한다. 레지스터(B0h)는 채널(1)의 F 넘버의 하위 8비트를 지정하는 레지스터이다.
이어서, 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 세트의 데이터를 읽어 낸다. 읽어 낸 선두의 데이터는 시간 관리 정보이며, 이 데이터 "00h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우, 시간 관리 정보의 MSB은 "0"이므로 이 세트의 전체의 데이터량은 3바이트가 된다. 읽어 내어진 데이터는 인덱스 "C0h"이며 음원 제어 레지스터 롸이트 데이터이므로, 이어서 읽어 낸 데이터 "12h"와 함께 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "C0h"를 어드레스로 하는 레지스터(C0h)에 데이터 "12h"를 기입하는 준비를 행한다. 이 경우, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "00h"가 되어 있으므로, 즉시 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가된다. 이것을 받아서 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(C0h)에 데이터 "12h"를 기입한다. 레지스터(C0h)는 채널(1)의 F 넘버의 상위 2피트와 옥타브를 지정함과 더불어, 채널(1)의 키 온/키 오프를 지시하는 레지스터이며, 키 오프로서 "0"(D5=0)이 세트된다. 이것으로, 2세트의 데이터로 지정된 옥타브와 F 넘버의 음고로 음원부(33)에서 생성되어 있었던 채널(1)의 악음의 키 오프가 지시되어서, 악음의 생성이 정지된다.
한편, 이 키 오프를 지시하는 시간 관리 정보 "50h"는 SMAF 데이터의 게이트 타임에 대응하고 있다.
이하, 마찬가지로 해서 세트마다의 데이터가 읽어 내어질 때마다, 음원 제어 레지스터(33a)에 데이터가 기입되게 된다. 그리고, 데이터 디코드 회로(32b)가 FIFO31로부터 이어지는 세트의 데이터를 읽어 냈을 때에, 읽어 낸 선두의 데이터인 시간 관리 정보가 "80h"인 것으로 한다. 이 경우, 시간 관리 정보의 MSB은 "1"이므로 이 세트의 시간 관리 정보는 2바이트로 나타나게 된다. 그러므로, 이어지는 시간 관리 정보 "32h"를 읽어 내고, 읽어 내어진 데이터 "80h" 및 "32h"를 시간 관리 정보(b)로서 카운터(32a)에 세트한다. 이 경우의 전체의 데이터량은 4바이트가 된다. 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 데이터를 읽어 내지만, 읽어 내어진 데이터는 인덱스 "C0h"이며 음원 제어 레지스터 롸이트 데이터이므로, 이어서 읽어 낸 데이터 "32h"와 함께 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "C0h"를 어드레스로 하는 레지스터(C0h)에 데이터 "32h"를 기입하는 준비를 행한다. 이 경우, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "80h 32h"가 되어 있으므로, 카운터(32a)의 계수값이 (80h 32h) 진행하기까지 대기된다.
그리고, 카운터(32a)의 계수값이 진행해 (80h 32h) 시간 경과한 타이밍으로, 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가된다. 이것을 받아서 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a)의 레지스터(C0h)에 데이터 "32h"를 기입한다. 레지스터(C0h)는 채널(1)의 F 넘버의 상위 2비트와 옥타브를 지정함과 더불어, 채널(1)의 키 온/키 오프를 지시하는 레지스터이며, 키 온으로서 "1"(D5=1)이 세트된다.
이하, 순차로 1바이트씩 데이터가 읽어 내어져, 마찬가지의 처리가 행하여진다. 그리고, 최후로 FIFO31로부터는 시간 관리 정보 "01h"와 인덱스 "01h"와 데이터 "00h"로 이루어지는 세트가 읽어 내어진다. 이 시간 관리 정보 "01h"는 시간 관리 정보(b)로서 카운터(32a)에 세트되고, FIFO31로부터 이어서 읽어 내어진 인덱스 "01h"는 음원 제어 레지스터 롸이트 데이터(c)로서 레지스터 롸이트 컨트롤러(32c)에 전송된다. 또한, 데이터 디코드 회로(32b)는 FIFO31로부터 이어서 읽어 낸 데이터 "00h"를 레지스터 롸이트 컨트롤러(32c)에 전송된다. 레지스터 롸이트 컨트롤러(32c)는 인덱스 "01h"를 어드레스로 하는 레지스터(01h)에 데이터 "00h"(2진법으로 "00000000")를 기입하는 준비를 행한다. 이 경우, 카운터(32a)에 세트되어 있는 시간 관리 정보는 "01h"가 되어 있으므로, 카운터(32a)의 계수값이 01h 진행하기까지 대기된다. 그리고, 카운터(32a)의 계수값이 1개 진행해 01h 시간 경과한 타이밍으로, 카운터(32a)로부터 레지스터 롸이트 허가 신호(d)가 레지스터 롸이트 컨트롤러(32c)에 인가된다. 이것을 받아서 레지스터 롸이트 컨트롤러(32c)는 음원 제어 레지스터(33a) 중의 시퀀서(32)에 구비되어 있는 레지스터(01h)에 데이터 "00h"를 기입한다. 레지스터(01h)의 D0은 시퀀서 스타트/스톱을 시퀀서(32)에 지시하는 레지스터가 되어 있고, 이 경우 시퀀서 스톱으로서 "0"(D0=O)이 세트된다. 이것으로, 시퀀서 종료가 되고, 시퀀서(32)는 시퀀스 처리를 종료한다. 이와 같이, 인덱스 "01h"와 데이터 "00h"로 이루어지는 세트의 데이터는 시퀀서 종료 데이터이다.
다음에, 제1 구성의 음원 제어 레지스터 데이터를 재생할 때에 음원 하드웨어(15)의 시퀀서(32)로 실행되는 재생 처리의 플로우챠트를 도 15에 도시한다.
도 15에 도시하는 플로우 차트에 있어서, 시퀀서 스타트 신호(g)가 CPU10으로부터 시퀀서(32)에 인가되면 재생 처리가 스타트되고, 단계(S1)에서 데이터 디코드 회로(32b)는 FIFO31로부터 선두의 1바이트의 데이터를 읽어 들이도록 한다. 이어서, 단계(S2)에서 읽혀진 데이터가 시간관리 정보식별 어드레스인가 아닌가가 데이터 디코드 회로(32b)에서 판단된다. 이 데이터가 FFh로 되어 있으며, 시간관리 정보식별 어드레스의 경우는 YES로 판단되어서 단계(S3)로 진행하고, 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 1바이트의 데이터를 읽어 들이도록 한다. 여기에서 읽혀진 데이터는 시간 관리 정보가 되므로, 그 데이터는 카운터(32a)에 세트된다. 그리고, 단계(S4)에서 카운터(32a)에 세트된 시간 관리 정보로 나타나는 시간만큼 경과한 것인가 아닌가가 판단된다. 경과하고 있지 않은 경우는 경과하기까지 대기되어, 경과했다고 판단되었을 때에 단계(S5)로 진행된다. 한편, 시간 경과는 카운터(32a)의 계수가 세트된 시간 관리 정보의 값 이상이 되었을 때에 경과했다고 판단한다.
단계(S5)에서 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 1바이트의 데이터를 읽어 들이도록 한다. 이어서, 단계(S6)에서 읽혀진 데이터가 시간관리 정보식별 어드레스인가 아닌가가 데이터 디코드 회로(32b)에서 판단된다. 여기서, 읽혀진 데이터가 시간관리 정보식별 어드레스(FFh)가 아니라고 판단되면, 단계(S7)로 진행하여 읽혀진 데이터가 음원 제어 레지스터(33a)에 전송된다. 단, 이 데이터는 인덱스이며, 음원 제어 레지스터(33a)에 준비되어 있는 레지스터를 지정하는 어드레스가 된다. 이어서, 단계(S8)에서 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 1바이트의 데이터를 읽어 들이지만, 이 데이터는 단계(S7)로 전송된 인덱스와 세트가 되는 데이터이며, 단계(S9)에서 그 인덱스로 지정된 음원 제어 레지스터(33a)의 레지스터에 데이터 롸이트된다. 예를 들면, 재생 스타트시에 있어서 최초로 음원 제어 레지스터(33a)에 전송되는 것은 도 9 및 도 10에 도시하는 예에서는 인덱스(18h)와 데이터 "10h"로 이루어지는 데이터가 된다.
이어서, 단계(S5) 및 단계(S8)에서 읽혀진 2바이트의 데이터가 시퀀서 종료 데이터인가 아닌가가 판단된다(S10). 여기서, 시퀀서 종료 데이터는 도 9 및 도 10에 도시하는 바와 같이 인덱스(01h)와 데이터 "00h"로 이루어지는 데이터가 된다. 그러므로, 읽혀진 데이터가 인덱스(01h)와 데이터 "00h"의 세트의 데이터인 경우는, 시퀀서 종료 데이터로 판단되어서 재생 처리는 종료한다. 또, 시퀀서 종료 데이터가 아니라고 판단되면, 단계(S5)로 되돌아가 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 1바이트의 데이터를 읽어 들이도록 한다. 이어서, 단계(S6)에서 읽혀진 데이터가 시간관리 정보식별 어드레스인가 아닌가가 데이터 디코드 회로(32b)에서 판단된다. 여기서, 읽혀진 데이터가 시간관리 정보식별 어드레스(FFh)로 판단되면, 단계(S3)로 되돌아가 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 1바이트의 데이터를 읽어 들이도록 한다. 여기에서 읽혀진 데이터는 시간 관리 정보가 되므로, 그 데이터는 카운터(32a)에 세트된다. 그리고, 단계(S4)에서 카운터(32a)에 세트된 시간 관리 정보로 나타나는 시간만큼 경과한 것인가 아닌가가 판단된다. 경과하고 있지 않은 경우는 경과하기까지 대기되어, 경과했다고 판단되었을 때에 단계(S5)로 진행된다.
이후, 마찬가지의 처리가 행하여지며, 단계(S10)에서 읽혀진 데이터가 시퀀서 종료 데이터로 판단되면 재생 처리는 종료한다. 이 경우에는, 그 전의 단계인 단계(S7) 및 단계(S9)에 의해 시퀀서 종료 데이터가 음원 제어 레지스터(33a)에 기입되게 된다. 따라서, 이때에는 시퀀서(32)에 있어서 재생 처리가 종료된다. 한편, 단계(S10)에서 단계(S5)으로 되돌아가는 처리가 행하여짐으로써, 시간관리 정보식별 어드레스가 읽혀지기까지 읽혀진 다수의 데이터를 하나의 시간 관리 정보에 의해 음원 제어 레지스터(33a)에 전송할 수 있다. 이들 다수의 데이터를 전송함으로써, 음원부(33)의 키 온/키 오프, 발음하는 음고, 볼륨이나 음색 등이 제어되도록 된다. 또, 단계(S2)에서 읽혀진 데이터가 시간관리 정보식별 어드레스가 아니라고 데이터 디코드 회로(32b)에서 판단된 경우는, 제1 구성의 음원 제어 레지스터 데이터가 아니라고 판단되어서 재생 처리는 종료한다. 또한, 플로우 차트에는 나타나고 있지 않지만, FIFO31로부터의 데이터 리딩 에러 등이 발생한 경우에도 재생 처리는 종료한다.
다음에, 제2 구성의 음원 제어 레지스터 데이터를 재생할 때에 음원 하드웨어(15)의 시퀀서(32)로 실행되는 재생 처리의 플로우챠트를 도 16에 도시한다.
도 16에 도시하는 플로우 차트에 있어서, 시퀀서 스타트 신호(g)가 CPU10으로부터 시퀀서(32)에 인가되면 재생 처리가 스타트되고, 단계(S21)에서 데이터 디코드 회로(32b)는 FIFO31로부터 선두의 1바이트의 데이터를 읽어 들이도록 한다. 도 12에 도시하는 바와 같이 선두의 데이터는 시간 관리 정보이므로, 그 데이터의 MSB가 "1"인가 아닌가가 단계(S22)에서 판단된다. 여기서, 읽혀진 데이터의 MSB가 "1"로 판단되면, 시간 관리 정보는 2바이트 구성으로 판단되어, 단계(S23)로 진행하여 데이터 디코드 회로(32b)는 FIFO31로부터 이어지는 1바이트의 데이터를 읽어 들이도록 한다. 읽혀진 2바이트 구성의 시간 관리 정보는 카운터(32a)에 세트된다. 또, 읽혀진 데이터의 MSB가 "1"로 단계(S22)에서 판단되지 않은 경우는, 읽혀진 1바이트가 되는 시간 관리 정보가 카운터(32a)에 세트된다. 그리고, 단계(S24)에서 카운터(32a)에 세트된 시간 관리 정보로 나타나는 시간만큼 경과한 것인가 아닌가가 판단된다. 경과하고 있지 않은 경우는 경과하기까지 대기되어, 경과했다고 판단되었을 때에 단계(S25)로 진행된다. 한편, 시간 경과는 카운터(32a)의 계수가 세트된 시간 관리 정보의 값 이상이 되었을 때에 경과했다고 판단한다.
단계(S25)에서 데이터 디코드 회로(32b)는 FIFO31로부터 재차 이어지는 2바이트의 데이터를 읽어 들이도록 한다. 여기서, 읽혀진 2바이트의 데이터는 시간 관리 정보에 이어지는 데이터이며 도 12에 도시하는 바와 같이 인덱스와 데이터가 되므로, 단계(S26)에서 읽혀진 2바이트의 데이터가 음원 제어 레지스터(33a)에 전송된다. 이 경우, 인덱스로 지정된 음원 제어 레지스터(33a)의 레지스터에 인덱스에 이어지는 데이터가 데이터 롸이트된다. 예를 들면, 재생 스타트시에 있어서 최초로 음원 제어 레지스터(33a)에 전송되는 것은 도 13 및 도 14에 도시하는 예에서는 인덱스(18h)와 데이터 "10h"로 이루어지는 데이터가 된다.
이어서, 단계(S25)에서 읽혀진 2바이트의 데이터가 시퀀서 종료 데이터인가 아닌가가 단계(S27)에서 판단된다. 여기서, 시퀀서 종료 데이터는 도 13 및 도 14에 도시하는 바와 같이 인덱스(01h)와 데이터 "00h"로 이루어지는 데이터가 된다. 그래서, 읽기 테이터 쌍이 인덱스(01h)와 데이터 "00h" 와의 쌍의 데이터의 경우는, 시퀀서 종료 데이터와 판단되어 재생 처리는 종료한다. 또, 시퀀서 종료 데이터에 없다고 판단되면, 단계(S21)으로 복귀해 상술한 처리가 반복 처리된다.
이에 의해, 3바이트 혹은 4바이트를 세트로 하는 데이터가 순차 읽혀지며, 이들 데이터의 인덱스와 데이터가 순차 음원 제어 레지스터(33a)로 보내지므로, 해당하는 레지스터에 데이터가 기록되어 진다. 이에 의해, 음원부(33)는 음원 제어 레지스터(33a)에 기록된 데이터를 기초로 음원(musical tone)을 생성하도록 한다. 또, 단계(S27)에서 읽혀진 데이터가 시퀀서 종료 데이터라고 판단되면 재생 처리는 종료하지만, 이 경우에는, 그 이전 단계인 단계(S26)에 의해 시퀀서 종료 데이터가 음원 제어 레지스터(33a)에 기록되어 진다. 따라서, 이 때에는 시퀀서(32)에 있어서 재생 처리가 종료된다.
이상 설명한 바와 같이, 음원 하드웨어(15)의 시퀀서(32)에 의해 재생 처리에서는, 시간 관리와, 데이터를 음원 제어 레지스터(33a)으로 보내지는 처리를 행하게 된다. 그리고, 시간 관리는 시간 관리 정보를 분리하여 카운터(32a)에 동일하게 세팅하고, 세팅된 시간 관리 정보와 카운터(32a)의 계수치를 비교 감시하는 것에 의해 행해지고 있다. 이 때문에, 시간 관리를 행하는 하드웨어를 간략한 구성으로 할 수 있고, 그 회로 규모를 작게 하는 것이 가능하다. 또, 데이터를 음원 제어 레지스터(33a)에 보내는 것은, 카운터(32a)와의 계수치가 시간 관리 정보의 값 이상으로 될 때에 출력되는 레지스터 기록 허가 신호를 받는 것에 의해 행하면 되기 때문에, 그 하드웨어도 간략한 구성으로 할 수 있다. 이에 의해, 시퀀서(32)의 회로 규모를 작게 할 수 있다.
또, 시퀀서 스타트 신호(g)에 의해 카운터(32a)는 계수를 개시하는 동시에, 시퀀서 스타트 신호(g)에 의해 음원 제어 레지스터(33a)의 일부의 레지스터인 레지스터(01h)의 D0(start)에 "1" 을 세팅하도록 하고 있다. 이 경우, 시퀀서 스타트 신호(g)를 레벨 신호로서, 시퀀서 스타트 신호(g)의 레벨에 따라 카운터(32a)의 계수를 스타트 시키는 동시에, 레지스터(01h)의 D0(start)에 "1" 을 세팅하도록 하여도 된다. 또, 시퀀서 스타트 신호(g)에, 인덱스 "01h" 와 데이터 "01h" 로 이루어지는 데이터를 포함하고 있어서, 이 데이터에 의해 시퀀서(01h)의 D0(start)에 "1" 로 세팅하여도 된다.
다음에, 본 발명의 제2 실시 형태에 따른 휴대전화기(1)에 포함되는, 곡의 임의의 위치에서 재생하는 것이 가능한 본 발명의 제2 실시 형태에 따른 음원 재생 장치의 구성을 도 17에 도시한다.
도 17에 도시하는 제2 실시 형태의 음원 재생 장치에서는, 곡을 재생할 때의 연주 개시 위치를 도시하는 연주 개시 포인트 데이터를 격납하고 있는 레지스터 영역(11c)이 RAM(11)에 제공되어 있다. 이 점에 있어서, 전술한 도 2에 도시한 제1 실시 형태의 음원 재생 장치와 다른 구성으로 되어 있다. 그래서, 이 구성에 관해서만 이하에 설명한다.
RAM(11)에 있어서 레지스터 영역(11c)에는, 곡을 재생할 때의 연주 개시 위치를 도시하는 연주 개시 포인트 데이터가 격납되어 있다. 이 연주 개시 포인트 데이터는, 사용자가 임의로 설정할 수 있도록 되어 있다. 설정할 때에는, 착신 멜로디 혹은 보유음으로 선택되고 있는 곡에 있어서, 어느 위치에서 재생하는가를 휴대전화기(1)에 제공된 메뉴에서 설정한다. 이 때에, 연주를 개시하는 데에 적절한 위치에 마크를 곡의 음악 콘텐츠 데이터 내 혹은 음악 콘텐츠 데이터를 변환한 음원 하드웨어 제어 데이터 내에 복수 삽입하여 두고, 어느 것의 마크의 위치를 스타트 포인트로서 선택하는 것에 의해, 연주 개시 위치를 설정하도록 하여도 된다. 마크를 삽입하는 위치는, 예컨대 곡의 도입부, 메인, 필-인(fill-in), 브릿지(bridge), 엔딩 등의 선두로 되어 있다. 그리고, CPU(10)는, 음악 하드웨어 제어 데이터 변환수단(10b)에 있어서, 선택되어 있는 곡의 음원 하드웨어 제어 데이터는 RAM(11)에서 영역(11b)에 격납된다.
여기서, 재생이 지시되면, CPU(10)는 RAM(11)에서 레지스터 영역(11c)에 격납되어 있는 연주 개시 포인트 데이터를 읽어, 연주 개시 포인트 데이터에 대응하는 위치에서의 음원 하드웨어 제어 데이터를 RAM(11)에서 영역(11b)에서 일고, 순차 음원 하드웨어(15)로 전송한다. 음원부(33)는 전송된 음원 하드웨어 제어 데이터를 기초로 연주 개시 포인트 데이터로 표시되는 위치에서의 음악을 재생하게 된다. 또, 음악 콘텐츠 데이터의 선두 부분에 음색 데이터, 템포 데이터나 볼륨 데이터 등의 세트업(setup) 데이터가 존재할 때에는, 세트업 데이터도 음원 하드웨어 제어 데이터로 변환하여 RAM(11)에서 영역(11b)에 격납하고 있다. 그리고, 재생이 지시될 때에는, 최초에 세트업 데이터에 대응하는 음원 하드웨어 제어 데이터를 영역(11b)에서 읽어 음원 하드웨어(15)에 전송하고, 계속해서 데이터를 영역(11b)에서 읽어 순차 음원 하드웨어(15)로 전송하도록 한다. 이에 의해, 곡을 중간에서 재생하도록 하여도 곡에 설정되어 있는 음색, 템포, 음량으로 이루어진 음악이 재생되도록 된다.
여기서, 착신 버튼 등이 조작되어 재생 스톱의 지시가 된 경우에는, RAM(11)에서 레지스터 영역(11c)에 격납하는 연주 개시 포인트 데이터로서, 차회에 그 곡을 재생할 때에 재생 스톱된 위치에서 재생할 수 있도록 재생 종료의 위치 정보를 격납한다. 이 경우, 연주 개시 포인트 데이터는, 실제로 재생을 종료한 곡의 위치에서 후방에서 최초에 검출된 마크의 위치인 스타트 포인트로 하면, 연주 개시할 때에 적절한 위치에서 재생할 수 있도록 된다. 또, 재생 스톱의 지시는, 휴대전화기(1)에 있어서 입력부(17)의 착신 버튼의 조작, 보유 해제의 조작, 혹은, 통신 회로가 절단될 때에 행해지도록 되어 있다.
상술한 바와 같이, 레지스터 영역(11c)에 격납된 연주 개시 포인트 테이터로서, 음악 콘텐츠 데이터를 변환한 음원 하드웨어 제어 데이터에 있어서 연주 개시 위치의 어드레스 데이터로 하고 있다. 이에 의해, 연주 개시 위치가 변경될 때마다, 연주 개시 위치에서의 음악 컨텐츠 데이터를 음원 하드웨어 제어 데이터로 변환할 필요가 없게 할 수 있다.
게다가, 휴대전화기(1)가 리셋된 경우에는 레지스터 영역(11c)에 격납된 연주 개시 포인트 데이터는 초기화된다. 게다가, 착신 멜로디의 곡이 변경될 때에도 레지스터 영역(11c)에 격납된 연주 개시 포인트 데이터는 초기화된다.
다음에, 본 발명의 제3 실시 형태에 다른 휴대전화기(1)에서 음악생성장치의 구성을 도 18에 도시한다. 도 18에 도시하는 음악생성장치에 있어서는, 변환된 음원 하드웨어 제어 데이터의 양을 저감하는 것이 가능한 구성으로 되어 있고, 이 구성에 있어서, 전술한 도 2에 도시하는 본 발명의 음악생성장치와 다른 구성으로 되어 있다. 그래서, 이 구성에 관해서만 이하에 설명한다.
도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치에 있어서, RAM(11)에는 음악 콘텐츠 데이터인 파일화된 MIDI 데이터나 SMAF 데이터 등이 영역(11a)에 격납되어 있다. 도, CPU(10)에 있어서 처리에 여유가 있거나 이용가능한 처리 시간이 있을 때, 혹은 음악 컨텐츠 데이터의 재생 지시가 있는 경우에, CPU(10)는 RAM(11)의 영역(11a)에서 음악 컨텐츠 데이터를 읽어 음원 하드웨어 제어 데이터로 변환하는 변환 처리를 실행하고, 변환후의 음원 하드웨어 제어 데이터를 RAM(11)의 영역(11b)에 격납하고 있다. 영역(11a)에는 복수 곡의 음악 콘텐츠 데이터가 기억가능하고, 영역(11b)에도 복수 곡의 음원 하드웨어 제어 데이터가 기억가능하게 되어 있다.
여기서, 도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치에 있어서, 일례로 되는 SMAF 데이터를 변환한 음원 하드웨어 제어 데이터(제3 예)를 도 19에 도시한다. 도 19에 도시된 바와 같이, 음원 하드웨어 제어 데이터는 듀레이션(duration)이나 게이트 타임에 상당하는 시간 관리 정보와, 음원 제어 레지스터 기록 데이터로 구성되어 있다. 그리고, 음원 제어 레지스터 기록 데이터를 구성하고 있는 인덱스는, 전술한 바와 같이 음원 제어 레지스터(33a)에 구비되어 있는 각 레지스터의 어드레스를 표시하는 정보이고, 후속하는 데이터는 그 어드레스에서 표시되는 레지스터에 기록된 데이터로 되어 있다. 도 18에 도시하는 본 발명의 제3 실시 형태에 따름 음악생성장치에 있어서, 특징으로 되는 것은 도 19에서 음원 하드웨어 제어 데이터에서 제2 라인에 도시되어 있는 바와 같이, 인덱스가 복수 바이트(도시하는 예에서는, 2바이트)로 나타내는 경우가 있는 것, 및 데이터가 복수 바이트(도시하는 예에서는, 3바이트)로 나타내는 경우가 있는 것, 또한, 제3 라인에 도시되어 있는 바와 같이 시간 관리 정보가 복수 바이트(도시하는 예에서는, 2바이트)로 나타낼 수 있다.
여기서, 시간 관리 정보를 복수 바이트로 나타내는 것이 가능하도록 하는 것은, 이벤트와 이벤트 시간 간격을 나타내는 듀레이션 데이터나, 발음 기간을 나타내는 게이트 타임 데이터의 범위를 넓히기 위한 것이다. 예컨대, 시간 관리 정보를 1바이트로 하면 0~255까지의 범위밖에 나타낼 수 없고, 단위시간을 1ms으로 하면 0~255ms의 시간까지 밖에 나타낼 수 없다. 그래서, 시간 관리 정보를 2바이트로 하면, 0~65535(216 -1)까지 표시할 수 있고, 단위 시간을 1ms로 하면 0~65535ms의 시간까지 나타낼 수 있게 된다. 단, 도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치에서는, 각 바이트의 MSB를 이용하여 후속하는 바이트가 있는지 여부를 나타내도록 하고 있기 때문에, 각 바이트에 사용할 수 있는 비트 수는 각각 하위 7비트이고, 0~16383(214 -1)까지의 범위를 나타내는 것이 가능하도록 한다. 그리고, 시간 관리 정보를 최대 3바이트까지 하면, 0 ~ 16383 ms를 초과하는 시간을 나타내는 것이 가능하도록 된다.
또, 인덱스를 복수 바이트로 나타내는 것이 가능하도록 하는 것은, 다음의 이유이다. 도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치에 있어서는, 각 바이트의 MSD를 이용하여 후속하는 바이트가 있는지 여부를 나타내도록 하기 때문에, 각 바이트에서 사용할 수 있는 비트 수는 1바이트 내의 하위 7비트로 된다. 그러면, 도 7에 도시하는 바와 같이 음원 제어 레지스터(33a)의 인덱스로서는 인덱스 "EFh" 까지 필요로 하지만, 하위 7비트의 1바이트에서는 "7Fh" 까지 밖에 나타낼 수 없다. 그래서, 인덱스를 2바이트로 나타내도록 하여, 예컨대 인덱스 "6FH 81h"로 하면, MSB가 "1"의 바이트를 상위 바이트로 셋팅하여 각각의 바이트의 MSB를 제거하여 결합하는 것에 의해, 인덱스 "EFh"를 나타내는 것이 가능하게 된다. 또, 도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치의 사양에서는, 여유 있게 인덱스는 최대 3바이트까지 되어 있다.
게다가, 데이터를 복수 바이트로 나타낼 수 있도록 하는 것은, 시관 관리 정보가 동일 값으로 되어 있는 타이밍에서 동종의 이벤트가 복수 채널에 발생한 경우에, 복수 이벤트에 대응하는 음원 제어 레지스터 라이트 데이터를 1열로 나타낼 수 있도록 하기 위함이다. 또, 음원 제어 레지스터(33a)에서 동종의 이벤트에서 데이터가 기록되는 레지스터의 어드레스는, 도 7에 도시하는 음원 제어 레지스터 맵에 나타내도록 연속하는 어드레스로 되어 있고, 이를 이용하여 복수 이벤트에 대응하는 음원 제어 레지스터 기록 데이터를 1열로 나타낼 수 있도록 되어 있다.
복수 이벤트에 대응하는 음원 제어 레지스터 기록 데이터를 1열로 나타내는 구체예를 도 20을 참조하여 다음에 설명한다.
도 20은, SMA 데이터와, SMA 데이터를 변환한 음원 하드웨어 제어 데이터를 대비하여 도시하고 있고, SMAF 데이터의 1열의 듀레이션 데이터 "00"와 「채널 번호 0」에서 채널 볼륨 메세지의 이벤트 "00 37 7 F"는, 시간 관리 정보 "80h", 인덱스 "60h 81h" 와 데이터 "9Fh" 로 변환되어 있다. 또, SMAF 데이터의 2열의 듀레이션 데이터 "00" 과 「채널 번호 1」에서 채널 볼륨 메세지의 이벤트 "00 77 55"는, 시간 관리 정보 "80h", 인덱스 "61h 81h"와 데이터 "95h"로 변환되어 있다. 게다가, SMAF 데이터의 3열의 듀레이션 데이터 "00" 과 「채널 번호 2」에서 채널 볼륨 메세지의 이벤트 "00 F7 28"은, 시간 관리 정보 "80h", 인덱스 "62h 81h"와 데이터 "85h"로 변환되어 있다. 또, SMAF 데이터의 4열의 듀레이션 데이터 "00"와 「채널 번호 3」에서 채널 볼륨 메세지의 이벤트 "00 F7 28"은, 시간 관리 정보 "80h", 인덱스 "63h 81h" 와 데이터 "8Ah" 로 변환되어 있다.
또, 인덱스 "60h 81h" 는 인덱스 "E0h" 로 나타내고, 인덱스 "61h 81h" 는 인덱스 "E1h" 로 나타내고, 인덱스 "62h 81h" 는 인덱스 "E2h" 로 나타내고, 인덱스 "63h 81h" 는 인덱스 "E3h" 로 나타내어 있지만, 그 이유는 다음에 설명한다. 도 18에 도시하는 본 발명의 제3 실시 형태에 따른 음악생성장치에 있어서는, 인덱스 데이터를 1바이트 혹은 2바이트 내지 3바이트의 복수 바이트로 나타낼 수 있고, 이 경우에는, 전술한 바와 같이 각 바이트에서 유효 비트는 하위 7비트로 되어 있다. 그리고, 인덱스 데이터에서 선두 바이트의 MSB가 "0" 으로 되어 있는 경우에는 추가로 상위의 인덱스 바이트가 계속하는 것을 의미하고 있고, 그 MSB가 "1" 로 되어 있는 경우에는 최상위의 인덱스 바이트인 것을 의미하고 있다.
즉, 도 20에 도시하는 인덱스 데이터에서 선두의 바이트는 "60h" 이고, 그 MSB 는, "0" 이기 때문에 상위의 인덱스 바이트가 계속하게 된다. 이에 계속하는 인덱스 바이트는 "81h" 이고, 그 MSB는 "1" 이기 때문에 해당 인덱스 바이트가 최상위 바이트로 되어 있다. 이와 같이, 인덱스 바이트가 복수 바이트로되어 있는 경우에는 하위의 바이트에서 도래하게 된다. 그리고, 상위의 바이트에서 재배열된 인덱스 데이터는 "81h 61h" 로 되고, 이 인덱스 데이터에서 생성된 인덱스(레지스터의 어드레스)는 각각의 바이트의 하위 7비트로 나타내기 때문에, 이를 2진수로 나타내면 "00 0000 1110 0000" 으로 되고, 의미 있는 비트는 하위 8비트로 된다. 그래서, 하위 8비트를 16진수로 나타내면, "E0h" 로 된다. 이와 같이, 인덱스 데이터 "60h 81h" 는 인덱스 "E0h" 를 의미하고 있고, 동일하게 인덱스 데이터 "62h 81h" 는 인덱스 "E1h" 로 나타내고, 인덱스 데이터 "623 81h" 는 인덱스 "E3h" 로 나타내고 있다.
이들의 인덱스에 대응하는 이벤트는, 연속하는 채널의 채널 볼륨 메세지로서 대응하는 레지스터의 어드레스가 연속하고 있기 때문에, 도 20에 도시하는 바와 같이 연속하는 인덱스로 되어 있고, 또한, 시간 관리 정보도 동일 값 "80h" 으로 되어 있다. 또, 시간 관리 정보 데이터도 복수 바이트로 나타낼 수 있고, 시간 관리 정보 데이터의 바이트의 MSB 가 "0" 으로 되어 있는 경우에는 추가로 상위의 시간 관리 정보 바이트가 계속하는 것을 의미하고 있고, 그 MSB가 "1" 로 되어 있는 경우에는 최상위의 시간 관리 정보 바이트를 의미하고 있다. 그리고, 각 바이트에서 유효 비트는 하위 7비트로 되어 있다. 즉, 도 20에 도시하는 1열에서 4열까지의 시간 관리 정보 데이터는 "80h" 로 되어 있고 최상위 바이트로서, 이 시간 관리 정보 데이터에서 생성되는 시간 관리 정보는 하위 7비트로 이루어지는 "00h" 로 된다. 이 시간 관리 정보는, 시퀀서(32)에서 타이머(32a)로 설정된다.
도 20에 도시하는 바와 같이 연속하는 인덱스로 되어 있는 동시에, 시간 관리 정보도 동일 값으로 되어 있는 경우에는, 대응하는 데이터를 연속하여 배치하는 것에 의해, 복수 열로 도시하는 SMAF 데이터를 1열의 음원 하드웨어 제어 데이터로 나타낼 수 있다. 즉, 도 20의 화살표 하부에 도시하는 바와 같이, 도 20에서 SMAF 의 1열에서 4열은, 즉 시간 관리 정보 데이터 "80h", 인덱스 데이터 "60h 81h", 데이터 "1Fh 15h 05h 8Ah" 로, 1열의 음원 하드웨어 제어 데이터로 변환할 수 있다. 이 경우, 인덱스는 연속하는 인덱스의 1번째의 인덱스로 설정되고, 계속되는 데이터는, 최종 데이터를 제외하고 각각의 바이트의 유효한 하위 7비트의 데이터로 변환된다. 즉, 1번째의 데이터 “9Fh”는 데이터 “1Fh”로, 2번째의 데이터 “95h”는 데이터 “15h”로, 3번째의 데이터 “85h”는 데이터 “05h”로 변환된다. 1행의 음원 하드웨어 제어 데이터의 MSB를 “1”로 설정하므로서, 4번째의 데이터 “8Ah”가 최종 바이트인 것을 도시하기 위해서 4번째의 데이터 “8Ah”는 그대로 취급된다. 단지, 4번째의 데이터치는 MSB를 제외한 “0Ah”로 된다. 따라서, 시간 관리 정보가 동치로 인덱스가 연속하는 경우는, 복수 행의 SMAF 데이터를 1행의 음원 하드웨어 제어 데이터로 나타낼 수 있기 때문에, 음원 하드웨어 제어 데이터량을 저감하는 것이 가능해진다.
다음으로, 도 21 내지 도 24에 도시하는 플로우 챠트를 참조하여, 도 18에 도시하는 본 발명의 제3실시예에 관한 악음 생성 장치의 동작을 설명한다.
도 21에 도시하는 재생 시작 처리의 플로우 챠트에 있어서, 시퀀서 시작 신호(g)가 CPU(10)로부터 시퀀서(32)로 인가되면 카운터(32a)에서 데이터 디코드 회로(32b)에 데이터 디코드 시작 신호(a)가 출력되어, 재생 시작 처리가 시작된다. 이것에 의해, 단계(S30)에서, 후술하는 시간 관리 정보부 처리가 행해진다. 이 시간 관리 정보부 처리는, 데이터 디코드 회로(32b)가 실행하는 처리이고, FIFO(31)로부터 1바이트씩 판독된 시간 관리 정보 데이터에 기초하여 시간 관리 정보를 생성하여, 카운터(32a)에 생성된 시간 관리 정보를 설정하고 있다. 본 실시예에서, 시간 관리 정보 데이터는 1바이트 내지 3바이트로 구성된다. 그리고, 단계(S31)에서, 카운터(32a)에 설정된 시간 관리 정보로 지시한 시간 주기가 경과한 것인지 아닌지가 판단된다. 만약 시간 주기가 경과하지 않은 것으로 판단되면, 시간 주기에 상응하는 값까지 카운터(32a)가 대기되며, 시간 주기가 경과한 것으로 판단되었을 때에 단계(S32)로 진행한다. 또, 시간 주기의 경과는 카운터(32a)의 계수가 설정된 시간 관리 정보치 이상으로 되었을 때에 경과한 것으로 판단되고, 시간 주기가 경과한 때는 카운터(32a)에서 레지스터 기록 컨트롤러(32c)에 레지스터 기록 허가 신호(d)가 출력된다.
단계(S32)에서는, 후술하는 어드레스부 처리가 행해진다. 이 어드레스부 처리는, 데이터 디코드 회로(32b) 및 어드레스 컨트롤러(32d)의 작동에 의해 실행된다. 본 실시예에서, FIFO(31)로부터 1바이트씩 판독된 인덱스 데이터에 기초하여, 후속하는 데이터를 레지스터에 기록하는 레지스터의 어드레스를 생성하도록, 어드레스 컨트롤러(32d)는 어드레스 제어를 실행한다. 본 실시예에서, 인덱스 데이터는 1바이트 내지 3바이트로 구성된다.
단계(S32)에서, 어드레스가 생성되면, 단계(S33)로 진행하여 후술하는 데이터부 처리가 행하여진다. 이 데이터부 처리는, 데이터 디코드 회로(32b), 어드레스 컨트롤러(32d) 및 레지스터 기록 컨트롤러(32c)의 작동에 의해 실행되며, FIFO(31)로부터 1바이트씩 판독된 데이터가 음원 제어 레지스터(33a)에 기록된다. 본 실시예에서, 각 데이터는 1바이트 내지 3바이트로 구성된다. 음원 제어 레지스터(33a)에 기록되는 데이터는 악음발생용의 데이터이고, 이 악음발생용의 데이터를 이용하여 음원부(33)가 악음을 생성하게 된다. 이 데이터부 처리는, 단계(S31) 후에 실행되므로, 음원 제어 레지스터(33a)에는 시간 관리 정보로 지시하는 시간에 도달하였을 때에 악음발생용의 데이터가 기록되므로, 악음은 시간 관리 정보로 지시하는 시간이 되었을 때에 발생된다.
단계(S33)의 데이터부 처리가 종료하면, 단계(S30)로 되돌아가, 그 후 단계(S30) 내지 단계(S33)의 처리가 되풀이하여 행하여져, 이것에 의해, SMAF 데이터로부터 변환된 음원 하드웨어 제어 데이터가 순서대로 판독되어, 음원부(33)에서 자동연주를 실행한다.
다음에, 재생 시작 처리의 단계(S30)의 시간 관리 정보부 처리의 상세한 설명을 도 22에 도시하는 플로우 챠트를 참조하면서 설명한다.
도 22에 지시하는 시간 관리 정보부 처리가 시작되면, 단계(S40)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 1바이트의 음원 하드웨어 제어 데이터를 판독한다. 여기서는, 판독된 음원 하드웨어 제어 데이터가, 그 1번째의 데이터인 시간 관리 정보 데이터 혹은 MSB가 “1”인 데이터에 계속되는 시간 관리 정보 데이터인 것으로 한다. 이어서, 단계(S41)에서, 판독된 1바이트의 시간 관리 정보 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “0”라고 판정된 경우는, 계속되는 상위의 시간 관리 정보 데이터가 있는 것부터, 단계(S42)로 진행하여 판독된 1바이트의 시간 관리 정보 데이터가 시간 관리 정보 1바이트번째용 템포러리 레지스터에 기록한다. 그리고, 단계(S43)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 1바이트의 시간 관리 정보 데이터를 판독한다.
이어서, 단계(S44)에서, 판독된 2바이트번째의 시간 관리 정보 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “0”이라고 판정된 경우는 또한 계속되는 상위의 시간 관리 정보 데이터가 있는 것부터, 단계(S45)로 진행하여 판독된 2바이트번째의 시간 관리 정보 데이터가 시간 관리 정보 2바이트번째용 임시 레지스터에 기록된다. 그리고, 단계(S46)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 또한 계속되는 1바이트의 시간 관리 정보 데이터를 판독하도록 한다. 이어서, 단계(S47)에서, 판독된 1바이트의 시간 관리 정보 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “0”라고 판정된 경우는 또한 계속되는 상위의 시간 관리 정보 데이터가 있는 것을 의미한다. 그러나, 제3실시예에 있어서, 시간 관리 정보 데이터가 최대 3바이트라고 되어 있기 때문에, MSB가 “0”이라고 판정된 경우는 에러가 발생하는 것을 의미한다. 그래서, MSB가 “0”이라고 판정된 경우는, 에러처리후에 재생 시작 처리의 단계(S31)로 되돌아간다.
또한, 단계(S41)에서, MSB가 “1”이라고 판정된 경우는, 판독된 1바이트번째의 시간 관리 정보 데이터가 최상위의 바이트이므로, 단계(S48)에서, 판독된 1바이트번째의 하위 7비트로부터 시간 관리 정보가 생성되어, 생성된 시간 관리 정보가 타이머(32a)에 설정된다. 이어서, 단계(S49)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S31)로 되돌아간다.
또한, 단계(S44)에서, MSB가 “1”이라고 판정된 경우는, 단계(S43)에서 판독된 2바이트번째의 시간 관리 정보 데이터가 최상위의 바이트인 것을 의미하므로, 이 2바이트번째의 시간 관리 정보 데이터를 단계(S48)에서, 상위 바이트, 시간 관리 정보 1바이트번째용 임시 레지스터에 저장되어 있는 1바이트번째의 시간 관리 정보 데이터를 하위 바이트로서, 각 바이트의 하위 7비트로부터 시간 관리 정보가 생성된다. 생성된 시간 관리 정보는, 타이머(32a)에 설정된다. 이어서, 단계(S49)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S31)로 되돌아가게 된다.
또한, 단계(S47)에서, MSB가 “1”이라고 판정된 경우는, 단계(S46)에서, 판독된 3바이트번째의 시간 관리 정보 데이터가 최상위의 바이트인 것을 의미하므로, 이 3바이트번째의 시간 관리 정보 데이터를 최상위 바이트, 시간 관리 정보 2바이트번째용 임시 레지스터에 저장되어 있는 2바이트번째의 시간 관리 정보 데이터를 중위 바이트, 시간 관리 정보 1바이트번째용 임시 레지스터에 기록되어 있는 1바이트번째의 시간 관리 정보 데이터를 최하위 바이트로서, 단계(S48)에서, 각 바이트의 하위 7비트로부터 시간 관리 정보가 생성된다. 생성된 시간 관리 정보는, 타이머(32a)에 설정된다. 이어서, 단계(S49)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S31)로 되돌아가게 된다.
이러한 시간 관리 정보부 처리를, 구체예를 들어 설명하면, 예컨대 시간 관리 정보 데이터의 데이터열이 “03h 37h 81h”인 것으로 하자. 그러면, FIFO(31)로부터 최초에 판독된 1바이트의 데이터 “03h”의 MSB는 “0”이 되므로, 단계(S42)에서, 판독된 데이터 “03h”가 시간 관리 정보 1바이트번째용 임시 레지스터에 기록된다. 또한, FIFO(31)로부터 판독된 계속되는 1바이트의 데이터 “37h”의 MSB도 “0”으로 되므로, 단계(S45)에서, 데이터 “37h”가 시간 관리 정보 2바이트번째용 임시 레지스터에 기록된다. 또한, FIFO(31)로부터 판독된 계속되는 1바이트의 데이터 “81h”의 MSB는 “1”이 되므로, 판독된 데이터 “81h”가 최상위 바이트로 된다. 그래서, 단계(S48)에서, 데이터 “81h”를 최상위 바이트, 시간 관리 정보 2바이트번째용 임시 레지스터에 저장되어 있는 데이터 “37h”를 중위 바이트, 시간 관리 정보 1바이트번째용 임시 레지스터에 기록되어 있는 데이터 “03h”를 최하위 바이트로서 각각의 바이트의 하위 7비트를 결합하면, “00h 5Bh 83h”가 생성된다. 생성된 시간 관리 정보 “00h 5Bh 83h”는, 카운터(32a)에 설정된다.
다음에, 재생 시작 처리에 있어서의 단계(S32)의 어드레스부 처리의 상세한 설명을 도 23에 도시하는 플로우 챠트를 참조하면서 설명한다.
도 23에 도시하는 어드레스부 처리에 있어서, 처리가 시작되면, 단계(S50)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 1바이트의 음원 하드웨어 제어 데이터를 판독한다. 판독된 음원 하드웨어 제어 데이터는, 시간 관리 정보 데이터에 후속하는 데이터이므로 인덱스 데이터이다. 이어서, 단계(S51)에서, 판독된 1바이트의 인덱스 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “0”이라고 판정된 경우는 계속되는 상위의 인덱스 데이터가 있는 것을 의미하며, 단계(S52)로 진행하여 판독된 1바이트의 인덱스 데이터가 어드레스 1바이트번째용 임시 레지스터에 기록된다. 그리고, 단계(S53)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 2바이트번째의 인덱스 데이터를 판독하도록 한다.
이어서, 단계(S54)에서, 판독된 2바이트번째의 인덱스 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “O“이라고 판정된 경우는 또한 계속되는 상위의 인덱스 데이터가 있는 것을 의미하며, 단계(S55)로 진행하여 판독된 2바이트번째의 인덱스 데이터가 인덱스 2바이트번째용 임시 레지스터에 기록된다. 그리고, 단계(S56)에서, 데이터 디코드 회로(32b)는 FIFO(31)에서 또한 계속되는 3바이트번째의 인덱스 데이터를 판독하도록 한다. 이어서, 단계(S57)에서, 판독된 3바이트번째의 인덱스 데이터의 MSB가 “1”인지 아닌지가 판정된다. 여기서, MSB가 “0”이라고 판정된 경우는 또한 계속되는 상위의 인덱스 데이터가 있는 것을 의미한다. 그러나, 이 실시예에 있어서 인덱스 데이터는 최대 3바이트이라고 되어 있기 때문에, MSB가 “0”이라고 판정된 경우는 에러가 발생하는 것을 의미한다. 그래서, MSB가 “0”이라고 판정된 경우는, 에러처리후에 재생 시작 처리의 단계(S33)로 되돌아가게 된다.
또한, 단계(S51)에서, MSB가 “1”이라고 판정된 경우는, 판독된 1바이트번째의 시간 관리 정보 데이터가 최상위의 바이트이므로, 단계(S58)에서, 판독된 1바이트번째의 인덱스 데이터가 어드레스 컨트롤러(32d)로 전송된다. 어드레스 컨트롤러(32d)는 전송된 인덱스 데이터의 하위 7비트에 기초하여 음원 제어 레지스터(33a)의 레지스터의 어드레스를 생성하며, 이 어드레스는 음원 제어 레지스터(33a)에 공급되어, 레지스터 기록 컨트롤러에서 공급된 데이터가 그 어드레스의 레지스터에 기록된다. 이어서, 단계(S59)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S33)로 되돌아가게 된다.
또한, 단계(S54)에서, MSB가 “1”이라고 판정된 경우는, 단계(S53)에서, 판독된 2바이트번째의 인덱스 데이터가 최상위의 바이트이므로, 이 2바이트번째의 상위 바이트의 인덱스 데이터와, 인덱스 1바이트번째용 임시 레지스터에 기록되어 있는 1바이트번째의 하위 바이트의 인덱스 데이터가, 단계(S58)에서, 어드레스 컨트롤러(32d)에 전송된다. 그리고, 어드레스 컨트롤러(32d)에서 전송된 2바이트의 인덱스 데이터의 각 바이트의 하위 7비트로부터 음원 제어 레지스터(33a)에서의 레지스터의 어드레스가 생성된다. 이 어드레스는 음원 제어 레지스터(33a)에 공급되어, 레지스터 기록 컨트롤러에서 공급된 데이터가 그 어드레스의 레지스터에 기록된다. 이어서, 단계(S59)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S33)로 되돌아가게 된다.
또한, 단계(S57)에서, MSB가 “1“이라고 판정된 경우는, 단계(S56)에서, 판독된 3바이트번째의 인덱스 데이터가 최상위의 바이트이므로, 이 3바이트번째의 최상위 바이트의 인덱스 데이터와, 인덱스 2바이트번째용 임시 레지스터에 기록되어 있는 2바이트번째의 중위 바이트의 인덱스 데이터와, 인덱스 1바이트번째용 임시 레지스터에 기록되어 있는 1바이트번째의 최하위의 인덱스 데이터가, 단계(S58)에서, 어드레스 컨트롤러(32d)에 전송된다. 그리고, 어드레스 컨트롤러(32d)에서 전송된 3바이트의 인덱스 데이터의 각 바이트의 하위 7비트로부터 음원 제어 레지스터(33a)에서의 레지스터의 어드레스가 생성된다. 이 어드레스는 음원 제어 레지스터(33a)에 공급되어, 레지스터 기록 컨트롤러(32c)에서 공급된 데이터가 그 어드레스의 레지스터에 기록된다. 이어서, 단계(S59)에서, 모든 임시 레지스터가 클리어되어, 재생 시작 처리의 단계(S33)로 되돌아가게 된다.
다음에, 재생 시작 처리에 있어서의 단계(S33)의 데이터부 처리의 상세한 설명을 도 24에 도시하는 플로우 챠트를 참조하면서 설명한다.
도 24에 도시하는 데이터부 처리에 있어서, 처리가 시작되면, 단계(S60)에서, 데이터 디코드 회로(32b)는 FIFO(31)로부터 1바이트의 음원 하드웨어 제어 데이터를 판독하도록 한다. 판독된 음원 하드웨어 제어 데이터는, 인덱스 데이터에 후속하는 악음생성용의 데이터이므로, 단계(S61)에서, 레지스터 기록 컨트롤러(32c)에 공급된다. 레지스터 기록 컨트롤러(32c)는, 레지스터 기록 허가 신호(d)가 카운터(32a)에서 출력된 타이밍으로 공급된 데이터를 음원 제어 레지스터(33a)에 기록된다. 이 경우, 단계(S32)에 있어서의 어드레스부 처리에 의해 어드레스 컨트롤러(32d)는, 데이터를 기록해야 되는 레지스터의 어드레스를 음원 제어 레지스터(33a)에 공급하고 있다. 또한, 레지스터 기록 허가 신호(d)는, 재생 시작 처리에 있어서의 단계(S31)의 처리에 있어서, 이미 레지스터 기록 허가 신호(d)가 카운터(32a)에서 출력되어 있는 것부터, 즉시 어드레스 컨트롤러(32d)에서 출력되어 있는 어드레스의 레지스터에 그 데이터가 기록되도록 된다.
이어서, 단계(S62)에서, 판독된 1바이트의 데이터의 MSB가 “1”인지 아닌지가 데이터 디코드 회로(32b)에서 판정된다. 여기서, MSB가 “0”이라고 판정된 경우는 계속되는 데이터가 있는 것을 의미하므로, 단계(S63)로 진행하여 데이터 디코드 회로(32b)는 어드레스 컨트롤러(32d)에 현재의 어드레스를 1만 증가시키는 지시를 행한다. 어드레스 컨트롤러(32d)는 지시를 받아 현재의 어드레스를 1만 증가하여, 증가한 어드레스를 음원 제어 레지스터(33a)에 인가한다. 이것은, 전술한 바와 같이, 다수 바이트의 데이터이라고 되어 있는 경우는, 각각의 데이터의 시간 관리 정보가 동치로 인덱스, 즉 어드레스가 연속하고 있는 것이다. 단계(S63)의 처리가 종료하면, 단계(S60)로 되돌아가 데이터 디코드 회로(32b)는 FIFO(31)로부터 계속되는 1바이트의 데이터를 판독한다. 판독된 데이터는, 단계(S61)에서, 레지스터 기록 컨트롤러(32c)에 공급되어, 이미 레지스터 기록 허가 신호(d)가 카운터(32a)에서 출력되어 있으므로, 레지스터 기록 컨트롤러(32c)는 공급된 계속되는 데이터를, 음원 제어 레지스터(33a)에서의 증가된 어드레스의 레지스터에 즉시 기록한다.
이어서, 단계(S62)에서, 계속해서 판독된 1바이트의 데이터의 MSB가 “1”인지 아닌지가 데이터 디코드 회로(32b)에서 판정된다. 여기서, MSB가 “0”이라고 판정된 경우는 또한 계속되는 데이터가 있는 것을 의미하므로, 단계(S63)로 진행하여 데이터 디코드 회로(32b)는 어드레스 컨트롤러(32d)에 현재의 어드레스를 또한 1만 증가시키는 지시를 한다. 어드레스 컨트롤러(32d)는 지시를 받아 현재의 어드레스를 또한 1만 증가하여, 증가한 어드레스를 음원 제어 레지스터(33a)에 인가한다. 단계(S63)의 처리가 종료하면, 단계(S60)로 되돌아가 데이터 디코드 회로(32b)는 FIFO(31)로부터 또한 계속되는 1바이트의 데이터를 판독한다. 판독된 데이터는, 단계(S61)에서, 레지스터 기록 컨트롤러(32c)에 공급되어, 이미 레지스터 기록 허가 신호(d)가 카운터(32a)에서 출력되어 있기 때문에, 레지스터 기록 컨트롤러(32c)는 공급된 계속되는 데이터를, 음원 제어 레지스터(33a)에서의 또한 증가된 어드레스의 레지스터에 즉시 기록한다. 이후, 데이터 디코드 회로(32b)는 연속하여 판독된 1 바이트의 데이터가 “1"인지를 판정한다. 여기서, MSB가 “1"이라고 판정된 경우, 판독된 데이터가 최종의 데이터인 것을 의미하고, 따라서 처리는 재생 스타트 처리의 단계 S30으로 리턴한다. 또한, MSB가 “0"이라고 판정된 경우, 이것은 계속되는 다른 데이터 바이트가 있다는 것을 의미하고, 따라서 상술된 바와 같이, 단계 S63에서 S62가 판독된 1 바이트의 MSB가 “1"일 때 까지 반복적으로 수행된다. 이것에 의해, 다수 이벤트에 해당하는 음원 제어 레지스터 롸이트 데이터가 한줄로 표현되어도, 데이터에 해당하는 각 레지스터에 악음 발생을 위한 데이터를 기록할 수 있다.
그런데, FIFO(31)로부터 판독된 1 바이트의 데이터의 MSB는 플래그로서 사용된다. 그러므로, FIFO(31)로부터 판독된 1 바이트의 데이터가 기록되는 레지스터의 값에 응한 상술한 처리를 수행할 때, 레지스터의 MSB를 마스킹 또는 무시하여 하위 7 비트에 주목할 수도 있다.
상술한 바와 같이, 도 18에 도시하는 본 발명의 제 3 실시예에 따른 악음 생성 장치에 있어서는, 음원 하드웨어 제어 데이터 변환 수단(1Ob)이 RAM(11)의 영역(11a)에 격납되어 있는 음악 컨텐츠 데이터를 음원 하드웨어 제어 데이터로 변환시킨다. 도 20에 설명된 예에 도시된 바와 같이, 시간 관리 정보가 동일값으로 되고, 인덱스가 연속한 값이 되는 경우는, 다수 이벤트에 해당하는 음원 제어 레지스터 롸이트 데이터가 한 줄로 나타내도록 변환처리가 수행된다.
여기서, 재생이 지시되면, CPU(10)은 재생지시된 악곡에 해당하는 음원 하드웨어 제어 데이터를 RAM(11)의 영역(11b)에서 읽어 내어, 순차적으로 하드웨어 음원(15)에 전송한다. 음원(33)은 수신된 음원 하드웨어 제어 데이터에 따라서 악음을 생성한다. 음악 컨텐츠 데이터의 선두부분에 음색 데이터, 템포 데이터, 및 볼륨 데이터 등의 셋업 데이터가 존재한다면, 셋업 데이터도 음원 하드웨어 제어 데이터로 변환되어, RAM(11)에서의 영역(11b)에 미리 격납하여 놓는다. 그리고, 악곡의 재생이 지시된 때는, 우선, 셋업 데이터에 해당하는 음원 하드웨어 제어 데이터를 영역(11b)에서 읽어 내어, 하드웨어 음원(15)에 전송한다. 계속해서, 음원 하드웨어 제어 데이터를 영역(11b)에서 읽어 내어 순차적으로 하드웨어 음원(15)에 전송한다.
하드웨어 음원(15)에서, FIFO(31)를 통하여 판독된 음원 하드웨어 제어 데이터를 데이터 디코드 회로(32b)가 디코딩하여, 분리한 시간 관리 정보 데이터로부터 시간 관리 정보를 생성하여 카운터(32a)에 세트한다. 시간 관리 정보의 생성은 도 22에 도시된 시간 관리 정보부에 의하여 수행되어, 따라서 시간 관리 정보 데이터가 다수 바이트로부터 구성되어 있더라도 시간 관리 정보를 생성할 수가 있다. 또한, 데이터 디코드 회로(32b)는 시간 관리 정보 데이터에 후속하는 인덱스 데이터에 따라서, 또한 후속하는 인덱스 데이터를 기록한 음원 제어 레지스터(33a)의 레지스터의 어드레스를 생성하도록, 어드레스 콘트롤러(32d)를 제어한다. 이 어드레스의 생성은 도 23에 도시한 어드레스부 처리에 의해 실행되고, 따라서 인덱스 데이터가 다수 바이트로부터 구성되어 있더라도 어드레스를 생성할 수가 있다.
또한, 데이터 디코드 회로(32b)는 인덱스 데이터에 후속하는 악음 생성용의 데이터를, 레지스터 롸이트 콘트롤러(32c)에 공급하여, 레지스터 롸이트 콘트롤러(32c)는 카운터(32a)에 세트된 시간 관리 정보에 해당하는 시간에서 레지스터 롸이트 허가 신호 d의 전달 타이밍에서, 음원 제어 레지스터(33a)에 공급된 데이터를 어드레스 콘트롤러(32d)에서 지시되어 있는 어드레스에 기록한다. 이것에 의해, 음원(33)이 악음 생성용의 기록된 데이터에 따라서 악음을 생성하게 된다. 데이터를 음원 제어 레지스터(33a)에 기록하는 처리는, 도 24에 도시된 데이터부 처리에 의해 수행되고, 따라서 데이터가 다수 바이트로 구성되어 있는 경우는, 레지스터를 도시하는 어드레스가 1씩 순차적으로 증분되면서, 각각의 바이트의 데이터가 음원 제어 데이터(33a)의 해당하는 레지스터에 기록된다는 것이 주목되어야 한다.
상기 설명한 바와 같이, 본 발명의 악음 생성 장치를 본 발명에 따른 이동 단말 장치로서 휴대전화기에 적용할 때, 휴대전화기(1)에 기지국(2)을 통하여 다운로드 센터 등으로부터 새로운 음악 컨텐츠 데이터를 다운로드 하였을 때에, 다운로드한 음악 컨텐츠 데이터를 상술된 바와 같이 음원 하드웨어 제어 데이터로 변환하여 상기 컨텐츠를 재생할 수가 있다. 또한, 휴대전화기에 착신이 있는 경우, 착신 멜로디로서 지정되어 있는 소정의 악곡에 해당하는 음원 하드웨어 제어 데이터를 RAM(11)으로부터 읽어 내어, 착신 멜로디가 소리를 낼 수 있다.
본 발명의 악음 생성 장치는, 이동 단말 장치인 휴대전화기만에 적용되는 것이 아니라, 악음을 출력가능한 휴대형 퍼스널 컴퓨터 등에 적용할 수도 있다는 것이 주목되어야 한다. 이 때에, 텍스트 데이터나 화상 컨텐츠 데이터와 동기하여 음악 컨텐츠 데이터가 재생될 수도 있다.
또한, 하드웨어 음원(15)의 음원부(33)는 주파수 변조(FM) 방식의 음원에 의하여 형성될 수도 있다. FM 음원은 주파수 변조에 의해서 생기는 고조파를 악음의 합성에 이용하여, 비조화음을 포함하는 고조파 성분을 가지는 파형을 발생할 수가 있다. FM 음원은, 자연 악기의 합성음으로부터 전자음 까지 폭넓은 악음을 발생할 수가 있다. FM 음원은 정현파를 등가적으로 발진하여 생성하는 "오퍼레이터"라 칭하는 발진기를 이용하고 있고, 예컨대 제1 오퍼레이터와 제2 오퍼레이터를 캐스케이드 접속하는 것에 의해 FM 음원을 구성할 수가 있다. 또한, 오퍼레이터로부터의 출력을 피드백 방식으로 자신에게 입력함으로써 FM 음원을 구성할 수도 있다.
또한, 음원부의 음원 방법은 FM 음원 방식에 한하는 것이 아니라, 파형 메모리 음원(PCM 음원, ADPCM 음원)방식, 물리 모델 음원 방식 등이 채용될 수 있다. 음원은 DSP 등으로 실행된 하드웨어 음원으로 형성될 수도 있다.
또한, 본 발명의 목적은, 시스템 또는 장치에 상술된 실시예의 기능을 구현하는 소프트웨어 프로그램을 기억하는 기억 매체를 제공하여, 시스템 또는 장치의 컴퓨터(CPU 또는 MPU)가 기억 매체에 기억된 프로그램을 판독하여 실행함으로써 달성될 수 있다는 것은 말할 필요도 없다.
이 경우, 기억 매체로부터 판독된 프로그램 자체의 코드는 상기 실시예의 신규한 기능을 달성하고, 프로그램을 기억하는 기억 매체는 본 발명을 구성한다.
프로그램을 시스템 또는 장치에 공급하기 위한 기억 매체는, 예컨대 플로피디스크, 하드디스크, 광 메모리 디스크, 광자기 디스크, CD-ROM, CD-R(CD-Recordable), DVD-ROM, 반도체 메모리, 자기 테이프, 불휘발성 메모리 카드, ROM 등의 형태일 수도 있다. 또한, MIDI 기기나 통신 네트워크를 통하여 서버 컴퓨터로부터 프로그램 코드가 공급될 수도 있다.
또한, 말할 필요도 없이, 컴퓨터가 읽기 시작한 프로그램을 실행하는 것에 의해, 상술한 실시예의 기능이 실현되는 것 뿐 만 아니라, 그 프로그램 코드의 명령에 응답하여, 컴퓨터 상에서 가동하고 있는 OS(operating system) 등이 실제의 처리의 일부 또는 전부를 수행할 수 있어서, 상기 실시예의 기능을 실행할 수 있다.
또한, 기억매체로부터 판독된 프로그램 코드가, 컴퓨터에 삽입된 기능 확장 보드나 컴퓨터에 접속된 기능 확장 유닛에 갖춰지는 메모리에 기록된 후, 다음 프로그램 코드의 명령에 응답하여, 기능 확장 보드나 기능 확장 유닛에 배열된 CPU 등이 실제의 처리의 일부 또는 전부를 수행할 수도 있어서, 상기 실시예의 기능을 달성할 수도 있다는 것은 말할 필요도 없다.
본 발명의 악음 생성 장치는, 음악 컨텐츠 데이터를 음원 하드웨어 제어 데이터로 소프트웨어에 의하여 구현된 변환 처리 장치로 변환시켜, 시간 관리를 하드웨어 음원에 의하여 수행한다. 따라서, 악음 발생 장치는 하드웨어 음원의 시퀀서용의 소형 회로를 사용하고, 고속 CPU를 사용하지 않는 휴대 단말 장치 등에 적합하게 적용될 수 있다.

Claims (15)

  1. 시간 관리 정보와 이벤트 데이터를 포함하는 음악 컨텐츠 데이터에 기초하여, 음원 하드웨어 제어 데이터를 생성하는 소프트웨어 처리 수단과,
    상기 소프트웨어 처리 수단으로부터 공급되는 소정량의 상기 음원 하드웨어 제어 데이터를 기억가능한 버퍼 메모리부, 및 상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하는 음원부를 내장한 음원 하드웨어 수단을 구비하고,
    상기 소프트웨어 처리 수단은, 상기 음악 컨텐츠 데이터에 포함되는, 적어도 상기 이벤트 데이터를 상기 음원 하드웨어 수단에 고유한 포맷의 변환 데이터로 변환하고, 상기 음원 하드웨어 제어 데이터를 상기 변환 데이터와 상기 시간 관리 정보를 포함하는 데이터로서 생성하며,
    상기 음원 하드웨어 수단은 상기 음악 컨텐츠 데이터의 재생시에, 상기 버퍼 메모리부에, 아직 독출되고 있지 않은 음원 하드웨어 제어 데이터가 항상 존재하도록, 상기 소프트웨어 처리 수단에 대해 음원 하드웨어 제어 데이터의 전송을 요구함과 동시에, 상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 상기 음원부에 의하여 악음 생성하기 위한 파라미터를 추출하고, 상기 시간 관리 정보에 의거하는 타이밍에 도달할 때 마다, 상기 파라미터에 기초하여 악음을 생성하는 것을 특징으로 하는 악음 생성 장치.
  2. 제 1 항에 있어서, 상기 음악 컨텐츠 데이터를 기억하는 기억 수단을 구비하고,
    상기 소프트웨어 처리 수단은, 여분의 처리 능력을 가지는 동안의 시간을 이용하여, 상기 기억수단에 기억되어 있는 상기 음악 컨텐츠 데이터를 상기 음원 하드웨어 제어 데이터로 변환하는 처리를 실행하고, 변환된 상기 음원 하드웨어 제어 데이터를 상기 기억 수단에 기억하도록 한 것을 특징으로 하는 악음 생성 장치.
  3. 삭제
  4. 제1항에 있어서, 상기 음원 하드웨어 수단은, 상기 소프트웨어 처리 수단으로부터 공급된 스타트 신호에 따라 카운트를 개시하고, 기준 시간 단위마다 발생되는 클록 신호를 카운트하는 카운터 수단과, 상기 악음 생성용 파라미터에 기초하여, 악음의 생성을 제어하는 음원 제어 레지스터와, 상기 카운터 수단의 카운트값이, 상기 시간 관리 정보의 값 이상으로 된 때에, 그 시간 관리 정보에 이어지는 음원 하드웨어 제어 데이터 중의 상기 파라미터를 상기 음원 제어 레지스터에 기입하는 기입수단을 구비하는 것을 특징으로 하는 악음 생성 장치.
  5. 제 1 항에 있어서, 임의의 연주 개시 위치의 데이터를 기억하는 포인트 레지스터 수단을 구비하고, 상기 음원 하드웨어 수단은, 그 포인트 레지스터 수단에 기억되어 있는 연주 개시 위치의 데이터에 대응하는 위치로부터의 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하도록 한 것을 특징으로 하는 악음 생성 장치.
  6. 제 1 항에 있어서, 상기 소프트웨어 처리 수단에 있어서, 상기 음악 컨텐츠 데이터를 상기 음원 하드웨어 제어 데이터로 변환할 때에, 시간 관리 정보가 동일한 값으로 됨과 동시에, 악음 생성용 파라미터를 음원 제어 레지스터에 기입하는 어드레스를 나타내는 인덱스 정보가 연속하는 경우는, 상기 시간 관리 정보에 이어지는 직후의 인덱스 정보를 선두의 인덱스 정보로 하고, 해당 직후의 인덱스 정보에 이어지는 악음 생성용 파라미터를, 연속하는 인덱스 정보에 대응하고 있는 복수의 파라미터로 하도록 변환하는 것을 특징으로 하는 악음 생성 장치.
  7. 제 6 항에 있어서, 상기 음원 하드웨어 수단은, 상기 소프트웨어 처리 수단으로부터 공급된 스타트 신호에 따라 카운트를 개시하고, 기준 시간 단위마다 발생되는 클록 신호를 카운트하는 카운터 수단과, 상기 악음 생성용 파라미터에 기초하여, 악음의 생성을 제어하는 음원 제어 레지스터와, 상기 카운터 수단의 카운트 값이, 상기 시간 관리 정보의 값 이상으로 된 때에, 그 시간 관리 정보에 이어지는 음원 하드웨어 제어 데이터 중의 상기 파라미터를 상기 음원 제어 레지스터에 기입하는 기입수단을 구비하고, 상기 파라미터가 복수의 파라미터 데이터로 구성되어 있는 경우는, 상기 인덱스 정보가 나타내는 어드레스를 1씩 증분하면서 각각의 파라미터 데이터를, 상기 음원 제어 레지스터에 기입하도록 한 것을 특징으로 하는 악음 생성 장치.
  8. 제 4 항에 있어서, 상기 소프트웨어 처리 수단은, 상기 음원 하드웨어 제어 데이터를 상기 악음 생성용 파라미터와 상기 시간 관리 정보로 분리하는 분리 수단을 구비하는 악음 생성 장치.
  9. 제 8 항에 있어서, 상기 음원 하드웨어 제어 데이터는, 상기 시간 관리 정보와, 적어도 1쌍의 상기 음원 제어 레지스터의 어드레스를 지정하는 인덱스 및 해당 어드레스에 기입되어야 할 상기 파라미터의 데이터로 이루어지는 세트를 단위로 하여 구성되는 악음 생성 장치.
  10. 제 9 항에 있어서, 상기 음원 하드웨어 제어 데이터의 상기 단위들 각각은, 시간 관리 정보와, 상기 인덱스와, 및 상기 파라미터의 데이터로 구성되는 악음 생성 장치.
  11. 제 10 항에 있어서, 상기 시간 관리 정보는, 직후의 데이터가, 상기 시간 관리 정보의 상기 값의 데이터인지의 여부를 나타내는 시간 관리 정보 식별 어드레스를 갖는 악음 생성 장치.
  12. 악음을 생성하는 악음 생성 장치와,
    휴대 단말 기능 처리를 행하는 처리장치를 구비하고,
    상기 악음 생성 장치는,
    시간 관리 정보와 이벤트 데이터를 포함하는 음악 컨텐츠 데이터에 기초하여, 음원 하드웨어 제어 데이터를 생성하는 소프트웨어 처리 수단과,
    상기 소프트웨어 처리 수단으로부터 공급되는 소정량의 상기 음원 하드웨어 제어 데이터를 기억가능한 버퍼 메모리부, 및 상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하는 음원부를 내장한 음원 하드웨어 수단을 구비하고,
    상기 소프트웨어 처리 수단은 상기 음악 컨텐츠 데이터에 포함되는, 적어도 상기 이벤트 데이터를 상기 음원 하드웨어 수단에 고유한 포맷의 변환 데이터로 변환하고, 상기 음원 하드웨어 제어 데이터를 상기 변환 데이터와 상기 시간 관리 정보를 포함하는 데이터로서 생성하며,
    상기 음원 하드웨어 수단은, 상기 음악 컨텐츠 데이터의 재생시에, 상기 버퍼 메모리부에, 아직 독출되고 있지 않은 음원 하드웨어 제어 데이터가 항상 존재하도록, 상기 소프트웨어 처리 수단에 대해 음원 하드웨어 제어 데이터의 전송을 요구함과 동시에, 상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 상기 음원부에 의하여 악음 생성하기 위한 파라미터를 추출하고, 상기 시간 관리 정보에 의거하는 타이밍에 도달할 때 마다, 상기 파라미터에 기초하여 악음을 생성하며,
    상기 소프트웨어 처리 수단은 상기 처리 장치의 기능의 일부로서 실현되는 것을 특징으로 하는 휴대 단말 장치.
  13. 제 12 항에 있어서, 상기 악음 생성 장치가, 임의의 연주 개시 위치의 데이터를 기억하는 포인트 레지스터 수단을 구비하고, 상기 음원 하드웨어 수단은, 그 포인트 레지스터 수단에 기억되어 있는 연주 개시 위치의 데이터에 대응하는 위치로부터의 음원 하드웨어 제어 데이터에 기초하여 악음을 생성하는 것을 특징으로 하는 휴대 단말 장치.
  14. 소정량의 음원 하드웨어 제어 데이터를 기억가능한 버퍼 메모리부를 적어도 갖는 음원 하드웨어 수단을 사용하여 악음을 생성하는 악음 생성 방법으로서,
    시간 관리 정보와 이벤트 데이터를 포함하는 음악 컨텐츠 데이터에 기초하여, 상기 음악 컨텐츠 데이터에 포함되는, 적어도 상기 이벤트 데이터를 상기 음원 하드웨어 수단에 고유한 포맷의 변환 데이터로 변환하고, 상기 변환 데이터와 시간 관리 정보를 포함하는 음원 하드웨어 제어 데이터를 생성하는 단계;
    상기 음악 컨텐츠 데이터의 재생시에, 상기 버퍼 메모리부에 아직 독출되고 있지 않은 음원 하드웨어 제어 데이터가 항상 존재하도록, 음원 하드웨어 제어 데이터의 전송을 요구하는 단계;
    상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 악음 생성하기 위한 파라미터를 추출하는 단계; 및
    상기 시간 관리 정보에 기초하는 타이밍에 도달할 때마다, 상기 파라미터에 기초하여 악음을 생성하는 단계를 포함하는, 악음 생성 방법.
  15. 소정량의 음원 하드웨어 제어 데이터를 기억가능한 버퍼 메모리부를 적어도 갖는 음원 하드웨어 수단을 사용하여 실행되고, 음악 컨텐츠에 기초하여 악음을 생성하는 악음 생성 방법을 컴퓨터에게 실행시키기 위한 프로그램을 격납한 기억 매체로서, 상기 악음 생성 방법은,
    시간 관리 정보와 이벤트 데이터를 포함하는 음악 컨텐츠 데이터에 기초하여, 상기 음악 컨텐츠 데이터에 포함되는, 적어도 상기 이벤트 데이터를 상기 음원 하드웨어 수단에 고유한 포맷의 변환 데이터로 변환하고, 상기 변환 데이터와 시간 관리 정보를 포함하는 음원 하드웨어 제어 데이터를 생성하는 단계;
    상기 음악 컨텐츠 데이터의 재생시에, 상기 버퍼 메모리부에 아직 독출되고 있지 않은 음원 하드웨어 제어 데이터가 항상 존재하도록, 음원 하드웨어 제어 데이터의 전송을 요구하는 단계;
    상기 버퍼 메모리부로부터 독출된 상기 음원 하드웨어 제어 데이터에 기초하여, 상기 변환 데이터로부터 악음 생성하기 위한 파라미터를 추출하는 단계; 및
    상기 시간 관리 정보에 기초하는 타이밍에 도달할 때마다, 상기 파라미터에 기초하여 악음을 생성하는 단계를 포함하는, 기억 매체.
KR10-2003-7002365A 2000-08-18 2001-08-17 악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및기억 매체 KR100521575B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00248469 2000-08-18
JP2000248469 2000-08-18
JP2001158994A JP3675362B2 (ja) 2000-08-18 2001-05-28 楽音生成装置および携帯端末装置
JPJP-P-2001-00158994 2001-05-28
PCT/JP2001/007092 WO2002017294A1 (fr) 2000-08-18 2001-08-17 Generateur de son musical, terminal portatif, procede de generation de son musical et support d'enregistrement

Publications (2)

Publication Number Publication Date
KR20030020991A KR20030020991A (ko) 2003-03-10
KR100521575B1 true KR100521575B1 (ko) 2005-10-17

Family

ID=26598088

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-7002365A KR100521575B1 (ko) 2000-08-18 2001-08-17 악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및기억 매체

Country Status (9)

Country Link
US (1) US7247784B2 (ko)
EP (1) EP1318501A4 (ko)
JP (1) JP3675362B2 (ko)
KR (1) KR100521575B1 (ko)
CN (1) CN1254785C (ko)
AU (1) AU2001278767A1 (ko)
HK (1) HK1056037A1 (ko)
TW (1) TW588326B (ko)
WO (1) WO2002017294A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3642039B2 (ja) * 2001-05-25 2005-04-27 ヤマハ株式会社 楽音再生装置および携帯端末装置
US7223911B2 (en) * 2001-10-29 2007-05-29 Yamaha Corporation Portable telephone set with reproducing and composing capability of music
JP4039158B2 (ja) * 2002-07-22 2008-01-30 ソニー株式会社 情報処理装置および方法、情報処理システム、記録媒体、並びにプログラム
TWI278829B (en) 2003-10-28 2007-04-11 Yamaha Corp Tone generator device and portable phone using the same, and method for driving light emitting elements
KR100694395B1 (ko) 2004-03-02 2007-03-12 엘지전자 주식회사 웨이브 테이블 기반의 미디 합성 방법
US7179979B2 (en) * 2004-06-02 2007-02-20 Alan Steven Howarth Frequency spectrum conversion to natural harmonic frequencies process
US20060293089A1 (en) * 2005-06-22 2006-12-28 Magix Ag System and method for automatic creation of digitally enhanced ringtones for cellphones
ATE489805T1 (de) * 2005-10-14 2010-12-15 Research In Motion Ltd Audioverwaltung in einer dualprozessorumgebung
US7725125B2 (en) 2005-10-14 2010-05-25 Research In Motion Limited Audio management in a dual processor environment
JP2007163845A (ja) * 2005-12-14 2007-06-28 Oki Electric Ind Co Ltd 音源システム
JP4259533B2 (ja) * 2006-03-16 2009-04-30 ヤマハ株式会社 演奏システム、このシステムに用いるコントローラ、およびプログラム
US20080082624A1 (en) * 2006-09-28 2008-04-03 Phison Electronics Corp. Portable storage device with audio auto-playback function and operation procedure thereof
US20090016306A1 (en) * 2007-07-12 2009-01-15 Qi Wang METHOD AND SYSTEM FOR AN EFFICIENT TIM ELEMENT SUPPORTING MULTIPLE BSSes IN A WIRELESS LAN
JP6070735B2 (ja) * 2015-02-04 2017-02-01 ヤマハ株式会社 鍵盤楽器
JP6904141B2 (ja) * 2017-07-28 2021-07-14 カシオ計算機株式会社 楽音発生装置、方法、プログラム、及び電子楽器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5094136A (en) * 1989-01-06 1992-03-10 Yamaha Corporation Electronic musical instrument having plural different tone generators employing different tone generation techniques
JPH0748793B2 (ja) 1989-05-31 1995-05-24 株式会社リコー 画像読取装置の位置調整機構
JP2734323B2 (ja) 1992-11-30 1998-03-30 ヤマハ株式会社 電子楽器の音源装置
JP3003559B2 (ja) * 1995-05-19 2000-01-31 ヤマハ株式会社 楽音生成方法
DE69619587T2 (de) * 1995-05-19 2002-10-31 Yamaha Corp Verfahren und Vorrichtung zur Tonerzeugung
JP3267106B2 (ja) * 1995-07-05 2002-03-18 ヤマハ株式会社 楽音波形生成方法
US5847304A (en) * 1995-08-17 1998-12-08 Advanced Micro Devices, Inc. PC audio system with frequency compensated wavetable data
GB2306043A (en) * 1995-10-03 1997-04-23 Ibm Audio synthesizer
JP2970511B2 (ja) * 1995-12-28 1999-11-02 ヤマハ株式会社 電子楽器の制御回路
JP2914265B2 (ja) * 1996-01-17 1999-06-28 ヤマハ株式会社 音源装置
JP3293474B2 (ja) * 1996-06-06 2002-06-17 ヤマハ株式会社 楽音発生方法
JP3508494B2 (ja) 1996-08-29 2004-03-22 ヤマハ株式会社 自動演奏データ変換システム及びプログラムを記録した媒体
US6034314A (en) * 1996-08-29 2000-03-07 Yamaha Corporation Automatic performance data conversion system
JP3799711B2 (ja) * 1997-01-27 2006-07-19 ヤマハ株式会社 楽音発生方法および楽音発生装置
JP3152196B2 (ja) * 1998-01-07 2001-04-03 ヤマハ株式会社 楽音発生回路
JP3409686B2 (ja) * 1998-03-17 2003-05-26 ヤマハ株式会社 複数音源ドライバの制御方法、および、複数音源ドライバの制御用プログラムが記録された記録媒体、ならびに、複数生成プログラムの制御方法
JP2000029462A (ja) * 1998-05-18 2000-01-28 Sony Corp 情報処理装置および情報処理方法、並びに提供媒体
JP2000092042A (ja) 1998-09-07 2000-03-31 Victor Co Of Japan Ltd 楽曲データ提供システム及び楽曲データ復号装置
JP2000224269A (ja) 1999-01-28 2000-08-11 Feisu:Kk 電話機および電話システム
TW495735B (en) * 1999-07-28 2002-07-21 Yamaha Corp Audio controller and the portable terminal and system using the same

Also Published As

Publication number Publication date
EP1318501A1 (en) 2003-06-11
TW588326B (en) 2004-05-21
HK1056037A1 (en) 2004-01-30
CN1447962A (zh) 2003-10-08
US7247784B2 (en) 2007-07-24
AU2001278767A1 (en) 2002-03-04
KR20030020991A (ko) 2003-03-10
US20040069124A1 (en) 2004-04-15
JP3675362B2 (ja) 2005-07-27
JP2002132263A (ja) 2002-05-09
WO2002017294A1 (fr) 2002-02-28
CN1254785C (zh) 2006-05-03
EP1318501A4 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
KR100521575B1 (ko) 악음 생성 장치, 이동 단말 장치, 악음 생성 방법, 및기억 매체
KR100582154B1 (ko) 시퀀스 데이터의 데이터 교환 포맷, 음성 재생 장치 및서버 장치
TWI243355B (en) Waveform production method and apparatus
WO2001065534A1 (fr) Terminal telephonique
JPH05341793A (ja) カラオケ演奏装置
JP2001236066A (ja) 作曲機能を備えた携帯電話機
US6525256B2 (en) Method of compressing a midi file
KR100591378B1 (ko) 악음 재생 장치와 방법, 및 휴대 단말 장치
KR100521548B1 (ko) 악곡 재생 장치
JP3722015B2 (ja) 楽音生成装置
KR100619826B1 (ko) 이동 통신 단말기의 음악 및 음성 합성 장치와 방법
JP3985817B2 (ja) 楽音生成装置および携帯端末装置
JP2002351467A (ja) 電話端末装置
KR100633804B1 (ko) 악음 재생 장치와 그 제어방법 및 휴대 단말 장치
JP2002108375A (ja) カラオケ曲データ変換装置及びカラオケ曲データ変換方法
JP2002091436A (ja) 演奏情報記録装置、演奏情報圧縮装置及び電話端末装置
CN1057354A (zh) 音乐再现及歌词显示装置
JP2006053389A (ja) 音声合成プログラム及び方法
JP2004240333A (ja) 音声生成方法及び音声生成プログラム
JP2009145382A (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: 20120903

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140923

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee