JP3533482B2 - Melody conversion device and method - Google Patents

Melody conversion device and method

Info

Publication number
JP3533482B2
JP3533482B2 JP23904895A JP23904895A JP3533482B2 JP 3533482 B2 JP3533482 B2 JP 3533482B2 JP 23904895 A JP23904895 A JP 23904895A JP 23904895 A JP23904895 A JP 23904895A JP 3533482 B2 JP3533482 B2 JP 3533482B2
Authority
JP
Japan
Prior art keywords
note data
data
stored
value
storage area
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP23904895A
Other languages
Japanese (ja)
Other versions
JPH0962261A (en
Inventor
茂 松山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP23904895A priority Critical patent/JP3533482B2/en
Publication of JPH0962261A publication Critical patent/JPH0962261A/en
Application granted granted Critical
Publication of JP3533482B2 publication Critical patent/JP3533482B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、メロディ変換装
置及びその方法の技術に属する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a melody conversion device and a method thereof.

【0002】[0002]

【従来の技術】従来のメロディ変換装置においては、任
意の曲を構成する複数の音符の音高データを変更して他
の曲に変換する。この場合のメロディ変換には、所定区
間例えば1小節の音符の音高を一律に半音上又は下にシ
フトするものがある。
2. Description of the Related Art In a conventional melody conversion apparatus, pitch data of a plurality of notes constituting an arbitrary music piece is changed and converted to another music piece. In the melody conversion in this case, there is a method in which the pitch of a note in a predetermined section, for example, one measure, is uniformly shifted upward or downward by a semitone.

【0003】[0003]

【発明が解決しようとする課題】しかしながら、上記従
来のメロディ変換装置の変換方法は、音高を一律に半音
上又は下にシフトするものであるため、各音符間の音高
差は変化せず、多様なメロディ変換のニーズに応えるこ
とができないという問題があった。一方、音符の音高を
任意に入れ換えようとする場合、1小節内の音符数が多
くなるとその組み合わせ数も多くなる。例えば、1小節
内に8個の音符がある場合には、音高の入れ換えの組み
合わせは40319通りもあるため、ユーザが重複する
ことなく、かつ漏れなくすべての組み合わせを実現する
ためには非常に困難な作業を伴うという問題があった。
この発明の課題は、多様なメロディ変換のニーズに応え
るとともに、メロディ変換の際にユーザの困難な作業を
伴うことがないようにすることである。
However, the conversion method of the above-mentioned conventional melody conversion apparatus uniformly shifts the pitch upward or downward by one semitone, so that the pitch difference between each note does not change. However, there is a problem that it is impossible to meet various needs for melody conversion. On the other hand, when the pitches of the notes are arbitrarily exchanged, as the number of notes in one measure increases, the number of combinations increases. For example, when there are eight notes in one bar, there are 40319 combinations of pitch replacement, so it is extremely necessary for the user to realize all combinations without duplication and without omission. There was a problem that it involved difficult work.
SUMMARY OF THE INVENTION It is an object of the present invention to meet various needs for melody conversion and to prevent the melody conversion from involving a difficult operation of a user.

【0004】[0004]

【課題を解決するための手段】請求項1に記載の発明
は、変更の対象となるメロディを構成するn個の音符デ
ータ夫々に対応する番号が付与されているとともに、当
該n個の音符データが格納された記憶手段と、変更後に
おける前記n個の音符データの全ての組合せ(n!種
類)の中のひとつの組合せを示す数値p(0≦p<n
!)を含む変更指令情報を入力する入力手段と、前記入
力手段からの前記変更指令情報に含まれる数値pを、0
〜(n−1)!の各数値で分解し、 p=Σi×(n−1−k)! 但し、k=0,1,2…(n−3),(n−2) と表した場合の各係数iを求めるために、最初に、k
を0として、 pk=0=p とし、このpを(n−1−k)!で除算した整数値を
とするとともにこの除算の余り値を次の演算に用い
る値pk+1とする演算処理を、kの値を順次インクリ
メントしながら繰り返すことにより、各係数iを生成
する生成手段と、この生成手段により生成されるi
個数分の記憶エリアを有し、kの値をアドレスにして当
該生成手段により生成されるiを対応する記憶エリア
に順次記憶する第1のバッファと、n個の記憶エリアを
有し、各記憶エリアに前記記憶手段に記憶されているn
個の音符データを示す番号を夫々記憶可能な第2のバッ
ファと、前記第1のバッファに記憶されたiを順次読
み出すとともに前記第2のバッファの各記憶エリアを最
初から走査することにより順次空き記憶エリア位置を検
出し、当該読み出されたi及び前記第2のバッファの
空き記憶エリアの位置に基づいて音符データを示す番号
を決定して、当該検出された空き記憶エリア位置に前記
決定された音符データを示す番号を記憶させる並べ替え
順決定手段と、前記第2のバッファに記憶された前記各
音符データを示す番号順に、前記記憶手段の音符データ
を並べ替える並べ替え手段とを備えたことを特徴とす
る。また、請求項2に記載の発明は、変更の対象となる
メロディを構成するn個の音符データ夫々に対応する番
号が付与されているとともに、当該n個の音符データを
記憶手段に格納し、変更後における前記n個の音符デー
タの全ての組合せ(n!種類)の中のひとつの組合せを
示す数値p(0≦p<n!)を含む変更指令情報を入力
し、当該入力された前記変更指令情報に含まれる数値p
を、0〜(n−1)!の各数値で分解し、 p=Σi×(n−1−k)! 但し、k=0,1,2…(n−3),(n−2) と表した場合の各係数iを求めるために、最初に、k
を0として、 pk=0=p とし、このpを(n−1−k)!で除算した整数値を
とするとともにこの除算の余り値を次の演算に用い
る値pk+1とする演算処理を、kの値を順次インクリ
メントしながら繰り返すことにより各係数iを生成
し、この生成されるiの個数分の記憶エリアを有する
第1のバッファに対して、kの値をアドレスにして生成
されるiを対応する当該記憶エリアに順次記憶し、前
記第1のバッファに記憶されたiを順次読み出すとと
もに、n個の記憶エリアを有し各記憶エリアに前記記憶
手段に記憶されているn個の音符データを示す番号を夫
々記憶可能な第2のバッファの各記憶エリアを最初から
走査することにより順次空き記憶エリア位置を検出し、
当該読み出されたi及び前記第2のバッファの空き記
憶エリアの位置に基づいて音符データを示す番号を決定
して、当該検出された空き記憶エリア位置に当該決定さ
れた音符データを示す番号を記憶させ、前記第2のバッ
ファに記憶された前記各音符データを示す番号順に、前
記記憶手段の音符データを並べ替えることを特徴とす
る。
According to the first aspect of the present invention, a number corresponding to each of n note data constituting a melody to be changed is assigned, and the n note data are assigned. And a numerical value p (0 ≦ p <n) indicating one of all combinations (n! Types) of the n pieces of note data after the change.
! ) For inputting the change command information including the following: and a numerical value p included in the change command information from the input means is set to 0.
~ (N-1)! It decomposes at each number, p = Σi k × (n -1-k)! However, k = 0,1,2 ... (n- 3), in order to determine each coefficient i k when expressed as (n-2), first, k
Is set to 0, pk = 0 = p, and this pk is (n−1−k)! The coefficient i k is generated by repeating the operation of setting the integer value obtained by the division by ik and setting the remainder of the division to a value p k + 1 used for the next operation while sequentially incrementing the value of k . a generation unit, a storage area corresponding to the number of all i k generated by the generating means, a first for sequentially storing the i k generated by said generating means and the value of k in the address in the corresponding storage area And n storage areas, and each storage area has n stored in the storage means.
A second buffer number can be respectively stored indicating the number of note data sequentially by scanning the respective storage areas of the second buffer from the beginning with sequentially reading i k stored in the first buffer The position of the free storage area is detected, and the number indicating the note data is determined based on the read ik and the position of the free storage area of the second buffer. A rearrangement order determining unit for storing a number indicating the determined note data; and a rearranging unit for rearranging the note data of the storage unit in a numerical order indicating the respective note data stored in the second buffer. It is characterized by having. In the invention according to claim 2, a number corresponding to each of n pieces of note data constituting a melody to be changed is assigned, and the n pieces of note data are stored in a storage means. The user inputs change command information including a numerical value p (0 ≦ p <n!) Indicating one of all combinations (n! Types) of the n pieces of note data after the change. Numerical value p included in change command information
From 0 to (n-1)! It decomposes at each number, p = Σi k × (n -1-k)! However, k = 0,1,2 ... (n- 3), in order to determine each coefficient i k when expressed as (n-2), first, k
Is set to 0, pk = 0 = p, and this pk is (n−1−k)! The coefficient i k is generated by repeating an arithmetic process in which the integer value divided by is set to i k and the remainder value of the division is a value p k + 1 used for the next operation while sequentially incrementing the value of k , the first buffer having a storage area corresponding to the number of all the generated i k, sequentially stores the i k generated by the value of k in the address to a corresponding said storage area, said first buffer sequentially reads the stored i k, each of n husband number indicating the n pieces of note data stored in said storage means in each storage area has a storage area of s storable second buffer By scanning the storage area from the beginning, the position of the empty storage area is sequentially detected,
A number indicating the note data is determined based on the read ik and the position of the free storage area of the second buffer, and a number indicating the determined note data at the detected free storage area position. Is stored, and the note data in the storage means is rearranged in numerical order indicating the respective note data stored in the second buffer.

【0005】[0005]

【発明の実施の形態】以下、図1〜図10を参照してこ
の発明のメロディ変換装置の実施形態を説明する。図1
はメロディ変換装置の実施形態のハード構成を示すブロ
ック図である。鍵盤部1は、ユーザの押下すなわち演奏
により音高、小節先頭からの音の開始タイミング、発音
時間等を入力する。押鍵検出回路2は、鍵盤部1の押下
を検出して音高データ、クロックタイムデータ、ゲート
タイムデータ等のメロディデータに変換する。スイッチ
群(入力手段)3は、ユーザの操作により音量、音色、
オクターブ切換、演奏モードを入力するとともに、メロ
ディ変換の際に音高データを変更するための変更番号
(変更指令情報)を入力する。スイッチ検出回路4はス
イッチ群3からの入力を検出してメロディデータに変換
する。CPU(制御手段)5は、バス6により押鍵検出
回路2、スイッチ検出回路4、プログラムROM7、ワ
ークRAM(記憶手段)8、データROM9、表示部1
0及びメロディ発生回路11に接続され、プログラムR
OM7に格納されているプログラムに基づいてこの装置
を制御する。そして、押鍵検出回路2及びスイッチ検出
回路4から与えられるメロディデータをワークRAM8
に格納し、所定の処理を施してメロディ発生回路11に
供給する。メロディ発生回路11は、CPU5から供給
されるメロディデータに基づいてディジタル音響信号を
生成し、D/Aコンバータ12に供給する。D/Aコン
バータ12はこのディジタル音響信号をアナログ音響信
号に変換し、電力増幅回路13を介してスピーカ14に
供給する。したがって、ユーザの鍵盤操作及びスイッチ
操作すなわちユーザのマニュアル演奏に応じた曲がスピ
ーカ14から発せられる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a melody conversion device according to the present invention will be described below with reference to FIGS. FIG.
FIG. 2 is a block diagram illustrating a hardware configuration of an embodiment of a melody conversion device. The keyboard unit 1 inputs a pitch, a start timing of a sound from the beginning of a bar, a sound generation time, and the like by a user's depression or performance. The key press detection circuit 2 detects the depression of the keyboard unit 1 and converts it into melody data such as pitch data, clock time data, gate time data, and the like. The switch group (input means) 3 controls the volume, timbre,
In addition to inputting octave switching and performance mode, a change number (change command information) for changing pitch data at the time of melody conversion is input. The switch detection circuit 4 detects an input from the switch group 3 and converts it into melody data. The CPU (control means) 5 is provided with a key press detection circuit 2, a switch detection circuit 4, a program ROM 7, a work RAM (storage means) 8, a data ROM 9, and a display unit 1 via a bus 6.
0 and the melody generating circuit 11
This device is controlled based on a program stored in OM7. Then, the melody data provided from the key press detection circuit 2 and the switch detection circuit 4 are stored in the work RAM 8.
And supplies it to the melody generating circuit 11 after performing predetermined processing. The melody generating circuit 11 generates a digital sound signal based on the melody data supplied from the CPU 5 and supplies the digital sound signal to the D / A converter 12. The D / A converter 12 converts the digital audio signal into an analog audio signal and supplies the analog audio signal to the speaker 14 via the power amplification circuit 13. Therefore, a song corresponding to the user's keyboard operation and switch operation, that is, the user's manual performance is emitted from the speaker 14.

【0006】一方、データROM9にはあらかじめ曲の
メロディデータが格納されている。そして、ユーザはデ
ータROM9に格納されている曲の音符の音高データを
1小節内において変更して他のメロディに変換をするこ
とができる。このため、ワークRAM8には変換の元に
なる1小節の音符のメロディデータを格納するための元
データエリア80が設けられている。図2に、元データ
エリア80に格納されたメロディデータのフォーマット
を示す。メロディデータは1小節のn個の音符に対応
し、音高を示す音高データ(ノートデータ)#1〜#
n、小節先頭からのクロック時間を示すクロックタイム
データ1〜n及び発音時間を示すゲートタイムデータ1
〜nで構成される。この場合、音高データは0〜127
の128段階で音高を示すことができる。また、データ
の最後には小節エンドが格納されている。ワークRAM
8には、この元データエリア80のアドレスをセットす
るma(アドレスデータエリア)82が設けられてい
る。また、ワークRAM8には変更後の1小節の新たな
音符のメロディデータを格納するための新データエリア
81が設けられている。そして、この新データエリア8
1のアドレスをセットするsa(アドレスデータエリ
ア)83が設けられている。その他、ワークRAM8に
は、スイッチ群3から入力された変更番号pを格納する
データエリア84、元データエリアの1小節の音符数を
格納するデータエリア85、変更番号pに応じて演算し
たデータを格納するTBUF86及びJBUF87、J
BUF87の状態をフラグで示すUSEBUF88が設
けられている。
On the other hand, the melody data of the music is stored in the data ROM 9 in advance. Then, the user can change the pitch data of the musical notes of the music stored in the data ROM 9 within one bar and convert it to another melody. For this reason, the work RAM 8 is provided with an original data area 80 for storing the melody data of a one-note note serving as a conversion source. FIG. 2 shows the format of the melody data stored in the original data area 80. The melody data corresponds to n notes in one measure, and pitch data (note data) # 1 to # indicating the pitch.
n, clock time data 1 to n indicating the clock time from the beginning of the bar, and gate time data 1 indicating the sound generation time
To n. In this case, the pitch data is 0 to 127
The pitch can be indicated in 128 levels. At the end of the data, a bar end is stored. Work RAM
8 is provided with a ma (address data area) 82 for setting an address of the original data area 80. Further, the work RAM 8 is provided with a new data area 81 for storing melody data of a new note of one measure after the change. And this new data area 8
An sa (address data area) 83 for setting an address of 1 is provided. In addition, the work RAM 8 stores a data area 84 for storing the change number p input from the switch group 3, a data area 85 for storing the number of notes in one measure of the original data area, and data calculated according to the change number p. TBUF86 and JBUF87, J to be stored
A USEBUF 88 that indicates the state of the BUF 87 by a flag is provided.

【0007】ワークRAM8の元データエリア81に格
納されたメロディデータは、図2に示すように、1小節
のn個の音符に対応し、音高を示す音高データ(ノート
データ)#1〜#n、小節先頭からのクロック時間を示
すクロックタイムデータ1〜n及び発音時間を示すゲー
トタイムデータ1〜nで構成される。この場合、音高デ
ータは0〜127の128段階で音高を示すことができ
る。また、データの最後には小節エンドのデータが格納
されている。また、図3にTBUF86、JBUF8
7、USEBUF88のデータ構造を示す。TBUF8
6に格納される数値データi0 、i1 、i2 、…
n-2 、in-1 は、所定の演算式によって算出される
が、これについては後述する。
As shown in FIG. 2, the melody data stored in the original data area 81 of the work RAM 8 corresponds to n notes in one bar, and pitch data (note data) # 1 to 1 indicating the pitch. #N, clock time data 1 to n indicating the clock time from the beginning of the bar, and gate time data 1 to n indicating the sound generation time. In this case, the pitch data can indicate the pitch in 128 stages from 0 to 127. At the end of the data, bar end data is stored. FIG. 3 shows TBUF86 and JBUF8.
7 shows the data structure of USEBUF88. TBUF8
Numerical data i 0 , i 1 , i 2 ,.
i n−2 and i n−1 are calculated by predetermined arithmetic expressions, which will be described later.

【0008】次に、実施形態におけるメロディ変換方法
について、図4に示すCPU5によるメロディ変換処理
のフローチャートを参照して説明する。まず、図2に示
す1小節の音符数をカウントする(ステップS1)。図
5に音符数カウント処理のフローチャートを示す。この
処理では、ma82に図2のメロディデータ先頭アドレ
スをセットし(ステップS11)、データエリア85に
「0」をセットする(ステップS12)。次に、ma8
2のデータ(ma)が小節エンドか否かを判別する(ス
テップS13)。小節エンドでない場合には、データ
(ma)が音高データであるか否かを判別する(ステッ
プS14)。データ(ma)が音高データである場合に
は、ステップS15においてnに1を加算してインクリ
メントし、ステップS15に移行し、データ(ma)が
音高データでなく休符データ等の場合にはそのままステ
ップS15に移行する。ステップS15では、ma82
の値に3を加算してすなわち次の音高データ(厳密に
は、音高データでなく休符データ等のこともあるが)の
アドレスにする。そして、ステップS13に移行してデ
ータ(ma)が小節エンドになるまでステップS13〜
ステップS16の処理を繰り返し実行して音高データす
なわち音符数をカウントする。そして、データ(ma)
が小節エンドになった場合には、図3のフローチャート
のステップS2に移行する。
Next, a melody conversion method in the embodiment will be described with reference to a flowchart of a melody conversion process by the CPU 5 shown in FIG. First, the number of notes in one bar shown in FIG. 2 is counted (step S1). FIG. 5 shows a flowchart of the note number counting process. In this process, the melody data start address of FIG. 2 is set in ma82 (step S11), and "0" is set in the data area 85 (step S12). Next, ma8
It is determined whether or not the data (ma) of No. 2 is a bar end (step S13). If it is not the bar end, it is determined whether or not the data (ma) is pitch data (step S14). If the data (ma) is pitch data, in step S15, 1 is added to n and incremented, and the process proceeds to step S15. If the data (ma) is not pitch data but rest data or the like, Directly proceeds to step S15. In step S15, ma82
Is added to the value of, i.e., the address of the next pitch data (strictly speaking, there may be rest data instead of pitch data). Then, the process proceeds to step S13, and steps S13 to S13 are performed until the data (ma) reaches the bar end.
The process of step S16 is repeatedly executed to count pitch data, that is, the number of musical notes. And the data (ma)
Has reached the end of the bar, the process proceeds to step S2 in the flowchart of FIG.

【0009】図4のステップS2において、データエリ
ア85のnの値が「0」か否かを判別し、nが「0」で
ある場合には、その1小節内に音高データがないすなわ
ち音符がないのでメロディ変換処理を終了し、nが
「0」でない場合にはTBUF生成を実行する(ステッ
プS3)。図6にTBUF生成処理のフローチャートを
示す。この処理を行うに際し、変更番号p(ただし、0
≦p<n!)を、 pk =Σik ・(n−1−k)!(k=0〜n−2) の形に展開する。ただしこの場合、0≦i0 ≦n−1、
0≦i1 ≦n−2、0≦i2 ≦n−3、…0≦in-3
2、0≦in-2 ≦1、in-1 =0である。図6におい
て、ポインタkを「0」にセットし(ステップS2
1)、pk すなわちこの場合p0 を入力された変更番号
pとする(ステップS22)。次に、下記の演算式、 ik =pk /(n−1−k)! pk+1 =mod ik k=0、1、2、……(n−3)、(n−2) により、数値データi0 、i1 、i2 、…in-2 を算出
し(ステップS23)、TBUF86に格納する(ステ
ップS24)。なお、この演算式において、mod i
k はpk /(n−1−k)!の余り値である。次に、k
の値を「1」増加するインクリメント処理を行い(ステ
ップS25)、kがn−1に達したか否かを判別する
(ステップS26)。そして、kがn−1に達するまで
ステップS23〜ステップS26の各処理を繰り返し実
行し、kがn−1に達したときはik =0すなわちi
n-1 =0として(ステップS27)、TBUF86に格
納する(ステップS28)。この後、図4のステップS
4のJBUF生成処理に移行する。
In step S2 of FIG. 4, it is determined whether or not the value of n in the data area 85 is "0". If n is "0", there is no pitch data in one bar. Since there is no note, the melody conversion process ends, and if n is not "0", TBUF generation is executed (step S3). FIG. 6 shows a flowchart of the TBUF generation processing. In performing this processing, the change number p (however, 0
≦ p <n! ), P k = Σi k · (n−1−k)! (K = 0 to n−2). However, in this case, 0 ≦ i 0 ≦ n−1,
0 ≦ i 1 ≦ n−2, 0 ≦ i 2n−3 ,.
2, 0 ≦ i n−2 ≦ 1, i n−1 = 0. In FIG. 6, the pointer k is set to "0" (step S2).
1), pk, that is, p 0 in this case, is set as the input change number p (step S22). Next, the following equation: i k = p k / (n−1−k)! Numerical data i 0 , i 1 , i 2 ,..., in -2 are calculated from p k + 1 = mod i k k = 0, 1, 2,... (n-3), (n−2). (Step S23), it is stored in the TBUF 86 (Step S24). In this equation, mod i
k is p k / (n−1−k)! Is the remainder of Then, k
Is incremented by "1" (step S25), and it is determined whether or not k has reached n-1 (step S26). Then, the respective processes of steps S23 to S26 are repeatedly executed until k reaches n-1. When k reaches n-1, i k = 0, i.e., i
Assuming that n-1 = 0 (step S27), it is stored in the TBUF 86 (step S28). Thereafter, step S in FIG.
The processing shifts to JBUF generation processing 4.

【0010】次に、TBUF86に格納された数値デー
タの配列に応じて順列データを生成し、これをJBUF
87に格納するJBUF生成処理の動作について説明す
る。この場合、JBUF87において先に使用したデー
タを重複して使用しないように格納する。このため、図
7に示すJBUF生成処理のフローチャートに示す処理
を実行する。まず、ポインタjを「0」にセットし(ス
テップS31)、ワークRAM8のUSEBUF88の
すべてのエリアを「0」にセットする(ステップS3
2)。USEBUF88の各エリアはJBUF87の各
エリアに対応しており、JBUF87の任意のエリアに
データが格納されたときそのエリアに対応するUSEB
UF88のエリアが「0」から「1」にセットされる。
ここでは、JBUF87のすべてのエリアにデータがま
だ格納されていないので、USEBUF88のすべての
エリアを「0」にセットする。次に、アドレスjのTB
UF86の数値データをデータxとしてCPU5のレジ
スタにセットし(ステップS33)、USEBUF88
のポインタmに「0」をセットする(ステップS3
4)。次に、アドレスmのUSEBUF88のフラグが
「0」か否かを判別する(ステップS35)。フラグが
「0」でなければアドレスmに「1」を加算し(ステッ
プS36)、そのアドレスmのUSEBUF88のフラ
グが「0」か否かを判別する。そして、USEBUF8
8のフラグが「0」のエリアになるまでアドレスmを加
算し、「0」のエリアになった場合にはxが「0」か否
かを判別する(ステップS37)。xが「0」でない場
合にはxから「1」を減算し(ステップS38)、ポイ
ンタmを加算するステップS36、アドレスmのUSE
BUF88のフラグが「0」か否かを判別するステップ
S35、ポインタxが「0」か否かを判別するステップ
S37の各処理を実行する。xが「0」になった場合に
はポインタmの値をJBUF87のアドレスjのエリア
に格納し(ステップS39)、アドレスmのUSEBU
F88のフラグを「1」にセットする(ステップS4
0)。次に、ポインタjに「1」を加算し(ステップS
41)、jがデータエリア85に格納した音符数nと同
じであるか否かを判別する(ステップS42)。jがn
でない場合には、ステップS33〜ステップS42の各
処理を繰り返し実行し、j=nになった場合には図4の
ステップS5の曲データ入れ換え処理に移行する。
Next, permutation data is generated in accordance with the array of numerical data stored in the TBUF 86, and this is referred to as JBUF.
The operation of the JBUF generation process stored in the storage unit 87 will be described. In this case, the data previously used in the JBUF 87 is stored so as not to be used redundantly. For this reason, the process shown in the flowchart of the JBUF generation process shown in FIG. 7 is executed. First, the pointer j is set to "0" (step S31), and all areas of the USEBUF 88 of the work RAM 8 are set to "0" (step S3).
2). Each area of USEBUF88 corresponds to each area of JBUF87, and when data is stored in an arbitrary area of JBUF87, the USB corresponding to the area is stored.
The area of the UF 88 is set from “0” to “1”.
Here, since data is not yet stored in all the areas of the JBUF 87, all the areas of the USEBUF 88 are set to “0”. Next, TB of address j
The numerical data of the UF 86 is set as data x in the register of the CPU 5 (step S33), and the USEBUF 88
"0" is set to the pointer m (step S3).
4). Next, it is determined whether or not the flag of the USEBUF 88 at the address m is “0” (step S35). If the flag is not "0", "1" is added to the address m (step S36), and it is determined whether or not the flag of the USEBUF 88 of the address m is "0". And USEBUF8
The address m is added until the flag of 8 reaches the area of "0", and when it reaches the area of "0", it is determined whether or not x is "0" (step S37). If x is not "0", "1" is subtracted from x (step S38), and a pointer m is added in step S36, USE of address m
The processing of step S35 for determining whether or not the flag of the BUF88 is "0" and the processing of step S37 for determining whether or not the pointer x is "0" are executed. When x becomes “0”, the value of the pointer m is stored in the area of the address j of the JBUF 87 (step S39), and the USEBU of the address m is stored.
The flag of F88 is set to "1" (step S4)
0). Next, “1” is added to the pointer j (step S
41) It is determined whether or not j is the same as the number n of notes stored in the data area 85 (step S42). j is n
If not, the processing from step S33 to step S42 is repeatedly executed. If j = n, the processing shifts to the music piece replacement processing in step S5 in FIG.

【0011】ステップS5の曲データ入れ換え処理は、
図8に示すように、sa83に新データエリア81の先
頭アドレスをセットし(ステップS51)、ma82に
元データエリア80の先頭アドレスをセットする(ステ
ップS52)。次に、ポインタjを「0」にセットし
(ステップS53)、ステップS54〜ステップS56
において、ポインタjを「1」ずつインクリメントしな
がら、元データエリア80の音高データをJBUF87
の順列データに基づいて新データエリア81に順次転送
する。jがn−1になった場合すなわちn個の音高デー
タが元データエリア80から新データエリア81に転送
されたときは、ポインタjを再び「0」にセットする
(ステップS57)。次に、ステップS58〜ステップ
S60において、ポインタjを「1」ずつインクリメン
トしながら、新データエリア81の音高データを元デー
タエリアに順次転送する。jがn−1になった場合すな
わちすべての音高データが新データエリア81から元デ
ータエリア80に転送されたときは、メインルーチン
(図示せず)に戻る。
The music data exchange process in step S5 is as follows.
As shown in FIG. 8, the start address of the new data area 81 is set in sa83 (step S51), and the start address of the original data area 80 is set in ma82 (step S52). Next, the pointer j is set to "0" (step S53), and steps S54 to S56 are performed.
, While the pointer j is incremented by “1”, the pitch data in the original data area 80 is added to the JBUF 87
Are sequentially transferred to the new data area 81 based on the permutation data. When j becomes n-1, that is, when n pieces of pitch data have been transferred from the original data area 80 to the new data area 81, the pointer j is set to "0" again (step S57). Next, in steps S58 to S60, the pitch data of the new data area 81 is sequentially transferred to the original data area while incrementing the pointer j by "1". When j becomes n-1, that is, when all pitch data have been transferred from the new data area 81 to the original data area 80, the process returns to the main routine (not shown).

【0012】次に、n=3すなわち1小節の音符数が3
個の場合のメロディ変換について説明する。この場合に
は、変更番号pの採り得る値は0≦p<3!すなわち6
通りであるので、p=0〜5となる。したがって、図9
に示すように、図6におけるTBUF生成処理によりT
BUF86に数値データが格納され、図7におけるJB
UF生成処理によりJBUF87に順列データが格納さ
れる。そして、この順列データに基づいて元データエリ
ア80の音高データが図9の矢印に沿って新データエリ
ア81に転送される。
Next, n = 3, that is, the number of notes in one measure is three
The melody conversion in the case of the number will be described. In this case, the possible value of the change number p is 0 ≦ p <3! That is, 6
Therefore, p = 0 to 5. Therefore, FIG.
As shown in FIG. 6, TBUF generation processing in FIG.
Numerical data is stored in BUF86, and JB in FIG.
The permutation data is stored in the JBUF 87 by the UF generation processing. Then, based on the permutation data, the pitch data of the original data area 80 is transferred to the new data area 81 along the arrow in FIG.

【0013】図10にn=8の場合のメロディ変換の例
を示す。図10(A)は1小節にn1〜n8の音符をも
つ曲である。この場合、スイッチ群3から任意の変更番
号pが入力されると、その変更番号pに応じて順列デー
タが自動的に生成され、図10(C)に示すように、元
データエリア80の音高データが矢印に沿って新データ
エリア81に転送される。この結果、図10(B)に示
すように1小節の音符にメロディ変換される。
FIG. 10 shows an example of melody conversion when n = 8. FIG. 10A shows a tune having notes n1 to n8 in one bar. In this case, when an arbitrary change number p is input from the switch group 3, the permutation data is automatically generated according to the change number p, and as shown in FIG. The high data is transferred to the new data area 81 along the arrow. As a result, as shown in FIG. 10B, the melody is converted into a note of one measure.

【0014】このように上記実施形態においては、入力
された変更番号pに応じてJBUF87に格納する順列
データを生成し、その生成した順列データに基づいて1
小節内における元の音符の音高データを新たな音符の音
高データに自動的に並べ替えて変更する。したがって、
多様なメロディ変換のニーズに応えるとともに、メロデ
ィ変換の際にユーザの困難な作業を伴うことがない。
As described above, in the above-described embodiment, the permutation data to be stored in the JBUF 87 is generated in accordance with the input change number p, and one permutation is performed based on the generated permutation data.
The pitch data of an original note in a bar is automatically rearranged and changed to the pitch data of a new note. Therefore,
In addition to meeting various melody conversion needs, the melody conversion does not involve the user's difficult work.

【0015】[0015]

【発明の効果】請求項1又は請求項2に記載の発明によ
れば、変更の対象となるn個の音符データ夫々に対応す
る番号を付与し、変更後におけるn個の音符データの全
ての組合せの中のひとつの組合せを示す変更番号pがス
イッチ群から入力されたときは、その変更番号pを全て
の組合せである0〜(n−1)!の各数値で分解し、次
の演算式 p=Σi×(n−1−k)! において、kの値を0,1,2…(n−3),(n−
2)と順次インクリメントしながら、各kの値に対応す
るpを(n−1−k)!で除算した整数値をiとす
るとともに、この除算の余り値を次の演算に用いる値p
k+1とする演算処理を繰り返して各係数iを生成
し、kの値をアドレスにしてiを順次記憶し、n個の
音符データを示す番号を記憶できる各記憶エリアの中か
ら、順次検出した空き記憶エリアの位置及びkの値をア
ドレスにしたiに基づいて決定した音符データを示す
番号順に、変更の対象となるn個の音符データを並べ替
えることにより、ユーザの多様なメロディ変換のニーズ
に応えるとともに、メロディ変換の際にユーザの困難な
作業を伴うことがない。
According to the first or second aspect of the present invention, a number corresponding to each of the n pieces of note data to be changed is assigned, and all of the n pieces of note data after the change are assigned. When a change number p indicating one of the combinations is input from the switch group, the change number p is set to all the combinations 0 to (n-1)! Decomposes at each number, the following calculation formula p = Σi k × (n- 1-k)! , The value of k is 0, 1, 2,... (N−3), (n−
While sequentially incrementing 2), pk corresponding to each value of k is (n−1−k)! Division by integer value with the i k in the value p using the remainder value of the division to the next operation
The calculation processing of k + 1 is repeated to generate each coefficient ik , ik is sequentially stored using the value of k as an address, and sequentially detected from each storage area capable of storing a number indicating n note data. order of the numbers indicating the note data determined based on the values of the position and k of free storage area for which the i k you address, by rearranging the n-number of note data to be changed, various melodies conversion of the user And the melody conversion does not involve any difficult work of the user.

【図面の簡単な説明】[Brief description of the drawings]

【図1】この発明のメロディ変換装置の実施形態におけ
る構成を示すブロック図。
FIG. 1 is a block diagram showing a configuration of a melody conversion device according to an embodiment of the present invention.

【図2】実施形態におけるワークRAMにおけるメロデ
ィデータを示す図。
FIG. 2 is an exemplary view showing melody data in a work RAM according to the embodiment.

【図3】実施形態におけるワークRAMのデータエリア
の構成を示す図。
FIG. 3 is an exemplary view showing a configuration of a data area of a work RAM in the embodiment.

【図4】実施形態におけるメロディ変換処理のフローチ
ャート。
FIG. 4 is a flowchart of a melody conversion process according to the embodiment.

【図5】図3の音符数カウントのサブルーチンのフロー
チャート。
FIG. 5 is a flowchart of a subroutine for counting the number of notes in FIG. 3;

【図6】図3のTBUF生成処理のサブルーチンのフロ
ーチャート。
FIG. 6 is a flowchart of a subroutine of a TBUF generation process of FIG. 3;

【図7】図3のJBUF生成処理のサブルーチンのフロ
ーチャート。
FIG. 7 is a flowchart of a subroutine of a JBUF generation process of FIG. 3;

【図8】図3の曲データ入れ換え処理のサブルーチンの
フローチャート。
FIG. 8 is a flowchart of a subroutine of a music data exchange process of FIG. 3;

【図9】実施形態において音符数が3個の場合のメロデ
ィ変換の様子を示す図。
FIG. 9 is a diagram showing a melody conversion state in the case where the number of notes is three in the embodiment.

【図10】実施形態におけるメロディ変換の音符例を示
す図。
FIG. 10 is an exemplary view showing an example of a melody conversion note in the embodiment;

【符号の説明】[Explanation of symbols]

5 CPU 8 ワークRAM 9 データROM 80 元データエリア 81 新データエリア 5 CPU 8 Work RAM 9 Data ROM 80 Original data area 81 New Data Area

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】変更の対象となるメロディを構成するn個
の音符データ夫々に対応する番号が付与されているとと
もに、当該n個の音符データが格納された記憶手段と、 変更後における前記n個の音符データの全ての組合せ
(n!種類)の中のひとつの組合せを示す数値p(0≦
p<n!)を含む変更指令情報を入力する入力手段と、 前記入力手段からの前記変更指令情報に含まれる数値p
を、0〜(n−1)!の各数値で分解し、 p=Σi ×(n−1−k)! 但し、k=0,1,2…(n−3),(n−2) と表した場合の各係数i を求めるために、最初に、k
を0として、 k=0=p とし、このp を(n−1−k)!で除算した整数値を
とするとともにこの除算の余り値を次の演算に用い
る値p k+1とする演算処理を、kの値を順次インクリ
メントしながら繰り返すことにより、各係数i を生成
する生成手段と、 この生成手段により生成されるi の個数分の記憶エリ
アを有し、kの値をアドレスにして当該生成手段により
生成されるi を対応する記憶エリアに順次記憶する第
1のバッファと、 n個の記憶エリアを有し、各記憶エリアに前記記憶手段
に記憶されているn個の音符データを示す番号を夫々記
憶可能な第2のバッファと、 前記第1のバッファに記憶されたi を順次読み出すと
ともに前記第2のバッファの各記憶エリアを最初から走
査することにより順次空き記憶エリア位置を検出し、当
該読み出されたi 及び前記第2のバッファの空き記憶
エリアの位置に基づいて音符データを示す番号を決定し
て、当該検出された空き記憶エリア位置に前記決定され
た音符データを示す番号を記憶させる並べ替え順決定手
段と、 前記第2のバッファに記憶された前記各音符データを示
す番号順に、前記記憶手段の音符データを並べ替える並
べ替え手段と 、 を備えたことを特徴とするメロディ変換装置。
1. n pieces of a melody to be changed
It is assumed that numbers corresponding to the note data of
The storage means in which the n pieces of note data are stored , and all combinations of the n pieces of note data after the change.
Numerical value p (0 ≦
p <n! ) For inputting the change command information including the change command information, and a numerical value p included in the change command information from the input means.
From 0 to (n-1)! It decomposes at each number, p = Σi k × (n -1-k)! However, k = 0,1,2 ... (n- 3), in order to determine each coefficient i k when expressed as (n-2), first, k
As 0, and p k = 0 = p, the p k (n-1-k )! The integer value divided by
using the remainder value of the division to the next operation with the i k
The calculation process of setting the value p k + 1 to the value k is sequentially incremented.
By repeating while instrument, generate each coefficient i k
Generating means, and storage areas for the number of i k generated by the generating means.
With the value of k as an address and
The sequentially stores i k generated in the corresponding storage area
One buffer, and n storage areas, wherein each storage area has the storage means.
The numbers indicating the n pieces of note data stored in
A second buffer capable憶, when sequentially reading the i k stored in the first buffer
Both run from the beginning in each storage area of the second buffer.
The position of the empty storage area is sequentially detected by
The read ik and empty storage of the second buffer
Determines the note data number based on the location of the area
The determined free storage area position is
To determine the sort order to store the number indicating the note data
A row and each of the note data stored in the second buffer;
In which the note data in the storage means are rearranged in numerical order.
A melody conversion device, comprising: a replacement unit .
【請求項2】変更の対象となるメロディを構成するn個
の音符データ夫々に対応する番号が付与されているとと
もに、当該n個の音符データを記憶手段に格納し、 変更後における前記n個の音符データの全ての組合せ
(n!種類)の中のひとつの組合せを示す数値p(0≦
p<n!)を含む変更指令情報を入力し、 当該入力された前記変更指令情報に含まれる数値pを、
0〜(n−1)!の各数値で分解し、 p=Σi ×(n−1−k)! 但し、k=0,1,2…(n−3),(n−2) と表した場合の各係数i を求めるために、最初に、k
を0として、 k=0=p とし、このp を(n−1−k)!で除算した整数値を
とするとともにこの除算の余り値を次の演算に用い
る値p k+1とする演算処理を、kの値を順次インクリ
メントしながら繰り返すことにより各係数i を生成
し、 この生成されるi の個数分の記憶エリアを有する第1
のバッファに対して、kの値をアドレスにして生成され
るi を対応する当該記憶エリアに順次記憶し、 前記第1のバッファに記憶されたi を順次読み出すと
ともに、n個の記憶エリアを有し各記憶エリアに前記記
憶手段に記憶されているn個の音符データを示す番号を
夫々記憶可能な第2のバッファの各記憶エリアを最初か
ら走査することにより順次空き記憶エリア位置を検出
し、当該読み出されたi 及び前記第2のバッファの空
き記憶エリアの位置に基づいて音符データを示す番号を
決定して、当該検出された空き記憶エリア位置に当該決
定された音符データを示す番号を記憶させ、 前記第2のバッファに記憶された前記各音符データを示
す番号順に、前記記憶手段の音符データを並べ替える、 ことを特徴とするメロディ変換方法
2. The n melody which constitutes the melody to be changed
It is assumed that numbers corresponding to the note data of
The n note data is stored in the storage means, and all combinations of the n note data after the change are stored.
Numerical value p (0 ≦
p <n! ) Is input, and the numerical value p included in the input change instruction information is
0- (n-1)! It decomposes at each number, p = Σi k × (n -1-k)! However, k = 0,1,2 ... (n- 3), in order to determine each coefficient i k when expressed as (n-2), first, k
As 0, and p k = 0 = p, the p k (n-1-k )! The integer value divided by
using the remainder value of the division to the next operation with the i k
The calculation process of setting the value p k + 1 to the value k is sequentially incremented.
Generates each coefficient i k By repeating while instruments
And, first having a storage area corresponding to the number of all i k This generated
Is generated using the value of k as an address for
Sequentially storing that i k in the corresponding the storage area, the out sequentially reading the i k stored in the first buffer
Both have n storage areas, and each storage area
The number indicating the n note data stored in the storage means
Whether each storage area of the second buffer that can be stored respectively is the first
Detecting empty storage area position sequentially by scanning from
And the read ik and the empty space of the second buffer.
Number indicating the note data based on the location of the storage area
Is determined, and the determined
A number indicating the specified note data is stored, and each note data stored in the second buffer is indicated.
A melody conversion method , wherein the musical note data in the storage means is rearranged in numerical order .
JP23904895A 1995-08-25 1995-08-25 Melody conversion device and method Expired - Fee Related JP3533482B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23904895A JP3533482B2 (en) 1995-08-25 1995-08-25 Melody conversion device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23904895A JP3533482B2 (en) 1995-08-25 1995-08-25 Melody conversion device and method

Publications (2)

Publication Number Publication Date
JPH0962261A JPH0962261A (en) 1997-03-07
JP3533482B2 true JP3533482B2 (en) 2004-05-31

Family

ID=17039104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23904895A Expired - Fee Related JP3533482B2 (en) 1995-08-25 1995-08-25 Melody conversion device and method

Country Status (1)

Country Link
JP (1) JP3533482B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020217301A1 (en) * 2019-04-23 2020-10-29 AlphaTheta株式会社 Music data editing device and music data editing program

Also Published As

Publication number Publication date
JPH0962261A (en) 1997-03-07

Similar Documents

Publication Publication Date Title
JPH10187157A (en) Automatic performance device
JP3533482B2 (en) Melody conversion device and method
US5521327A (en) Method and apparatus for automatically producing alterable rhythm accompaniment using conversion tables
US5455379A (en) Adaptive chord generating apparatus and the method thereof
JP3625914B2 (en) Arpeggiator
JPH0769698B2 (en) Automatic accompaniment device
JP2623955B2 (en) Electronic musical instrument
JPH02173698A (en) Electronic musical instrument
JP2961867B2 (en) Music signal generator
JPH0527762A (en) Electronic musical instrument
JP3301173B2 (en) Automatic performance device
JPH07325578A (en) Automatic accompaniment apparatus
JP2760301B2 (en) Electronic musical instrument
JP2639381B2 (en) Electronic musical instrument
JP3186752B2 (en) Performance information analyzer and performance information analysis method
JPH05188961A (en) Automatic accompaniment device
JP3385545B2 (en) Automatic performance device
JP3282675B2 (en) Electronic musical instrument
JP2857915B2 (en) Automatic performance device
JP3046094B2 (en) Automatic accompaniment device
JP3214070B2 (en) Electronic string instrument
JP2540966B2 (en) Electronic musical instrument
KR930006617B1 (en) Mutifill-in generating device of electrophonic musical instruments
JPH10133661A (en) Automatic playing device
JP3186748B2 (en) Performance information analyzer and performance information analysis method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040223

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 5

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 6

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 7

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees