KR100319481B1 - 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치 - Google Patents

악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치 Download PDF

Info

Publication number
KR100319481B1
KR100319481B1 KR1019960022426A KR19960022426A KR100319481B1 KR 100319481 B1 KR100319481 B1 KR 100319481B1 KR 1019960022426 A KR1019960022426 A KR 1019960022426A KR 19960022426 A KR19960022426 A KR 19960022426A KR 100319481 B1 KR100319481 B1 KR 100319481B1
Authority
KR
South Korea
Prior art keywords
waveform
sound
data
sample
generating
Prior art date
Application number
KR1019960022426A
Other languages
English (en)
Other versions
KR970002843A (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 JP7173941A external-priority patent/JP3000894B2/ja
Priority claimed from JP7173940A external-priority patent/JP2940440B2/ja
Application filed by 우에시마 세이스케, 야마하 가부시키가이샤 filed Critical 우에시마 세이스케
Publication of KR970002843A publication Critical patent/KR970002843A/ko
Application granted granted Critical
Publication of KR100319481B1 publication Critical patent/KR100319481B1/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
    • G10H5/00Instruments in which the tones are generated by means of electronic generators
    • 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/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • 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
    • 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
    • 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/621Waveform interpolation
    • 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/635Waveform resolution or sound quality selection, e.g. selection of high or low sampling rates, lossless, lossy or lossier compression algorithms

Landscapes

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

Abstract

본 발명은 발생하고자 하는 음의 특징, 예를 들면 고주파성분구성에 따라 단위시간당 파형샘플수 즉 파형샘플분해능을 가변설정한다. 높은 고주파성분을 보다많이 포함하는 음 또는 음의 부분적 구간(예를 들면 어태크부)에 대해서는 단위시간당 파형샘플수를 많게 한다. 반대로, 그만큼 고차의 고주파성분을 포함하지 않는 음 또는 음의 부분적 구간(예를 들면 지속부)에 대해서는 단위시간당 파형샘플수를 적게 한다. 이와 같이, 파형샘플 분해능을 가변설정함으로써 파형샘플데이터의 생성연산처리를 낭비없이 효율적으로 할 수 있다. 다수의 발음채널을 가질 경우, 각 채널마다 독립적으로 파형생플분해능을 가변설정해도 된다. 또, 파형메모리에 파형샘플데이터를 기억할 경우, 파형구간마다 파형샘플 분해능을 가변설정한 상태에서 기억하도록 하면 데이터를 압축하여 악음을 발생할 수 있다.

Description

악음발생방법, 파형데이터 압축방법, 이러한 방법을 실행하기 위한 제어명령어를 포함하는 기계판독 가능한 기록매체 및 사운드 장치{Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions}
본 발명은 연산처리장치의 파형연산에 의해 악음파형샘플을 생성하는(forming) 악음발생방법에 관한 것이다.
또한, 본 발명은 파형메모리 음원방식(waveform-memory-based)의 음원(tone generator)을 구비한 전자악기 또는 그 밖의 악음재생장치에 있어서 메모리에 기억하는 파형데이터 압축방법에 관한 것이다.
종래의 연산처리장치를 이용하여 악음파형샘플을 파형생성연산에 의해 생성하도록 한 다수채널 동시발음 가능한 음원에서는, 각 발음채널(tone generatingchannels)에서의 단위시간당 연산생성하는 파형샘플(waveform sample)의 수(이하, 「연산사이클」이라 한다)는 각 음원마다 일정하게 되어 있다. 이 「연산사이클」은 환언하면 「샘플파형분해능(waveform sample resolution)이다.
또, 1발음 중에서도 악음파형샘플을 연산하는 상기 파형연산사이클은 고정화되어 있어서 1발음 도중에 상기 파형연산사이클을 변화시키지는 않는다.
여기서, 정의된 「연산사이클」은 본 발명에 특징적인 사고방식의 척도이다. 연산사이클, 즉 단위시간당 연산생성되는 샘플수가 다르면 당연히 생성된 악음이 함유할 수 있는 주파수대역의 상한주파수도 달라진다.
연산사이클을 1초당 생성하는 샘플수(등가샘플링주파수)로 환산하면 샘플링 정리에 의해 상기 상한은 대체로 1/2의 주파수가 된다. 예를 들면 단위시간 1/375초마다 128샘플의 연산생성을 행할 경우, 등가 샘플링주파수는 128×375=48(kHz)이되며, 생성하는 작음은 상한이 되는 약 24(kHz)까지의 주파수성분을 가질 수 있다.
일반적으로 샘플링주파수는 디지털악음의 품질을 결정하는 요소이므로, 연산 사이클에 따라 악음의 음질(quality)이 좌우된다.
한편, 이 연산사이클은 악음생성연산의 단위시간당 연산량에도 직접적으로 반영된다. 1샘플분의 악음생성으로 행해지는 연산은 샘플마다 그렇게 바뀌지 않으므로, 단위시간에 연산생성하는 샘플수에 거의 비례하여 필요한 연산량도 증대한다. 즉, 상기 악음의 음질을 개선하고자 연산사이클을 높이면 상기 필요한 연산량이 증가되어 버려서 회로규모가 커진다. 경우에 따라서는 연산이 불가능해져서 서로 양립하지 않는 관계에 있으며 어떻게 밸런스를 맞추느냐가 음원을 설계할 때의포인트가 된다.
그러나, 각 발음채널에서 생성되는 악음파형의 주파수대역은 각 악음의 음색 등에 따라 일반적으로 다른 경우가 많으며, 상기한 종래의 음윈과 같이 각 발음채널에서의 파형연산사이클을 일정하게 하면, 광대역이 필요하지 않은 악음파형을 발생하는 채널에 대해서는 불필요한 주파수대역까지의 쓸데없는 연산을 하게 된다는 문제점이 있었다. 또한, 파형연산사이클을 광대역이 필요하지 않은 악음파형에 맞춰 설정한 경우에는 광대역의 필요한 악음파형샘플의 생성을 할 수 없다는 문제점이 있었다.
또, 감쇠음계의 1발음 중 악음파형은 그 어태크부(attack portion)에서는 고주파가 많이 포함되어 광대역이 되지만, 감쇠가 진행된 지속부(sustain portion)에서는 고주파가 적어서 그다지 광대역이 되지 않는다. 이 경우에 종래와 같이 1발음중에서 악음파형샘플을 연산하는 파형연산사이클을 고정화하면 1발음 중의 광대역이 필요하지 않은 부분에서는 불필요한 주파수대역까지의 쓸데없는 연산을 하게 된다는 문제점이 있었다. 또, 파형연산사이클을 광대역이 필요하지 않은 부분에 맞춰서 설정했을 경우에는 광대역의 필요한 부분의 생성을 할 수 없다는 문제점이 있었다.
한편, 일반적으로 파형메모리 음원방식에 있어서의 파형메모리에는 다수의 악음파형이 기록되어 있기 때문에 고음질의 악음을 발음시키도록 했을 경우에는 기록해야 할 악음파형수가 많아지며, 그 때문에 대량의 파형메모리용량을 필요로 하였다.
그래서, 파형메모리의 용량을 삭감하는 방법이 종래부터 제안되어 있다. 그 예를 설명하면 악음파형에 포함된 주파수성분은 악음파형이 다르면 주파수성분도 통상 다른 경우가 많다. 이 성질을 이용하여 악음파형에 포함되는 주파수정분이 낮을 때에는 기록시에 악음파형을 낮은 샘플링주파수에 의해 샘플링하여 샘플링 데이터수를 적게 함으로써 파형메모리의 용량을 삭감하는 방법이 있다.
이 방법에서는 기록시에 악음파형마다 샘플링주파수가 다른 경우가 있으며, 일정한 판독타이밍마다 발음해야 할 노트·넘버(note number)에만 대응하여 결정되는 주파수넘버(재생악음의 피치(pitch)를 정의하는 수치이며, 이하 "F넘버"라 약칭한다)에서 파형메모리로부터 악음파형을 판독하면 샘플링주파수와 판독타이밍의 관계가 악음파형마다 일정해지지 않기 때문에 소망하는 피치의 악음을 얻을 수 없게된다. 즉, 파형메모리로부터 판독되는 악음파형의 피치 조정을 위한 연구를 할 필요가 있다.
한편, 파형메모리 음원방식에 있어서는 F넘버로서 세심하게 재생주파수를 제어할 수 있으므로, 기록시의 샘플링주파수에 따라 F넘버를 제어하면 기록시의 샘플링주파수 차이를 보정하여 소망하는 피치로 악음파형을 판독할 수 있다.
이렇게 해서 종래에는 파형메모리의 용량 저감을 실현하도록 하였다.
그러나, 감쇠음계의 악음파형 1발음의 악음파형 어태크부에서는 기본파의 고주파성분 등 높은 주파수성분이 포함되어 있으나, 지속부에서는 고주파의 감쇠가 빠르게 진행되고 있어, 남은 성분은 거의 기본파성분이 되기때문에 어태크부에 비해 포함되는 주파수성분은 낮아진다.
또, 발음개시부터 차례로 밝기를 증가시키는 음색일 경우에는 발음개시시에 주파수성분은 그다지 높지 않지만, 차례로 악음파형에 포함되는 주파수성분은 높아지게 된다.
종래에는 이와 같은 악음이어도 1발음의 악음파형을 기록할 경우의 샘플링주파수는 악음파형 중 가장 높은 주파수 성분로 반사 노이즈를 발생하지 않고 샘플링 할 수 있는 샘플링주파수에 고정되어 있기 때문에(다른 악음파형에서는 변경해도 된다), 불필요한 주파수대역까지 파형메모리에 기록되게 되어 파형메모리의 사용효율이 저하된다는 문제점이 있었다.
그래서, 본 발명은 연산처리장치의 파형연산에 의해 악음파형샘플을 생성하는 악음발생방법에서, 쓸데없는 연산이 발생하지 않음과 동시에, 광대역의 악음파형샘플을 효율적으로 생성할 수 있도록 하는 것을 제1목적으로 한다.
그리고, 본 발명은 파형메모리 음원방식의 전자악기 또는 그 밖의 악음재생 장치에서, 파형메모리에 기록하는 파형데이터의 파형데이터 압축방법을 제공하는 것을 제2목적으로 한다.
제1도는 본 발명의 악음발생방법을 실행하는 악음생성장치의 구성을 도시한 블록도이다.
제2도는 제1도의 RAMM에 있어서의 음색데이터 및 파형데이터영역을 도시한 도면이다.
제3도는 제1도의 RAM에 있어서의 입력버퍼영역을 도시한 도면이다.
제4도는 제1도의 RAM에 있어서의 음원레지스터영역을 도시한 도면이다.
제5도는 제1도의 RAM에 있어서의 출력버퍼영역 및 그 동작을 설명하기 위한 도면이다.
제6도는 1발음 중의 파형데이터의 예를 도시한 도면이다.
제7도는 1발음 중의 파형데이터 스펙트럼분포를 도시한 도면이다.
제8도는 1발음 중에서의 오리지널피치의 시간변화를 도시한 OPEG파형의 일예를 도시한 도면이다.
제9도는 본 발명의 악음발생방법의 1발음 중 연산사이클의 변화예를 도시한도면이다.
제10도는 본 발명에 따른 악음발생방법의 1발음 중에서의 재생용 주파수 넘버(reproducing frequency number)의 변화예를 도시한 도면이다.
제11도는 본 발명에 따른 악음발생방법의 음원처리 타이밍챠트를 도시한 도면이다.
제12도는 본 발명에 따른 악음발생방법의 메인루틴의 플로챠트를 도시한 도면이다.
제13도는 본 발명에 따른 악음발생방법의 MIDI수신인터럽트처리의 플로챠트를 도시한 도면이다.
제14도는 본 발명에 따른 악음발생방법 파트1의 음색선택 이벤트처리의 플로챠트를 도시한 도면이다.
제15도는 본 발명에 따른 악음발생방법의 수신데이터처리에서의 노트온 · 이벤트처리(note-on event process) 및 노트오프·이벤트처리(note-on event process)의 플로챠트를 도시한 도면이다.
제16도는 본 발명에 따른 악음발생방법의 메인루틴(main routine)에서 음원처리의 플로챠트를 도시한 도면이다.
제17도는 본 발명에 따른 악음발생방법의 음원처리에서 채널제어처리의 플로챠트를 도시한 도면이다.
제18도는 본 발명에 따른 악음발생방법의 음원처리에 있어서 파형연산치리의 플로챠트를 도시한 도면이다.
제19도는 본 발명에 따른 파형데이터 압축방법에 있어서 1발음 중에서의 녹음시 샘플링주파수(Fs)의 변화양태예를 도시한 도면이다.
제20도는 본 발명에 따른 파형데이터 압축방법에서의 OP변화의 예를 도시한도면이다.
제21도는 본 발명에 따른 파형데이터 압축방법에서의 1발음 중에서의 녹음시샘플링주파수(Fs)의 변화양태예를 도시한 도면이다.
제22도는 본 발명의 파형데이터 압축방법에 의해 파형메모리에 파형샘플 데이터를 기록하는 파형준비를 행하는 구성을 도시한 블록도이다.
제23도는 본 발명의 파형데이터 압축방법에 의해 파형샘플 데이터가 기록된 파형메모리를 구비한 전자악기의 전체도이다.
제24도는 본 발명의 파형데이터 압축방법에서 1발음 중의 녹음시 샘플링주파수(Fs)의 변화 양태의 또 다른 예를 도시한 도면이다.
제25도는 제24도에 도시한 본 발명의 파형데이터 압축방법에서의 오리지널피치의 변화를 도시한 도면이다.
*도면의 주요부분에 대한 부호의 설명*
1:CPU 2:ROM
3:RAM 4:타이머
5:MIDI 인터페이스 6:키보드
7:디스플레이 8:하드디스크
9:재생부 10:DAC
15:통신인터페이스 16:통신네트워크
17:서버컴퓨터 19:악음생성장치
31:키보드 32:검출회로
33:피치EG 34:가산기
35:감산기 36:FN발생기
37:OP발생수단 38:어드레스 발생기
39:파형메모리 (waveform memory) 40:보간회로(interpolation circuit)
41:승산기 42:음량EG(tons volume EG)
43:D/A변환기 44:사운드 시스템
45:음색SW(tone color sw) 46:검출회로
상기 제1의 목적을 달성하기 위해, 본 발명의 악음발생방법은 연산처리장치의 파형연산에 의해 악음파형샘플을 생성하는 악음발생방법에서, 상기 파형연산의 파형연산사이클이 생성하는 상기 악음파형샘플의 각 발음채널 파형의 성질 및 각 발음채널의 중요도에 따라 각 발음채널마다 결정되도록 한 것이다.
또, 본 발명의 또 다른 악음발생방법은, 연산처리장치의 파형연산에 의해 악음파형샘플을 생성하는 악음발생방법에서, 1발음중 악음파형샘플에서 시간경과와 함께 변화하는 고주파함유비율에 따라 1발음 중 도중에 상기 파형연산의 파형연산 사이클을 변경하도록 한 것이다.
또, 본 발명의 또 다른 악음발생방법은, 다수의 발음채널에 대해 악음생성연산을 행하고, 상기 다수의 발음채널에 대응하는 다수의 악음 파형데이터를 생성하는 악음발생방법에서, 상기 다수의 발음채널에서 생성되는 악음의 특성을 각 발음 채널마다 지시하는 제1제어데이터를 발생하는 악음제어단계와, 단위시간당 생성하는 악음의 샘플수를 각 발음채널마다 지시하는 제2제어데이터를 발생하는 연산제어 단계와, 상기 다수의 발음채널에 대해 각 발음채널에 대응하는 악음의 파형데이터를 상기 제1제어데이터가 지시하는 악음특성에 따라, 또한 상기 제2제어데이터가 지시하는 샘플생성속도로 각각 연산생성하는 악음생성단계와, 상기 악음생성단계에서 생성된 다수채널분의 파형데이터에 의거해서 음을 발생하는 단계으로 이루어진것을 특징으로 한다.
또한, 본 발명은 악음발생방법에서, 상기 연산제어단계는 각 발음채널에서 생성하는 파형데이터의 악음특성에 대응시켜서 상기 제2제어데이터를 발생하도록 한 것이고, 또 상기 연산단계는 각 발음채널에서 발생하는 파형데이터의 악음특성의 시간변화에 대응시켜서 발생하는 상기 제2제어데이터를 변화시키도록 한 것이고, 또 상기 제1제어데이터에는 각 발음채널에서 생성하는 악음의 피치를 지정하는 피치정보가 포함되어 있으며, 상기 악음생성단계에서는 상기 제2제어데이터가 지시하는 샘플생성속도에 따라 각 발음채널의 상기 피치정보를 생성하는 악음의 위상변화속도로 변환하도륵 한 것을 제공한다.
또, 본 발명에서 제공하는 다른 악음발생방법은 적어도 2개의 악음을 동시에 생성하는 악음발생방법에 있어서, 높은 주파수성분을 많이 포함하는 제1악음파형의샘플을 단위시간당 N샘플의 생성속도로 생성하는 제1생성단계와, 높은 주파수성분이 적은 제2악음파형의 샘플을 단위시간당 M(단, M < N)샘플의 생성속도로 생성하는 제2생성단계와, 상기 M샘플의 제2악음파형을 보간처리하고, N샘플의 제2악음파 형으로 제공하는 단계와, 상기 N샘플의 제1악음파형과 상기 N샘플의 제2악음파형을 각 샘플마다 차례로 가산하여 N샘플의 혼합악음파형을 얻는 혼합단계와, 상기 혼합단계에서 얻어진 혼합악음파형에 의거해서 음을 발생하는 단계으로 이루어진 것을 특징으로 한다.
또한, 본 발명의 악음발생방법은 다수의 발음채널에 대해 악음생성연산을 하고, 상기 다수의 발음채널에 대응하는 다수 악음의 파형데이터를 생성하는 악음발생방법에 있어서, 상기 다수의 발음채널을 제1그룹과 제2그룹으로 그룹을 나누는 분할단계와, 제1그룹의 각 발음채널에 대해 단위시간마다 N샘플분의 악음파형을 생성하여 다수 채널사이에 차례로 가산해서 N샘플분의 제1혼합파형을 출력하는 제1생성단계와, 제2그룹의 각 발음채널에 대해 단위시간마다 M(M <N) 샘플분의 악음파형을 생성하여 다수 채널사이에 차례로 가산해서 M샘플분의 제2혼합파형을 출력하는 제2생성단계와, 상기 M샘플의 제2혼합파형을 보간처리하여 N샘플의 제2혼합파형으로 제공하는 단계와, 상기 N샘플의 제1혼합파형과 상기 N샘플의 제2혼합파형을 각샘플마다 차례로 가산하여 N샘플의 혼합악음파형을 얻는 혼합단계와, 상기 혼합단계에서 얻어진 혼합악음파형에 의거해서 음을 발생하는 단계으로 이루어진 것을 특징으로 한다.
본 발명에 의하면 각 발음채널마다 발음되는 악음파형이 광대역화되는지의 여부 혹은 중요도에 따라 파형연산 사이클을 결정할 수 있으므로, 악음파형의 광대역 혹은 협대역에 관계없이 쓸데없는 파형연산을 일으키지 않고, 악음파형샘플을 생성할 수 있다.
또, 감쇠음계의 경우 1발음 중의 어태크부에서는 파형연산사이클을 크게 하여 많은 파형샘플을 적게 생성하고, 지속부에 있어서는 파형연산 사이클을 적게 하여 파형샘플을 생성하고 있으므로, 쓸데없는 파형연산이 발생하지 않음과 동시에, 효율적으로 파형샘플을 생성할 수 있다.
이와 같이, 특정한 발음채널에 있어서의 파형연산을 절약할 수 있기 때문에, 기타 채널의 악음파형 파형연산량을 증가시킬 수 있어서 그 채널의 악음의 음질을 개선하거나, 발음채널수를 증가시킬 수 있다.
또, 각 발음채널마다 독립적으로 단위시간당 생성악음샘플수를 제어할 수 있으므로, 발음채널사이에서 생성악음의 음질차이를 내도록 했다. 또, 음질이 낮아도 영향이 적은 발음채널의 연산량을 삭감할 수 있다.
또, 상기 제2목적을 위해 본 발명의 파형데이터 압축방법은 소정기간 동안 계속되는 파형을 입력하는 입력단계와, 상기 소정기간 도중에 녹음샘플링주파수를 변화시키는 제어단계와, 상기 파형을 상기 녹음샘플링주파수로 샘플링하여 파형데이터를 얻는 샘플링단계와, 상기 샘플링단계에서 얻어진 파형데이터를 차례로 메모리에 기입하는 기입단계으로 이루어진 것이다.
또, 상기 전자악기의 파형데이터 압축방법에 있어서, 상기 녹음샘플링주파수는 상기 소정기간 도중의 소정 타이밍에서 계단형상으로 변화하도록 하거나 혹은 상기 녹음샘플링주파수는 상기 소정기간중 소정타이밍에서 서서히 변화하도록 한것이다.
또한, 본 발명의 또 다른 전자악기의 파형데이터 압축방법은 소정기간동안 계속된 파형을 입력하는 입력단계와, 상기 소정기간 도중에 녹음샘플링주파수를 변화시키는 제어단계와, 상기 파형을 상기 녹음샘플링주파수로 샘플링하여 파형데이터를 얻는 샘플링단계와, 상기 샘플링단계에서 억어진 파형데이터를 차례로 파형메모리에 기록하는 기록단계와, 재생속도를 지시하는 속도지시단계와, 상기 제어단계에 의한 녹음샘플링주파수의 변화에 의해 상기 파형메모리에 기억된 파형데이터에 발생하는 피치변동분에 대응하는 변화데이터를 발생하는 발생단계와, 상기 속도지시단계에서 지시된 재생속도를 상기 변화데이터에 의해 보정하는 보정단계와, 상기 보정단계에서 보정된 재생속도에 따른 속도로 상기 파형메모리를 판독하여 파형을 재생하는 재생단계으로 이루어진다.
또, 상기 변화데이터는 상기 파형데이터를 일정한 속도로 판독했을 경우, 상기 파형데이터가 나타낸 대수영역(logarithmic region)에서 주파수를 도시한 데이터가 되며, 상기 보정단계는 상기 재생속도와 상기 변화데이터의 가감산을 수행하도록 한 것이다.
본 발명에 의하면 녹음하는 파형데이터의 1발음중에서 파형데이터에 포함된 주파수성분이 높은 어태크부 등에서는 샘플링주파수를 높이고, 파형데이터에 포함된 주파수성분이 너무 높지 않은 지속부 등에서는 샘플링주파수를 낮추었으므로, 파형메모리에 기록하는 파형샘플데이터수를 저감하여 압축할 수 있다.
따라서, 파형메모리의 기록용량을 삭감할 수 있음과 동시에, 그 사용효율을 향상시킬 수 있다.
본 발명의 악음발생방법을 실행하기 위해 사용되는 악음생성장치(19)의 일구성예를 도시한 블록도를 제1도에 도시했다.
이 도면에 있어서, 1은 어프리케이션 프로그램 등을 실행하여 악음파형샘플의 생성 등 각종 제어를 행하는 연산처리장치유닛(CPU), 2는 CPU의 동작프로그램이나 프리세트 음색데이터 등이 기억되어 있는 리드·온리·메모리(ROM), 3은 CPU(1)의 워크메모리영역이나 음색데이터영역 등의 기억영역을 가진 랜덤·액세스·메모리(RAM), 4는 시각을 지시함과 동시에, 타이머 인터럽트처리의 타이밍을 CPU(1)에 지시하는 타이머, 5는 MIDI이벤트가 입력됨과 동시에, 생성된 MIDI이벤트를 출력하는 MIDl인터페이스, 6은 영문, 가나, 숫자, 기호 등을 구비한 소위 퍼스널·컴퓨터용 키보드이다. 또, MIDI는 주지한 바와 같이 Musical Instrument Digital Interface의 약자이다.
7은 사용자가 악음생성장치와 대화하기 위한 디스플레이(모니터), 8은 악음을 생성하는 프로그램 등의 어프리케이션 프로그램이 미리 인스톨되어 있음과 동시에, 악음파형샘플을 생성하기 위해 사용하는 악음파형데이터 등이 기록되어 있는하드디스크(HDD), 9는 CPU(1)에 의해 지정된 RAM(3) 일부영역에 기억되어 있는 악음파형샘플의 데이터를 CPU(1)를 통하지 않고 직접적으로 주고받아 일정한 재생주기(재생샘플링주파수)마다 1샘플링씩 판독하여 디지털·아날로그변환기(DAC)에 공급하는 재생부(DMA:Direct Memory Access), 10은 악음파형샘플의 데이터를 받아들여 아날로그신호로 변환하는 디지털·아날로그변환기(DAC), 11은 DAC(10)로부터 출력된 아날로그신호로 변환된 악음신호를 방음하는 사운드시스템이다.
또, 하드디스크(8)에는 자동연주데이터나 코드진행데이터 등 각종 데이터를 기억하고 있어도 되며, 또 상기 동작프로그램을 기억하도록 해도 된다. 상기 ROM(2)에 상기 동작프로그램을 기억시키지 않고, 하드디스크(8)에 상기 동작프로그램을 기억시켜 두고, 그것을 RAM(3)에 읽어들임으로써, ROM(2)에 동작프로그램을 기억시켰을 때와 같은 동작을 CPU(1)에 행하게 할 수 있다. 이와 같이 하면 동작프로그램의 추가나 버전업 등을 용이하게 할 수 있다. 착탈 가능한 외부기록매체 중 하나로서 CD-ROM(콤팩트·디스크)(13)을 사용해도 되며, 이 CD-ROM(13)에는 상기와 같이 자동연주데이터나 코드진행데이터나 악음파형데이터 등 각종 데이터 및 임의의 동작프로그램을 기억시켜도 된다 CD-ROM(13)에 기억되어 있는 동작프로그램이나 각종 데이터는 CD-ROM드라이브(14)에 의해 판독되며, 하드디스크(8)에 전송기억시킬 수 있다. 이에 따라 동작프로그램의 신규한 인스톨이나 버전업을 용이하게 할수 있다. 물론, 외부기록매체로 사용할 수 있는 것은 CD-ROM에 한하지 않으며, 플로피디스크, 광자기디스크(MO) 등 적당한 것을 사용할 수 있다.
또, 통신인터페이스(15)를 버스(12)에 접속하고, 상기 통신인터페이스(15)를통해 LAN(로컬영역 네트워크)나 인터네트, 전화회선 등의 통신네트워크(16)에 접속할 수 있도록 하고, 상기 통신네트워크(16)를 통해 적당한 서버컴퓨터(17)와 접속되도록 해도 된다. 이에 따라 하드디스크(8)내에 동작프로그램이나 각종 데이터가 기억되어 있지 않을 경우, 서버컴퓨터(17)로부터 상기 동작프로그램이나 각종 데이터를 받아들여 상기 하드디스크(8)내에 이것들을 다운로드할 수 있다. 이 경우, 클라이언트가 되는 악음생성장치(19)로부터 통신인터페이스(15) 및 통신네트워크(16)를 통해 서버컴퓨터(17)에 동작프로그램이나 각종 데이터의 다운로드를 요구하는 명령을 송신한다. 서버컴퓨터(17)는 이 명령을 받고 요구받은 동작프로그램이나 데이터를 통신네트워크(16)를 통해 악음생성장치(19)에 배송한다. 악음생성장치(19)에서는 통신인터페이스(15)를 통해 이들을 동작프로그램이나 데이터를 수신하여 하드디스크(8)에 이들을 축적함으로써 다운로드가 완료된다.
또, 본 발명의 실시예에 관한 악음생성장치(19)는 시판되는 퍼스널컴퓨터를 사용하고, 이것에 본 발명에 대응하는 동작프로그램이나 각종 데이터를 인스톨함으로써 실현하도록 해도 된다. 그 경우에는 본 발명에 대응하는 동작프로그램이나 각종 데이터를 CD-ROM이나 플로피디스크 등 퍼스널컴퓨터가 판독할 수 있는 기억매체에 기억시킨 상태에서 사용자에게 제공한다. 그 퍼스널컴퓨터가 LAN 등의 통신네트워크에 접속되어 있을 경우에는 상술한 바와 같이 상기 통신네트워크를 통해 동작프로그램이나 각종 데이터를 상기 퍼스널컴퓨터에 제공해도 된다.
다음에, RAM(3)에 설정되는 각정 레지스터 영역의 구성을 제2도 내지 제5도에 도시했다. 제2도는 음색데이터 및 파형데이터가 기억되어 있는 영역의 구성을,제3도는 MIDI인터페이스(5)를 통해 입력된 MIDI메시지가 격납되는 입력버퍼의 구성을, 제4도는 각 발음채널의 악음파형샘플을 생성하는데 필요한 각종 파라미터가 기억되는 음원레지스터의 구성을 나타내고 있다.
제2도에 도시한 영역에는 PD1, PD2, … PD16의 16종류분의 음색데이터와, WD1, WD2 … WDn의 n종류의 파형데이터가 기억되어 있다. 또, 후술하는 OPEG파형이 파형데이터마다 준비되어, 파형데이터(WD1, WD2 … WDn)와 함께 기억되어 있다.
또, 각각의 음색데이터(PD1, PD2 … PL16)는 각 음역의 파형을 지정하는 데이터(각 음역파형지정), 비브라토 등의 효과를 가하기 위한 LFO(Low Frequency Oscillator) 제어용 데이터(LFO제어OD), 음색필터특성을 시간의 경과와 함께 변화시키는 필터·엔벨로프의 발생제어용 데이터(FEG제어OD), 음량변화특성을 제어하는 음량엔벨로프의 발생제어용 데이터(AEG제어OD), 벨로시티에 의해 악음의 상승속도 등을 바꾸는 터치제어용 데이터(터치제어OD), 후술하는 연산사이클제어데이터 등 그밖의 데이터(기타 OD)로 구성되어 있다. 또, OD는 Original Data의 약자로서, 변조 등이 가해지기 전의 오리지널한 각종 데이터를 나타낸다.
또, 제3도에 도시한 입력버퍼의 영역에는 MIDI인터페이스(5)를 통해 입력되는 노트온, 노트오프나 각종 이벤트데이터(ID1, ID2, ID3 … )가 차례로 기입되며, 이 MIDI이벤트데이터(ID1, ID2, ID3 … )가 판독되고 그 이벤트처리가 악음생성장치내에서 실행됨으로써 이벤트에 따른 악음파형샘플이 생성된다.
또, MIDI이벤트데이터(ID1, ID2, ID3 … )는 MIDI이벤트의 데이터내용(데이터1 등)과, 그 이벤트데이터의 발생시각(데이터 1발생시각 등)이 1쌍으로 구성된다. 이 발생시각은 타이머(4)의 현재시각을 받아들임으로써 알 수 있다.
다음의 제4도에 도시한 영역에는 각각의 발음채널에서 생성된 악음파형샘플을 제어하는 각종 악음파라미터가 기억된 각 발음채널마다 준비된 레지스터(1ch, 2ch, 3ch, … 32ch)로 이루어진 음원레지스터로 사용된다. 또, 이 예에서는 발음채널이 32채널이 되었을 경우 음원레지스터가 되고 있다.
각 발음채널의 레지스터(1ch, 2ch, 3ch, … 32ch)에는 그 발음채널에서 발음되는 악음의 노트·넘버, RAM(3)에 기억되어 있는 파형데이터 중 어느 하나를 지정하는 파형지정데이터(파형지정D), LFO제어데이터(LFO제어D), 필터·엔벨로프 제어데이터(FEG제어D), 음량엔벨로프 제어데이터(AEG제어D), 노트온데이터, 그밖의 데이터(기타 D) 및 각 발음채널의 악음샘플 생성시에 사용되는 워크영역으로 구성되어 있다. 또, D는 Data의 약자로서, 발음할당이 끝난 데이터명을 오리지널 데이터(OD)와 구별해서 나타냈다.
또한, 각 발음채널의 파형지정 D, LFO제어D, AEG제어D는 상기한 음색데이터(PD1, PD2, PD3 … PD16)중 어느 하나를 MIDI이벤트의 내용에 따라 가공하여 작성된 데이터가 된다.
다음의 제5도에는 출력버퍼를 도시했으나, 본 발명의 악음발생방법에서는 연산사이클(이 「연산사이클」의 개념에 대해서는 본 명세서의 앞에서 설명이 되었음)이 다르면 연산시각이 도래했을 때 일괄적으로 연산생성된 악음파형샘플수가 다르게 되어 있기 때문에 각 연산사이클(CC)의 종류마다 출력버퍼가 준비된다. 도시한 경우는 연산사이클이 3종류가 된 경우를 나타내고 있으며, 동 도면 (a)∼(c)에도시한 바와 같이, 기본연산사이클(CC=0:등가샘플링주파수 48kHz)용 버퍼(0), 기본연산사이클의 1/2의 연산사이클(CC=1:등가샘플링주파수 24kHz)용 버퍼(1), 기본연산사이클의 1/4의 연산사이클(CC=2:등가샘플링주파수 12kHz)용 버퍼(2)가 준비되어있다. 따라서, 도시한 바와 같이 버퍼(1)은 버퍼(0)의 1/2 샘플수를 기억할 수 있는 용량이 되며, 버퍼(2)는 버퍼(0)의 1/4 샘플수를 기억할 수 있는 용량이 된다.
또, 연산사이클(CC)은 각 발음채널마다 1발음중인 악음파형에서 지정되며, 연산시각마다 행해지는 1단위구간용 파형으로서 각 발음채널에서 연산생성되는 악음파형샘플수를 지정하는 것이며, 생성된 악음발음샘플수에 대응하는 등가샘플링주파수로 나타낼 수도 있다.
이 연산사이클(CC)의 지정은 생성해야 할 악음파형샘플의 주파수대역에 따라 결정된다.
즉, 제5(a)도에 도시한 버퍼(0)는 악음파형의 주파수대역이 광대역이 되는 경우로서, 연산시각이 도래할 때마다 생성되는 128샘플(SD1, SD2, SD3 … SD128)의 악음파형샘플이 기억되는 출력버퍼가 되며, 제5(b)도에 도시한 버퍼(1)은 악음파형의 주파수대역이 너무 넓지 않은 경우로, 연산시각이 도래할 때마다 생성되는 64샘플(SD1, SD2, SD3‥SD64)의 악음파형샘플이 기억되는 출력버퍼가 되며, 제5(c)도에 도시한 버퍼(2)는 악음파형의 주파수대역이 좁은 경우로서, 연산시각이 도래할 때마다 생성되는 32샘플(SD1, SD2, SD3‥SD32)의 악음파형샘플이 기억되는 출력버퍼가 되고 있다.
이들 버퍼(0) 내지 버퍼(2)의 출력버퍼에는 발음채널에 따르지 않고, 연산사이클(CC)이 같아진(주파수대역이 같아진) 악음파형샘플이 전체 발음채널에 걸쳐서더해져서 격납되어 있다. 즉, 새롭게 연산생성된 악음파형샘플은 이미 기억되어 있는 악음파형샘플에 가산되어 같은 출력버퍼의 같은 위치에 기억된다.
또, 전체 발음채널의 악음파형샘플의 생성이 종료되면 모든 발음채널의 악음파형샘플이 누산되어 재생부(9)로 넘겨져서 발음되게 되지만, 악음파형샘플수가 버퍼(0)와 버퍼(1)와 버퍼(2)에서 다르기 때문에 단순하게 누산할 수는 없다.
그래서, 버퍼(1)의 64샘플의 악음파형샘플을 보간(interpolation)함으로써, 128샘플의 악음파형샘플을 얻도록 하여 제5(d)도에 도시한 버퍼(1')에 기억하고, 버퍼(2)의 32샘플의 악음파형샘플을 보간함으로써 128샘플의 악음파형샘플을 얻도록 하여 제5(e)도에 도시한 버퍼(2')에 기억하도록 한다.
이 경우, 버퍼(1')의 악음파형샘플(SD1, SD2, SD3, ‥ SE128)은 하나 걸러 버퍼(1)의 악음파형샘플(SD1, SD2, SD3, ‥ SE64)과 같아지고, 버퍼(2')의 악음파형샘플(SD1, SD2, SD3, ‥ SE128)은 3개 걸러 버퍼(2)의 악음파형샘플(SD1, SD2, SD3, ‥ SE28)과 같아진다.
이렇게 해서 각각 128샘플이 된 버퍼(0)와, 버퍼(1')와, 버퍼(2')의 같은 위치의 악음파형샘플이 누산되어, 예를 들면 퍼버(0)의 같은 위치에 기억된다. 그리고, 버퍼(0)는 재생예약되어 재생부(9)로부터 판독되어 발음되게 된다.
또, 전체 발음채널의 악음파형샘플을 버퍼(0)에 반드시 기억시킬 필요는 없으며, 128샘플의 영역을 가진 출력버퍼이라면 어느 것이든 상관없다.
다음에, 상기한 바와 같이 출력버퍼를 사용하는 제1도에 도시한 악음생성장치에서 실행되는 악음발생방법의 개요를 제6도 내지 제11도를 참조하여 설명한다. 여기서, 악음생성장치는 파형메모리 음원방식으로 되어 있으며, 제6도는 버퍼에 기억한 1발음중의 파형데이터(즉, 발음개시로부터 종료까지의 1발음을 위해 사용되는 파형데이터의 집합)예를 나타내고 있으며, 제7도는 제6도에 도시한 파형데이터의 각 시점에서의 주파수 스펙트럼을 나타내고 있고, 제8도는 생성된 악음파형샘플을 일정한 재생속도(fixed reproducing rate)로 재생한 경우의 1발음중의 악음파형시각에 대한 피치변화의 예를 나타내고 있으며, 제9도는 1발음중의 악음파형샘플을 연산생성하는 시각에 대한 연산사이클 변화의 변화양태 예를 나타내고 있고, 제10도는 1발음중인 악음파형샘플을 연산생성하는 시각에 대해 F넘버를 변화시키는 변화양태 예를 나타내고 있으며, 제11도는 악음파형생성을 행하는 음원처리에서의 타이밍·챠트를 나타내고 있다.
본 발명의 악음발생방법에 있어서는 제11(a)도에 도시한 바와 같이, 연산시각(T1∼T4…)이 도래할 때마다 재생부(9)로부터 판독되어야 할 1단위구간용 악음파형샘플이 연산생성된다. 이 경우, 연산시간과 연산시간 사이에는 제11(b)도에 도시한 바와 같이 새로운 노트온·이벤트나 노트오프 · 이벤트가 수신되고, 이들 이벤트에 따른 다수의 악음파형샘플이 동 도면(c)에 도시한 시간에 일괄적으로 연산생성 되게 된다.
그리고, 연산생성되어 상기한 바와 같이 출력버퍼(0)에 기억되어 있는 전체 발음채널분의 악음파형샘플이 제11(d)도에 도시한 바와 같이, 재생부(9)에서 1단위 구간의 악음파형샘플로서 판독되어 일정한 재생속도(일정한 재생샘플링주파수)로재생되어 발음된다.
본 발명에서는 출력버퍼의 설명에서 설명한 바와 같이, 1단위 구간용 다수의악음파형샘플을 연산생성하고자 할 때, 시스템의 연산사이클을 상기 연산생성해야할 악음파형의 주파수대역에 따른 연산사이클(CC)로 설정변경하도록 되어 있다.
그래서, 연산사이클(CC)을 설정변경하는 양태에 대해 설명한다. 제6도에 있어서의 가로길이의 띠(WS)는 버퍼에 기억시킨 감쇠음계의 1발음 중에 포함되는 다수의 파형데이터 집합을 모식적으로 도시한 것으로, 그 횡축은 발음중인 시각을 나타내고 있으며, 예시적으로 추출한 a, b, c, d 시점의 파형데이터부분을 사선을 쳐서 강조한다. 이들 각 시점(a∼d)의 파형데이터에 포함되는 기본파 및 고주파의 스펙트럼 분포예를 제7도에 도시한다. 시점a로 나타낸 부분은 어태크부로서 그 구체적인 악음파형의 형상예를 픽업하여 제6도에 나타냈다. 이 시점a의 파형은 제7(a)도에 도시한 바와 같이 고주파 스펙트럼이 많이 포함된 복잡한 파형으로 되어 있다. 다음에, 시점b로 나타낸 부분은 감쇠가 약간 진행한 부분으로서, 제7(b)도에 나타낸 바와 같이 주파수가 높은 고주파 스펙트럼의 감쇠가 빠르게 진행되고 있다.
또, 시점c로 나타낸 부분은 감쇠가 좀더 진행된 지속부(서스틴부)로서, 그 구체적인 악음파형의 형상예를 제6도중에 픽업하여 도시했다. 이 시점c의 파형은 제7(c)도에 도시한 바와 같이 고주파 스펙트럼이 좀더 감쇠하여 기본파에 가까운 단순한 파형으로 되어 있다. 다음에, 시점d로 나타낸 부분은 감쇠가 상당히 진행된 부분으로서, 제7(d)도에 도시한 바와 같이 주파수가 높은 고주파 스펙트럼은 거의 감쇠되여 없어지고 있어서 거의 기본파만으로 되어 있다.
이와 같이 1발음중의 파형데이터는 그 1발음중의 시각에 의해 파형데이터의 주파수대역이 다르게 되고, 그 가장 넓은 주파수대역의 파형데이터를 연산생성할 수 있는 연산사이클에 고정시켜 두면, 상술한 바와 같이 불필요한 주파수대역까지도 파형데이터를 연산생성하게 된다.
그래서, 본 발명의 악음발생방법에서는 제9도에 도시한 바와 같이 연산사이클(CC)을 1발음중의 시각경과에 따라 변경하고 있다. 도시한 경우는, 시각 t2까지는 연산사이클(CC)이 기본연산사이클의 주파수인 48kHz가 되고, 시각 t2에서 시작 t4까지는 지금까지의 1/2 연산사이클에 상당하는 24kHz가 되며, 시각t4 이하는 또 1/2의 연산사이클에 상당하는 12kHz가 되어 연산사이클(CC)이 변경되고 있다.
또, 이 연산사이클(CC)의 변경은 상기 제11도에 도시한 1단위 구간을 최소단위로 하여 1단위 구간내에서는 변경하지 않도록 한다.
이와 같이, 주파수대역에 따른 연산사이클(CC)로 했으므로, 본 발명은 불필요한 주파수대역까지도 파형샘플의 연산생성을 전혀 행하지 않아 쓸데없는 연산을 저감할 수 있다. 그리고, 저감한 연산을 다른 발음채널의 연산으로 나누면 그 채널의 악음의 음질을 향상시킬 수 있고, 또 저감한 연산에 의해 발음채널수를 증가시킬 수도 있다.
또, 각 발음채널의 연산사이클을 1단위구간 도중에 변경하도록 설계할 수도 있다. 그 경우, 변경된 연산사이클(CC)에 따라 각 채널의 생성연산을 변경함과 동시에, 그 채널의 출력을 더하는 출력버퍼를 1단위구간 도중에 변경한다.
그러나, 상기 제2도에 도시한 RAM(3)에 기억되어 있는 파형데이터(WDI, WD2,‥ WDn)는 상기한 바와 같이 1발음중에서 기록에 필요한 주파수대역이 변화하기 때문에, 이 변화에 따라 파형데이터를 샘플링하여 기억시키는 샘플링주파수를 변화시키도록 하여 기억된 파형데이터양을 저감하고 있다. 이 경우, 어태크부에서는 샘플링주파수가 높아지고, 파형데이터의 감쇠에 따라 샘플링주파수도 차례로 낮아지는 것이 일반적이다.
이와 같이 1발음중에서 샘플링주파수를 연속적으로 변화시키면서 기억하는 파형데이터를 일정 속도로 RAM(3)에서 판독했을 경우 파형데이터의 피치는 그 샘플링주파수에 따라 변화하게 된다.
또, 제6도에서 시점a와 시점c의 각 1주기분의 파형형상이 도시되어 있으나, 시점c 파형의 횡축방향폭이 시점a 파형의 횡축방향 폭의 약 반분으로 되어 있는 것은 상기 설명한 1발음중에서의 샘플링주파수의 변화에 의한 것이다.
즉, 원래의 파형피치는 시점a와 시점c에서 거의 동일한 것이지만, 파형을 녹음할 때의 샘플링주파수가 시점c에서는 시점a의 약 반분의 주파수였기 때문에, 파형메모리에 기억된 파형의 1주기분에 상당하는 어드레스의 길이가 시점c에서는 시점a의 1주기분에 상당하는 어드레스 길이의 약 반분이 되고 있다.
예를 들면, 파형데이터를 기본연산사이클(제9도에 도시한 예에서는 48kHz)마다 1샘플씩 판독했을 경우의 피치인 오리지널피치(OP)의 1발음 중에서의 피치변화의 모습을 나타낸 파형(OPEG)예는 제8도에 도시한 바와 같이 된다. 이 도면에서는 노트·넘버(C2)의 원 피치(OP)가 시각t1 내지 시각t3에 걸쳐서 1옥타브위의 노트·넘버(C3)의 피치로 직선적으로 변화하고 있는 예가 도시되어 있다(단, 종축은 센트스케일로 되어 있다). 따라서, 이와 같은 파형데이터를 판독하여 악음샘플을 생성할 경우에는 1발음 중에서 피치가 변화하지 않도록 판독속도(=F넘버=생성하는 악음 1샘플마다의 파형메모리 판독어드레스의 진행량)를 제어할 필요가 있다. 또, OP는 오리지널피치일 때, OPEG는 오리지널피치 엔벨로프일 때이다.
여기서, 파형데이터를 샘플링하여 파형메모리에 받아들일 대의 샘플링주파수는 상술한 OFEG파형과 완전 반대의 변화(센트스케일상)이며, 녹음시에 샘플링주파수의 변화를 제어한 데이터에 의거해서 OPEG파형의 형상을 제어하는 OPEG 제어데이터가 생성된다.
지정된 피치를 가진 악음을 발생하기 위해서는 상기 피치와 OFEC파형에 의거해서 원 피치(OPEG파형값으로 나타남)를 지정된 상기 피치까지 피치시프트시키기 위한 피치변경량으로서 F넘버를 생성하면 된다. 구체적인 수단으로는 먼저, 센트단위상에 있어서, 발음피치로서 지정된 피치와 원 피치의 차이를 계산한다. 다음에, 얻어진 차이를 센트단위에서 Hz단위로 변환하면 F넘버를 얻을 수 있다. 이 경우, 지시된 발음피치가 변동하지 않아도, OFEG가 시간변화하면 F넘버는 OPEG의 변화에 따라 변화한다.
또, 연산시각이 도래할 때마다 1단위 구간의 파형샘플수로서 연산사이클(CC)로 나타난 수의 파형샘플을 연산생성하고 있는 것이지만, 제9도에 도시한 바와 같이 1발음 도중에 연산사이클(CC)을 변화했을 경우에는 그 시점에서 1샘플 연산마다판독하는 파형데이터의 진행량(=F넘버=판독속도)을 연산사이클(CC)에 따라 변화시킬 필요가 있다. 예를 들면, 48kHz(CC=0)의 기본연산사이클(CC)을 24kHz(CC=1)로반감했을 경우, 1샘플연산마다의 진행량을 당초의 2배로 하고, 또 12kH2(CC=2)로 저감되었을 경우에는 당초의 4배의 진행량으로 할 필요가 있다.
그래서, 본 발명에서는 연산생성시에 지정된 파형데이터를 판독하는 어드레스카운터의 악음파형 1샘플연산마다의 진행량인 F넘버를, 연산사이클(CC)이 변화하는 타이밍에 함께 변화시키도록 되어 있다. 연산사이클(CC)은 각 발음채널의 쓸데없는 파형연산량을 절약하도록 채널마다 설정된다.
본 발명에서는 파형데이터의 샘플링주파수 변화로 인한 파형압축(제8도에 도시한 OPEG파형의 변화)과, 연산사이클(CC)의 변화로 인한 파형연산량의 절약(제9도에 도시한 CC변화)의 양쪽이 실현되고 있어서 결과적으로 F넘버는 1발음중에서 제10도와 같이 변화한다.
이 도면에 도시한 바와 같이, 당초 FNO이었던 F넘버는 OPEG파형의 변화에 따라 시각t1 내지 시각t2에 걸쳐서 곡선형상으로 저하되고 있다. 또, 시각t2에 있어서 연산사이클(CC)이 반분으로 되는 것에 대응하여 F넘버가 2배로 되며, 시각t2 내지 시각t3에 걸쳐서 OPEG파형의 변화에 따라 조금전과 같이 곡선형상으로 저하되고 있다.
이어서, 시각t3 내지 시각t4까지는 일정치 FNO(2배가 된 OPEG파형과 반분이된 연산사이클(CC)이 서로 부정하고, 가끔 원래의 F넘버로 복귀한다)이 되고, 시각t4에서 연산사이클(CC)이 당초의 1/4배가 되는 것에 대응하여 또 2배가 되고 있으며, 시각t4 이하에서는 일정치(2FNO)가 된다.
이 F넘버를 산출하는 식을 다음 식으로 나타냈다.
F넘 버=2(SP-OP)/12OO*2CC
단, 이 식에서 SP는 발음해야 할 노트·넘버의 피치이고, OP는 원 피치, CC는 기본연산사이클(48kHz)에 대한 비율을 나타낸 값이며, 연산사이클이 기본연산사이클일 때 CC=0, 연산사이클이 1/2이 되었을 때에는 CC=1, 연산사이클이 1/4이 되었을 때에는 CC=2이다.
제12도는 CPU(1)가 실행하는 본 발명의 악음발생방법을 적용한 소프트웨어음원의 메인루틴 플로챠트를 나타낸 도면으로, 메인루틴이 스타트되면 스텝S10에서 초기설정이 행해진다.
초기설정에서는 전체 발음채널의 클리어나 음색데이터 및 파형데이터 등의 준비가 행해진다.
이어서, 스텝S20에서 수신데이터가 있는지의 여부가 판정되지만, 이 판정은 상기한 제3도에 도시한 입력버퍼에 MIDI수신데이터가 기록되어 있는지의 여부를 판정함으로써 행해진다.
그리고, 입력버퍼에 MIDI수신데이터가 없을 경우에는 그대로 스텝S40으로 진행하지만, 입력버퍼에 수신데이터가 있을 경우에는 스텝S30에서 수신된 MIDI이벤트에 따른 처리(노트온처리, 노트오프처리 등)나 기타 처리를 행하는 수신데이터처리가 행해진다.
그리고, 스텝S40에서는 스위치(SW)가 조작되었는 지의 여부가 판정되고, 스위치가 조작되어 있지 않을 경우에는 그대로 스텝S60으로 진행하지만, 스위치가 조작되었을 경우에는 SW이벤트 있음이라고 판정되어 조작된 패널스위치에 따라 다수파트의 각 파트 음색을 설정하기 위한 처리가 스텝S50의 패널SW이벤트처리에서 행해진다.
이어서, 스텝S60에서 연산시각이 도래할 때마다 악음파형샘플을 일괄적으로연산생성하는 음원처리가 행해지고, 스텝S70에서 그 밖의 처리가 행해지며, 스텝S20으로 복귀하여, 스텝S20 내지 스텝S70의 처리가 순환되며 반복적으로 행해진다(정상루프). 또, 재생부(9)를 알고리즘선택가능 전용음원 또는 DSP음원으로 했을 경우, 스텝S60의 음원처리는 불필요해진다.
다음에, CPU(1)가 실행하는 MIBI수신인터럽트처리의 플로챠트를 제13도에 도시했다. 이 처리는 MIDI인터페이스(5)가 외부로부터 어떤 MISI이벤트를 수신했을 인터럽트에 의해 기동된다. 이 MIDI수신인터럽트가 개시되면 스텝S80에서 MIDI인터페이스(5)에 의해 수신된 수신데이터가 받아들여지고, 스텝S90에서 그 수신데이터는 수신된 시점의 시각데이터와 쌍이 되어 제3도에 도시된 바와 같은 형식으로 상술한 입력버퍼에 기입되어 인터럽트발생시의 처리로 리턴된다. 이에 따라, 수신한 MIDI데이터는 차례로 수신시각과 함께 입력버퍼에 기입되게 된다.
다음에, 메인루틴의 스텝S50에서 행해지는 패널스위치 이벤트처리의 예로서 파트1의 음색선택 이벤트처리의 플로챠트를 제14도에 도시한다. 파트1의 음색선택 이벤트처리가 개시되면 스텝S100에서 패널스위치로 선택된 음색번호가 레지스터에 t1으로 격납되고, 이 처리는 종료된다. 이에 따라, 파트1의 음색이 결정되고, 도시하지는 않았으나 전체 파트의 음색이 선택되는 처리가 메인루틴의 스텝S50에서 행해진다.
다음에, 메인루틴의 정상루프에서 스텝S30으로 실행되는 수신데이터처리에서 행해지는 노트온·이벤트처리 및 노트오프·이벤트처리의 상세한 플로챠트를 제15(a)(b)도에 도시한다.
수신데이터가 노트온·이벤트일 경우에 제15(a)도에 도시한 노트온·이벤트 처리가 개시되고, 스텝S110에서 입력버퍼중의 그 노트온·이벤트의 노트넘버가 NN으로, 벨로시티는 VEL로, 파트별 음색은 t로서 각각 레지스터에 받아들여지며, 또 그 노트온·이벤트의 발생시각이 TM으로서 레지스터에 받아들여진다. 이어서, 스텝S120에서 레지스터에 받아들여진 노트넘버(NN)의 발음할당처리가 행해지고, 할당된 채널(ch)의 번호(i)가 레지스터에 받아들여진다.
또, 스텝S130에서 상기 파트별로 설정되어 있는 음색t의 음색데이터TP(t)를 노트넘버(NN) 및 벨로시티(VEL)에 따라 가공한다. 이 경우의 음색데이터는 제2도에 도시한 음색데이터(PD1 내지 PDl6)중 선택된 어느 하나의 음색데이터이다. 그리고, 스텝S140에서 제4도에 도시한 음원레지스터 중 레지스터에 받아들여진 ch번호 i의 음원레지스터에 발음해야 할 피치(SP)를 포함하는 상기 단계의 처리에 의해 가공된 음색데이터를 상기 노트온 · 이벤트의 발생시각(TM)과 함께 기입한다.
여기서, 음원레지스터에 기입된 파형지정데이터(D)는 제2도에 도시한 음색데이터중 음역파형 지정데이터를 노트넘버(NN)로 참조함으로써 구해지며, 상기 노트넘버(NN)에 대응하는 악음생성에 이용해야 할 파형으로서 파형데이터(WD1) 내지 파형데이터(WDn)중 어느 하나가 지정된다.
다음에, 스텝S150에서 레지스터에 받아들여진 ich의 연산사이클을 변경하는타이밍 및 변경하는 연산사이클치를 지정하는 연산사이클 제어데이터가 음원레지스터의 ich 영역에 설정된다. 이 연산사이클 제어데이터의 설정은 ich에서 선택된 음색데이터 중에 기억된 연산사이클 제어데이터에 의거해서 설정된다. 연산사이클을변경하는 타이밍은 상기한 연산시각마다 연산을 행하는 1단위 구간을 최소단위로해서 지정되므로, 연산시각에 달하는 회수에 의해 타이밍을 검출하고, 변경을 실행할 수 있다. 이어서, 스텝S160에서 레지스터에 받아들여진 ich에 파형데이터영역으로부터 판독된 OPEG제어데이터가 음원레지스터의 ich영역에 설정된다. 이 OPEG제어 데이터는 상기 제8도에 도시한 바와 같은 원 피치의 1발음중에서의 변화양태를 나타낸 OPEG파형의 형상을 제어하는 데이터이다.
이어서, 스텝S170에서 레지스터에 받아들여진 ich의 음원레지스터에 노트온이 기입되고, 노트온·이벤트처리는 종료된다.
제15(b)도에 도시한 플로챠트의 노트오프처리는 수신한 데이터가 노트온·이벤트일 경우에 개시되며, 스텝S180에서 입력버퍼 중 그 노트오프·이벤트의 노트넘버가 NN으로, 파트별 음색은 t로 각각 레지스터에 받아들여지고, 노트오프·이벤트의 발생시각이 TM으로서 레지스터에 받아들여진다. 이어서, 스텝S190에서 음색t, 노트넘버(NN)에서 발음되고 있는 발음채널(ch)이 서치되며, 발견한 발음ch의 번호(i)가 레지스터에 받아들여진다.
다음에, 스텝S200에서 이 ich의 음원레지스터에 상기 레지스터에 받아들여진 발생시각(TM)과 노트오프가 기입되고, 노트오프처리는 종료된다.
다음에 메인루틴의 정상루프에 있어서 스텝S60에서 실행되는 음원처리의 상세 플로챠트를 제16도를 참조하며 설명한다.
음원처리가 개시되면 스텝S210에서 음원레지스터의 체크가 행해지고, 신규한 기록이 없을 경우에는 스텝S220에서 그대로 스텝S250으로 진행하지만, 스텝S220에서 신규한 기록이 있었다고 판정되었을 경우에는 스텝S230에서 기록된 데이터를 파형연산을 제어하기 위한 제어데이터로 변환한다.
이어서, 스텝S240에서 변환된 제어데이터의 준비가 행해지지만, 여기서는 변환후의 데이터에 의거해서 노트온/오프, 피치·밴드, EXP, 팬 등 변환후의 데이터에 의거한 음원제어준비나 제어시각/제어데이터 등의 세트작성이 행해진다. 즉, 스텝S230 및 스텝S240에서 기입이 있을 때마다 나중에 실행되는 악음생성스텝S270∼스텝S290을 위한 연산준비가 행해진다.
이어진 S250에서는 재생부(9)에 있어서의 재생파형데이터 판독이 도중에 끊기지 않도록 재생중인 파형데이터가 종료되는 시각보다 소정시간만큼 빠른 타이밍을 지정하는 연산시각관리가 행해진다. 즉, 제11도에 도시한 바와 같이, 동도면(a)에 도시한 연산시각이 되었을 때, 동 도면(c)에 도시한 바와 같이 1단위 구간에 상당하는 다수의 악음파형샘플의 연산생성이 실행되고, 이 연산생성된 악음파형샘플이 동 도면(d)에 도시한 바와 같이 1단위구간의 악음파형으로서 재생부(9)에 의해 판독되어 재생되지만, 재생부(9)가 판독하는 파형샘플이 도중에 끊기지 않도록 제11(c)도에 도시한 연산생성에 요하는 시간을 고려하여 동 도면(a)에 도시한 연산시각을 설정하도록 연산시각관리가 행해진다.
이어서, 스텝S260에서 연산시각관리가 행해진 연산시각에 도달했는지의 여부가 판정되는데, 연산시각에 도달하지 않은 경우에는 그대로 음원처리가 종료된다. 그리고, 음원레지스터에 신규기입이 없는 데다, 연산시각에 도달하지 않은 경우에는 음원처리는 아무 것도 처리하지 않고 빠져버리지만, 정상루프가 몇 회인가 순환하면 연산시각에 도달하여 스텝S270 이하에서 1단위구간에 상당하는 악음파형샘플의 연산생성처리가 행해진다.
즉, 스텝S270에서 각 채널이 생성하는 악음에 따라 여기서 연산생성하는 악음파형샘플수를 지정하는 연산사이클(CC)의 변경처리 및 중요한 악음을 발생하고 있는 채널순으로 연산을 행하도록 각 채널의 연산순서를 결정하는 연산순서결정처리, 또 연산사이클(CC)을 변경해도 전체 발음채널의 악음파형샘플을 생성할 수 없는 경우에 연산순서의 마지막에 소음하는 채널을 결정하는 소음ch처리가 행해진다.
이어서, 상기 스텝S240에서 음원제어준비된 데이터를 시간축 상에서 전개하며 연산준비를 행하는 제어데이터 전개처리가 스텝S280에서 실행되고, 또 스텝S290에서 전개된 데이터에 의거해서 1단위 구간분의 재생파형데이퍼(악음파형샘플)를 산출하는 파형연산이 실행된다. 또, 상기 제5도를 이용해서 설명한 바와 같이, 연산사이클이 다른 재생파형데이터는 기본연산사이클에서 생성되는 샘플수와 같은 샘플수가 되도록 보간되고, 같은 샘플수가 되어 전체 발음채널의 재생파형데이터가 누산되는데, 예를 들면 버퍼(0)에 격납되는 처리가 행해진다.
그리고, 스텝S300에서 작성한 재생파형데이터를 재생부(9)가 판독되도록 예약하는 재생예약처리가 행해지지만, 여기서는 재생예약은 전체 발음채널의 재생파형데이터가 누산된 재생파형데이터가 격납되어 있는 버퍼(0)에 대해 행해진다.
본 발명은 발음채널마다 연산사이클을 변경하거나 각 발음채널의 1발음 도중에 연산사이클을 변경할 수 있으나, 각 발음채널의 1발음 도중에 연산사이클을 변경하는 처리 등이 행해지는 상기한 음원처리에 있어서 스텝S270에서 실행되는 채널 제어처리의 상세한 플로챠트를 제17도에 도시한다.
채널제어처리가 개시되면 스텝S310에서 각 채널이 가지고 있는 연산사이클 제어데이터에 의거한 1발음 도중에서의 연산사이클을 변경하는 제어처리가 행해진다. 여기서는 시각의 카운트를 행하고, 연산사이클을 변경하는 타이밍을 관리하고있다. 그리고, 관리결과, 현시점에서는 연산사이클을 변경하는 채널이 없는 경우에는 그대로 스텝S340으로 진행하지만, 연산사이클을 변경하는 채널이 있었을 경우(그 채널의 연산사이클 제어데이터가 지정하는 변경타이밍에 도달한 경우)에는 스텝S320에서 있다고 판정되며, 상기 채널의 연산사이클(CC)이 스텝S330에서 새로운 값(상기 연산사이클 제어데이터가 지정하는 상기 타이밍에서의 변경치)로 변경된다.
이어서, 스텝S340에서 발음채널의 연산순서의 결정처리가 행해지지만, 여기서는 상기한 바와 같이 중요한 음이나 소음해서는 곤란한 음을 발음하는 채널의 연산을 우선해서 연산이 행해지도록 채널의 연산순서가 결정된다. 여기서, 악음을 생성중이지 않은 발음채널에 대해서는 연산이 행해지지 않으므로 연산순서에 포함하지 않아도 된다. 그리고, 스텝S350에서 각 발음채널의 연산량을 누산하면 전체 연산량이 산출된다. 이 경우, 각 발음채널의 연산량은 각 발음채널의 연산사이클에 따라 다르며, 또 각 채널마다 발음방식이 다르면 그것에 따라서도 다르게 된다. 이어서, 스텝S360에서 산출된 전체 연산량이 너무 많은 지의 여부가 판정되는데, 산출된 전체 연산량이 소정 범위 내였을 경우에는 그대로 채널제어처리는 종료되고, 파형연산처리가 행해진다.
또, 스텝S360에서 산출된 전체 연산량이 너무 많아서 그대로 전체 연산을 행하면 재생부(9)가 판독하는 타이밍까지 연산이 종료되지 않아 재생파형데이터가 중도에서 끊긴다고 판단되었을 경우에는 스텝S370에서 소정 순위의 연산순서 이하로 된 발음채널의 연산사이클(CC)을 필요수만큼 「+1」 한다. 즉, 연산사이클(CC)을 적게 해서(CC=O의 채널은 CC=1로, CC=1의 채널은 CC=2로) 생성되는 샘플수를 감소시킨다.
그 결과, 전체 연산량이 소정 범위 내에 격납되었는 지의 여부가 스텝S380에서 판정되고, 소정 범위 내로 되었을 경우에 채널제어처리는 종료하지만, 여전히 소정 범위를 초과하고 있다고 판정되었을 경우에는 스텝S390에서 연산순서의 마지막이 되는 채널부터 차례로 소음채널을 결정하며 소음처리가 실행된다.
종래의 음원제어에서는 발음해야 할 악음이 너무 많을 경우, 트랑케이트처리, 즉 발음중인 악음중 어느 하나를 소음하는 처리가 행해진다. 본 실시예에서는 스텝S360에서 「YES」 라고 판정되었을 경우에도 스텝S370 내지 S390의 처리에서 먼저 연산사이클을 떨어드림으로써, 종래 행해졌던 악음의 소음을 회피하고 있다. 또, 이 경우에 연산사이클이 떨어지는 것은 중요도가 낮은 음이므로, 음악상의 영향은 적다. 또 본 실시예에서 상기 연산사이클의 저감만으로 대처할 수 없을 때에 는 종래와 같은 소음처리가 실행된다.
이로써 채널제어처리가 종료되고, 파형연산처리가 계속 행해지게 된다.
다음에 파형연산처리의 상세한 플로챠트를 제18도에 도시하고 설명한다. 파형연산처리가 개시되면 스텝S400에서 연산순서 1번의 발음채널준비가 행해진다. 이 경우, 제5도에 도시한 각 출력버퍼는 연산에 앞서서 모두 클리어된다. 이어서, 스텝S410에서 발음하는 피치(SP), 연산사이클(CC) 및 원 피치OP에 의거해서 상기한 식1에 의해 F넘버를 발생한다. 이 스텝S410에서 각 채널의 F넘버를 매회 산출하고있기 때문에 발음도중에 연산사이클(CC)이나 원 피치(OP)의 변화에 따라 F넘버가 바로 변화한다. 또, 피치밴드나 비브라토 등의 효과로 인한 발음 도중에 발음피치(SP)의 변화에 따라 F넘버를 변화시킬 수도 있다.
또, 연산시각이 발생하는 시간 간격은 일반적으로 수 msec 정도이므로, 1단위 구간분의 악음생성연산 도중에 F넘버를 변화시킬 필요는 없다.
이어서, 스텝S420에서 판독어드레스를 작성하고, 작성된 판독어드레스의 정수부에 의거해서 파형데이터를 판독함과 동시에, 판독어드레스의 소수부에 의거해서 연속된 파형데이터 사이의 보간처리를 행한다. 스텝S420의 처리에서는 보간샘플 마다의 판독어드레스작성으로부터 보간처리를 1단위로 하고, 이 단위가 된 처리를 연산사이클(CC)에 따른 회수를 반복하도록 되어 있다. 그 결과, 연산사이클(CC)에 따른 수의 보간샘플이 생성된다. 또, 각 보간샘플의 판독어드레스는 직전의 보간샘플의 판독어드레스에 F넘버를 가산함으로써 구해진다. 따라서, 판독어드레스는 각 보간샘플마다 F넘버에 따른 속도로 진행되고, 그 진행속도에 따라 판독된 파형피치가 제어된다.
또, 스텝S430에서 전 단계에서 생성된 보간샘플에 음량EG파형에 따른 음량제어가 가해진 후, 연산사이클(CC)에 따른 출력버퍼의 버퍼(0) 내지 버퍼(2)중 어느하나에 더해진다. 이 음량EG파형은 악음의 상승에서 감쇠까지의 음량엔벨로프 변화를 제어하는 파형이며, 각 발음채널의 레지스터에 설정된 AEG제어D에 의거해서 각보간샘플에 대응시켜서 연산생성된다. 이미 설명한 바와 같이, 생성할 보간 샘플수와 선택된 출력버퍼가 기억하는 샘플수는 모두 각 발음채널의 연산사이클(CC)로 제어되고 있으며, 서로 동수이다. 그 때문에, 스텝S430의 처리도 바로 전의 스텝S430과 같이 각 샘플단위이다. 즉, 생성된 보간샘플에 대해 음량EG파형으로 인한 음량제어 및 연산사이클(CC)에 따른 출력버퍼가 대응하는 순서위치에 누산이 샘플단위로 차례로 행해진다.
이상과 같은 순서로 각 처리를 실행함으로써 CPU(1)의 연산레지스터의 기입/판독의 회수를 최소한으로 억제하여 전체적으로 처리속도를 향상시키고 있다.
이렇게 해서 제5도에 도시한 바와 같이, 버퍼(0)에는 기본연산사이클의 발음채널에서 연산된 악음샘플이, 버퍼(1)에는 기본연산사이클의 1/2의 연산사이클 발음채널에서 연산된 악음샘플이, 버퍼(2)에는 기본연산사이클의 1/4의 연산사이클 발음채널에서 연산된 악음샘플이, 각각 그때까지 격납되어 있던 데이터값에 차례로 더해져서 각각 격납되는데, 이런 경우에는 첫 번째에 연산된 보간샘플이므로, 그 채널의 연산사이클(CC)에 대응하는 출력버퍼에 그대로 격납된다.
다음에, 스텝S440에서 연산해야 할 전체 발음채널의 연산이 종료되었는지의 여부가 판정되지만, 또 연산해야 할(발음중인) 발음채널이 남아 있을 경우에는 종료되지 알았다고 판정되어 스텝S480으로 진행하고, 2번째 순서의 발음채널의 준비가 행해져서 스텝S4I0으로 복귀한다. 그리고, 전체 발음채널의 연산이 종료되기까지 스텝S410 내지 스텝S480의 루프처리가 행해진다.
또, 본 발명의 프로그램 이외의 소프트를 CPU(1)가 병렬실행되고 있으면 그소프트처리에 시간이 걸려서 본 연산이 지체되는 경우가 있으나, 그 경우재생부(9)의 재생이 중도에서 끊기지 않도록 아직 연산되지 않은 채널이 있어도 스텝S440에서 종료되었다고 판정하는 경우가 있다.
이에 따라 제5도에 도시한 버퍼(0), 버퍼(1) 및 버퍼(2)에 연산사이클(CC)에 따라 격납된 다수채널의 보간샘플이 누산되어 격납되게 된다.
전체 발음채널의 연산이 종료되면 스텝S450에서 버퍼(1)에 격납되어 있는 파형샘플의 보간처리(2배 오버샘플링)가 행해지고, 기본연산사이클에서 연산한 경우의 샘플수(이 경우, 128샘플)와 같은 샘플수가 되어 버퍼(0)와 같은 구성의 버퍼(1')에 격납된다(제5(d)도 참조). 이어서, 스텝S460에서 버퍼(2)에 격납되어 있는 파형샘플의 보간처리(4배 오버샘플링)가 행해지고, 기본연산사이클에서 연산한 경우의 샘플수와 같은 샘플수가 되어 버퍼(0)와 같은 구성의 버퍼(2')에 격납된다(제5(e)도 참조).
이어서, 스텝S470에서 버퍼(0)에 버퍼(1'), 버퍼(2')의 파형샘플을 더함으로서 전체 발음채널의 파형샘플을 누산한 파형샘플을 버퍼(0)상에 실현한다(제5(f)도 참조). 이에 따라, 파형연산처리는 종료하고, 버퍼(0)상의 파형샘플은 예약되어 재생부(9)로부터 판독되어 발음되게 된다.
이상은 상기 제1도에 도시한 악음생성장치에서 실행되는 프로그램으로서 본 발명의 악음발생방법의 설명을 하였다. 또, 본 발명의 악음발생방법을 Windows(미국 마이크로소프트사의 퍼스컴용 OS)나 그 밖의 오퍼레이팅·시스템이 동작하는 범용컴퓨터 상에서 하나의 어플리케이션 프로그램으로 실행시켜도 된다.
본 발명은 이상과 같이 구성되어 있기 때문에, 각 발음채널마다 발음되는 악음파형이 광대역으로 되어 있는 지 아닌지, 혹은 중요도에 따라서 파형연산사이클을 결정할 수 있어서 악음파형의 광대역 혹은 협대역에 관계없이 쓸데없는 파형연산을 하지 않고 악음파형샘플을 연산생성할 수 있다.
또, 감쇠음계의 경우 1발음중의 어태크부에서는 파형연산사이클을 크게 하여 많은 파형샘플을 생성하고, 지속부에서는 파형연산사이클을 작게 하여 파형샘플을 생성하고 있으므로, 쓸데없는 파형연산이 생기지 않음과 동시에, 효율적으로 1발음 중의 파형샘플을 생성할 수 있다.
이와 같이 특정한 발음채널에 있어서 파형연산을 절약할 수 있기 때문에, 기타 채널의 악음파형 파형연산량을 증가시키면 그 채널의 악음의 음질을 개선할 수 있으며, 또 절약된 파형연산량에 의해 발음채널수를 증가시킬 수 있다.
또, 각 발음채널마다 독립적으로 단위시간당 생성악음샘플수를 제어할 수 있으므로, 발음채널 사이에서 생성악음의 음질차이를 낼 수 있게 되었다. 또, 음질이 낮아도 영향이 적은 발음채널의 연산량을 삭감할 수 있다.
또, 상기 실시예에서는 1단위 시간당 다수의 파형샘플을 일괄적으로 생성하는 연산처리는 특별히 상세하게 설명하고 있지 않지만, 이 연산처리로는 간단한 파형메모리 판독연산에 한하지 않고, FM합성연산, AM합성연산, 프리에 합성연산 등 임의의 연산처리여도 상관없다.
다음에, 분 발명에 관한 파형연산데이터 압축방법에 대해 상술한 제6도 및제7(a)도∼제7(d)도와 제19도∼제25도를 참조해서 설명한다.
상술한 바와 같이 제6도는 버퍼에 기억한 발음(발음개시에서 종료까지)을 위해 사용하는 파형데이터의 집합을 모식적으로 나타내고 있으며, 제7도는 그중 몇가지 시점 a, b, c, d에서의 파형데이터를 추출하여 그 주파수 스펙트럼 분포예를 예시한 것이다. 제19도는 1발음에 대응하는 시계열적인 파형데이터를 샘플링하여 기록할 때, 샘플링주파수(Fs)가 변화하는 예를 나타낸다.
제6도, 제7도, 제19도를 참조하여 샘플링주파수(Fs)를 어떻게 설정해야 할지에 대해 설명하겠다.
시점a에 있어서의 어태크부의 파형데이터 주파수 스펙트럼 분포는 제7(a)도에 도시한 바와 같이, 고주파성분이 많아 높은 영역의 주파수(f1)까지 스텍트럼성분이 존재하고, 그 주파수대역은 광대역으로 되어 있다. 이 제7(a)도에 도시된 바와 같은 스펙트럼분포를 가진 어태크부의 파형데이터를 샘플링할 경우의 샘플링주파수(Fs)는 적어도 2f1 이상으로 할 필요가 있다.
또, 파형데이터가 어느 정도 감쇠된 시점b의 주파수 스펙트럼은 제7(b)도에 도시한 바와 같이, 주파수f2까지 스펙트럼성분이 존재하게 된다. 즉, 차수가 높은 고주파성분이 빠르게 감쇠하며, 그 주파수대역은 어태크부보다 대역이 좁아진다. 이 제7(b)도에 도시된 스펙트럼성분을 가진 파형데이터를 샘플링할 경우의 샘플주파수(Fs)는 적어도 2f2 이상으로 할 필요가 있다.
또, 파형데이터가 감쇠된 시점(c)의 지속부에서는 고주파 감쇠가 더욱 진행하여 동 제7(c)도에 도시한 주파수 스펙트럼분포가 된다. 즉, 기본파에 가까운 주파수(f3)까지밖에 스펙트럼이 존재하지 않아서 그 주파수대역은 상당히 좁아진다. 이 지속부의 파형데이터를 샘플링할 경우 샘플링주파수(Fs)는 적어도 2f3 이상으로 할 필요가 있으나, 2f1에 비하면 상당히 낮은 주파수여도 된다.
또, 파형데이터가 좀더 감쇠된 시점d의 주파수 스펙트럼은 제7(d)도에 도시한 바와 같이, 포함된 고주파 차수가 가장 낮아지고, 또 기본파에 가까운주파수(f4)까지 밖에 스펙트럼이 존재하지 않게 된다 즉, 그 주파수대역은 어태크부에 비해 매우 좁아지며, 제7(d)도에 도시한 스펙트럼의 파형데이터를 샘플링할 경우 샘플링주파수(Fs)는 적어도 2f4 이상으로 할 필요가 있으나, 어태크부에 비해 몇 분의 1의 아주 낮은 샘플링 주파수여도 된다.
이와 같이, 1발음중인 파형데이터가 필요로 하는 샘플링 주파수는 파형데이터의 감쇠에 따라 차례로 낮은 샘플링주파수(Fs)로 할 수 있으므로, 본 발명에서는 이것을 이용하여 기록하는 파형데이터를 압축하기 위해 제19도에 도시한 바와 같이 파형데이터를 녹음할 때의 샘플링주파수(Fs)를 변화시키고 있다.
즉, 제19도에 있어서는 적어도 어태크부가 종료되기까지의 기간을 포함하는 시점(t1)까지는 샘플링 주파수(Fs)를 가장 높은 예를 들면 48kHz로 하고, 이 시점으로부터 샘플링 주파수를 48kHz보다 낮은 예를 들면 32kHz로 바꾸고, 시점(t2)에서 어태크부에 있어서의 샘플링주파수(Fs)의 1/2인 24kHz의 샘플링주파수(Fs)로 다시 바꾼다.
여기서, 시점t2에서 시점t3의 기간은 고주파성분이 감쇠하고 있는 지속부 기간으로 되어 있으며, 시점t3 이하에서는 고주파성분은 좀더 감쇠하므로, 샘플링주파수(Fs)가 더욱 낮아지도록 바뀌며, 어태크부에 있어서의 샘플링주파수의 1/4인 12kHz의 샘플링주파수(Fs)로 바뀐다.
이에 따라 시점t1에서 t2까지의 단위시간당 파형샘플데이터양은 시점t1까지의 단위시간당 파형샘플데이터양의 2/3가 되고, 시점t2에서 t3까지의 단위시간당 파형샘플데이터양은 시점t1까지의 단위시간당 파형샘플데이터양의 1/2이 되며, 시점t3로부터의 단위시간당 파형샘플데이터양은 시점t1까지의 단위시간당 파형샘플데이터양의 1/4이 된다 따라서, 전체적으로 1발음의 파형샘플데이터양을 저감할 수 있으며, 다수의 파형데이터를 샘플링하여 기록할 경우에는 파형샘플데이터양의 저감효과가 좀더 현저하게 나타나게 된다.
이렇게 해서 파형샘플데이터양이 저감된 1발음중의 파형샘플데이터는 그대로 파형메모리에 기입되게 된다. 그리고, 이 파형메모리로부터 판독된 파형샘플데이터는 일정한 재생속도로 재생되게 된다 또, 이 일정한 재생 속도는 디지털 아날로그변환기의 변환동작 타이밍 속도이다.
그러나, 1발음중의 파형데이터 녹음시에 샘플링주파수(Fs)를 제3도에 도시한 바와 같이 바꿔서 기록한 파형샘플데이터를 일정한 재생속도로 재생하면 당연한 일이지만 재생된 파형샘플데이터의 피치는 1발음중에서 변화하게 된다.
그래서, 일정한 재생속도(48k 샘플/s)로 파형샘플메모리에서 판독된 1발음중의 파형샘플데이터를 재생했을 경우의 피치와, 파형메모리 판독어드레스의 관계를 1발음 중에서의 OP변화로서 제20도에 나타냈다. 또, OP는 상술한 바와 같이 Original Pitch의 약자이다.
이 도면에 있어서, NNO는 녹음시에 발음되는 파형데이터 음명(音名)의 피치이다. 또, 어드레스(Ad1)까지의 어드레스범위는 제19도에 도시한 시점t1까지 생성된 파형샘플데이터를 판독할 수 있는 어드레스 범위이며, 어드레스 Ad1-Ad2의 어드레스범위는 제19도에 도시한 시점t1∼t2까지 생성된 파형샘플데이터를 판독할 수 있는 어드레스범위이며, 어드레스 Ad2∼Ad3의 어드레스범위는 제19도에 도시한 시점t2-t3까지 생성된 파형샘플데이터를 판독할 수 있는 어드레스범위이고, 어드레스(Ad3)를 초과하는 어드레스범위는 제19도에 도시한 시점t3 이후에 생성된 파형샘플데이터를 판독할 수 있는 어드레스범위이다.
제20도에 도시한 경우는 일정한 재생속도를 파형데이터 녹음시의 가장 높은 샘플링주파수(Fs)와 같은 48kHz로 한 경우이며, 이와 같은 일정한 재생속도에 의해 어드레스(Ad1)까지의 어드레스범위에서 판독된 파형샘플데이터의 피치는 녹음시와 같은 음명(NNO)의 피치가 된다. 이 때, 제6도에 도시한 시점a의 파형데이터 1주기가 100샘플수로 표시된다고 하면 그 피치는 48(kHz)÷100=480(Hz)이 된다. 또, 어드레스(Ad1∼Ad2)의 어드레스범위에서 판독된 파형샘플데이터의 피치는 녹음시 3/2배의 일정한 재생속도로 재생되기 때문에, 음명NNO 피치의 3/2배의 피치가 된다. 이런 경우의 피치는 480×(3/2)=720(Hz)이 된다.
또한, 어드레스 Ad2∼Ad3의 어드레스 범위에서 판독된 파형샘플테이터의 피치는 녹음시 2배의 일정한 재생속도로 재생되기 때문에 960Hz가 되며, 음명NNO 피치의 2배의 피치가 된다 즉, 음명NNO의 1옥타브 높은 피치(NNO+10ct)가 된다. 또한, 어드레스(Ad3) 이하의 어드레스에서 판독된 파형샘플데이터의 피치는 녹음시의 22배의 일정한 재생속도로 재생되기 때문에 음명NNO 피치의 22배의 피치, 즉 1900Hz가 된다 즉, 음정NNO의 2옥타브 높은 피치(NNO+20ct.)가 된다.
상기 제19도에 도시한 바와 같이 1발음중에서 파형데이터를 샘플링하는 샘플링주파수(Fs)를 바꾸면 파형메모리로부터 판독한 파형샘플데이터를 일정한 재생속도로 재생할 경우에는 제20도에 도시한 바와 같이 1발음 중에서 파형샘플데이터의 피치가 변화하기 때문에 파형메모리로부터의 판독을 연구하여 발음중인 파형데이터의 피치가 변화하지 않도록 할 필요가 있다.
이 때문에, 제20도에 도시한 피치의 변화비율을 후술하는 파형샘플데이터를 판독하는 기초가 되는 F넘버를 작성할 경우의 OP의 변화제어데이터로 해서 파형데이터의 녹음시 출력하도록 한다. 그리고, OP의 변화제어데이터를 후술하는 전자악기의 제어부에 기억시켜 두도록 한다. 이 경우, OP의 변화제어데이터를 센트단위의 데이터로 하면 피치를 제어하는 제어처리의 구성을 간단화할 수 있다.
또, OP의 변화제어데이터는 제20도에 도시한 바와 같은 피치OP의 변화커브를 합성하기 위한 제어데이터로서, 이 경우 변화하는 타이밍 Ad1, Ad2 … 와, 그 시점에 서의 값 NNO, NN(720Hz), NNO + 1 oct. … 를 지정하는 데이터이다.
또, 차례로 번쩍거림을 증가시키는 듯한 음색은 예를 들면 효과음으로 알려져 있으나, 이와 같은 경우에 있어서 1발음 중에서의 샘플링주파수(Fs)의 변화예를제21도에 도시했다.
이 도면에서는 기간(t2∼t3)에 있어서 고주파성분이 가장 많이 포함된 파형데이터로 되어 있으며, 이 기간 내에 샘플링주파수(Fs)를 가장 높은 48kHz로 하고 있다. 그리고, 발음개시부터 시점(t1)까지는 샘플링주파수(Fs)가 12kHz가 되고, 시점t1부터 t2까지는 샘플링주파수(Fs)가 24kHz가 되고, 시점(t3) 이후는 샘플링주파수(Fs)가 다시 24kHz가 된다.
이와 같이 샘플링주파수(Fs)를 1발음 중에서 변화시켜서 파형데이터를 파형 메모리에 기록하도록 했을 경우, 파형메모리로부터 판독한 파형샘플데이터를 일정한 재생속도로 재생하도록 하면 상기와 같이 기록시와는 다른 피치가 된다. 이 경우에도 아까와는 다른 양태가 되는 1발음 중에서의 피치의 변화비율을 녹음시 OF의 변화제어데이터로서 출력하고, 전자악기 중의 제어부에 기억시켜 둔다.
다음에, 샘플링주파수(Fs)가 변화되어 샘플링된 파형데이터를 파형메모리에 기록하는 파형준비를 하는 구성의 예를 제22도에 도시한다.
이 도면에 있어서, 예를 들면 마이크 등의 파형입력부(20)로부터 입력된 파형데이터는 아날로그/디지털(A/D)변환기(21)에 있어서 디지털신호로 변환된다. 이경우, A/D변환기(21)에 있어서는 고정된 가장 높은 샘플링주파수(Fs)(예를 들면, 48kHz)에 의해 아날로그의 파형데이터가 샘플링되어 디지털 파형샘플데이터로 변환된다.
이 A/D변환기(21)에 있어서 고정 샘플링주파수(Fs)에 의해 디지털신호로 변환된 원파형샘플데이터는 메모리기입회로(22)에 의해 원파형메모리(23)에 기입된다.
이어서, 원파형메모리(23)로부터 원파형샘플데이터가 판독되어 샘플링주파수(Fs) 변환부(24)에서 샘플링주파수가 변환된다. 이 Fs변환부(24)에 있어서는 리샘플링(resampling)됨으로써 샘플링주파수(Fs)가 낮아지도록 변환되지만, 이 경우에 샘플링주파수(Fs)를 낮추어도 즉시 노이즈가 발생하지 않도록 로패스필터(LPF)에 의해 대역을 제한한 후에 리샘플링하여 샘플링주파수(Fs)를 변환하도록 한다.
이 Fs변환부(24)에 있어서, 1발음중의 샘플링주파수(Fs) 변환양태는 상기한 제19도 혹은 제21도에 도시한 바와 같이 행해지지만, 이 변환양태의 지정은 변환대응지정부(26)로부터의 지령에 의해 행해진다. 즉, 파형데이터의 어떤 타이밍에서 어떻게 샘플링주파수를 변화시키냐를 변환양태지정부(26)에서 지정하고 있다.
변환양태지정부(26)에서 지정된 샘플링주파수로, Fs변환부(24)에서 변환된 파형샘플데이터는 파형메모리(25)에 기입된다. 이 파형메모리(25)는 그대로 본 실시예의 전자악기에서 사용할 수 있는 파형메모리가 된다.
또, 상술한 바와 같이, 파형메모리(25)에 기입된 파형샘플데이터를 일정재생 속도로 재생하면 1발음중의 피치가 변화된다. 이 피치의 변화는 제19도와 제20도를 대응하면 알 수 있듯이, 변환양태지정부(26)의 지령에 따라 변화하므로, 변환양태지정부(26)로부터 상기 변화에 따른 상기 OP의 변화제어데이터를 생성출력한다. 이 OP의 변화제어데이터는 변화타이밍과 센트단위의 변화치로 구성되며, 파형메모리(25)로부터 파형샘플데이터를 판독재생하는 전자악기 혹은 파형재생기에미리 설정된다.
다음에 본 발명의 파형데이터 압축방법에 의해 파형데이터가 압축되어 기록되어 있는 파형메모리를 구비한 전자악기의 전체도를 제7도에 도시한다, 단, 이 전자악기는 설명의 간략화를 위해 단음발음으로 되어 있다.
이 도면에서 31은 연주를 행하는 키보드(KB), 32는 압건된 키보드(31)의 노트·온(NON) 및 노트·넘버(NN)를 검출하여 출력하는 검출회로, 33은 음색번호(TC)에 따라 1발음중에서 피치를 변동시키는 피치·엔벨로프파형(△P)을, 검출회로(32)에서 검출된 노트·온(NON)으로부터의 시간경과에 따라 발생하는 피치·엔벨로프제너레이터(피치EG), 34는 검출회로(32)에서 검출된 센트표현의 노트넘버(NN)에, 피치EG(33)에 의해 발생된 센트표현의 피치·엔벨로프파형(△P)을 가산하는 가산기이다.
또, 37은 센트표현의 OP변화제어데이터에 의거해서 오리지널피치데이터OP(이하, 간단히 데이터OP라고 한다)를 발생하는 OP발생기, 35는 발생한 데이터OP를 가산기(34)로부터 출력되는 피치·엔벨로프파형(△P)이 가산된 노트·넘버(NN+△P)로부터 감산하는 감산기, 36은 감산기(35)로부터의 보정된 노트·넘버(NN+△P-OP)에 따라 음 고주파수예 비례한 주파수넘버(FN)를 예를 들면 F넘버·테이블을 참조하여 발생하는 FN발생기이다.
또, OP발생기(37)는 파형메모리(39)에 기억하는 다수의 파형데이터에 대응하는 다수의 OP변화제어데이터를 기억하고 있으며, 음색번호(TC) 및 노트넘버(NN)에 따라 파형메모리(39)로부터 판독되는 파형에 대응하는 OP변화제어데이터를 이용하여 상기 데이터OP를 발생한다.
이 어드레스발생기(38)는 음색번호(TC) 및 노트·넘버(NN)의 건반영역에 따라 파형메모리에 기억되어 있는 파형을 선택하고 그 스타트어드레스를 노프·온(NON)의 타이밍에서 최초의 판독어드레스로서 발생한다. 그 후, 인가된 F넘버에 맞는 속도로 상기 판독어드레스를 증가시킨다. 39는 본 발명의 파형데이터 압축방법을 이용해서 압축된 파형데이터가 기록된 파형메모리로서, 어드레스발생기(38)로부터 발생된 판독어드레스의 정수부(ADI)에 의해 파형샘플데이터(MSD)가 파형메모리(39)로부터 판독된다. 40은 파형메모리(39)로부터 판독된 연속된 파형샘플데이터를 이용하여 어드레스발생기(38)로부터 발생된 판독어드레스의 소수부(ADF)에 의해 보간한 보간샘플데이터(ISD)를 생성하는 보간회로, 41은 보간회로(40)로부터 출력되는 보간샘플데이터(ISD)에 음량엔벨로프파형(AEG)을 승산하는 승산기, 42는 음색번호(TC)에 따른 1발음중에서의 음량변화를 도시한 음량엔벨로프파형(AEC)을 노트·온(NON)의 타이밍에 따라 발생하는 음량엔벨로프·제너레이터이다.
또, 43은 승산기(44)로부터 출력된 보간샘플데이터(ISD)에 음량엔벨로프파형(AEG)이 승산된 디지털악음데이터를 일정한 재생속도로 아날로그 악음데이터로 변환하는 디지털/아날로그(D/A)변환기, 44는 D/A변환기(43)에서 아날로그화된 악음신호를 방음하는 사운드시스템이다. 또, D/A변환기(43)는 일정한 재생속도(일정한 샘플링주파수)로 아날로그악음신호로 변환되고 있으나, D/A변환기(43)의 변환타이밍마다 승산기(41)는 디지털악음데이터를 출력하고 있다.45는 사용자가 발음시키는 악음의 음색을 설정하기 위한 음색스위치(SW), 46은 음색(SW)의 조작을 검출하여 조작된 스위치에 따른 음색번호(TC)를 출력하는 검출회로이다.
이 전자악기의 동작을 다음에 설명하면, 연주자가 키보드(31)를 압건하면 어느 키를 압건했는 지가 검출회로(32)에서 검출되고, 검출회로(32)로부터 압건된 키에 따라 발생된 노트넘버(NN) 및 노트·온신호(NON)가 피치(EG)(33), 음량(EG)(42), OP발생기(37) 및 어드레스발생기(38)에 공급된다. 이에 따라, 피치(EG)(33), 음량(EG)(42)은 각각 피치·엔벨로프파형(△P) 혹은 음량엔벨로프파형(AEC)을 스타트하고, OP발생기(37)는 데이터(OP)를 어드레스발생기(38)는 정수부(ADI) 및 소수부(ADF)로 이루어진 판독어드레스를, 발생한다.
이 때 어드레스발생기(38)에 의해 음색번호(TC) 및 노트넘버(NN)에 따라 판독이 선택된 파형데이터가 녹음시 제19도에 도시한 바와 같이 샘플링주파수(Fs)가 바뀌어 파형메모리(39)에 기록되어 있다고 하자. 또, 기록되어 있는 녹음시 상기 파형데이터의 음고(노트넘버(NN))와 같은 음고의 키를 키보드(31)에서 압건한 것으로 한다.
이 경우는 어드레스발생기(38)로부터의 제어데이터를 받아 검출회로(32)에서 출력되고 있는 센트 표현의 노트·넘버(NN)와 같은 값의 센트 표현의 데이터(OP)발생기(37)를 출력한다, 여기서, 노트·넘버(NN)보다 아주 작은 피치·엔벨로프파형(△P)을 무시하면 감산기(5)로부터 출력되는 데이터값(NN-OP)은 거의 0센트가 된다. 그러면, 이 0센트의 데이터가 입력된 FN발생기(36)는 F넘버로서 1을 출력하게 된다.
또, FN발생기(36)가 출력한 F넘버의 1을 누산하여 판독어드레스를 생성하는 어드레스발생기(38)는 스타트어드레스를 SD로 하면 노트·온(NON) 타이밍으로부터 DAC의 각 샘플링주기마다 SD, SD+1, SD+2, SD+3…으로 1씩 증가되는 정수부어드레스(ADI)와, 항상 0이 되는 소수부어드레스(ADF)로 이루어진 판독어드레스를 발생한다.
이 정수부어드레스(ADI)는 파형메모리(39)에 공급되며, 기록되어 있는 파형샘플데이터는 판독타이밍마다 차례로 1샘플씩 판독되게 된다. 판독된 파형샘플데이터(MSD)는 소수부어드레스가 0으로 되어 있기 때문에 보간회로(40)를 통과하여 승산기(41)에 입력되며, 승산기(41)에서 음량엔벨로프파형(AEG)이 승산되어 D/A변환기(43)에 공급된다. 그리고, D/A변환기(43)에 있어서 일정한 재생속도로 아날로그 신호로 변환되어 사운드시스템(44)으로부터 방음된다.
이와 같이, 정수부어드레스(ADI)가 연속된 어드레스로서 발생되기 때문에 파형메모리(39)로부터는 기록된 모든 파형샘플데이터가 판독되어 일정한 재생속도로 재생된 파형데이터의 피치는 기록시의 피치와 같아진다.
또, 기록시의 음명과 다른 음명의 키가 압건되었을 경우에는 그 음명과 옥타브코드에 따른 노트·넘버(NN)(예를 들면 전체 음상의 키가 압건되었을 경우, 200 센트 증분된 노트·넘버(NN))가 검출회로(32)로부터 출력되기 때문에 FN발생기(36)에는 압건된 음명과 옥타브·코드에 따른 센트 단위의 데이터(예를 들면, 200센트)가 입력되고, FN발생기(36)로부터는 압건된 음명과 옥타브·코드에 따른(예를 들면, 전체 음상의) F넘버가 발생되어 어드레스발생기(38)에 인가되게 된다. 이 때생성되는 판독어드레스에 의해 파형메모리(39)로부터 판독된 파형샘플데이터(MSD)는 보간회로(40)에서 보간처리가 행해진다. 이 보간처리에서는 연속된 파형샘플데이터(MSD) 사이를 소수부어드레스(ADF)에 따라 직선보간 등의 보간처리가 행해진다.
이렇게 해서 보간처리가 행해진 보간샘플데이터(ISD)에 승산기(41)에서, 음량엔벨로프파형이 승산되고, D/A변환기에 있어서 일정한 재생속도로 아날로그파형데이터로 재생된다. 이 경우 재생된 파형데이터의 피치는 F넘버에 따른(예를 들면, 전체 음상의) 피치가 된다.
또, 어드레스발생기(38)는 발생한 판독어드레스를 OP발생기(37)에 공급하고 있으며, OP발생기(37)는 음색번호(TC) 및 노트넘버(NN)에 따라 선택된 OP제어데이터에 의거해서 상기 판독어드레스가 제20도에 도시한 어드레스(Adl, Ad2, Ad3)의 어드레스위치에 도달하는 타이밍을 검출하고, 그 타이밍에서 데이터(OP)의 출력치를 NNO→NN(720Hz)→NNO+1 oct…로 차례로 변경한다.
이렇게 해서 판독어츠레스에 대응하여 제20도에 도시된 데이터OP의 변화커브가 재현된다. OP발생기(37)는 예를 들면 Ad1, Ad2의 어드레스위치에서 각각 그때까지의 데이터(OP)보다 약 700센트 및 약 500센트 증가한 데이터(OP)를 발생시켜 감산기(35)에 공급하게 된다.
이에 따라, 예를 들면 Ad2를 초과한 어드레스위치에서는 가산기(34)로부터 출력된 피치·엔벨로프(△P)가 가산된 노트·넘버(NN+△P)로부터 다시 1200센트 감산되게 된다. 1200센트는 1옥타브에 상당하기 때문에 Ad2의 어드레스 위치로부터는 Ad1 타이밍보다 앞의 F넘버에 비해 1옥타브 낮은 노트·넘버(NN+△P-O)P)가 출력되어 FN발생기(36)에 공급되게 된다.
따라서, FN발생기(36)로부터는 Ad1의 타이밍보다 앞의 F넘버에 비해 1옥타브 낮은 피치에 대응하는 F넘버가 발생되게 되며, 이 F넘버를 누산하여 판독어드레스를 발행하는 어드레스발생기(38)로부터도 그에 따른 속도로 증가하는 판독어드레스가 발생된다.
이 판독어드레스의 정수부 어드레스(ADI)는 파형메모리(39)에 공급되고, 기록되어 있는 파형샘플데이터를 판독타이밍마다 차례로 1샘플씩 판독하게 된다. 예를 들면, 어드레스(Ad1)까지의 F넘버가 1인 경우에는 어드레스(Ad2) 위치부터는 F넘버는 0.5가 되고, 어드레스발생기(38)로부터 발생되는 판독어드레스는 예를 들면 정수부 어드레스(ADI)는 0, 1, 1, 2, 2…가 되고, 소수부 어드레스(ADF)는 0.5, 0, 0.5, 0, …이 된다(단, 스타트 어드레스는 무시하고 나타낸다). 이 정수부 어드레스(ADI)는 파형메모리(39)에 공급되어 파형샘플데이터(MSD)가 판독되고, 소수부 어드레스(ADF)에 따라 보간회로(40)에서 상기한 파형샘플데이터의 보간이 행해진다.
이에 따라 어드레스(Ad2)로부터는 파형메모리(39)로부터 DAC의 샘플링 주기 마다 판독되는 파형샘플데이터는 2회에 1어드레스씩 진행되는 속도로 샘플데이터가판독되게 되며, 보간회로(40)에서 소수부 어드레스(ADF)에 따라 보간이 행해진다. 그러나, 원래 어드레스(Ad2)로부터는 파형메모리(39)에 기록되어 있는 파형샘플데이터양은 어드레스(Ad1)까지에 비해 시간방향(어드레스방향)에서 1/2이 되기 때문에, 결국 기록되어 있는 파형샘플데이터는 파형메모리(39)의 판독타이밍 2회마다 1샘플씩 판독되게 되며, 녹음시의 샘플링주파수(Fs)가 1/2이 되는 것이 보상되어 녹음시와 같은 피치로 파형메모리(39)로부터 파형샘플링데이터를 판독할 수 있게 된다.
그리고, 보간회로(40)에 의해 보간처리가 행해진 보간샘플데이터(ISD)는 승산기(41)에 있어서 음량(EG)(42)에 의해 발생된 음량엔벨로프파형(AEG)이 승산되고, D/A변환기(43)에 있어서 일정한 재생속도로 아날로그 파형데이터로 변환된다.
또, 파형데이터를 압축할 경우 1발음 중에서의 녹음시 샘플링주파수(Fs)는 제19도에 도시한 바와 같이 단계적으로 바뀔 뿐만 아니라, 제24도에 도시한 바와 같이 연속적으로 변화시킬 수도 있다. 이 예에서는 심플링주파수(Fs)가 시점 t4에 있어서의 48kHz로부터 시점 t5에 있어서의 24kHz까지 연속해서 저하하도록 변화되고 있다. 이렇게 해도 파형데이터를 압축해서 파형메모리에 기록할 수 있다.
이 경우에는 1발음중에서의 센트표현의 데이터(OP)는 리니어로 변화하도록 하고 있다. 즉, 파형메모리로부터 판독된 파형샘플데이터를 일정한 재생속도로 재생했을 경우, 제25도에 도시한 바와 같이 재생된 파형데이티의 피치는 어드레스(Ad4)의 위치로부터 어드레스(Ad5)의 위치에 걸쳐서 센트축 상의 피치가 리니어로 변화하게 된다.
따라서, 제25도에 도시한 바와 같이 샘플링주파수를 변화시켜서 파형메모리(39)에 파형데이터를 기록한 경우에는 제23도에 도시한 전자악기에 있어서의 OP발생기(37)는 발음의 시간경과에 따라 절선적(折線的)으로 변화하는데이터(OP)를 출력하면 되므로, OP발생기(37)를 간단한 구성으로 할 수 있다.
이상, 본 발명에 따른 전자악기의 파형데이터 압축방법에 대해 설명했으나, 본 발명의 파형데이터 압축방법에 의해 파형메모리에 파형샘플데이터를 기록하는 제22도에 도시한 구성 및 이렇게 기록한 파형메모리를 구비한 제23도에 도시한 전자악기는 도시한 블록기능을 하드웨어로 각각 구성하는 것은 당연히 실현할 수 있으나, 하드웨어로 바꾸어 MPU (마이크로·프로세서·유닛)나 DSP(디지털·시그널·프로세서)에 의해 실현할 수도 있다.
본 발명은 이상과 같이 구성되어 있으므로, 녹음하는 1발음중의 파형데이터에 있어서, 파형데이터에 포함된 주파수성분이 높은 어태크부 등에서는 샘플링주파수가 높아지고, 파형데이터에 포함된 주파수성분이 너무 높지 않은 지속부 등에서는 샘플링주파수가 낮아져서 파형메모리에 기록하는 파형샘플데이터수를 저감시켜 압축할 수 있다.
따라서, 파형메모리의 기억용량을 삭감할 수 있음과 동시에, 그 사용효율을 향상시킬 수 있다.

Claims (28)

  1. 연산처리장치에 의해 수행되는 파형연산에 의거해서 악음파형샘플을 생성하는 악음발생방법에 있어서,
    다수의 발음채널에 대응하는 다수의 파형을 생성하기 위한 파형생성연산 수행단계와,
    상기 다수의 발음채널 각각에 대해 독립적으로 상기 발음채널에서 생성된 다수의 파형의 각각의 피치를 제어하는 피치제어 수행단계; 및
    상기 다수의 발음채널 각각에 생성된 다수의 파형 각각의 특성 및 상기 다수의 발음채널 각각의 다른 발음채널에 대한 상대적 중요도에 따라, 상기 다수의 발음채널 각각에 대해서 독립적으로 상기 파형생성연산의 분해능을 제어하는 분해능제어 수행단계를 포함하며,
    상기 발음채널 각각에서의 각각의 파형에 대한 분해능은 상기 다른 발음채널과 독립적으로 제어가 수행되는 것을 특징으로 하는 악음발생방법.
  2. 연산처리장치에 의해 수행되는 파형연산에 의거해서 악음파형샘플을 생성하는 악음발생방법에 있어서,
    파형을 생성하기 위해 파형생성연산을 수행하는 파형생성연산 수행단계; 및
    상기 파형의 시간경과와 함께 변화하는 고주파 함유비율에 따라 상기 파형생성연산 동안 상기 파형생성연산의 분해능을 가변시키도록 분해능 제어를 수행하는분해능 제어 단계를 포함하며,
    상기 파형은, 악음 발생 기간 동안 가변되는 상기 파형생성연산의 분해능을가지고 생성되는 것을 특징으로 하는 악음발생방법.
  3. 다수의 발음채널에 대해 악음생성연산을 행하여, 상기 다수의 채널에 대응하는 다수의 악음 파형데이터를 생성하는 악음발생방법에 있어서,
    상기 다수의 발음채널에서 생성되는 악음의 특성을 각 발음채널마다 지시하는 제1제어데이터를 발생하는 악음제어단계와;
    단위시간당 생성될 악음의 샘플수를 각 발음채널마다 지시하는 제2제어데이터를 발생하는 연산제어단계와;
    상기 다수의 발음채널에 대해 각 발음채널에 대응하는 악음의 파형데이터를, 상기 제1제어데이터가 지시하는 악음특성에 따라, 그리고 상기 제2제어데이터가 지시하는 샘플생성속도로 각각 연산생성하는 악음생성단계; 및
    상기 악음생성단계에서 생성된 다수채널분의 파형데이터에 의거해서 악음을 발생하는 악음발생단계를 포함하는 것을 특징으로 하는 악음발생방법.
  4. 제3항에 있어서, 상기 연산제어단계는 각 발음채널에서 생성될 파형데이터의 악음특성에 대응하여 상기 제2제어데이터를 발생하는 것을 특징으로 하는 악음발생방법.
  5. 제3항에 있어서, 상기 연산제어단계는 각 발음채널에서 발생될 파형데이터의 악음특성에서의 시간변화에 대응하여, 발생될 상기 제2제미데이터를 변화시키는 것을 특징으로 하는 악음발생방법.
  6. 제3항에 있어서, 상기 제1제어데이터에는 각 발음채널에서 생성될 악음의 피치를 지정하는 피치정보가 포함되어 있으며,
    상기 악음생성단계에서는 상기 제2제어데이터가 지시하는 샘플생성속도에 따라 각 발음채널의 상기 피치정보를 생성하는 작음의 위상변화속도로 변환하는 것을 특징으로 하는 악음발생방법.
  7. 적어도 2개의 악음을 동시에 생성하는 악음발생방법에 있어서,
    많은 양의 고주파 성분을 포함하는 제1악음파형샘플을 단위시간당 N샘플의 생성속도로 생성하는 제1생성단계와;
    적은 양의 고주파 성분을 포함하는 제2악음파형샘플을 단위시간당 M(단, M < N)샘플의 생성속도로 생성하는 제2생성단계와;
    N샘플의 제2악음파형을 제공하도록 상기 M샘플의 제2악음파형을 보간처리하는 단계와;
    상기 N샘플의 제1악음파형과 상기 N샘플의 제2악음파형을 각 샘플 별로 차례로 가산하여 N샘플의 혼합된 악음파형을 얻는 혼합단계; 및
    상기 혼합단계에서 얻어진 혼합된 악음파형에 의거해서 음을 발생하는 단계를 포함하는 것을 특징으로 하는 악음발생방법.
  8. 다수의 발음채널에 대해 악음생성연산을 하고, 상기 다수의 발음채널에 대응하는 다수 악음의 파형데이터를 생성하는 악음발생방법에 있어서,
    상기 다수의 발음채널을 제1그룹과 제2그룹으로 그룹을 나누는 분할단계와, 제1그룹의 각 발음채널에 대해 단위시간마다 N샘플분의 악음파형을 생성하고, 다수의 채널들 사이에 차례로 가산해서 N샘플분의 제1혼합파형을 출력하는 제1 생성단계와,
    제2그룹의 각 발음채널에 대해 단위시간마다 M(M < N) 샘플분의 약음파형을 생성하고, 다수의 채널들 사이에서 차례로 가산해서 M샘플분의 제2혼합파형을 제공하도록 하는 제2생성단계와,
    N샘플의 제2혼합파형을 제공하도록 상기 M샘플의 제2혼합파형을 보간처리하는 단계와,
    상기 N샘플의 제1혼합파형과 상기 N샘플의 제2혼합파형을 각 샘플별로 차례로 가산하여 N샘플의 혼합된 악음파형을 얻는 혼합단계와,
    상기 혼합단계에서 얻어진 혼합된 악음파형에 의거해서 음을 발생하는 단계를 포함하는 것을 특징으로 하는 악음발생방법.
  9. 소망하는 사운드에 대응하는 파형샘플데이터를 생성하는 방법에 있어서,
    다수의 연속하는 시간구간 내에서 파형샘플데이터를 생성하는 단계; 및
    생성될 사운드에 포함된 고주파 성분에 따라 다수의 연속하는 시간구간의 각각에 대해서 샘플링 주파수를 지시하는 단계를 구비하고,
    다수의 시간구간 각각에 대해서, 파형샘플데이터가 상기 시간구간의 각각에 대해 지시된 상기 샘플링 주파수를 가지고 생성되는 것을 특징으로 하는 악음발생장치.
  10. 소망하는 하나의 사운드를 다수의 연속적인 시간구간으로 나누고, 각 시간구간마다 상기 사운드의 파형샘플데이터를 생성하는 방법에 있어서,
    각 시간구간에서 생성되는 파형샘플의 시간 분해능을 각 시간구간마다 독립적으로 정의하는 단계와;
    각 시간구간마다 정의된 분해능으로 상기 시간구간에 대응하는 파형샘플데이터를 생성하는 연산처리를 수행하는 단계; 및
    상기 단계에서 작성된 파형샘플데이터를 출력하는 단계를 구비한 것을 특징으로 하는 악음발생방법.
  11. 제10항에 있어서, 상기 시간 분해능을 정의하는 단계는, 상기 시간구간내의임의의 시간을 사용하여 상기 정의된 분해능에 대응하는 샘플수를 생성하는 단계를 추가로 포함하며,
    상기 출력하는 단계는, 상기 단계에서 상기 임의의 시간을 사용해서 생성된상기 파형샘플데이터를 일단 버퍼하고, 이 버퍼된 파형샘플데이터를 소망하는 재생속도로 판독하는 것을 특징으로 하는 악음발생방법.
  12. 소망하는 사운드에 대응하는 파형샘플데이터를 다수의 채널에서 생성하는 방법에 있어서,
    하나의 소정 출력 샘플레이트를 포함하며 각 채널마다 독립적으로 결정된 샘플링레이트로, 각 채널마다 파형생플데이터를 각각 생성하는 단계와;
    상기 소정의 출력 샘플레이트 이외의 샘플링레이트를 사용하는 하나 이상의 채널들에서 형성된 파형 샘플데이터를 혼합하여, 이 혼합된 파형샘플데이터를 상기 소정의 출력 샘플레이트 이외의 각각의 샘플레이트 중 하나에 대해서 제공하는 혼합단계와;
    상기 출력 샘플레이트 이외의 각각의 다른 하나의 출력 샘플레이트에 대해서 상기 혼합된 파형샘플데이터를 다시 샘플링하여, 출력 샘플레이트를 가지는 상기 다시 샘플링된 파형샘플데이터를 제공하는 리샘플링 단계와;
    상기 다시 샘플링된 파형샘플데이터와 상기 출력 샘플레이트의 파형샘플데이터를 혼합하여 상기 소정의 출력 샘플데이터를 가지는 출력 파형샘플데이터를 제공하는 혼합단계, 및
    상기 소정의 출력 샘플데이터를 가지는 출력 파형샘플데이터를 출력하는 단계를 포함하는 것을 특징으로 하는 악음발생방법.
  13. 제12항에 있어서, 상기 출력하는 단계는, 상기 다시 샘플링된 각 채널의 파형샘플데이터를 가산하는 단계를 포함하는 것을 특징으로 하는 악음발생방법.
  14. 제12항에 있어서, 상기 출력하는 단계는, 상기 파형샘플데이터를 보간하는 단계를 포함하는 것을 특징으로 하는 악음발생방법.
  15. 제12항에 있어서, 상기 각 채널마다에 대한 샘플링레이트는, 당해 채널에서 생성될 사운드의 시간구간에 의존하여 가변적으로 결정되는 것을 특징으로 하는 악음발생방법 .
  16. 생성해야 할 하나의 사운드를 다수의 시간구간으로 나누고, 각 시간구간에서 생성해야 할 사운드 파형 샘플의 분해능을 각 시간구간마다 독립적으로 정의하여, 각 시간구간마다 정의된 분해능에 의해 상기 시간구간에 대응하는 파형샘플데이터를 생성하는 연산처리부와,
    상기 연산처리부에 의해 작성된 상기 파형샘플데이터를 출력함과 동시에, 각 샘플의 시간폭을 가변제어하는 출력부를 구비한 것을 특징으로 하는 사운드 발생장치.
  17. 제16항에 있어서, 상기 연산처리부는 다수의 각 채널마다에 독립적으로 정의되는 상기 분해능에 의해 각 채널에서 생성해야 할 사운드의 파형샘플데이터를 생성하는 것을 특징으로 하는 사운드 발생장치.
  18. 다수의 발음채널에 대해 악음생성연산을 행하여, 상기 다수의 채널에 대응하는 다수의 악음 파형데이터를 생성하는 악음발생방법을 실행하기 위한 일군의 명령어를 포함하는 기계판독 가능한 기록매체에 있어서, 상기 악음발생방법은,
    상기 다수의 발음채널에서 생성되는 악음의 특성을 각 발음채널마다 지시하는 제1제어데이터를 발생하는 악음제어단계와;
    단위시간당 생성될 악음의 샘플수를 각 발음채널마다 지시하는 제2제이데이터를 발생하는 연산제어단계와;
    상기 다수의 발음채널에 대해 각 발음채널에 대응하는 악음의 파형데이터를, 상기 제1제어데이터가 지시하는 악음특성에 따라, 그리고 상기 제2제어데이터가 지시하는 샘플생성속도로 각각 연산생성하는 악음생성단계; 및
    상기 악음생성단계에서 생성된 다수채널분의 파형데이터에 의거해서 악음을 발생하는 악음발생단계를 포함하는 것을 특징으로 하는 기계판독 가능한 기록매체.
  19. 적어도 2개의 악음을 동시에 생성하는 악음발생방법을 실행하기 위한 일군의 명령어를 포함하는 기계판독 가능한 기록매체에 있어서, 상기 악음발생방법은,
    많은 양의 고주파 성분을 포함하는 제1악음파형샘플을 단위시간당 N샘플의 생성속도로 생성하는 제1생성단계와;
    적은 양의 고주파 성분을 포함하는 제2악음파형샘플을 단위시간당 M[(단, M < N)샘플의 생성속도로 생성하는 제2생성단계와;
    N샘플의 제2악음파형을 제공하도록 상기 M샘플의 제2악음파형을 보간처리하는 단계와;
    상기 N샘플의 제1악음파형과 상기 N샘플의 제2악음파형을 각 샘플 별로 차례로 가산하여 N샘플의 혼합된 악음파형을 얻는 혼합단계; 및
    상기 혼합단계에서 얻어진 혼합된 악음파형에 의거해서 음을 발생하는 단계를 포함하는 것을 특징으로 하는 기계판독 가능한 기록매체.
  20. 다수의 발음채널에 대해 악음생성연산을 하고, 상기 다수의 발음채널에 대응하는 다수 악음의 파형데이터를 생성하는 악음발생방법을 실행하기 위한 일군의 명령어를 포함하는 기계판독 가능한 기록매체에 있어서, 상기 악음발생방법은,
    상기 다수의 발음채널을 제1그룹과 제2그룹으로 그룹을 나누는 분할단계와,
    제1그룹의 각 발음채널에 대해 단위시간마다 N샘플분의 악음파형을 생성하고, 다수의 채널들 사이에 차례로 가산해서 N샘플분의 제1혼합파형을 출력하는 제1 생성단계와,
    제2그룹의 각 발음채널에 대해 단위시간마다 M(M < N)샘플분의 악음파형을 생성하고, 다수의 채널들 사이에서 차례로 가산해서 M샘플분의 제2혼합파형을 제공하도록 하는 제2생성단계와,
    N샘플의 제2혼합파형을 제공하도록 상기 M샘플의 제2혼합파형을 보간처리하는 단계와,
    상기 N샘플의 제1혼합파형과 상기 N샘플의 제2혼합파형을 각 샘플별로 차례로 가산하여 N샘플의 혼합된 악음파형을 얻는 혼합단계와,
    상기 혼합단계에서 얻어진 혼합된 악음파형에 의거해서 음을 발생하는 단계를 포함하는 것을 특징으로 하는 기계판독 가능한 기록매체.
  21. 파형데이터의 압축방법에 있어서,
    소정기간 동안 계속되는 파형을 입력하는 입력단계와;
    상기 소정기간 동안에 녹음샘플링주파수를 변화시키는 제어단계와;
    상기 파형을 상기 녹음샘플링주파수로 샘플링해서 파형데이터를 얻는 샘플링단계; 및
    상기 샘플링단계에서 얻어진 파형데이터를 차례로 메모리에 기입하는 기입단계로 이루어진 것을 특징으로 하는 파형데이터 압축방법.
  22. 제21항에 있어서, 상기 녹음샘플링주파수는 상기 소정기간 동안에 소정 타이밍에서 계단형상으로 변화되는 것을 특징으로하는 파형데이터 압축방법.
  23. 제21항에 있어서, 상기 녹음샘플링주파수는 상기 소정기간 동안의 소정타이밍에서 점차적으로 변화하는 것을 특징으로 하는 파형데이터 압축방법.
  24. 파형데이터의 압축방법에 있어서,
    소정기간 동안 계속되는 파형을 입력하는 입력단계와;
    상기 소정기간 동안에 녹음샘플링주파수를 변화시키는 제어단계와;
    상기 파형을 상기 녹음샘플링주파수로 샘플링해서 파형데이터를 얻는 샘플링단계와;
    상기 샘플링단계에서 얻어진 파형데이터를 차례로 파형메모리에 기록하는 기록단계와;
    재생속도를 지시하는 속도지시단계와;
    상기 제어단계에 의한 녹음샘플링주파수의 변화로 인해, 상기 파형메모리에 기억된 파형데이터에서 생기는 피치변동분에 대응하는 변화데이터를 발생하는 발생단계와;
    상기 속도지시단계에서 지시된 재생속도를 상기 변화데이터에 의해 보정하는 보정단계 ; 및
    상기 보정단계에서 보정된 재생속도에 따른 속도로 상기 파형메모리를 판독하여 파형을 재생하는 재생단계로 이루어진 것을 특징으로 하는 파형데이터 압축방법.
  25. 제24항에 있어서, 상기 변화데이터는 상기 파형데이터를 일정한 속도로 판독했을 경우, 상기 파형데이터가 나타내는 대수영역에서 주파수를 나타내는 데이터 지표인 것을 특징으로 하는 파형데이터 압축방법.
  26. 제25항에 있어서, 상기 보정단계는 상기 재생속도와 상기 변화데이터의 가감산을 수행하는 것을 특징으로 하는 파형데이터 압축방법.
  27. 파형데이터의 압축방법을 실행하기 위한 일군의 명령어를 포함하는 기계판독 가능한 기록매체에 있어서, 상기 압축방법은,
    소정기간 동안 계속되는 파형을 입력하는 입력단계와;
    상기 소정기간 동안에 녹음샘플링주파수를 변화시키는 제어단계와;
    상기 파형을 상기 녹음샘플링주파수로 샘플링해서 파형데이터를 얻는 샘플링단계; 및
    상기 샘플링단계에서 얻어진 파형데이터를 차례로 메모리에 기입하는 기입단계로 이루어진 것을 특징으로 하는 기계판독 가능한 기록매체.
  28. 파형데이터의 압축방법을 실행하기 위한 일군의 명령어를 포함하는 기계판독 가능한 기록매체에 있어서, 상기 파형데이터의 압축방법은,
    소정기간 동안 계속되는 파형을 입력하는 입력단계와;
    상기 소정기간 동안에 녹음샘플링주파수를 변화시키는 제어단계와;
    상기 파형을 상기 녹음샘플링주파수로 샘플링해서 파형데이터를 얻는 샘플링단계와;
    상기 샘플링단계에서 얻어진 파형데이터를 차례로 파형메모리에 기록하는 기록단계와;
    재생속도를 지시하는 속도지시단계와;
    상기 제어단계에 의한 녹음샘플링주파수의 변화로 인해, 상기 파형메모리에 기억된 파형데이터에서 생기는 피치변동분에 대응하는 변화데이터를 발생하는 발생단계와;
    상기 속도지시단계에서 지시된 재생속도를 상기 변화데이터에 의해 보정하는 보정단계 ; 및
    상기 보정단계에서 보정된 재생속도에 따른 속도로 상기 파형메모리를 판독하여 파형을 재생하는 재생단계로 이루어진 것을 특징으로 하는 기계판독 가능한 기록매체.
KR1019960022426A 1995-06-19 1996-06-19 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치 KR100319481B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP7173941A JP3000894B2 (ja) 1995-06-19 1995-06-19 楽音発生方法
JP7173940A JP2940440B2 (ja) 1995-06-19 1995-06-19 電子楽器の波形データ圧縮記録方法および波形データ再生方法
JP95-173941 1995-06-19
JP95-173940 1995-06-19

Publications (2)

Publication Number Publication Date
KR970002843A KR970002843A (ko) 1997-01-28
KR100319481B1 true KR100319481B1 (ko) 2002-04-22

Family

ID=26495724

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960022426A KR100319481B1 (ko) 1995-06-19 1996-06-19 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치

Country Status (6)

Country Link
US (1) US5831193A (ko)
EP (1) EP0750290B1 (ko)
KR (1) KR100319481B1 (ko)
CN (2) CN1591564B (ko)
DE (1) DE69623866T2 (ko)
SG (1) SG42418A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101011286B1 (ko) * 2002-09-02 2011-01-28 텔레폰악티에볼라겟엘엠에릭슨(펍) 사운드 신시사이저

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6326537B1 (en) 1995-09-29 2001-12-04 Yamaha Corporation Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
JP3596263B2 (ja) * 1997-12-10 2004-12-02 ヤマハ株式会社 データ処理装置およびデータ処理方法
JP3991458B2 (ja) * 1998-07-31 2007-10-17 ヤマハ株式会社 楽音データ処理装置およびコンピュータシステム
US6355869B1 (en) * 1999-08-19 2002-03-12 Duane Mitton Method and system for creating musical scores from musical recordings
JP3823705B2 (ja) * 2000-08-30 2006-09-20 ヤマハ株式会社 パッドを備えた音声データのミキシング装置、その制御方法および記憶媒体
JP3722015B2 (ja) * 2001-06-15 2005-11-30 ヤマハ株式会社 楽音生成装置
US20030044989A1 (en) * 2001-09-04 2003-03-06 Guerra Francisco Javier Apparatus and method for testing a beverage for a clandestine illicit substance
ATE394771T1 (de) * 2002-09-02 2008-05-15 Ericsson Telefon Ab L M Klangsynthesierer
US7378586B2 (en) * 2002-10-01 2008-05-27 Yamaha Corporation Compressed data structure and apparatus and method related thereto
CN1632859B (zh) * 2004-12-31 2010-05-26 北京中星微电子有限公司 一种实现midi合成器同时播放midi音乐和音效的方法
JP4277234B2 (ja) * 2007-03-13 2009-06-10 ソニー株式会社 データ復元装置、データ復元方法及びデータ復元プログラム
US7678986B2 (en) * 2007-03-22 2010-03-16 Qualcomm Incorporated Musical instrument digital interface hardware instructions
JP6428689B2 (ja) * 2016-03-23 2018-11-28 カシオ計算機株式会社 波形読込み装置、方法、プログラム、及び電子楽器
JP6930144B2 (ja) * 2017-03-09 2021-09-01 カシオ計算機株式会社 電子楽器、楽音発生方法およびプログラム
EP4010896A1 (en) * 2019-08-08 2022-06-15 Harmonix Music Systems, Inc. Authoring and rendering digital audio waveforms
CN111508456B (zh) * 2020-07-01 2020-11-10 北京美摄网络科技有限公司 一种音频数据处理的方法、装置、电子设备及存储介质
CN112925293B (zh) * 2021-01-25 2022-09-06 东风电子科技股份有限公司 实现针对bcm不同负载反馈波形进行检测的方法、系统、装置、处理器及其存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55500959A (ko) * 1978-12-11 1980-11-13
JPS5792398A (en) * 1980-12-01 1982-06-08 Nippon Musical Instruments Mfg Electronic musical instrument
JPS59195283A (ja) * 1983-04-20 1984-11-06 ヤマハ株式会社 電子楽器
JPS6190514A (ja) * 1984-10-11 1986-05-08 Nippon Gakki Seizo Kk 楽音信号処理装置
US4794837A (en) * 1984-10-17 1989-01-03 Nippon Gakki Seizo Kabushiki Kaisha Tone signal generator with code converter for converting stored waveshapes of different coding forms into a common coding form
EP0199192B1 (en) * 1985-04-12 1995-09-13 Yamaha Corporation Tone signal generation device
US4916996A (en) * 1986-04-15 1990-04-17 Yamaha Corp. Musical tone generating apparatus with reduced data storage requirements
US5250748A (en) * 1986-12-30 1993-10-05 Yamaha Corporation Tone signal generation device employing a digital filter
JP2970907B2 (ja) * 1988-04-13 1999-11-02 株式会社ナムコ Pcmにおけるアナログ信号合成装置
US5168116A (en) * 1988-11-02 1992-12-01 Yamaha Corporation Method and device for compressing signals of plural channels
US5086475A (en) * 1988-11-19 1992-02-04 Sony Corporation Apparatus for generating, recording or reproducing sound source data
US5319151A (en) * 1988-12-29 1994-06-07 Casio Computer Co., Ltd. Data processing apparatus outputting waveform data in a certain interval
US5342990A (en) * 1990-01-05 1994-08-30 E-Mu Systems, Inc. Digital sampling instrument employing cache-memory
EP0448034B1 (en) * 1990-03-20 1998-06-03 Yamaha Corporation A musical tone generation apparatus capable of writing/reading parameters at high speed
US5329062A (en) * 1990-07-31 1994-07-12 Casio Computer Co., Ltd. Method of recording/reproducing waveform and apparatus for reproducing waveform
JP2623942B2 (ja) * 1990-09-05 1997-06-25 ヤマハ株式会社 楽音信号発生装置
JP3166218B2 (ja) * 1991-08-08 2001-05-14 カシオ計算機株式会社 データ圧縮伸張装置およびそれを用いた電子楽器
JP2722907B2 (ja) * 1991-12-13 1998-03-09 ヤマハ株式会社 波形発生装置
US5525748A (en) * 1992-03-10 1996-06-11 Yamaha Corporation Tone data recording and reproducing device
US5416264A (en) * 1992-07-27 1995-05-16 Yamaha Corporation Waveform-forming device having memory storing non-compressed/compressed waveform samples
JP2921376B2 (ja) * 1993-12-22 1999-07-19 ヤマハ株式会社 楽音発生装置
US5639978A (en) * 1994-10-14 1997-06-17 Kabushiki Kaisha Kawai Gakki Seisakusho Musical tone signal generating apparatus for electronic musical instrument
US5567901A (en) * 1995-01-18 1996-10-22 Ivl Technologies Ltd. Method and apparatus for changing the timbre and/or pitch of audio signals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101011286B1 (ko) * 2002-09-02 2011-01-28 텔레폰악티에볼라겟엘엠에릭슨(펍) 사운드 신시사이저

Also Published As

Publication number Publication date
DE69623866D1 (de) 2002-10-31
KR970002843A (ko) 1997-01-28
US5831193A (en) 1998-11-03
CN1591564B (zh) 2010-10-06
EP0750290A3 (en) 1997-02-26
CN1591564A (zh) 2005-03-09
DE69623866T2 (de) 2003-05-28
CN1174370C (zh) 2004-11-03
SG42418A1 (en) 1997-08-15
EP0750290B1 (en) 2002-09-25
EP0750290A2 (en) 1996-12-27
CN1144368A (zh) 1997-03-05

Similar Documents

Publication Publication Date Title
KR100319481B1 (ko) 악음발생방법,파형데이터압축방법,이러한방법을실행하기위한제어명령어를포함하는기계판독가능한기록매체및사운드장치
KR100421589B1 (ko) 악음생성방법및장치
US6180863B1 (en) Music apparatus integrating tone generators through sampling frequency conversion
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JP3482685B2 (ja) 電子楽器の音源装置
JP4736046B2 (ja) 波形データ生産方法、波形データ生産装置、プログラムおよび波形メモリ生産方法
JP3000894B2 (ja) 楽音発生方法
JP3246405B2 (ja) 楽音発生方法、楽音発生装置および楽音発生用プログラムを記録した記録媒体
JP3603638B2 (ja) 楽音発生方法
JP3632744B2 (ja) 音生成方法
JP3003559B2 (ja) 楽音生成方法
JP3095018B2 (ja) 楽音発生装置
JPH09179561A (ja) 楽音生成方法
JP3603849B2 (ja) 楽音発生方法
JP3627590B2 (ja) 音生成方法
JPH0997067A (ja) 楽音発生方法および楽音発生装置
JP3148803B2 (ja) 音源装置
JP2956552B2 (ja) 楽音発生方法および装置
JP2833485B2 (ja) 楽音発生装置
JP5732769B2 (ja) 楽音生成装置
JP2003280650A (ja) 変調波形発生装置
JP3871119B2 (ja) 変調波形発生装置
JPH10187155A (ja) カラオケ装置
CN101656067A (zh) 形成乐音波形的方法和装置

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: 20101208

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee