KR100411940B1 - 신호처리장치 - Google Patents

신호처리장치 Download PDF

Info

Publication number
KR100411940B1
KR100411940B1 KR1020020029921A KR20020029921A KR100411940B1 KR 100411940 B1 KR100411940 B1 KR 100411940B1 KR 1020020029921 A KR1020020029921 A KR 1020020029921A KR 20020029921 A KR20020029921 A KR 20020029921A KR 100411940 B1 KR100411940 B1 KR 100411940B1
Authority
KR
South Korea
Prior art keywords
program
memory
address
signal
sound
Prior art date
Application number
KR1020020029921A
Other languages
English (en)
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 JP24483294A external-priority patent/JP3358324B2/ja
Priority claimed from JP7210996A external-priority patent/JP3050779B2/ja
Application filed by 야마하 가부시키가이샤 filed Critical 야마하 가부시키가이샤
Application granted granted Critical
Publication of KR100411940B1 publication Critical patent/KR100411940B1/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
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0091Means for obtaining special acoustic effects
    • 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
    • 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/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • G10H1/08Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by combining tones
    • 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/18Selecting circuits
    • G10H1/183Channel-assigning means for polyphonic instruments
    • G10H1/185Channel-assigning means for polyphonic instruments associated with key multiplexing
    • G10H1/186Microprocessor-controlled keyboard and assigning means
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10KSOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
    • G10K15/00Acoustics not otherwise provided for
    • G10K15/08Arrangements for producing a reverberation or echo sound

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

본 발명은 악음신호(tone signal)에 소망하는 효과를 부여할 수 있는 전자악기에 사용되는 신호처리장치에 관한 것으로서, 다수의 채널에 의해 독립적으로 악음신호를 발생하는 음원수단과, 이 음원수단으로부터 발생된 각 채널의 악음신호에 대해 개별적으로 이펙트를 부여하며, 각 채널에서 발생된 악음신호에 고유한 악음제어정보에 의해 개별적으로 이펙트 파라미터를 제어하는 채널마다 이펙트부여수단을 구비한 것을 특징으로 한다.
이와 같이 구성된 본 발명의 전자악기는 발음채널마다 이펙트부여의 타이밍을 조정하여 이펙트부여시의 파라미터를 제어할 수 있다.

Description

신호처리장치{SIGNAL PROCESSING DEVICE}
본 발명은 악음신호에 소망하는 효과를 부여할 수 있는 전자악기에 사용되는 신호처리장치에 관한 것이다. 종래, 이펙터(효과부여장치)를 내장한 전자악기 등은 하나의 음색에 대해 하나 또는 다수의 이펙트를 부여하여 악음을 발생하고 있다. 예를 들면, 멀티팀버 음원 등과 같이 다수의 음색을 발생시키는 것에 대해서는 각 음색마다 하나 또는 다수의 이펙트를 부여하고 있었다.
그런데 종래의 전자악기는 음색마다 다른 이펙트를 부여할 수는 있으나, 키이조작에 따라 다른 타이밍으로 키이 온 또는 키이 오프가 발생하거나, 다른 값의 키이 벨로시티가 발생한 경우라도 같은 음색에 관한 한 이와 같은 키이 조작의 변화에 따라 이펙트 부여의 양태를 변화시키지는 못했다.
즉, 이펙트부여의 타이밍을 키이 온 또는 키이 오프의 발생타이밍에 따라 발음채널마다 다르게 하거나, 키이 벨로시티에 맞게 이펙트부여시의 파라미터를 발음채널마다 제어할 수는 없었다.
제1도는 제2도의 음원 및 이펙터의 상세구성을 도시한 도면이다.
제2도는 본 발명에 관한 전자악기의 전체구성을 도시한 하드블록도이다.
제3도는 제1도의 이펙트부여부에서 1채널분의 구성예를 도시한 도면이다.
제4도는 제3도의 변조계 이펙터중 플런저의 구체예를 도시한 도면이다.
제5도는 제3도의 연산계 이펙터중 익사이터의 구체예를 도시한 도면이다.
제6도는 2개의 지연메모리를 절환하여 댐프처리하는 이펙트부여부의 구성예를 도시한 도면이다.
제7도는 제2도의 이펙터를 디지탈신호처리 프로세서(DSP)로 구성하고, 제6도와 같이 지연메모리를 절환하여 댐프처리를 한 경우의 구체적 구성예를 도시한 도면이다.
제8도는 제7도의 마이크로 프로그램 실행의 타임슬롯과 옵셋 어드레스출력의 타임슬롯의 구체예를 도시한 도면이다.
제9도는 제7도의 지연메모리 구성예와 옵셋 어드레스 레지스터의 내용을 도시한 도면이다.
제10도는 본 발명의 신호처리 장치의 일실시예를 도시한 블록도이다.
제11도는 마이크로프로그램 메모리와 외부 램에 기억된 내용을 설명하는 도면이다.
제12도는 본 발명의 신호처리 장치를 포함한 전자악기의 일실시예를 도시한 블록도이다.
제13도는 본 발명에 따른 신호처리장치의 동작을 설명하기 위한 타임 챠트이다.
제14도는 본 발명에 따른 신호처리 장치의 마이크로프로그램 메모리부의 블록도이다.
제15도는 본 발명의 신호처리장치를 응용한 전자악기의 메인 루틴 일례를 도시한 플로챠트이다.
제16도는 제15도에 있어서 할당처리의 일례를 나타낸 플로챠트이다.
제17도는 제15도에 있어서 이펙트처리의 일례를 나타낸 플로챠트이다.
*도면의 주요부분에 대한 부호의 설명*
5:제1믹서 6:공간계 이펙트부여부
7:제 2 믹서 10:CPU
11:프로그램ROM 12:데이터 및 워킹(working)RAM
13:건반인터페이스 14:패널인터페이스
15:음원 16:이펙터
17:사운드 시스템 18:데이터 및 어드레스버스
19:건반 20:조작패널
22:어드레스 레지스터 25:플립플롭
26:앤드 회로 29:마이크로프로그램 메모리부
30:연산부 33:외부램
51:하이패스 필터 53:왜곡발생부
70:연산회로 71:인풋 레지스터
72:데이터레지스터 73:계수레지스터
74:저주파발진기 75:어드레스 레지스터
76:어드레스 제어회로 77:DSP데이터버스
78:지연메모리 79:마이크로 프로그램 레지스터
91:어드레스 카운터 93:비교기
94:에어리어 사이즈 레지스터 95:바닥어드레스 레지스터
96:가산기 97:셀렉터
98:카운터 110:프로그램 카운터
111,112,113:비교기 114,115,116:톱 스텝 레지스터
118:어드레스 레지스터
본 발명은 상술한 점을 감안하여 이루어진 것으로서, 발음채널마다 이펙트부여의 타이밍을 조정하거나, 이펙트부여시의 파라미터를 제어할 수 있는 전자악기에 사용되는 신호처리장치를 제공하는 것을 목적으로 한다.
본 발명의 또다른 목적은 프로그램의 실행에 영향을 받지 않고 신속하게 클리어할 수 있는 전자악기에 사용되는 신호처리장치를 제공하는데 있다.
본 발명에 관한 신호처리장치는
다수의 채널에 의해 독립적으로 악음신호를 발생하는 음원수단과, 이 음원수단으로부터 발생되는 각 채널의 악음신호에 대해 개별적으로 이펙트를 부여하는 것으로써, 각각의 채널에서 발생되는 악음신호에 고유의 악음제어정보에 의해 개별적으로 이펙트 파라미터를 제어하는 채널마다의 이펙트부여수단을 구비한 것이다.
또한, 본 발명의 전자악기에 의하면, 프로그램을 기억하는 프로그램 메모리와 상기 프로그램을 사용하는 메모리영역을 포함하는 기억수단과, 상기 메모리영역의 변경을 지시하는 지시수단과, 상기 지시수단의 지시에 따라 메모리영역을 변경하는 메모리영역 가변수단을 구비하고, 상기 프로그램 메모리로부터 판독된 프로그램의 지시에 따라 상기 변경된 메모리영역을 사용하여 신호처리를 하도록 하고 있다.
또, 본 발명의 전자악기에 의하면, 연주정보를 출력하는 연주정보 발생수단과, 상기 연주정보에 따라 악음발생 또는 악음처리를 위한 프로그램을 선택하는 선택수단과, 상기 선택된 프로그램에 따라 악음발생 또는 악음처리를 하는 연산수단과, 상기 선택된 프로그램이 사용하는 메모리영역을 할당하는 할당수단을 구비하고, 상기 선택된 프로그램은 상기 연산수단을 이용해서 연산처리를 행하며 그 연산결과를 상기 할당된 메모리영역에 기억시키고 판독함으로써 악음발생 또는 악음처리를 지시하도록 하고 있다.
또, 본 발명의 전자악기에 의하면 신호처리를 위한 프로그램을 기억하는 프로그램 메모리와, 상기 기억된 프로그램이 사용하는 다수의 메모리영역을 포함하는 메모리수단과, 상기 다수의 메모리영역중 적어도 하나의 메모리영역을 클리어하기 위한 지시를 하는 클리어 지시수단, 클리어지시받은 메모리영역을 상기 프로그램이 상기 메모리수단을 사용하지 않는 타이밍에서 클리어를 행하는 클리어수단을 구비하고 있다.
또한, 본 발명의 전자악기에 의하면, 연주정보를 출력하는 연주정보 발생수단과, 다른 알고리즘에 의거한 프로그램을 다수 기억하는 프로그램 기억수단과, 상기 연주정보에 따라 악음발생 또는 악음처리를 위한 프로그램을 상기 다수 기억된 프로그램중에서 선택하는 선택수단과, 상기 선택수단에서 선택된 프로그램을 상기 프로그램 기억수단으로부터 판독하는 프로그램 판독수단과 상기 프로그램 판독수단에 의해 판독된 프로그램에 따라 연산을 행하는 연산수단을 구비하고, 상기 선택된 프로그램에 의해 다른 연산처리를 행하여 악음발생 또는 악음처리를 행하도록 하고 있다.
본 발명에 관한 전자악기는 다수의 채널에 의해 독립적으로 악음신호를 발생하는 음원수단을 가진다. 이펙트부여수단은 이 음원수단으로부터 발생된 각 채널의 악음신호에 대해 개별적으로 이펙트를 부여한다. 따라서, 음원수단이 시분할 채널에 의해 독립적으로 악음신호를 발생하는 것이면, 이펙트부여수단은 이 시분할 채널의 각 악음신호에 대해 개별적으로 이펙트를 부여한다.
이 때, 이펙트부여수단은 각각의 채널에서 발생하는 악음신호에 고유의 악음제어정보(예를들면, 키이 온, 키이 오프, 벨로시티 등)에 의해 개별적으로 이펙트 파라미터(잔향타임, 플런저의 피드백계수 등)를 제어한다.
이에 따라, 종래 발음채널마다의 악음제어정보에 의해 이펙트가 제어되게 되므로, 새로운 음색의 변화를 기대할 수 있다. 또, 악기로서의 표현력이 풍부해진다는 효과가 있다.
또한, 부여되어 있는 이펙트가 변조계통의 이펙트(예를들면, 코러스, 플런저 등)나 지연계통의 이펙트(예를들면, 에코, 잔향 등)인 경우에는 이펙트부여수단은 지연메모리를 사용한다. 따라서, 이와 같은 채널에 대해 댐프처리가 행해졌을 경우에는 앞의 악음신호의 음이 지연메모리내에 소거되지 않고 남아서 새로운 악음 신호로 합성되어 출력할 수 있으므로, 본 발명에서는 그것을 방지하기 위해 다음과 같이 했다. 즉, 음원수단이 어느 하나의 채널에 대해 댐프처리를 행할 경우에 이펙트부여수단은 그 채널에 대한 이펙트부여시에 사용했던 지연메모리의 기억영역을 댐프처리 종료시 다른 기억영역으로 절환한다. 이에 따라, 새로운 악음신호를 발생할 경우에는 절환후의 지연메모리를 사용하게 되므로, 앞의 악음신호의 음이 외부로 출력되는 일이 없어진다.
이하, 본 발명의 일 실시예를 첨부도면에 따라 상세하게 설명한다.
제2도는 본 발명에 관한 전자악기의 전체구성을 도시한 하드블록도이다.
제2도의 실시예에 있어서, 전자악기 전체의 제어는 마이크로프로세서 유닛(CPU)(10), 프로그램ROM(11)과 데이터 및 워킹RAM(12)을 포함하는 마이크로 컴퓨터에 의해 행해진다.
CPU(10)는 이 전자악기 전체의 동작을 제어하는 것이다. 이 CPU(10)에 대해 데이터 및 어드레스버스(18)를 통해 프로그램R0M(11), 데이터 및 워킹RAM(12), 건반인터페이스(13), 패널인터페이스(14), 음원(15), 이펙터(16) 및 사운드 시스템(17)이 접속되어 있다.
프로그램ROM(11)은 CPU(1O)의 시스템 프로그램이나 악음에 관한 각종 파라미터(이펙트에 관련된 마이크로프로그램 등)나 각종 데이터를 격납하는 것으로써, 리드 온리 메모리(ROM)로 구성되어 있다.
데이터 및 워킹RAM(12)은 연주정보나 CPU(10)가 프로그램을 실행할 때 발생하는 각종 데이터를 일시적으로 기억하는 것으로, 랜덤 액세스 메모리(RAM)의 소정의 어드레스영역이 각각 할당되고, 레지스터 및 플래그로서 이용된다.
건반(19)은 발음해야 할 악음의 음고를 선택하기 위한 다수의 건반을 구비하고 있으며, 각 건반에 대응하여 키이 스위치를 가지고 있고, 또 필요에 따라 압력 검출장치 등의 터치검출수단을 가지고 있다.
건반(19)은 악음연주를 위한 기본적인 조작자이며 그 이외의 연주조작자여도 상관없음은 물론이다.
건반 인터페이스(13)는 발생해야 할 악음의 음고를 지정하는 건반(19)의 각 건반에 대응하여 배설된 다수의 키이스위치로 이루어진 회로를 포함하여 구성되어 있으며, 새로운 건반이 눌려졌을 때에는 그 압압된 건반의 키이코드(KC)를 포함하는 키이 온 이벤트정보를 출력하고, 건반이 새롭게 이건되었을 때에는 그 이건된 건반의 키이코드(KC)를 포함하는 키이 오프 이벤트정보를 출력한다. 또, 건반을 밑으로 누를 때의 압건조작속도 또는 압압력 등을 판별하여 터치데이터(IT)를 생성하는 처리를 행하고, 생성된 터치데이터를 벨로시티 데이터로서 출력한다.
조작패널(20)은 음색, 인벨로프, 이펙트 등을 선택, 설정, 제어하기 위한 각종 조작자를 포함하는 것이다. 패널인터페이스(14)는 조작패널(20)상의 어느 조작자가 조작되었는지를 검출하는 것이다.
따라서, 본 실시예에서는 조작패널(20)에 의해 선택된 음색 및 효과에 따라음원(15) 및 이펙터(16)의 파라미터가 마이크로컴퓨터에 의해 설정된다.
음원(15)은 다수의 채널(본 실시예에서는 32채널)로 악음신호의 동시발생이 가능하며, 데이터 및 어드레스버스(18)를 경유하여 인가된 연주정보(키이코드(KC), 키이 온 신호(KON), 터치데이터(IT), 각종 파라미터(TC, EG, EF))를 입력하고, 이 데이터에 의거해서 악음신호를 발생한다.
음원(15)에 있어서의 악음신호 발생방식은 어떠한 것을 사용해도 된다. 예를들면, 발생해야 할 악음의 음고에 대응하여 변화하는 어드레스 데이터에 따라 파형메모리에 기억된 악음파형 샘플치 데이터를 순차적으로 판독하는 메모리 판독방식 또는 상기 어드레스 데이터를 위상각 파라미터 데이터로서 소정의 주파수 변조연산을 실행하여 악음파형 샘플치 데이터를 구하는 FM방식, 혹은 상기 어드레스 데이터를 위상각 파라미터 데이터로 하여 소정의 진폭변조연산을 실행하여 악음파형 샘플치 데이터를 구하는 AM방식 등의 공지된 방식을 적절히 채용해도 된다.
이펙터(16)는 음원(15)으로부터의 악음신호를 입력하고, 그것에 상술한 조작패널(20)에서 설정된 효과를 부여하고, 사운드 시스템(17)에 출력한다.
사운드 시스템(17)은 앰프 등으로 구성되며, 이펙터(16)로부터의 효과부여 후의 악음신호를 스피커를 통해 발음한다. 또, 사운드 시스템(17)은 그 밖에도 CPU(10)로부터의 지령에 의해 악음발생시의 볼륨이나 정위치 등을 제어한다.
제1도는 제2도의 음원(15) 및 이펙터(16)의 상세 구성을 도시한 도면이다.
음원(15)은 제1채널(ch1)로부터 제32채널(ch32)까지의 32채널분의 악음신호를 각각의 이펙트부여부(EF1∼EF32)에 출력 한다.
이펙터(16)는 32채널분의 이펙트부여부(EF1~EF32)와, 제1믹서(5)와, 공간계 이펙트부여부(6)와, 제2믹서(7)로구성된다.
이펙트부여부(EF1~EF32)는 음원(15)의 각 채널(ch1∼ch32)로부터의 악음신호에 대해 개별적으로 소정의 효과를 부여하고, 제1믹서(5)에 출력한다. 이 때 이펙트부여부(EF1~EF32)는 각각 데이터 및 어드레스버스를 통해 입력되는 각 채널(ch1∼ch32)에 대응하는 키이 온 신호, 키이 오프 신호, 벨로시티(velocity)신호 및 인벨로프신호 등에 따른 이펙트 부여처리를 행한다. 또한, 이펙트부여부 중에는 이들 신호에 따른 이펙트부여를 행하지 않는 것도 있다.
예를들면, 이펙트부여부의 이펙트 타입이 잔향 이펙트인 경우에는 잔향타임을 각 채널의 벨로시티신호에 따라 변화시키거나, 잔향음을 각 채널의 키이 온 신호로 발음하고, 키이 오프 신호에서 댐프처리를 한다. 즉, 벨로시티신호가 강한 경우에는 잔향타임을 길게 하고, 벨로시티신호가 약할 경우에는 잔향타임을 짧게 한다.
이펙트부여부의 이펙트 타입이 플런저인 경우에는 플런저의 빗살형상 필터의 지연시간을 인벨로프신호에 의해 제어하거나, 그 피드백계수를 벨로시티신호로 제어하거나, 익사이터의 경우에는 그 구조상태를 벨로시티신호로 제어하거나, 피치 체인지의 경우에는 그 이조량을 인벨로프신호나 벨로시티신호로 제어한다.
제1믹서(5)는 각 이펙트부여부(EF1∼EF32)로부터 출력되는 효과부여 후의 악음신호를 임의의 조합으로 믹싱하고, 우측채널(R1) 및 좌측채널(L1)의 악음신호로서 제2믹서(7)에 출력한다. 공간계 이펙트부여부(6)는 제1믹서(5)에 의해 믹싱된 악음신호에 소정의 공간계 이펙트를 부여하고, 부여된 악음신호를 우측채널(R2) 및 좌측채널(L2)의 악음신호로서 제2믹서(7)에 출력한다.
제2믹서(7)는 제1믹서(5)로부터 출력된 우측채널(R1)의 악음신호와 공간계 이펙트부여부(6)로부터 출력된 우측채널(R2)의 악음신호를 소정의 계수로 믹싱하여 최종적인 우측채널(R)의 악음신호로서 사운드 시스템(17)에 출력한다. 마찬가지로, 제2믹서(7)는 제1믹서(5)로부터 출력되는 좌측 채널(L1)의 악음신호와 공간계 이펙트부여부(6)로부터 출력되는 좌측채널(L2)의 악음신호를 소정의 계수로 믹싱하여 최종적인 좌측채널(L) 악음신호로서 사운드 시스템(17)에 출력한다.
제3도는 제1도의 이펙트부여부 1 채널분의 구성예를 도시한 도면이다. 이펙트부여부는 직렬로 접속된 연산계 이펙터(3C)와, 변조계 이펙터(3M)와, 지연계 이펙터(3D)로 구성된다. 연산계 이펙터(3C)는 디스토션, 필터, 익사이터 등의 이펙트로 구성되며, 변조계 이펙터(3M)는 코러스, 플런저, 피치 체인저 등의 이펙트로 구성되고, 지연계 이펙터(3D)는 에코, 딜레이, 얼리 리플렉션, 잔향 등의 이펙트로 구성된다.
각 이펙터(3C)(3M)(3D)는 키이 온 신호 또는 키이 오프 신호 및 벨로시티 신호에 따라 각 이펙트처리의 파라미터가 리얼타임으로 제어되도록 되어 있다. 또한, 이 접속예는 일예로써, 각 이펙터(3C)(3M)(3D)를 병렬로 접속해도 되고, 직병렬 접속을 조합해도 됨은 물론이다.
제4도는 제3도의 변조계 이펙터(3M)중 플런저의 구체예를 도시한 도면이다. 이 플런저는 가산기(4A), 딜레이 라인(4B), 승산기(4C), 변환부(4D), 인벨로프 발생기(EG)(4E) 및 가산기(4F)로 구성된다. 이 중 가산기(4A), 딜레이 라인(4B) 및 승산기(4C)는 플런저의 피드백 루프를 구성한다. 가산기(4A)는 입력신호와 승산기(4C)로부터의 피드백신호를 가산하고, 그것을 딜레이 라인(4B)에 출력한다. 딜레이 라인(4B)은 가산기(4A)로부터의 가산신호를 가산기(4F)로부터의 판독어드레스(RA)에 따른 시간만큼 지연시켜서 승산기(4C)에 출력함과 동시에 플런저 효과부여 후의 신호로서 외부에 출력한다. 승산기(4C)는 딜레이 라인(4B)으로부터의 지연신호에 대해 변환부(4D)로부터의 승산계수를 곱하고, 그 승산신호를 피드백신호로 하여 가산기(4A)에 출력한다. 이 플런저에 있어서 , 딜레이 라인(4B)의 지연시간은 가산기(4F)로부터 입력되는 판독어드레스(RA)에 따라 결정된다. 즉, 딜레이 라인(4B)은 판독어드레스(RA)에 의해 지시된 어드레스에 격납되어 있는 신호를 출력하므로, 이 판독어드레스(RA)가 클 경우에 지연시간은 커지고, 작을 경우에 지연시간은 작아진다. 이 때, 가산기(4F)는 옵셋 어드레스(OSA)와 인벨로프 발생기(4E)로부터의 인벨로프신호의 가산치를 판독어드레스(RA)로서 딜레이 라인(4B)에 출력하고 있으므로, 이 판독어드레스(RA)는 키이 온의 입력에 따라 발생한 인벨로프신호와 옵셋 어드레스(OSA)의 가산치에 따라 시간적으로 변화하게 된다. 또, 인벨로프신호는 키이 오프의 입력에 따라 정지한다. 또한, 변환부(4D)는 벨로시티신호를 입력하고, 그것을 승산계수로 변환하여 승산기(4C)에 공급한다. 따라서, 승산기(4C)는 벨로시티신호에 따른 승산계수를 딜레이 라인(4B)으로부터의 지연신호에 곱하게 된다.
이상과 같이, 본 실시예의 플런저에 의하면 키이 온/오프신호 및 벨로시티신호에 따라 파라미터(피드백계수나 지연시간)가 리얼타임으로 제어된다. 또, 본 실시예에서는 피드백계수나 지연시간을 변화시키는 경우에 대해 설명했으나, 어느것이든 한쪽만을 변화시켜도 상관없음은 물론이다.
제5도는 제3도의 연산계 이펙터(3C)중 익사이터의 구체예를 도시한 도면이다. 이 익사이터는 하이패스필터(HPF)(51), 승산기(52), 왜곡(디스토션) 발생부(53), 승산기(54), 가산기(55), 변환부(56), 인벨로프발생기(57) 및 가산기(58)로 구성된다.
하이패스필터(51)는 변환부(56)로부터 컷 오프 주파수(fc)보다도 위의 주파수대역을 통과시키며, 그것을 승산기(52)에 출력한다. 승산기(52)는 하이패스필터(51)로부터의 고주파신호에 대해 변환부(56)로부터의 승산계수를 곱하고, 그 승산신호를 왜곡발생부(53)에 출력한다. 왜곡발생부(53)는 승산기(52)로부터의 승산신호를 클리핑처리나 비선형테이블 변환처리 등에 의해 배음을 부가하고, 배음이 부가된 왜곡신호를 승산기(54)에 출력한다. 승산기(54)는 왜곡발생부(53)로부터의 왜곡신호에 대해 가산기(58)로부터의 승산계수를 곱하고, 그 승산신호를 피드 포워드신호로서 가산기(55)에 출력한다. 가산기(55)는 입력신호와 승산기(54)로부터의 피드 포워드신호를 가산하고 그것을 익사이터효과 부여 후의 신호로서 외부에 출력한다.
변환부(56)는 벨로시티 신호를 입력하고, 그것을 소정의 규칙에 따른 컷 오프 주파수(fc)로 변환하여 하이패스필터(51)에 공급함과 동시에 마찬가지로 소정의 규칙에 따른 승산계수로 변환하여 승산기(52)에 공급한다. 따라서, 하이패스필터(51)의 컷 오프 주파수(fc)가 벨로시티 신호에 따라 변화되므로, 하이패스필터(51) 통과 후의 고주파신호의 스펙트럼분포가 흔들리지 않게 된다. 또, 승산기(52)는 벨로시티신호에 따른 승산계수를 하이패스필터(51)로부터의 고주파신호에 곱하게 된다. 또한, 이 익사이터에 있어서는 승산기(54)의 승산계수는 가산기(58)로부터의 가산신호에 의해 결정된다. 즉, 가산기(58)는 옵셋계수(OSK)와 인벨로프 발생기(57)로부터의 인벨로프신호의 가산치를 승산계수로서 승산기(54)에 출력하므로, 승산기(54)의 승산계수는 키온의 입력에 따라 발생한 인벨로프신호와 옵셋계수(OSK)의 가산치에 따라 시간적으로 변화하게 된다. 또한, 인벨로프신호는 키이 오프의 입력에 따라 정지한다. 이 익사이터에 있어서, 승산기(52)(54)의 승산계수에 의해 피드 포워드계수가 결정된다.
이상과 같이, 본 실시예의 익사이터에 의하면 키이 온/오프신호 및 벨로시티신호에 따라 파라미터(컷 오프 주파수(fc)나 피드 포워드계수)가 리얼타임으로 제어된다. 또한, 본 실시예에서는 승산기(52)(54)의 승산계수 및 하이패스필터(5)의 컷 오프 주파수를 변화시키는 경우에 대해 설명했으나, 이중 최소한 하나를 변화시켜도 됨은 물론이다.
상술한 실시예에서는 음색이 1압건 1음색의 경우에 대해 설명했으나, 1압건 2음색(듀얼)의 경우에는 다음과 같이 제어한다. 즉, 음원(15)은 32채널에 의해 동시발음 가능하므로, 그중 제1채널(ch1)에서 제16채널(ch16)까지가 제1음색을 발음하도록 설정하고, 제1채널(ch17)에서 제32채널(ch32)까지가 제2음색을 발음하도록 설정한다. 마찬가지로 이펙트부여부(EF1~EF16)는 제1음색에 대응하는 이펙트를 부여하고, 이펙트부여부 (EF17∼EF32)는 제2음색에 대응하는 이펙트를 부여하도록 설정한다.
따라서, 건반 인터페이스(13)로부터 키이 온 신호가 출력되면, CPU(10)는 음원(15)의 제1채널(ch1)에서 제16채널(ch16) 중에서 발음가능한 빈 채널을 검색한다. 그 결과, 예를들면 제4채널(ch4)이 빈 채널이라고 하면 그 제4채널(ch4)과, 이것에 16을 가산한 제20채널(ch20)에 대해 발음지시를 한다. 마찬가지 로 CPU(10)는 이펙트부여부(EF4)와 이펙트부여부(EF20)에 대해 각각의 제1음색 및 제2음색에 대응하는 이펙트 파라미터를 출력한다. 예를들면, 이펙트부여부(EF4)에는 벨로시티신호만을 출력하고, 이펙트부여부(EF20)에는 인벨로프신호만을 출력 한다. 이에 따라 1압건 2음색(듀얼)의 경우에도 적절한 이펙트 부여처리가 가능해진다.
또한, 빈 채널을 검색한 결과, 빈 채널이 존재하지 않을 경우에는 통상의 트렁케이트처리에 의해 감쇄가 가장 진행된 채널을 강제적으로 댐프하고, 거기에 발음을 지시한다. 그러나, 이와 같은 트렁케이트처리는 이펙트부여부에 적용할 수는 없다. 왜냐하면, 이펙트부여부의 이펙트 종류에 따라서는 댐프해도 바로 음이 소거되지 않는다는 문제가 있기 때문이다. 즉, 입력에 대해 거의 시간차가 없어서 효과부여후의 신호를 출력할 수 있는 연산계 이펙터(3C)는 댐프에 의해 바로 음이 소거되지만, 딜레이 라인 등의 지연메모리를 사용하는 변조계 이펙터(3M)나 지연계 이펙터(3D)는 음원채널은 댐프되었음에도 불구하고, 일단은 음이 출력되어 버린다.
그래서, 본 실시예에서는 변조계 이펙터(3M) 및 지연계 이펙터(3D)에 대해 2개의 지연메모리를 형성하고, 음원채널의 댐프가 종료된 시점에서 지연메모리를 절환하여 클리어가 끝난 지연메모리를 사용하도록 했다. 이에 따라, 변조계 이펙터 ( 3 M ) 나 지연계 이펙터 (3D)로부터 출력되는 음을 음원채널의 댐프와 같이 댐프할 수 있다.
제 6도는 이 2개의 지연 메모리를 절환하여 댐프처리 하는 이펙트부여부의 구성예를 도시한 도면이다. 도면에 있어서, 음원(15)의 제1채널(ch1)에는 CPU(10)로부터의 발음지시와 댐프지시가 입력된다. 이펙트부여부(EF1)에는 음원(15)의 제1채널(ch1)로부터의 악음신호와 CPU(1O)로부터의 댐프지시가 입력된다. 이펙트부여부(EF1)는 셀렉터(61)를 통해 2개의 지연메모리(제1메모리(62), 제2메모리(63))에 접속된다. 셀렉터(61)는 CPU(10)로부터의 절환지시에 따라 두개의 지연메모리(제1메모리(62), 제2메모리(63))중 어느 한쪽을 이펙트부여부(EF1)에 접속한다.
따라서, 트렁케이트처리에 의해 제6도의 제1채널(ch1)이 댐프의 대상이 되면, CPU(10)는 음원(15)의 제1채널(ch1) 및 이펙트부여부(EF1)에 대해 댐프지시를 출력한다. 이 때, 이펙트부여부(EF1)에는 제1메모리(62)가 접속되어 있다. 그리고, CPU(10)가 댐프종료 시점에서 음원(15)의 제1채널(ch1)에 발음지시를, 셀렉터(SEL)(61)에 절환지시를 출력하면 이펙트부여부(EF1)에는 제2메모리(63)가 접속되고, 제1메모리(62)는 분리된다. 이에 따라, 새로이 발음되는 악음신호는 제2메모리(63)에 기록되게 되므로, 제1메모리(62)에 남아 있는 음은 외부로 출력되지 않게 된다.
또한, 이 일련의 처리 후에 절환지시에 의해 이펙트부여부(EF1)로부터 분리된 제1메모리(62)내의 데이터는 다음의 트렁케이트처리에 대비해서 클리어된다.
제7도는 제2도의 이펙터(16)를 디지탈신호처리 프로세서(DSP)로 구성하고, 제6도와 같이 지연메모리를 절환하여 댐프처리를 하는 경우의 구체적 구성예를 도시한 도면이다.
DSP는 연산회로(70), 인풋레지스터(71), 데이터레지스터(72), 계수레지스터(73), 저주파발생기(LFO)(74), 어드레스 레지스터(75), 어드레스 제어회로(76), DSP 데이터버스 (77), 외부지연메모리 (78), 마이크로프로그램 레지 스터(79), 옵셋 어드레스 레지스터(7A), 클리어 회로(7B) 및 셀렉터(7C)(7D)(7E)로 구성된다. DSP는 음원(15)으로부터 공급되는 32채널(ch1∼ch32)의 악음신호에 대해 각각 시분할처리에 의해 다른 이펙트를 부여할 수 있게 구성되어 있다.
DSP는 제8도에 도시한 바와 같은 마이크로 프로그램실행의 타임슬롯 사이에 각 채널(ch1∼ch32)에 대응하는 이펙트부여부(EF1∼EF32)의 이펙트부여처리를 행한다.
연산회로(70)는 승산기와 가산기로 이루어지며 인풋 레지스터(71)로부터의 각 채널(ch1∼ch32)의 악음신호, 데이터레지스터(72)로부터의 데이터, 계수레지스터(73)로부터의 계수데이터 및 LFO(74)로부터의 저주파신호를 입력하고 마이크로 프로그램 레지스터(79)로부터의 마이크로 프로그램에 따라 연산을 행한다.
인풋 레지스터(71)는 음원(15)으로부터 각 채널(ch1∼ch32)의 악음신호가 공급되고있는 기간내에 마이크로프로그램 레지스터(79)로부터의 기록신호를 입력함으로써 그 악음신호를 일시적으로 기억하고, 소정 타이밍에 의해 연산회로(70)에 공급한다.
데이터레지스터(72)는 연산회로(70)의 연산 결과 데이터나 지연메모리(78)로부터의 지연데이터를 일시적으로 기억하고 연산회로(70)에 공급한다. 데이터레지스터(72)는 다수의 기억영역을 가지며, 기록어드레스 및 판독어드레스의 지정은 마이크로 프로그램 레지스터(79)로부터의 마이크로 프로그램에 따라 소정의 타이밍에서 실시된다.
계수레지스터(73)는 연산회로(70)가 행하는 1샘플링 주기당 다수(n회)의 연산에 대해 그 연산마다 다른 계수를 공급하기 위한 레지스터이며, n단의 시프트 레지스터로 구성되어 있고, 1샘플링 주기에 한 번 돌도록 되어있다. 또한, 계수레지스터(73)내의 계수는 CPU버스(데이터 및 어드레스버스)(18)를 통해 CPU(10)에 의해 다시 쓰도록 되어 있다. 이에 따라, 이펙터연산 등의 계수를 외부콘트롤러, 벨로시티신호, 인벨로프신호 등에 의해 리얼타임으로 변화시킬 수 있다.
저주파발진기(LFO)(74)는 삼각파, 톱니파 또는 사인파 등을 출력하며, 진폭변조나 지연시간 변조 등을 하기 위한 변조파형을 연산회로(70) 및 어드레스제어회로(76)에 출력한다.
지연메모리(78)는 DSP외부에 배설된 대용량의 기억소자(RAM 등)으로 구성된다. DSP는 이 지연메모리(78)에 데이터를 기록하고, 기록된 데이터를 소정 시간 경과후에 판독함으로써 지연신호를 작성한다. 발음채널수는 32이므로 지연메모리(78)는 이것과 같은 32의 뱅크영역을 가지면 되는데, 본 실시예에서는 지연메모리(78)의 댐프영역을 적당히 절환하여 댐프처리를 행하도록 하고 있으므로, 지연메모리(78)는 채널수 32보다 많은 뱅크수, 즉 전부 40개의 뱅크영역으로 분할되어 있다. 본 실시예에서는 제9a도에 도시한 바와 같이, 지연메모리(78)는 소정용량의 기억영역으로 이루어진 40개의 뱅크영역으로 구성되어 있다. 각 뱅크영역의 선두어드레스는 「A1」,「A2」,‥‥,「A40」이다.
어드레스 레지스터(75)는 지연메모리(78)의 각 뱅크영역의 선두어드레스 「A1」,「A2」,‥‥,「A40」를 「0」으로 했을 경우의 상대 어드레스를 기억하고 있으며, 마이크로 프로그램 레지스터(79)로부터의 액세스타이밍에 따른 어드레스를 출력한다.
옵셋 어드레스 레지스터(7A)는 각 채널(ch1∼ch32)마다 각 뱅크영역의 선두어드레스를 기억하고 있다. 예를들면, 옵셋 어드레스 레지스터(7A)의 내용이 제9b도와 같은 경우에는 제1채널(ch1)은 선두어드레스「A6」의 뱅크영역을 지연메모리로서 사용한다. 마찬가지로 제2채널(ch2)은 선두어드레스 「A5」의 뱅크영역을, 제3채널(ch3)은 선두어드레스「A1」의 뱅크영역을, 제5채널(ch5)은 선두어드레스 「A2」의 뱅크영역을, 제7채널(ch7)은 선두어드레스「A4」의 뱅크영역을, 제8채널(ch8)은 선두어드레스「A3」의 뱅크영역을, 제32채널(ch32)은 선두어드레스「A9」의 뱅크영역을 각각 지연메모리로서 사용하게 된다. 또한, 제4채널(ch4) 및 제6채널(ch6)과 같이 뱅크영역의 할당이 없는 경우에는 이들 채널은 지연메모리를 사용하지 않는다는 것을 의미한다.
따라서, 각 마이크로 프로그램실행의 타임슬롯마다 제8도의 옵셋 어드레스출력의 타임슬롯으로 나타낸 바와 같은 타이밍에서 옵셋 어드레스가 옵셋 어드레스 레지스터(7A)로부터 어드레스 제어회로(76)에 공급된다. 즉, 채널(ch1)에 대응하는 이펙트부여부(EF1)는 옵셋 어드레스「A6」를 선두어드레스로 하는 뱅크영역을 지연메모리로서 사용하여 이펙트부여처리를 행한다. 마찬가지로 각 채널에 대응하는 이펙트부여부(EF2∼EF32)는 옵셋 어드레스 레지스터(7A)로부터의 옵셋 어드레스를 선두어드레스로 하는 뱅크영역을 지연메모리로서 사용하여 이펙트부여처리를 행한다.
예를들면, 상술한 경우와 마찬가지로 트렁케이트처리에 의해 어느 하나의 채널이 댐프의 대상이 되면 CPU(10)는 음원(15)의 해당되는 채널에 대해 댐프지시를 출력한다. 그리고, 그 채널의 댐프가 종료된 시점에서 음원(15)의 그 채널에 대해 발음지시를 함과 동시에 그 채널의 옵셋 어드레스 레지스터(7A)의 옵셋 어드레스값을 다시 쓴다. 이에 따라, 새로이 발음되는 악음신호는 지연메모리(78)내의 다른 뱅크영역에 기록되게 되므로, 앞의 뱅크영역에 남아있는 음은 의부로 출력되지 않게된다. 그리고, CPU(10)는 변경전의 뱅크영역내의 데이터를 다음의 트렁케이트처리에 대비하여 클리어한다. 이 클리어처리는 CPU(10)가 클리어회로(7B)에 그 변경전의 뱅크영역의 선두어드레스, 즉 옵셋 어드레스를 기록함으로써 클리어회로(7B)에 의해 행해진다.
어드레스제어회로(76)는 어드레스 레지스터(75)로부터의 상대어드레스와 옵셋 어드레스 레지스터(74)로부터의 옵셋 어드레스를 가산하며, 지연메모리(78)내의 절대어드레스를 작성하고, 그것을 1샘플링 주기마다 하나씩 증가시켜서 셀렉터(7D)에 출력한다. 또한, 도시하지는 않았으나, 어드레스 제어회로(76)는 DSP버스(77)로부터도 상대어드레스의 공급을 받는 경우가 있다. 예를들면, 어드레스를 연산에 의해 구할 필요가 있을 때인데, 이 때는 연산회로(70)를 이용하여 연산된 어드레스가어드레스 제어회로(76)에 공급된다.
마이크로 프로그램 레지스터(79)는 각 이펙트부여부(EF1∼EF32)에 각각 대응하는 마이크로 프로그램을 격납하고 있다. 이펙트의 종류를 변경할 경우에는 이 마이크로 프로그램을 다시 씀으로써 실현된다. 또, 개선해야 할 마이크로 프로그램은 CPU버스(18)를 통해 접속되어 있는 프로그램(11)에 다수 기억되어 있으므로, 조작패널(20)에 의한 효과지정에 따라 CPU(1O)가 마이크로 프로그램을 프로그램ROM(11)으로부터 판독하여 마이크로 프로그램 레지스터(79)에 기록한다.
클리어회로(7B) 및 셀렉터(7C)(7D)(7E)는 댐프처리를 하기 위해 지연메모리(78)의 뱅크영역이 절환되었을 경우에 그 절환전의 뱅크영역내의 데이터를 클리어하는 것이다.
즉, 셀렉터(7C)는 DSP데이터버스(77)로부터의 데이터 및 클리어데이터(로우 레벨 "0")중 어느 한쪽을 지연메모리(78)의 데이터입력단자(DI)에 공급한다. 셀렉 터(7D)는 어드레스 제어회로(76)로부터의 어드레스 및 클리어회로(7B)로부터의 어드레스중 어느 한 쪽을 지연메모리(78)의 어드레스단자(ADR)에 공급한다. 셀렉터(7E)는 마이크로 프로그램 레지스터(79)로부터의 판독/기록제어신호 및 클리어회로(7B)로부터의 기록제어신호 중 어느 한 쪽을 지연메모리(78)의 판독/기록단자(R/W)에 공급한다.
클리어회로(7B)는 마이크로 프로그램 레지스터(79)로부터 지연메모리(78)에 대한 액세스신호(판독/기록제어신호)가 공급되고 있는지의 여부를 검출하고, 액세스신호가 공급되고 있을 경우에는 셀렉터(7C)를 DSP데이터버스(77)쪽에, 셀렉터 (7D)를 어드레스 제어회로(76)쪽에, 셀렉터(7E)를 마이크로 프로그램 레지스터(79)쪽에 각각 접속한다. 한편, 액세스신호가 공급되고 있지 않을 경우에는 셀렉터(7C)를 클리어데이터쪽에, 셀렉터(7D)(7E)를 클리어회로(7B)쪽에 접속한다. 즉, 클리어회로(7B)는 마이크로 프로그램 레지스터(79)가 지연메모리(78)를 액세스하지 않을 때를 적당히 가늠하여 지연메모리(78)의 뱅크영역 데이터를 1어드레스씩 클리어한다.
다음에 DSP가 행하는 트렁케이트처리에 대해 설명한다.
먼저, 제1채널(ch1)이 댐프의 대상이 되면 CPU(10)는 음원(15)의 제1채널(ch1)에 대해 댐프지시를 츨력한다. 그리고, 제1채널(ch1)의 댐프처리가 종료된 시점에서 제1채널(ch1)에 대해 발음지시를 행함과 동시에 옵셋 어드레스 레지스터(7A)의 옵셋 어드레스값을「A6」으로부터 클리어가 끝난 다른 뱅크영역의 옵셋 어드레스, 예를들면「A1O」으로 다시 쓴다. 이에 따라, 새로이 발음되는 악음신호를 지연메모리(78)의 옵셋 어드레스「A10」뱅크영역에 기록하게 된다.
다음에, CPU(10)는 클리어회로(7B)에 변경전 뱅크영역의 선두어드레스「A6」를 기록한다. 선두어드레스「A6」가 기록된 클리어회로(7B)는 마이크로 프로그램레지스터(79)가 지연메모리(78)를 액세스하고 있지 않을 때를 적당히 가늠하고 셀렉터(7C)(7D)(7E)를 절환하여 지연메모리(78)의 뱅크영역「A6」내의 데이터를 어드레스씩 클리어한다. 그리고, 클리어처리가 종료된 시점에 클리어회로(7B)는 CPU(10)에 클리어처리의 종료를 출력한다. CPU(10)는 그 밖에도 클리어할 뱅크영역이 존재하는 경우에는 마찬가지로 클리어회로(7B)에 그 뱅크영역의 선두어드레스를 기록하고, 클리어처리를 행하게 한다. 이와 같이, DSP는 트렁케이트처리시에 지연메모리(78)의 뱅크영역을 절환함으로써 음원채널은 댐프했음에 불구하고, 일단은 음이 출력되어 버린다는 단점을 제거할 수 있다.
앞에서 설명한 바와 같이, 본 발명의 제1실시예에 의한 전자악기에 의하면, 발음채널마다 이펙트부여의 타이밍을 조정하여 이펙트부여시의 파라미터를 제어할 수 있는 효과가 있다.
다음에, 본 발명의 다른 실시예를 첨부도면에 따라서 설명한다.
제12도는 본 발명의 다른 실시예에 관한 신호처리장치를 구비한 전자악기의 회로구성을 도시한 것으로서, 이 전자악기에서는 악기발생, 효과부여등이 마이크로 컴퓨터에 의해 제어되게 되어 있다.
어드레스ㆍ데이터버스(46)에는 CPU(중앙처리장치)(50), RAM(49), R0M(48), 건반(47), LCD(40), 조작자(41), 음원(42), DSP(43)등이 접속되어 있다.
건반(47)은 다수의 키이를 가진 것으로서, 각 건반을 조작하면 그 조작이 키이 조작정보로 검출되도록 되어 있다. 연주정보 입력수단으로는 건반(47)외에 MIDI 규격에 의거한 연주정보 수신장치를 어드레스ㆍ데이터버스(46)에 접속하고, 다른 MIDI기기로부터 연주정보를 입력하도록 해도 된다.
CPU(50)는 ROM(48)에 기억되어 있는 프로그램에 따라 악음발생, 효과부여 등을 위한 각종 처리를 실행하는 것이다. 악음발생에 관하여 CPU(50)는 건반(47)에서 압건된 키이를 검출하는 처리, 압건된 키이에 관한 음고정보 및 키이 온 신호를 음원(42)에 공급하여 디지탈 악음신호를 발생시키는 처리 등을 행한다.
음원(42)은 각각 디지탈 악음신호나 여진파형신호를 발생하기 위한 다수의 악음채널을 가진 것으로, 이들 채널로부터의 악음신호는 분할적으로 DSP(43)에 공급된다. 건반(47)에서 다수의 키이가 동시에 눌리면, 이들 키이에 대응하는 음고정보 및 키이 온 신호가 다수의 악음발생채널에 공급되며, 악음발생채널로부터 악음신호가 각각 동시에 발생된다.
음원(42)에서 발생된 악음신호 또는 여진파형신호는 DSP(43)로 전송되어 각종 효과부여를 위한 처리나 악음생성을 위한 처리를 행한다. 외부RAM(33)은 DSP(43)의 내부에 기억된 마이크로프로그램의 지시에 따라 데이터의 기록, 판독을 위해 사용된다. DSP(43)와 외부RAM(33)의 상세한 동작에 대해서는 후술한다.
DSP(43)에서 처리된 악음신호는 DAC(44)에 출력된다. DAC(44)에서는 디지 탈/아날로그변환을 하며, 변환된 아날로그신호는 사운드 시스템(45)으로 전송된다.사운드 시스템(45)은 증폭기와 스피커로 구성되며, 아날로그신호를 소정의 레벨까지 증폭시킨 뒤 스피커에 의해 음향에너지로서 방음된다.
제11도는 본 발명에 관한 신호처리장치의 동작을 설명하기 위한 도면으로서, DSP(43)의 내부에 구비된 마이크로프로그램 메모리에 기억된 다수의 프로그램 각각이 사용하는 외부RAM(33)의 영역이 표시되어 있다. 도면에서는 마이크로프로그램 메모리에 6개의 프로그램이 기억되어 있다. 이 6개의 프로그램은 CPU(50)의 지시에 의해 ROM(48)에 기억되어 있는 다수의 프로그램중에서 6개를 선택하여 마이크로프로그램 메모리에 전송된다. 본 실시예에서는 DSP(43)가 1샘플링 주기에서 실행할 수 있는 프로그램 스텝수를 512로 하는데, 마이크로프로그램 메모리는 512스텝이상 기억하는 용량이어도 상관없다. 이는 순간적으로 프로그램을 할당하기 위해 할당할 가능성이 있는 프로그램을 미리 로드해 둘 필요가 있기 때문이다.
실제로 실행되는 프로그램은 마이크로프로그램 메모리에 전송된 프로그램중 프로그램 스텝의 합계가 512 이하가 되도록 선택된다. 또, 같은 프로그램을 1샘플링 주기중에서 몇번이든 지정하여 실행해도 된다. 또한, 프로그램의 실행순서도 자유로이 변경할 수 있다. 어떤 조합이든 상관없으나, 본 실시예에서는 1샘플링 주기에 실행할 수 있는 프로그램의 수는 4개까지로 한다.
제11도에 도시된 마이크로프로그램 메모리중 망으로 표시되어 있는 프로그램은 실행되는 프로그램이며, 이들 프로그램이 사용하는 외부RAM의 영역은 화살표로 표시되어 있다. 외부RAM(33)의 영역은 5개로 나뉘어지며, 그 중 영역1은 프로그램 1이, 영역2는 프로그램 4가, 영역4는 프로그램 2가, 영역5는 프로그램 6이 사용되고 있음을 나타낸다. 또한, 영역3은 어느 프로그램에 의해서도 사용되고 있지 않아 빈 영역임이 표시되어 있다.
이들 영역은 여러가지 상황에 따라 크기를 변경할 수 있다. 또한, 어느 프로그램이 어느 영역을 사용하는가는 자유로이 설정할 수 있으며, 프로그램에 의해 사용되고 있는 영역의 장소를 변경하는 것도 가능하다. 예를들면, 프로그램 1이 딜레이 이펙트 프로그램인 경우, 조작자(41)에 의해 설정된, 또는 미리 정해진 딜레이량에 따라 영역 1의 크기를 동적으로 변화시키는 것이 가능해진다. 또, 피드백 루프를 포함하는 알고리즘의 음원프로그램이 프로그램 4에 기억되어 있을 경우, 예를들면 건반(47)으로부터의 새로운 압건에 대응하여 지금까지 사용하였던 영역 2를 클리어되어 있는 영역 3에 동적으로 어사인할 수 있게 되어 있다.
제10도는 본 발명에 따른 신호처리장치의 내부구성을 설명하기 위한 도면이다. 91은 어드레스 카운터이고, 카운터(92), 비교기(93), 에어리어 사이즈 레지스터(94), 바닥어드레스 레지스터(95), 가산기(96)로 구성되어 있다. 어드레스 카운터(91)는 다수이며, 그 수는 1샘플링 주기에 실행할 수 있는 프로그램의 수와 같다. 이 실제로 동작하는 프로그램을 채널이라 부르기로 한다. 본 실시예에서는 최대 4개의 채널이 있으며, 샘플링 주기의 초기부터 채널A, 채널B, 채널C, 채널D가 순차적으로 실행된다.
각 채널에 할당된 프로그램은 마이크로프로그램 메모리에 기억되어 있는 프로그램중에서 자유로이 선택할 수 있다. 제13도에는 각 채널에 할당된 프로그램이 1샘플링 주기내에서 순차적으로 실행되는 모습이 표시되어 있다. 채널 A에는 프로그램 1이, 채널 B에는 프로그램 4, 채널 C에는 프로그램 2가 할당되어 있기 때문에, 할당된 프로그램의 순번은 마이크로프로그램 메모리에 기억된 순번과 관계없음을 알 수 있다. 또한, 채널(D)에는 프로그램 6이 할당되어 있으나, 이 프로그램 6을 이미 채널B에서 실행된 프로그램 4를 할당해도 된다.
이와 같이, 순번과 회수는 자유로이 할당되지만, 각 채널에 할당된 프로그램의 합계 스텝은 1샘플링 주기에서 실행할 수 있는 총 스텝수를 넘는 일이 없으므로 할당에는 주의를 요한다. 또, 스텝의 합계는 총 스텝수 이하여도 프로그램이 최후까지 실행되지 않는 동안에 다음 채널에 할당된 프로그램이 실행되지 않도록 해야 한다. 이는 CPU가 관리함으로써 해결된다.
제10도로 돌아가서 설명을 계속한다. 카운터(92)에는 제13도에 도시한 바와 같은 샘플링 주기에 일치하는 주기를 갖는 φ0의 클록이 공급되고 있으므로, 카운터(92)는 샘플링 주기마다 하나씩 계수한다. 그 출력은 가산기(96)에 2의 보수표현으로서 공급되는 한편, 비교기(CMP)(93)에도 공급된다. 비교기(93)에는 에어리어 사이즈 레지스터(94)로부터 다수 영역중 하나의 영역 크기가 공급되고 있다. 그리고, 카운터(92)의 출력이 에어리어 사이즈와 일치하면 카운터(92)를 리셋하는 리셋신호를 출력한다. 따라서, 카운터(92)는 에어리어 사이즈에 일치하는 값을 출력하면 바로 0이 되므로, 실질적으로 카운터(92)는 0부터 에어리어 사이즈-1 사이에서 계수동작을 반복한다.
가산기(96)에는 카운터(92)의 출력과 바닥어드레스 레지스터(95)로부터 각 영역의 바닥어드레스가 공급되어 그것들을 가산하지만, 카운터(92)의 출력은 2의 보수표현으로서 공급되고 있으므로, 실질적으로 바닥어드레스로부터 카운터(92)의 출력을 감산하여 셀렉터(97)에 출력한다.
다수의 어드레스 카운터(91)에는 각 채널에 할당된 프로그램이 사용하는 외부RAM(33)에 있어서의 영역을 결정하기 위한 에어리어 사이즈, 바닥어드레스가 인터페이스(34)를 통해 CPU(50)로부터 각각 기록된다.
각 어드레스 카운터(91)의 출력은 셀렉터(97)에 공급되며, 할당된 프로그램 동작중에 선택된 바와 같이 셀렉트신호는 제어된다. 셀렉트신호는 카운터(98)로부터 공급된다. 카운터(98)에는 1샘플링 주기의 선두에서 상승하는 클록φ0이 리셋신호로서 공급되고 있으며, 카운터(98)는 1샘플링 주기의 선두에서 0을 출력한다.다음에, 프로그램 카운터(11O)에는 역시 클록 φ0이 리셋신호로서 공급되고 있기 때문에, 샘플링 주기의 선두에서 0이 된다. 프로그램 카운터(110)에는 1프로그램스텝의 실행시간에 대응하는 주기의 클록 φ1이 공급되고 있다. 마이크로프로그램의 총 스텝수를 512로 하면 클록 φ1은 샘플링 주기의 1/512 주기의 클록이다.
프로그램 카운터(110)의 출력은 비교기(111)(112)(113)외에 어드레스 레지스터(118)나 마이크로프로그램 메모리부(29) 등에도 공급된다. 비교기(111∼113)에는 각각 톱 스텝 레지스터(114)(115)(116)로부터 각 채널에 할당된 프로그램이 실행을 개시하는 선두스텝이 공급된다. 본 실시예에서는 1샘플링 주기에서 실행하는 프로그램의 수는 4개로 하고 있으나, 톱 스텝 레지스터는 3개이다. 이것은 최초 채널A의 선두 스텝이 O이고, 클록φ0에서 카운터(98)를 리셋하기 때문에 채널A의 톱 스텝 레지스터는 필요없기 때문이다.
톱 스텝 레지스터(114)(115)(116)에는 인터페이스(34)를 통해 CPU(5O)로부터 채널(B,C,D)에 할당된 프로그램이 실행을 개시하는 선두스텝이 기록된다. 이에 따라, 각 채널의 경계도 자유로이 설정됨을 알 수 있다. 이것은 할당하는 프로그램 사이즈를 제약하지 않고 효율적으로 DSP를 사용하기 위해 필요하다. 프로그램 카운터(110)의 출력이 각 채널에 할당된 프로그램의 개시스텝과 일치하면 비교기(111)(112)(113)중 어느 한쪽이 일치신호를 출력하고, 0R회로(99)를 통해 카운터(98)에 공급된다. 따라서, 카운터(98)는 각 채널의 경계에서 계수하며, 셀렉터(97)는 이 계수결과에 따라 각 채널에 대응하는 다수의 어드레스 카운터(91) 출력을 순차적으로 절환해 나간다. 이에 따라, 각 채널에 할당된 프로그램이 사용하는 외부 RAM(33) 영역의 어드레스가 실행되는 채널에 따라 절환되어 나간다.
셀렉터(97)에서 선택된 각 채널에 대응하는 어드레스 카운터(91)의 출력은 가산기(117)에 있어서, 어드레스 레지스터(118)의 출력값에 가산된다. 어드레스 레지스터(118)는 마이크로프로그램의 총 스텝수 512에 대응하는 어드레스를 가지며, 프로그램 카운터(110)의 출력값을 어드레스로서 판독된다. 이 판독타이밍은 마이크로프로그램 메모리(29)의 판독과 동기해서 행해진다. 어드레스 레지스터(118)에 기억된 어드레스는 외부RAM(33)을 액세스하기 위한 어드레스이며, 다수로 분할된 외부RAM(33)영역의 선두어드레스를 0으로 한 상대 어드레스에서 기억된다. 어드레스 레지스터(118)의 출력을 가산기(117)에 있어서 어드레스 카운터(91)로부터의 출력과 가산함에 따라 실제 어드레스인 절대 어드레스로 되어 외부RAM(33)을 어드레싱한다.
연산부(30)는 승산기와 가산기로 이루어지며, 승산에 필요한 계수를 공급하는 계수레지스터를 구비하며, 마이크로 프로그램부(29)로부터의 제어신호에 따라, 소정의 연산을 행하여, 그 연산결과를 필요에 따라 셀렉터(31)를 통해 외부RAM(33)에 기억시키고, 소정시간 경과후 판독하여 다시 연산시킴으로써 복잡한 신호처리를 행한다. 최종적인 출력은 DAC(44)로 전송된다.
마이크로 프로그램부(29)는 마이크로프로그램 메모리를 구비하고 인터페이스(34)를 통해서 CPU(50)로부터 마이크로 프로그램이 기록되며, 프로그램 카운터(110)의 출력에 따라 순차적으로 마이크로프로그램을 출력하는데, 상세한 것은 제14도에 도시하였다. 이 도면에서 프로그램카운터(110)에서 톱 스텝 레지스터(116)까지는 제10도의 것과 동일하므로 설명을 생략한다. 0R회로(108)에는 0R회로(99)의 출력과 클록(φ0)이 공급되며, 그 출력은 카운터(107)에 리셋신호로서 공급되고 있으므로, 카운터(107)는 각 채널의 선두에서 리셋되고, 클록(φ0)에 의해 계수되어 출력을 가산기(101)에 공급한다.
한편, 프로그램 톱 어드레스 레지스터(103∼106)는 채널에 대응하여 4개 형성되고, CPU로부터 인터페이스(34)를 통해서 각 채널에 할당되어야 할 마이크로프로그램 메모리(100)에 기억된 프로그램의 선두어드레스가 기록되어 셀렉터(102)에 출력하게 되어 있다. 제11도를 참조하여 설명하면, 프로그램 톱 어드레스 레지스터(103)에는 프로그램1의 선두어드레스가 상기 프로그램 톱 어드레스 레지스터(104)에는 프로그램4의 선두어드레스가 상기 프로그램 톱 어드레스(105)에는 프로그램2의 선두어드레스가, 상기 프로그램 톱 어드레스(106)에는 프로그램6의 선두어드레스가 기록된다.
카운터(98)는 각 채널의 실행 타임 슬롯에 따라 0,1,2,3으로 출력하므로, 셀렉터(102)는 각 채널 A, B, C, D에 할당된 프로그램의 선두어드레스를 순차적으로 선택하여 가산기(101)에 출력한다. 가산기(101)는 선택된 선두어드레스와 카운터(107)의 출력을 가산하여 마이크로 프로그램 메모리(100)에 공급한다. 마이 크로프로그램 메모리(100)는 카운터(107)로부터 인가되는 출력을 어드레스로 하여 마이크로프로그램을 판독한다. 판독된 마이크로프로그램은 연산부(30)를 비롯, DSP(43)의 각부, 외부RAM(33)에 제어신호로서 공급되어 신호처리를 행한다.
제10도로 돌아가 설명한다. 마이크로프로그램 메모리(29)로부터 마이너스 논리의 외부RAM(33)에의 기록, 또는 판독신호가 출력되어 있을때는 앤드 회로(28)의 출력은 "0"이 되므로, 앤드 회로(26)의 출력도 "0"이며, 셀렉터(32)에는 "0"이 공급된다. 이때, 셀렉터(32)는 가산기(117)의 출력을 외부RAM(33)에 어드레스로서 공급한다. 또, 셀렉터(31)에도 앤드 회로(26)의 출력 "0"이 공급되므로 셀렉터(31)는 연산부(30)의 신호선을 선택한다. 그 결과, 연산부(30)와 외부RAM(33)의 데이터 단자가 결합된다.
앤드 회로(26)의 출력은 셀렉터(27)에도 셀렉트 신호로서 공급되고 있으므로, 앤드 회로(26)의 출력이 "0" 일 때는 마이크로프로그램 메모리부(29)로부터 출력되는 라이트 인에이블신호를 외부RAM(33)의 라이트 인에이블단자에 공급한다. 이 결과, 마이크로프로그램이 외부RAM에 대하여 판독 또는 기록을 행하고 있을 때 데이터단자는 연산부와, 어드레스단자는 각 채널에 할당된 프로그램에 대응하는 어드레스출력과 접속되므로 통상의 외부RAM에 대한 판독, 기록을 행하게 된다. 또한, 외부RAM(33)의 아웃풋 인에이블단자에는 직접 마이크로프로그램 메모리로부터의 아웃풋 인에이블신호가 공급된다.
한편, 마이크로프로그램 메모리부(29)의 외부RAM(33)에의 기록 또는 판독신호를 출력하지 않을 때에는 앤드 회로(28)의 출력은 "1" 이 되어 앤드 회로(120)(26)에 인가된다. 앤드 회로(120)에는 클록 φ1도 공급되고 있으며, 외부RAM(33)에의 액세스가 없는 동안, 1스텝마다 카운터(119)를 계수시키는 클록을 출력한다. 카운터(119)에는 인터페이스(34)를 통해서 CPU(50)로부터 리셋신호가 인가된다.
카운터(119)의 출력은 가산기(21)에 인가되며, 가산기(21)에서는 스타트 어드레스 레지스터(22)로부터 외부RAM(33)의 소거하고 싶은 특정한 영역의 선두어드레스인 스타트 어드레스와 가산된다. 가산기(21)는 외부RAM(33)이 사용되지 않는 기간을 이용하여, 소거하고 싶은 외부RAM의 에어리어 스타트 어드레스로부터 순차적으로 소거할 어드레스를 출력한다. 그 출력은 셀렉터(32)에 공급되며, 앤드 회로(26)의 출력이 "1"일 때 외부RAM(33)을 액세스하는 어드레스로서 선택된다. 앤드 회로(26)의 출력은 셀렉터(27)(32)에도 선택신호로서 공급되고 있으며, 출력값이 "1"일 때, "0"을 각각 선택하게 되어 있으므로, 외부RAM(33)에 대하여 기록지시가 되어 데이터 "0"을 가산기(21)의 출력에 대응하는 외부RAM(33)의 어드레스에 기록하게 된다.
가산기(21)의 출력은 비교기(23)에도 인가되어 가산기(36)의 출력과 비교되며, 일치했을 때 플립플롭(25)에 리셋신호로서 출력한다. 가산기(36)에서는 엔드 어드레스 레지스터(24)로부터 공급되는 엔드어드레스와 "1"을 가산한다. 플립플롭(25)에는 인터페이스(34)를 통해서 CPU(50)로부터 세트신호가 전송되어 세트된다. 세트된 플립플롭(25)은 앤드 회로(26)에 "1"을 출력하고, 비교기(23)가 일치신호를 출력하면 리셋된다. 리셋된 플립플롭(25)은 "0"을 출력하여 앤드 회로(26)의 출력을 "0"으로 하므로, 셀렉터(27)(31)(33)는 각 각 마이크로프로그램 메모리(29)로부터의 라이트 인에이블신호, 가산기(117)로부터의 출력, 연산기(30)로부터의 출력신호를 선택하게 된다.
또, 가산기(21)의 출력은 인터페이스(34)를 통해서 CPU(50)에도 전송되어 클리어가 완료되었음을 알린다.
CPU(50)는 클리어하고 싶은 외부RAM(33) 영역의 선두어드레스를 스타트 어드레스로 하여 스타트 어드레스 레지스터(22)에 기록한다. 그 영역의 마지막 어드레스를 엔드 어드레스로 하여 엔드 어드레스 레지스터(24)에 기록한다. 그 후, 카운터(119)와 플립플롭(25)에 각각, 리셋, 세트신호를 보냄으로써 마이크로프로그램 메모리가 외부RAM(33)을 액세스하지 않는 기간에 스타트 어드레스로부터 엔드 어드레스까지 순차적으로 "0"을 계속 기록하여 가산기(21)의 출력이 엔드 어드레스+1의어드레스가 된 시점에서 클리어를 종료하고, 인터페이스(34)를 통해서 CPU(50)에 클리어 종료 플랙으로서 전송된다. CPU(50)는 클리어 종료플랙을 판독하면 클리어가 끝난 영역으로 기억하고, 클리어가 끝난 영역을 필요로 하는 할당에 대비한다. 또한, 이밖에 클리어가 필요한 영역이 있으면 마찬가지로 해서 클리어를 실행한다.
이와 같은 구성을 취함으로써 외부RAM(33)을 마이크로프로그램이 사용되지 않는 기간에 임의의 영역을 소거할 수 있으므로, 마이크로프로그램을 실행한 상태에서 클리어를 행할 수 있어서 클리어를 위해 마이크로프로그램의 처리를 중단하는 일이 없다. 이 때문에, 클리어영역을 다이나믹하게 어사인하는 용도에 특히 적합한 구성이 된다.
다음에, 이 신호처리장치를 이용한 응용예에 대하여 설명한다.
제15도는 제12도에 도시한 전자악기의 동작을 설명하기 위한 메인 플로챠트이다. 최초로 전원이 투입되면 스텝S1에서 초기설정을 행하고, 각부 레지스터의 클리어, 초기값 로드 등이 행해진다. 특히, DSP(43)에 대해서는, 디폴트에 의해 정해진 프로그램과 그 프로그램에 대응하는 계수와 어드레스를 ROM(48)으로부터 판독하여 각각 마이크로프로그램 메모리(29), 연산부(30)내의 계수레지스터, 어드레스 레지스터(118)에 전송한다.
초기설정을 종료하면, 스텝S2의 할당처리를 실행한다. 이 처리는 서브 루틴으로 되어 있으며, 제16도의 플로챠트에 대응하는 프로그램을 실행한다. 처음에 스텝S20에서 노트 온의 이벤트가 일어났는지의 여부가 판단된다. 이것은 건반(37)에서 어느 건반이 눌려졌는지를 검출하거나, 또는 도시하지 않은 외부 MIDI기기로부터의 노트 온 이벤트를 받아 들였을때「yes」가 되어 스텝S21로 진행한다.
스텝S21에서는 DSP(43)의 4개의 채널 중, 할당되어 있지 않은 채널이 있는지의 여부를 판단한다. 여기에서 말하는 할당이라 함은 발음하지 않은, 또는 실질적으로 출력에 관여하고 있지 않은 채널을 말한다. 그 채널에 할당되어 있는 프로그램은 동작하고 있으나, 출력이 낮아진다. 판단이「yes」일 때에는 사용되지 않은 채널이 있으므로, 스텝S22로 진행하여 음색, 키이 코드등의 악음 파라미터에 의해 할당하는 프로그램을 결정하고, 빈 채널에 대응하는 프로그램 톱 어드레스 레지스터에 할당하는 프로그램의 선두어드레스를 기록한다. 스텝S21에서「no」라고 판단이 되었을 때에는 스텝S23으로 진행하고, 가장 음량이 작은 채널을 댐프처리해서 발음을 정지시킨다.
그것에 의해 강제적으로 빈 채널을 만들어 낸다. 스텝S24에서는 빈 채널의 프로그램 스텝수와 결정된 프로그램의 스텝수를 비교하여 빈 채널의 프로그램수가 같거나 클 때 할당이 가능하기 때문에 판단이「yes」가 되어 스텝S25로 진행한다. 판단이「no」일때는, 빈 채널에 할당할 수 없기 때문에, 스텝S26으로 진행하여 다시 한번 프로그램을 결정한다. 구체적으로는 치환가능한 프로그램 사이즈가 작은것으로 한다.
스텝S25에서는 음색, 키이 코드, 지연시간등의 파라미터에 의해 외부 메모리의 사용 사이즈를 결정하고, 클리어를 마친 영역에 할당한다. 빈 채널에 대응하는 어드레스 카운터(91)내의 에어리어 사이즈 레지스터에 영역 사이즈, 바닥어드레스 레지스터에 바닥어드레스를 기록함으로써 실행된다. 스텝S27에서는 할당된 프로그램에 대한 어드레스 데이터, 계수 데이터를 어드레스 레지스터(118), 연산부(30)내의 계수레지스터가 할당되는 채널에 대응하는 영역으로 전송한다.
스텝S28에서는, 음원(42)이 대응하는 채널에 발음지시를 행하여 발음시킨다. 음원(42)과 DSP(43)의 채널은 설명을 간단히 하기 위해 각각 일치시키기로 한다. 또, DSP(43)가 대응하는 채널에도 발음지시를 보낸다. 이것은 구체적으로는 계수의 보간을 개시시키거나, 인벨로프의 발생을 개시시키는 것이지만, 이는 프로그램의 알고리즘에 의존하는 사항이기 때문에 상세하게는 설명하지 않겠다.
스텝S29에서는 사용되지 않고, 또한 클리어 되어 있지 않은 외부RAM의 영역을 클리어하기 위해 그 영역의 스타트 어드레스, 엔드 어드레스를 스타트 어드레스 레지스터(22), 엔드 어드레스 레지스터(24)에 기록한다. 그 처리가 종료되면 메인 루틴으로 복귀한다. 스텝S20에서 노트 온 이벤트가 없다고 판단된 경우에는 스텝S10으로 진행하여 노트 오프 이벤트가 있는지의 여부를 판단한다. 노트 오프가 있으면 스텝S11로 진행하여 노트 오프된 키이 코드에 의해 발음중인 음원 채널, DSP채널에 대하여 키이 오프처리를 행한다.
스텝S12에서는, 키이 오프에 의해 생긴 빈 채널 하나 전의 채널이 사용되고 있으며, 그 하나 전에 할당되어 있는 프로그램 크기가 이전에 할당된 프로그램보다 작을 때에는, 사용되지 않은 프로그램 스텝이 존재하므로, 빈 채널에 대응하는 톱 스텝 레지스터를 바꿔 써서, 사용되지 않은 프로그램 스텝이 발생하지 않도록 한다. 이것은 빈 채널이 갖는 프로그램 스텝을 되도록 크게 해서 큰 프로그램이 할당될 때에 대처하기 위함이다. 그 후, 스텝S29의 처리를 행한다. 스텝S10에서 노트 오프 이벤트가 없다고 판단되었을 때에는 메인 루틴으로 되돌아간다.
메인 루틴으로 복귀하여 스텝S3을 실행한다. 이 스텝도 제17도에 도시한 서브 루틴으로 되어 있다. 스텝S30에서는 지연시간이 변경되었는지의 여부가 판단된다. 여기에서, 조작자(41)나 도시하지 않은 외부 MIDI기기로부터의 파라미터 체인지 메세지등에 의해 지연시간이 변경되었을 경우에는 스텝S31에서 지연시간에 따른 필요한 외부RAM의 영역을 결정한다. 또한, 스텝S32에서 그 영역이 실제로 할당 가능한지를 판단한다. 이것은 영역을 작게 할 경우 할당은 가능하지만, 크게 할 경우에는 사용되지 않은 외부RAM의 영역이 없는 경우를 고려할 수 있기 때문이다. 할당할 수 없는 경우에는 스텝S30으로 복귀하여 다시 한번 지연시간의 변경을 기다린다. 이 때, 에러메세지를 LCD(40)에 표시하여 지연시간의 변경을 연주자에게 재촉하는 것이 좋다.
스텝S32에서, 할당이 가능한 경우에는 스텝S33에서 스텝S31에서 결정된 영역에 대응하는 에어리어 사이즈, 바닥어드레스를 그 이펙트가 할당되어 있는 채널에 대응하는 에어리어 사이즈 레지스터(94), 바닥어드레스 레지스터(95)에 전송한다. 스텝S34에서는, 영역을 축소한 경우에 생기는 클리어가 필요한 영역의 스타트 어드레스, 엔드 어드레스를 스타트 어드레스 레지스터(22), 엔드 어드레스 레지스터(24)에 기록하고, 카운터(119)를 리셋, 플립플롭(25)을 세트하여 클리어를 개시시킨다. 그 후, 메인 루틴으로 복귀한다. 스텝S30에서 지연시간이 변경되지 않았다고 판단된 경우에도 메인 루틴으로 복귀한다.
메인 루틴으로 복귀하여 스텝S4에서는 인터페이스(35)에 액세스하여 클리어종료 플랙을 판독하고, 스텝S5에서 클리어가 종료되었는지의 여부를 판단한다. 클리어가 종료되었을 경우에는, 스텝 S6에서 빈 영역을 기억하고, 다음 회의 할당에 대비한다. 또, 이밖에 클리어가 필요한 영역이 있을 경우에는 다시 한번 클리어의 지시를 행한다. 그 처리가 종료되면 스텝S7에서 그밖의 처리를 행하고 스텝S2으로복귀한다. 또, 스텝S5에서 클리어가 종료되지 않았다고 판단되었을 때에는 스텝S7로 진행하여 그밖의 처리를 행한다. 이와 같이 스텝S2∼S7을 반복 실행함으로써 클리어 종료 플랙을 정기적으로 판독하므로, 클리어 종료시각을 항상 인식할 수 있다.
앞에서 설명한 바와 같이, 본 발명의 다른 실시예에 의한 전자악기는 프로그램이 사용하는 메모리영역을 변경할 수 있으므로, 메모리를 효율적으로 사용할 수 있다.
또, 연산정보에 의해서 악음발생 또는 악음처리를 위한 프로그램을 선택하고, 선택된 프로그램에 따른 악음발생 또는 악음처리를 실행할 수 있으므로, 그 시점에서 서로 다른 연주정보에 적합한 악음처리를 행할 수 있다.
또, 클리어가 필요한 메모리영역을, 프로그램이 메모리를 사용하지 않는 타이밍에서 클리어를 행하도록 하였으므로, 프로그램의 실행에 관계없이 클리어를 행할 수 있다는 효과가 있다.

Claims (9)

  1. 악음처리 프로그램을 기억하기 위한 프로그램 메모리수단과,
    상기 악음처리 프로그램 수행과 관련된 악음데이터를 기억하는 데 사용될 메모리영역을 가지는 데이터 메모리수단과,
    상기 악음처리 프로그램에 사용될 메모리영역의 변경을 지시하는 지시수단과,
    상기 지시수단으로부터의 지시에 따라 상기 악음처리 프로그램에 사용될 메모리영역을 변경하는 메모리영역 가변수단과,
    상기 프로그램 메모리수단으로부터 악음처리 프로그램을 읽어내고, 상기 읽어낸 악음처리 프로그램에 따라, 상기 변경된 메모리영역을 사용하여 신호처리를 수행하는 프로그램 수행수단을 포함하는 것을 특징으로 하는 신호처리장치.
  2. 제1항에 있어서,
    상기 지시수단은 상기 메모리영역의 크기 변화를 지시하는 것을 특징으로 하는 신호처리장치.
  3. 제1항에 있어서,
    상기 지시수단은 악음처리 프로그램의 실행에 사용될 파라미터를 설정 또는 변경하는 파라미터 수단을 포함하고,
    상기 파라미터 수단에 의해 설정 또는 변경된 파라미터에 따라 상기 메모리영역의 변경을 지시하는 것을 특징으로 하는 신호처리장치.
  4. 연주정보를 공급하는 연주정보 공급수단과,
    상기 연주정보 공급수단에 의해 공급된 연주정보에 따라 상기 악음신호를 발생하거나 처리하기 위해 프로그램을 선택하는 프로그램 선택수단과,
    상기 프로그램 선택수단에 의해 선택된 프로그램의 실행과 관련된 데이터를 기억하는 데 사용되는 메모리영역을 가변적으로 할당하는 메모리영역 할당수단과,
    상기 선택된 프로그램에 따라 상기 할당수단에 의해 할당된 메모리영역을 사용하여 악음신호를 생성하거나 처리하도록 연산을 수행하는 연산수단을 포함하는 것을 특징으로 하는 신호처리장치.
  5. 제4항에 있어서,
    상기 메모리영역 할당수단은 데이터 메모리를 포함하며, 선택된 프로그램을 위해 사용될 메모리영역으로, 상기 데이터 메모리에 포함된 임의의 장소 및 필요한 가변크기의 영역을 할당하는 것을 특징으로 하는 신호처리장치.
  6. 제5항에 있어서,
    상기 메모리영역 할당수단은, 상기 필요한 가변크기를 상기 공급된 연주정보에 따라 결정하는 것을 특징으로 하는 신호처리장치.
  7. 신호처리를 위한 프로그램을 기억하는 프로그램 메모리수단과,
    상기 프로그램의 실행과 관련된 데이터를 기억하는 데 사용되는 다수의 메모리영역을 포함하는 데이터 메모리수단과,
    상기 프로그램 메모리수단으로부터 프로그램을 읽어내고, 이 읽어낸 프로그램에 따라, 상기 메모리영역의 적어도 하나를 사용하여 신호처리를 수행하는 프로그램 실행수단과,
    프로그램처리에 사용되지 않을 다수의 메모리영역 중 적어도 하나가 클리어되도록 지시하는 클리어 지시수단과,
    상기 프로그램 실행수단이 상기 데이터 메모리수단을 액세스하지 않을 때, 상기 클리어 지시수단에 의해 지시된 메모리영역을 클리어하는 클리어 수단을 포함하는 것을 특징으로 하는 신호처리장치.
  8. 삭제
  9. 삭제
KR1020020029921A 1994-09-13 2002-05-29 신호처리장치 KR100411940B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP24483294A JP3358324B2 (ja) 1994-09-13 1994-09-13 電子楽器
JPJP-P-1994-00244832 1994-09-13
JP7210996A JP3050779B2 (ja) 1995-07-26 1995-07-26 信号処理装置
JPJP-P-1995-00210996 1995-07-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1019950030304A Division KR100366721B1 (ko) 1994-09-13 1995-09-13 전자음악장치및이펙터

Publications (1)

Publication Number Publication Date
KR100411940B1 true KR100411940B1 (ko) 2003-12-18

Family

ID=26518378

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019950030304A KR100366721B1 (ko) 1994-09-13 1995-09-13 전자음악장치및이펙터
KR1020020029921A KR100411940B1 (ko) 1994-09-13 2002-05-29 신호처리장치

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1019950030304A KR100366721B1 (ko) 1994-09-13 1995-09-13 전자음악장치및이펙터

Country Status (4)

Country Link
US (1) US5703312A (ko)
EP (1) EP0702348B1 (ko)
KR (2) KR100366721B1 (ko)
DE (1) DE69517896T2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3261878B2 (ja) * 1994-08-10 2002-03-04 ヤマハ株式会社 音響信号発生装置
JP2924745B2 (ja) * 1995-10-20 1999-07-26 ヤマハ株式会社 楽音発生装置及び方法
US5596159A (en) * 1995-11-22 1997-01-21 Invision Interactive, Inc. Software sound synthesis system
JP3019767B2 (ja) * 1995-12-28 2000-03-13 ヤマハ株式会社 デジタル信号処理装置
DE69730873T2 (de) * 1996-08-05 2005-10-06 Yamaha Corp., Hamamatsu Software-Tonerzeuger
DE69732311T2 (de) * 1996-11-27 2006-01-05 Yamaha Corp., Hamamatsu Verfahren zur Erzeugung von Musiktönen
JP3134806B2 (ja) * 1997-05-22 2001-02-13 ヤマハ株式会社 効果付与装置および記録媒体
US5998724A (en) * 1997-10-22 1999-12-07 Yamaha Corporation Tone synthesizing device and method capable of individually imparting effect to each tone to be generated
JP3365354B2 (ja) * 1999-06-30 2003-01-08 ヤマハ株式会社 音声信号または楽音信号の処理装置
JP2001318672A (ja) * 2000-03-03 2001-11-16 Sony Computer Entertainment Inc 楽音発生装置
US7728213B2 (en) * 2003-10-10 2010-06-01 The Stone Family Trust Of 1992 System and method for dynamic note assignment for musical synthesizers
WO2007123549A1 (en) * 2006-04-25 2007-11-01 The Stone Family Trust Of 1992 System and method for dynamic note assignment for musical synthesizers
EP2015855B1 (en) * 2006-05-05 2016-10-05 The Stone Family Trust Of 1992 System and method for dynamic note assignment for musical synthesizers
JP4656076B2 (ja) * 2007-03-16 2011-03-23 カシオ計算機株式会社 音響効果割当制御装置及び音響効果割当制御プログラム
TWI337339B (en) * 2007-06-23 2011-02-11 Princeton Technology Corp Audio process system
US9418641B2 (en) 2013-07-26 2016-08-16 Audio Impressions Swap Divisi process
WO2015053415A1 (ko) * 2013-10-07 2015-04-16 허효영 전원 공급장치
JP6252642B1 (ja) * 2016-09-27 2017-12-27 カシオ計算機株式会社 効果付与装置、効果付与方法、プログラムおよび電子楽器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001423A (ko) * 1990-06-28 1992-01-30 가시오 가즈오 악음 파형 발생장치
KR940009925A (ko) * 1992-10-11 1994-05-24 가시오 가즈오 효과부가장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5865487A (ja) * 1981-10-15 1983-04-19 ヤマハ株式会社 電子楽器
US4703680A (en) * 1985-04-24 1987-11-03 Nippon Gakki Seizo Kabushiki Kaisha Truncate prioritization system for multi channel electronic music generator
US4998281A (en) * 1987-08-20 1991-03-05 Casio Computer Co., Ltd. Effect addition apparatus
EP0463411B1 (en) * 1990-06-28 1999-01-13 Casio Computer Company Limited Musical tone waveform generation apparatus
JP2545297B2 (ja) * 1990-07-18 1996-10-16 株式会社河合楽器製作所 電子楽器のパラメータ設定装置
JP2538809B2 (ja) * 1990-09-25 1996-10-02 株式会社河合楽器製作所 楽音発生装置
US5410603A (en) * 1991-07-19 1995-04-25 Casio Computer Co., Ltd. Effect adding apparatus
JP3072452B2 (ja) * 1993-03-19 2000-07-31 ヤマハ株式会社 カラオケ装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920001423A (ko) * 1990-06-28 1992-01-30 가시오 가즈오 악음 파형 발생장치
KR940009925A (ko) * 1992-10-11 1994-05-24 가시오 가즈오 효과부가장치

Also Published As

Publication number Publication date
KR100366721B1 (ko) 2003-03-10
KR960011830A (ko) 1996-04-20
DE69517896T2 (de) 2001-03-15
US5703312A (en) 1997-12-30
DE69517896D1 (de) 2000-08-17
EP0702348A1 (en) 1996-03-20
EP0702348B1 (en) 2000-07-12

Similar Documents

Publication Publication Date Title
KR100411940B1 (ko) 신호처리장치
JP2018106007A (ja) 楽音生成装置および方法、電子楽器
US6091012A (en) Tone effect imparting apparatus
JPH04306697A (ja) ステレオ方式
JP2002311957A (ja) 共鳴装置、共鳴方法及び共鳴処理のためのコンピュータプログラム
JP2745865B2 (ja) 楽音合成装置
JP2538809B2 (ja) 楽音発生装置
US5959231A (en) Electronic musical instrument and signal processor having a tonal effect imparting function
JP3633963B2 (ja) 楽音生成装置及び楽音生成方法
JP2698942B2 (ja) 楽音発生装置
JPH0310959B2 (ko)
US5998723A (en) Apparatus for forming musical tones using impulse response signals and method of generating musical tones
JP3050779B2 (ja) 信号処理装置
JP2997626B2 (ja) 楽音生成装置及び楽音生成方法
JP3136249B2 (ja) 楽音生成装置
JPS6341080B2 (ko)
JPS6352399B2 (ko)
JP3649906B2 (ja) 電子楽器のキーオンディレイ効果付加装置
JP3094759B2 (ja) 楽音信号分配処理装置
JP3637190B2 (ja) 楽音生成装置及び楽音生成方法
JP2905351B2 (ja) 電子楽器
US6160214A (en) Non-consonance generating device and non-consonance generating method
JPH06348263A (ja) 電子楽器
JP2802714B2 (ja) 電子楽器
JPH04298790A (ja) ステレオ装置及びステレオ方法

Legal Events

Date Code Title Description
A107 Divisional application of patent
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: 20101124

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee