JP2021124688A - Baseline sound automatic generation device, electronic musical instrument, baseline sound automatic generation method, and program - Google Patents

Baseline sound automatic generation device, electronic musical instrument, baseline sound automatic generation method, and program Download PDF

Info

Publication number
JP2021124688A
JP2021124688A JP2020020067A JP2020020067A JP2021124688A JP 2021124688 A JP2021124688 A JP 2021124688A JP 2020020067 A JP2020020067 A JP 2020020067A JP 2020020067 A JP2020020067 A JP 2020020067A JP 2021124688 A JP2021124688 A JP 2021124688A
Authority
JP
Japan
Prior art keywords
beat
timing
sound
processing
chord
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.)
Granted
Application number
JP2020020067A
Other languages
Japanese (ja)
Other versions
JP7505196B2 (en
Inventor
順 吉野
Jun Yoshino
順 吉野
敏之 橘
Toshiyuki Tachibana
敏之 橘
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 JP2020020067A priority Critical patent/JP7505196B2/en
Publication of JP2021124688A publication Critical patent/JP2021124688A/en
Application granted granted Critical
Publication of JP7505196B2 publication Critical patent/JP7505196B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

To provide an electronic musical instrument that can automatically perform a baseline with user's performance, a baseline generation method, and a program, and to automatically generates a good baseline having musical continuity and not being monotonous.SOLUTION: Chord data is acquired per measure or per beat of a measure, and based on the chord data, at least any processing among semitone processing (S404), scale sound processing (S405), chord sound processing (S406), or route sound processing (S407) is determined and executed (S401, S402, S403). A baseline is generated based on the acquired chord data and executed processing, and a musical sound of baseline accompaniment in accordance with the generated baseline is sounded.SELECTED DRAWING: Figure 4

Description

本発明は、ベースラインを自動生成することができるベースライン音自動生成装置、電子楽器、ベースライン音自動生成方法及びプログラムに関する。 The present invention relates to an automatic bass line sound generator capable of automatically generating a bass line, an electronic musical instrument, an automatic bass line sound generation method, and a program.

従来の電子楽器において、音長、強弱、音高の変化方向、音高の変化幅、ノート属性、のうち少なくとも1つについての例えばベースライン伴奏パターンのためのパラメータを供給しながらパラメータの値を変化させ、このパラメータに基づいて望みの時点で所望の伴奏音が発生するように、ベースライン伴奏パターンを作り出す技術が知られている(例えば特許文献1)。 In a conventional electronic musical instrument, the value of a parameter is set while supplying a parameter for, for example, a bass line accompaniment pattern for at least one of pitch length, strength, pitch change direction, pitch change width, and note attribute. There is known a technique for creating a baseline accompaniment pattern so that a desired accompaniment sound is generated at a desired time based on this parameter (for example, Patent Document 1).

特開2001−175263号公報Japanese Unexamined Patent Publication No. 2001-175263

しかし、上述の従来技術により生成されるベースライン伴奏パターンは、パラメータを介してあらかじめプログラミングされた伴奏データが繰り返し再生されるものであり、パラメータをユーザの意思により又は確率に基づいて変化させることで伴奏パターンに変化を持たせることはできるが、例えばジャズのベースライン伴奏などに見られるアドリブを効かせたような自動伴奏を行うことはできず、それ故その演奏は機械的に聞えてしまうという課題があった。 However, in the baseline accompaniment pattern generated by the above-mentioned conventional technique, the accompaniment data pre-programmed via the parameters is repeatedly reproduced, and the parameters are changed by the user's intention or probability. Although it is possible to change the accompaniment pattern, it is not possible to perform automatic accompaniment with the ad-lib effect found in, for example, jazz bassline accompaniment, and therefore the performance is heard mechanically. There was a challenge.

本発明は、良好なベースラインを自動生成することを目的とする。 An object of the present invention is to automatically generate a good baseline.

態様の一例では、ベースライン音自動生成装置のプロセッサが、生成する音が、小節内のいずれの拍のタイミングに該当するかを判断し、判断された拍のタイミングが第1拍のタイミングである場合に、第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行し、判断された拍のタイミングが第1拍以外の拍のタイミングである場合に、コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行する。 In one example of the embodiment, the processor of the automatic baseline sound generator determines which beat timing in the bar corresponds to the generated sound, and the determined beat timing is the first beat timing. In this case, the chord is executed when the root note processing for generating the root note of the chord data associated with the timing of the first beat is executed, and the timing of the determined beat is the timing of a beat other than the first beat. A process determined probabilistically from a plurality of processes including a process based on data is executed.

本発明によれば、良好なベースラインを自動生成することが可能となる。 According to the present invention, it is possible to automatically generate a good baseline.

電子楽器のシステムハードウェアの構成例を示すブロック図である。It is a block diagram which shows the configuration example of the system hardware of an electronic musical instrument. 本実施形態の動作説明図である。It is operation explanatory drawing of this embodiment. 全体処理の例を示すメインフローチャートである。It is a main flowchart which shows an example of the whole processing. 音高決定処理の例を示すフローチャートである。It is a flowchart which shows the example of the pitch determination processing. 半音処理実行判断処理、コード音処理実行判断処理、及びルート音処理の例を示すフローチャートである。It is a flowchart which shows an example of a semitone processing execution judgment processing, chord sound processing execution judgment processing, and root sound processing. 半音処理の例を示すフローチャートである。It is a flowchart which shows the example of a semitone processing. スケール音処理実行判断処理の例を示すフローチャートである。It is a flowchart which shows the example of the scale sound processing execution judgment processing. スケール音処理の例を示すフローチャートである。It is a flowchart which shows the example of scale sound processing. コード音処理の例を示すフローチャートである。It is a flowchart which shows the example of chord sound processing. オクターブ音処理の例を示すフローチャート(その1)である。It is a flowchart (the 1) which shows the example of the octave sound processing. オクターブ音処理の例を示すフローチャート(その2)である。It is a flowchart (2) which shows an example of an octave sound processing. スケール音決定テーブルの例を示す図である。It is a figure which shows the example of the scale sound determination table. コード音決定テーブルの例を示す図である。It is a figure which shows the example of the chord sound determination table.

以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。図1は、電子楽器の1実施形態100のシステムハードウェアの構成例を示す図である。 Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 is a diagram showing a configuration example of the system hardware of the first embodiment 100 of the electronic musical instrument.

電子楽器100は、例えば電子鍵盤楽器であり、演奏操作子としての複数の鍵からなる鍵盤105と、電子楽器100の電源オン/オフや、音量調整、楽音出力の音色の指定やベースライン自動伴奏のテンポ等の各種設定を指示したりするスイッチ、及び演奏効果を付加するスイッチやベンドホイールやペダル等を含むスイッチ107と、各種設定情報を表示するLCD(Liquid Crystal Display:液晶ディスプレイ)109等を備える。また、電子楽器100は、演奏により生成された楽音を放音するスピーカ113を、筐体の裏面部、側面部、又は背面部等に備える。 The electronic musical instrument 100 is, for example, an electronic keyboard instrument, and is a keyboard 105 composed of a plurality of keys as a performance operator, power on / off of the electronic musical instrument 100, volume adjustment, specification of a tone color of a musical sound output, and automatic bass line accompaniment. A switch for instructing various settings such as the tempo of the instrument, a switch 107 for adding a performance effect, a bend wheel, a pedal, etc., and an LCD (Liquid Crystal Display) 109 for displaying various setting information. Be prepared. Further, the electronic musical instrument 100 is provided with a speaker 113 for emitting a musical sound generated by the performance on the back surface portion, the side surface portion, the back surface portion, or the like of the housing.

また、電子楽器100において、CPU(プロセッサ)101、ROM(リードオンリーメモリ)、RAM(ランダムアクセスメモリ)103、音源LSI(大規模集積回路)104、鍵盤105が接続されるキースキャナ106、スイッチ107が接続されるI/Oインタフェース108、LCD109が接続されるLCDコントローラ110、及びMIDI(Musical Instrument Digital Interface)等の音楽データを外部のネットワークから取りこむネットワークインタフェース114、が、それぞれシステムバス115に接続されている。更に、音源LSI104の出力側には、D/Aコンバータ111、アンプ112、及びスピーカ113が順次接続される。 Further, in the electronic musical instrument 100, a key scanner 106 and a switch 107 to which a CPU (processor) 101, a ROM (read-only memory), a RAM (random access memory) 103, a sound source LSI (large-scale integrated circuit) 104, and a keyboard 105 are connected. The I / O interface 108 to which the LCD 109 is connected, the LCD controller 110 to which the LCD 109 is connected, and the network interface 114 that captures music data such as MIDI (Musical Instrument Digital Interface) from an external network are connected to the system bus 115, respectively. ing. Further, a D / A converter 111, an amplifier 112, and a speaker 113 are sequentially connected to the output side of the sound source LSI 104.

CPU101は、RAM103をワークメモリとして使用しながらROM102に記憶された制御プログラムを実行することにより、図1の電子楽器100の制御動作を実行する。また、ROM102は、上記制御プログラム及び各種固定データのほか、例えばジャズのベースラインデータを含む曲データを記憶する。 The CPU 101 executes the control operation of the electronic musical instrument 100 of FIG. 1 by executing the control program stored in the ROM 102 while using the RAM 103 as the work memory. In addition to the control program and various fixed data, the ROM 102 stores song data including, for example, jazz baseline data.

このときCPU101は、ユーザが鍵盤105で演奏した演奏データをキースキャナ106及びシステムバス115を介して取りこみ、その演奏に応じたノートオンデータやノートオフデータを生成して、音源LSI104に出力する。これにより、音源LSI104は、入力したノートオンデータやノートオフデータに応じた楽音波形データを生成・出力し又は出力を終了する。音源LSI104から出力される楽音波形データは、D/Aコンバータ111でアナログ楽音波形信号に変換された後、アンプ112で増幅され、スピーカ113から、ユーザが演奏した演奏楽音として放音される。 At this time, the CPU 101 captures the performance data played by the user on the keyboard 105 via the key scanner 106 and the system bus 115, generates note-on data and note-off data according to the performance, and outputs the data to the sound source LSI 104. As a result, the sound source LSI 104 generates / outputs or ends the output of the musical sound waveform data corresponding to the input note-on data and note-off data. The musical tone type data output from the sound source LSI 104 is converted into an analog musical tone type signal by the D / A converter 111, amplified by the amplifier 112, and emitted from the speaker 113 as a musical tone played by the user.

また、上記演奏楽音の放音動作に併行して、CPU101は、例えばROM102からシステムバス115を介して、ユーザがスイッチ107からI/Oインタフェース108及びシステムバス115を介して指定した、例えばジャズ楽曲のベースラインを自動伴奏するためのコードデータを順次入力し、そのコードデータに基づいてベースラインのノートナンバを順次決定し、そのノートナンバのノートオンデータ又はノートオフデータを順次生成して、音源LSI104に出力する。これにより、音源LSI104は、入力したベースラインの自動伴奏音に対応するベースライン楽音波形データを生成・出力し又は出力を終了する。音源LSI104から出力されるベースライン楽音波形データは、D/Aコンバータ111でアナログ楽音波形信号に変換された後、アンプ112で増幅され、スピーカ113から、ユーザが演奏楽音に合わせて自動伴奏されるベースライン楽音として放音される。 Further, in parallel with the sound emitting operation of the performance music sound, the CPU 101 specifies, for example, a jazz music specified by the user from the ROM 102 via the system bus 115 and from the switch 107 via the I / O interface 108 and the system bus 115. The chord data for automatically accompaniment of the baseline is sequentially input, the note number of the baseline is sequentially determined based on the chord data, and the note-on data or note-off data of the note number is sequentially generated to generate the sound source. Output to LSI 104. As a result, the sound source LSI 104 generates / outputs the baseline musical waveform data corresponding to the input bassline automatic accompaniment sound, or ends the output. The baseline musical tone data output from the sound source LSI 104 is converted into an analog musical tone signal by the D / A converter 111, amplified by the amplifier 112, and automatically accompanied by the user from the speaker 113 according to the playing musical tone. It is emitted as a baseline musical tone.

音源LSI104は、上記演奏楽音及びベースライン自動伴奏音を同時に出力するために、例えば同時に最大256ボイスを発振させる能力を有する。 The sound source LSI 104 has an ability to oscillate a maximum of 256 voices at the same time, for example, in order to simultaneously output the performance musical tone and the bassline automatic accompaniment sound.

キースキャナ106は、鍵盤105の押鍵/離鍵状態を定常的に走査し、CPU101に割込みをかけて状態変化を伝える。 The key scanner 106 constantly scans the keyed / released state of the keyboard 105, interrupts the CPU 101, and transmits the state change.

I/Oインタフェース108は、スイッチ107の操作状態を定常的に走査し、CPU101に割り込みを掛けて状態変化を伝える。 The I / O interface 108 constantly scans the operating state of the switch 107, interrupts the CPU 101, and transmits the state change.

LCDコントローラ110は、LCD505の表示状態を制御するIC(集積回路)である。 The LCD controller 110 is an IC (integrated circuit) that controls the display state of the LCD 505.

ネットワークインタフェース114は、例えばインターネットやローカルエリアネットワークに接続され、本実施形態で使用される制御プログラムや、各種楽曲データ、自動演奏データなどを取得し、RAM103等に記憶させることができる。 The network interface 114 is connected to, for example, the Internet or a local area network, and can acquire the control program, various music data, automatic performance data, etc. used in the present embodiment and store them in the RAM 103 or the like.

図1で示される電子楽器100の動作概要について、図2の動作説明図に従って説明する。本実施形態では、ユーザによる鍵盤105による演奏に合わせて、例えばジャズのベースラインの伴奏音を自動生成し、放音させることができる。 The operation outline of the electronic musical instrument 100 shown in FIG. 1 will be described with reference to the operation explanatory diagram of FIG. In the present embodiment, for example, a jazz bassline accompaniment sound can be automatically generated and emitted in accordance with the performance by the user on the keyboard 105.

このとき、CPU101は、小節ごと又は小節の拍ごとにコードデータを例えばROM102から取得し、コードデータに基づいて、少なくとも半音処理、スケール音処理、コード音処理、又はルート音処理のうちの何れかの処理を判断及び実行し、取得したコードデータ及び、実行した処理に従って、ベースラインを生成し、生成したベースラインに応じた音の発音を音源LSI104に指示する。 At this time, the CPU 101 acquires chord data from, for example, ROM 102 for each bar or each beat of the bar, and based on the chord data, at least one of half-tone processing, scale sound processing, chord sound processing, and root sound processing. Is determined and executed, a baseline is generated according to the acquired code data and the executed process, and the sound source LSI 104 is instructed to produce a sound according to the generated baseline.

半音処理とは、音楽用語としてはクロマチックアプローチともいい、或るタイミングに発音させるノートの音高を、その或るタイミングの次のタイミングに発音させるノートの半音上又は半音下の音高で発音させる処理のことをいう。半音処理の実行により調性外のノートが使用されることになり不協和音の発生に繋がるが、これにより音楽的なスパイスが加えられる。 Semitone processing is also called a chromatic approach in musical terms, and the pitch of a note to be pronounced at a certain timing is pronounced at the pitch above or below a semitone of the note to be pronounced at the timing following that certain timing. It refers to processing. Performing semitone processing results in the use of non-tonal notes, leading to dissonance, which adds a musical spice.

スケール音処理とは、小節内の各拍タイミングなどの、発音タイミングがそれぞれ異なるタイミングにおける連続する複数のノートを、所定の音程で設定された複数の音高(スケール音)の中から順番に、上行(順番に高音側に遷移していく)、又は下行(順番に低音側に遷移していく)の各音高で、例えば各拍タイミングに同期して発音させる処理のことをいう。スケール(音階)とは、例えば、メジャー、マイナー等の調性や、シンメトリカル、ペンタトニック、ブルーノート等の音楽理論に基づいて、音を音高により昇順あるいは降順にならべたものである。 The scale sound processing is to process a plurality of consecutive notes at different timings such as each beat timing in a bar in order from a plurality of pitches (scale sounds) set at a predetermined pitch. It refers to the process of sounding at each pitch of the ascending line (transitioning to the treble side in order) or the descending line (transitioning to the bass side in order), for example, in synchronization with each beat timing. The scale (scale) is, for example, an arrangement of sounds in ascending or descending order according to pitch, based on tonality such as major and minor, and music theory such as symmetrical, pentatonic, and blue note.

コード音処理とは、コードの構成音に含まれる音高で発音させる処理のことをいう。 The chord sound processing is a process of producing a sound at the pitch included in the constituent notes of the chord.

ルート音処理とは、コードの構成音のうちのルート音高で発音させる処理のことをいう。 The root note processing is a process in which the root note of the chord constituent notes is pronounced.

上述の半音処理、スケール音処理、コード音処理、及びルート音処理の組合せは、例えばジャズのベースラインが演奏されるときにコード進行に沿ったベースライン特有の奏法である。 The combination of semitone processing, scale sound processing, chord sound processing, and root sound processing described above is a bassline-specific playing method along the chord progression, for example, when a jazz bassline is played.

図1のROM102には、例えば、複数の小節又は小節内の例えば強拍に対応付けて、図2(a)に例示されるような例えば8小節分(小節数は任意)のコードデータが記憶されている。図2(b)は、ROM102から順次読み出される図2(a)に対応する各コードデータのデータ構成の例を示す図である。図2(b)に示される表の上から下へ並ぶ各行が、それぞれ時間経過に従いROM102から順次読み出されるコードデータを示している。各コードデータは、そのコードデータが何小節目に設定されるかを示す「小節」項目値と、そのコードデータが小節内の何拍目に設定されるかを示す「拍」項目値と、そのコードデータが示すコードのルート音の音高を示す「ルート」項目値と、そのコードデータが示すコードのコード種別を示す「コード種別」項目値を含む。 In the ROM 102 of FIG. 1, for example, chord data for, for example, 8 bars (the number of bars is arbitrary) as illustrated in FIG. 2A is stored in association with a plurality of bars or, for example, a strong beat in the bar. Has been done. FIG. 2B is a diagram showing an example of a data structure of each code data corresponding to FIG. 2A which is sequentially read from the ROM 102. Each row from top to bottom of the table shown in FIG. 2B shows code data sequentially read from the ROM 102 over time. Each chord data has a "bar" item value indicating the bar number in which the chord data is set, a "beat" item value indicating the beat in which the chord data is set, and a "beat" item value. It includes a "root" item value indicating the pitch of the root note of the chord indicated by the chord data and a "chord type" item value indicating the chord type of the chord indicated by the chord data.

CPU101は、時間的に進行する各小節内の各拍のタイミングにおいて、下記の判断1から3よりなるアルゴリズムで、半音処理、スケール音処理、コード音処理、及びルート音処理を実行するか否かを判断する。 Whether or not the CPU 101 executes semitone processing, scale sound processing, chord sound processing, and root sound processing by an algorithm consisting of the following judgments 1 to 3 at the timing of each beat in each bar that progresses in time. To judge.

まず、CPU101は、処理判断1(ステップS401)として、現在の拍が弱拍(例えば4拍子において現在の小節内の2拍目又は4拍目)であり、かつ現在の拍にROM102から取得されるコードデータが設定されておらず、かつ現在の拍の次の拍にROM102から取得されるコードデータが設定されている場合に、確率的に現在の拍に対して半音処理の実行を決定して、半音処理を実行する。ここで、「確率的に」とは、例えば乱数を発生させて、その乱数の値をある閾値と大小比較することにより、小ならば半音処理の実行を決定し、大ならば半音処理の実行を決定しないという処理を行うことをいう。 First, as processing determination 1 (step S401), the CPU 101 obtains the current beat from the ROM 102 as a weak beat (for example, the second or fourth beat in the current bar in the fourth beat) and the current beat. If the chord data to be obtained is not set and the chord data acquired from the ROM 102 is set to the beat next to the current beat, it is probabilistically determined to execute the half-tone processing for the current beat. And execute half-beat processing. Here, "probabilistically" means, for example, by generating a random number and comparing the value of the random number with a certain threshold value, if it is small, the execution of semitone processing is determined, and if it is large, the execution of semitone processing is executed. It means to perform the process of not determining.

CPU101は、上記処理判断1で半音処理の実行を決定しなかった場合に、処理判断2(ステップS402)として、現在の拍が現在の小節の1拍目であって、かつ現在の小節の1拍目以外の拍にコードデータが設定されていない場合に、確率的に現在の小節の1拍目に対して、スケール音処理の実行を決定して、スケール音処理を実行する。また、CPU101は、現在の拍が現在の小節の1拍目でない場合に、現在の小節の1拍目に対してスケール音処理の実行を既に決定している場合には、現在の拍に対してスケール音処理の実行を決定して、スケール音処理を実行する。 When the CPU 101 does not determine the execution of the semitone processing in the processing determination 1, the current beat is the first beat of the current measure and the current beat is 1 of the current measure as the processing determination 2 (step S402). When chord data is not set for beats other than the beat, it is probabilistically determined to execute the scale sound processing for the first beat of the current bar, and the scale sound processing is executed. Further, if the current beat is not the first beat of the current bar, and if the CPU 101 has already determined to execute the scale sound processing for the first beat of the current bar, the CPU 101 refers to the current beat. Determines to execute the scale sound processing, and executes the scale sound processing.

CPU101は、上記処理判断2でスケール音処理の実行を決定しなかった場合に、処理判断3(ステップS403)として、現在の拍が現在の小節の1拍目以外の拍であって、かつ現在の拍にコードデータが設定されていない場合に、現在の拍に対してコード音処理の実行を決定して、コード音処理を実行する。 When the CPU 101 does not determine the execution of the scale sound processing in the processing determination 2, the current beat is a beat other than the first beat of the current bar as the processing determination 3 (step S403), and the current beat is present. When the chord data is not set for the beat of, the execution of the chord sound processing is determined for the current beat, and the chord sound processing is executed.

CPU101は、上記処理判断3でコード音処理の実行を決定しなかった場合に、ルート音処理の実行を決定して、ルート音処理を実行する。原則的に、コードデータが対応付けられている拍のタイミングでは、ルート音処理が実行される。 When the CPU 101 does not determine the execution of the chord sound processing in the processing determination 3, the CPU 101 determines the execution of the root sound processing and executes the root sound processing. In principle, the root note processing is executed at the timing of the beat to which the chord data is associated.

CPU101は、例えば図2(a)(b)のようにしてROM102から順次取得したコードデータに対して、上記処理判断1から3に基づいて、半音処理、スケール音処理、コード音処理、又はルート音処理のうちの何れかの処理を実行し、図2(c)に例示されるようなベースラインの伴奏音を生成する。 The CPU 101 performs semitone processing, scale sound processing, chord sound processing, or root for the code data sequentially acquired from the ROM 102, for example, as shown in FIGS. 2A and 2B, based on the above processing determinations 1 to 3. One of the sound processes is executed to generate a baseline accompaniment sound as illustrated in FIG. 2 (c).

CPU101は、例えば図2(c)の第1小節の1拍目でCM7のコードデータを取得した場合、処理判断1はNO、処理判断2はNO、処理判断3もNOとなる結果、ルート音処理の実行を決定する。CPU101は、ルート音処理の実行を決定した場合に、現在設定されているコードデータのルート音の音高を現在の拍の出力音高として決定する。即ち、CPU101は、現在第1小節の1拍目に設定されているコードデータCM7のルート音の音高Cを、第1小節の1拍目の出力音高として決定する。 For example, when the CPU 101 acquires the code data of CM7 at the first beat of the first bar of FIG. 2C, the processing judgment 1 is NO, the processing judgment 2 is NO, and the processing judgment 3 is NO, and as a result, the root sound. Decide to execute the process. When the CPU 101 decides to execute the root sound processing, the CPU 101 determines the pitch of the root sound of the currently set chord data as the output pitch of the current beat. That is, the CPU 101 determines the pitch C of the root note of the chord data CM7 currently set in the first beat of the first bar as the output pitch of the first beat of the first bar.

CPU101は、例えば図2(c)の第2、第4、第5、第6、及び第8小節の各1拍目と、第6小節の3拍目についても、上記と同様にルート音処理の実行を決定し、ルート音処理を実行する結果、それぞれの小節の1拍目に設定されている各コードデータAm7、G7、Em7、Am7、及びG7と、D7の各ルート音の音高A、G、E、A、及びGと、Dを、各出力音高として決定する。 For example, the CPU 101 processes the root sound for each of the first beats of the second, fourth, fifth, sixth, and eighth measures of FIG. 2C and the third beat of the sixth measure in the same manner as described above. As a result of deciding to execute and executing the root note processing, the pitch A of each root note of each chord data Am7, G7, Em7, Am7, and G7 and D7 set in the first beat of each measure , G, E, A, and G, and D are determined as each output pitch.

CPU101は、例えば図2(c)の第1小節の2拍目及び3拍目については、それぞれの次の拍にはコードデータが設定されていないため処理判断1はNO、第2小節の1拍目ではスケール音処理の実行は判断されていないため処理判断2もNO、拍にコードデータが設定されていないため処理判断3はYESとなって、それぞれコード音処理の実行を決定して、コード音処理を実行する。CPU101は、コード音処理の実行を決定した場合に、現在の拍が前記現在の小節内で何拍目であるか、及び現在の拍の前の拍の音程が現在のコードの構成音に対応するルート音程、3度音程、5度音程、又は7度音程の何れの音程であるかに応じて確率的に決定した現在のコードの構成音に対応するルート音程、3度音程、5度音程、又は7度音程の何れかのノート種別に基づいて算出される音高を、現在の拍の出力音高として決定する。即ち、CPU101は、第1小節の2拍目及び3拍目として、第1小節に対して設定されているコードCM7の構成音E及びGをそれぞれ、第1小節の2拍目及び3拍目の各出力音高として決定する。 For example, in the second beat and the third beat of the first bar of FIG. 2C, the CPU 101 sets NO for the processing determination 1 and 1 of the second bar because no code data is set for each next beat. Since the execution of the scale sound processing is not judged at the beat, the processing judgment 2 is also NO, and the processing judgment 3 is YES because the chord data is not set for the beat, and the execution of the chord sound processing is decided respectively. Perform chord sound processing. When the CPU 101 decides to execute the chord sound processing, the number of the current beat in the current measure and the pitch of the beat before the current beat correspond to the constituent sounds of the current chord. The root pitch, the 3rd pitch, the 5th pitch, or the 7th pitch, which corresponds to the constituent pitch of the current chord, which is probabilistically determined according to the root pitch, the 3rd pitch, the 5th pitch, or the 7th pitch. , Or the pitch calculated based on any note type of the 7th pitch is determined as the output pitch of the current beat. That is, the CPU 101 sets the constituent sounds E and G of the chord CM7 set for the first bar as the second and third beats of the first bar, respectively, at the second and third beats of the first bar. It is determined as each output pitch of.

CPU101は、第2、第4、第5、及び第8小節のそれぞれの2拍目及び3拍目についても、上記と同様にコード音処理の実行を決定し、コード音処理を実行する結果、第2、第4、第5、及び第8小節のそれぞれの2拍目と3拍目として、GとE、DとF、BとE、及びDとBを、各出力音高として決定する。またCPU101は、第6小節の4拍目については、弱拍であって、その拍にはコードデータは設定されておらず、次の第7小節の1拍目にはコードデータが設定されているが、処理判断1はNO、第6小節の1拍目ではスケール音処理の実行は判断されていないため処理判断2もNO、その拍にコードデータが設定されていないため処理判断3はYESとなって、コード音処理の実行を決定して、コード音処理を実行する。この結果、CPU101は、第6小節の4拍目として、コードD7の構成音Cを、その出力音高として決定する。 The CPU 101 also determines the execution of chord sound processing in the same manner as above for the second and third beats of the second, fourth, fifth, and eighth measures, respectively, and as a result, the chord sound processing is executed. G and E, D and F, B and E, and D and B are determined as the respective output pitches as the second and third beats of the second, fourth, fifth, and eighth measures, respectively. .. Further, the CPU 101 is a weak beat for the 4th beat of the 6th bar, and no chord data is set for that beat, and chord data is set for the 1st beat of the next 7th bar. However, processing judgment 1 is NO, processing judgment 2 is also NO because the execution of scale sound processing is not judged in the first beat of the sixth bar, and processing judgment 3 is YES because no chord data is set for that beat. Then, the execution of the chord sound processing is determined, and the chord sound processing is executed. As a result, the CPU 101 determines the constituent sound C of the chord D7 as its output pitch as the fourth beat of the sixth bar.

CPU101は、第1小節の4拍目については、その拍が弱拍であり、かつその拍にコードデータが設定されておらず、かつその拍の次の第2小節の1拍目にコードデータが設定されているため、確率的に半音処理の実行を決定して、半音処理を実行する。CPU101は、現在の拍の1つ前の拍のノート情報の音高が現在の拍の次の拍のコードのルートの音高に対して、半音下又は全音上の場合には、次の拍のコードのルートの音高に対して半音上の音高を現在の拍の出力音高として決定する。又はCPU101は、現在の拍の1つ前の拍のノート情報の音高が現在の拍の次の拍のコードのルートの音高に対して、全音下又は半音上の場合には、次の拍のコードのルートの音高に対して半音下の音高を現在の拍の出力音高として決定する。或いはCPU101は、現在の拍の1つ前の拍のノート情報の音高が現在の拍の次の拍のコードのルートの音高に対して、半音下、全音上、全音下、及び半音上の何れでもない場合には、次の拍のコードのルートの音高に対して半音上又は半音下の何れかの音高を確率的に現在の拍の出力音高として決定する。即ち、CPU101は、現在の拍である第1小節の4拍目の1つ前の3拍目のノート情報の音高Gが、現在の拍である第1小節の4拍目の次の第2小節の1拍目のコードAm7のルートの音高Aに対して全音下であるため、次の拍である第2小節の1拍目のコードAm7のルートの音高Aに対して半音下の音高G#を、第1小節の4拍目の出力音高として決定する。 Regarding the 4th beat of the 1st bar, the CPU 101 has a weak beat, no chord data is set for that beat, and chord data is set for the 1st beat of the 2nd bar following the beat. Is set, the execution of the half-tone processing is probabilistically determined, and the half-tone processing is executed. When the pitch of the note information of the beat immediately before the current beat is one pitch below or above the pitch of the root of the chord of the next beat of the current beat, the CPU 101 determines the next beat. The pitch above the root pitch of the chord is determined as the output pitch of the current beat. Alternatively, when the pitch of the note information of the beat immediately before the current beat is the pitch of the root of the chord of the next beat of the current beat, the CPU 101 is next The pitch below the root of the chord of the beat is determined as the output pitch of the current beat. Alternatively, the CPU 101 determines that the pitch of the note information of the beat immediately before the current beat is a semitone below, above, above, below, and above a semitone with respect to the pitch of the root of the chord of the next beat of the current beat. In the case of neither of the above, the pitch of either a semitone above or below a semitone with respect to the pitch of the root of the chord of the next beat is probabilistically determined as the output pitch of the current beat. That is, in the CPU 101, the pitch G of the note information of the third beat immediately before the fourth beat of the first bar, which is the current beat, is the pitch G following the fourth beat of the first bar, which is the current beat. Since it is all pitches below the pitch A of the root of the chord Am7 of the first beat of the second bar, it is half a pitch below the pitch A of the root of the chord Am7 of the first beat of the second bar, which is the next beat. Pitch G # is determined as the output pitch of the 4th beat of the first bar.

CPU101は、第2、第4、第5、第7、第8小節の4拍目と、第6小節の2拍目についても、上記と同様にして、E♭、D#、B♭、A♭、C#と、C#を、各出力音高として決定する。 The CPU 101 also performs E ♭, D #, B ♭, A for the 4th beat of the 2nd, 4th, 5th, 7th, and 8th measures and the 2nd beat of the 6th measure in the same manner as described above. ♭, C #, and C # are determined as each output pitch.

CPU101は、第3小節の1拍目については、強拍であるため処理判断1がNO、処理判断2で、1拍目でかつ第3小節内の1拍目以外の拍にはコードデータが設定されていないため、確率的に第3小節の1拍目に対して、スケール音処理の実行を決定して、スケール音処理を実行する。また、第3小節の2拍目については、弱拍であり、その拍にコードデータは設定されていないが、次の3拍目にはコードデータが設定されていないため処理判断1がNO、処理判断2で、1拍目ではなく、第3小節の1拍目に対してスケール音処理の実行を既に判断しているため、スケール音処理を実行する。また、第3小節の3拍目については、強拍であるため処理判断1がNO、処理判断2で、1拍目ではなく、第3小節の1拍目に対してスケール音処理の実行を既に判断しているため、スケール音処理を実行する。更に、第3小節の4拍目については、弱拍であり、その拍にコードデータは設定されておらず、次の第4小節の1拍目にコードデータが設定されている。確率的に処理判断1がNOの場合に、処理判断2で、第3小節の1拍目に対してスケール音処理の実行を既に判断しているため、スケール音処理を実行する。 Since the CPU 101 is a strong beat for the first beat of the third bar, the processing judgment 1 is NO, the processing judgment 2 is, and the chord data is stored in the first beat and the beats other than the first beat in the third bar. Since it is not set, it is probabilistically determined to execute the scale sound processing for the first beat of the third bar, and the scale sound processing is executed. Further, the second beat of the third bar is a weak beat, and the chord data is not set for that beat, but the chord data is not set for the next third beat, so the processing judgment 1 is NO. Since the processing determination 2 has already determined that the scale sound processing is to be executed for the first beat of the third bar instead of the first beat, the scale sound processing is executed. As for the 3rd beat of the 3rd bar, the processing judgment 1 is NO and the processing judgment 2 is the processing judgment 2 because it is a strong beat, and the scale sound processing is executed not for the 1st beat but for the 1st beat of the 3rd bar. Since it has already been determined, scale sound processing is executed. Further, the 4th beat of the 3rd bar is a weak beat, and the chord data is not set for that beat, but the chord data is set for the 1st beat of the next 4th bar. When the processing determination 1 is stochastically NO, the processing determination 2 already determines the execution of the scale sound processing for the first beat of the third bar, so the scale sound processing is executed.

CPU101は、スケール音処理の実行を決定した場合に、現在の小節の1拍目に設定されているコードデータが示すコード種別に応じたスケールを構成する各音高を、現在の小節の1拍目の音高に基づいて時間経過に従って各音高が上行又は下行の何れかの方向で、現在の小節内の拍ごとの各出力音高として決定する。即ち、CPU101は、第3小節の1拍目のコードデータDm7が示すコード種別m7に応じたスケールを構成する、上がってゆく方向の各音高D、E、F、Gを、第3小節の1拍目、2拍目、3拍目、及び4拍目の各音高として決定する。 When the CPU 101 decides to execute the scale sound processing, each pitch constituting the scale according to the chord type indicated by the chord data set in the first beat of the current bar is set to one beat of the current bar. Based on the pitch of the eye, each pitch is determined as each output pitch for each beat in the current bar in either the ascending or descending direction with the passage of time. That is, the CPU 101 sets each pitch D, E, F, G in the ascending direction of the third bar, which constitutes a scale corresponding to the chord type m7 indicated by the chord data Dm7 of the first beat of the third bar. It is determined as each pitch of the first beat, the second beat, the third beat, and the fourth beat.

CPU101は、第7小節の1拍目、2拍目、3拍目についても、上記と同様にして処理判断1がNO、処理判断2がYESとなって、スケール音処理の実行を決定し、スケール音処理を実行する。即ち、CPU101は、第7小節の1拍目のコードデータDm7が示すコード種別m7に応じたスケールを構成する、下がってゆく方向の各音高D、C、Bを、第7小節の1拍目、2拍目、及び3拍目の各音高として決定する。なお、CPU101は、第7小節の4拍目については、弱拍であり、その拍にコードデータは設定されておらず、次の第8小節の1拍目にコードデータが設定されており、確率的に処理判断1がYESになる。このため、CPU101は、第7小節の4拍目については、前述したように半音処理の実行を決定して、半音処理を実行し、A♭を、出力音高として決定する。 The CPU 101 also determines the execution of the scale sound processing with the processing determination 1 being NO and the processing determination 2 being YES for the first beat, the second beat, and the third beat of the seventh bar in the same manner as described above. Perform scale sound processing. That is, the CPU 101 sets each pitch D, C, and B in the descending direction, which constitutes a scale corresponding to the chord type m7 indicated by the chord data Dm7 of the first beat of the seventh bar, to one beat of the seventh bar. It is determined as the pitch of each of the second, second, and third beats. The CPU 101 is a weak beat for the 4th beat of the 7th bar, and the chord data is not set for that beat, but the chord data is set for the 1st beat of the next 8th bar. Process judgment 1 is probabilistically YES. Therefore, for the fourth beat of the seventh bar, the CPU 101 determines the execution of the semitone processing as described above, executes the semitone processing, and determines A ♭ as the output pitch.

以上のように、本実施形態では、自動演奏のコードデータからジャズのベースラインの伴奏音を再生するときに、ベースラインに特有の、半音処理、スケール音処理、コード音処理、及びルート音処理の組合せによるコード進行奏法を自動的に実行することが可能となる。これにより本実施形態では、1種類のコードデータ列からいろいろな伴奏パターンでベースラインが生成されるので、何度聞いても飽きないベースラインの自動伴奏を楽しむことが可能となる。 As described above, in the present embodiment, when the accompaniment sound of the jazz bassline is reproduced from the chord data of the automatic performance, the semitone processing, the scale sound processing, the chord sound processing, and the root sound processing peculiar to the bass line are performed. It is possible to automatically execute the chord progression playing method by the combination of. As a result, in the present embodiment, the bassline is generated from one type of chord data string with various accompaniment patterns, so that it is possible to enjoy the automatic accompaniment of the bassline that will not get tired no matter how many times you listen.

加えて、いったん例えば半音処理やスケール音処理の実行が判断されても、例えば乱数と頻度閾値により確率的に決定される状態によってそれらの実行が判断されない状態が生成されることにより、ベースラインの自動伴奏に更に多彩な変化をつけることが可能となる。 In addition, once the execution of semitone processing or scale sound processing is determined, for example, a state in which the execution is not determined by a state probabilistically determined by a random number and a frequency threshold is generated, so that the baseline It is possible to add more various changes to the automatic accompaniment.

図3は、図1の電子楽器100の実施形態において、CPU101がROM102からRAM103に読み出した制御処理を実行する処理である全体処理の例を示すメインフローチャートである。このメインフローチャートの処理は例えば、演奏者が図1のスイッチ107に含まれる電源スイッチを押すことにより、スタートされる。 FIG. 3 is a main flowchart showing an example of an overall process, which is a process of executing a control process read from the ROM 102 to the RAM 103 by the CPU 101 in the embodiment of the electronic musical instrument 100 of FIG. The processing of this main flowchart is started, for example, by the performer pressing the power switch included in the switch 107 of FIG.

CPU101はまず、初期化処理を実行する(図3のステップS301)。初期化処理において、CPU101は始めに、ベースラインの自動伴奏の進行を制御するTickTimeと小節数と拍数をリセットする。本実施形態において、ベースラインの自動伴奏の進行は、図1のRAM103に記憶されるTickTime変数の値(以下この変数の値を変数名と同じ「TickTime」と呼ぶ)を単位として進行する。図1のROM102内には、TimeDivision定数の値(以下この変数の値を変数名と同じ「TimeDivision」と呼ぶ)が予め設定されており、このTimeDivisionは1拍(例えば4分音符)の分解能を示しており、この値が例えば96ならば、1拍は96×TickTimeの時間長を有する。ここで、1TickTimeが実際に何秒になるかは、曲データに対して指定されるテンポによって異なる。今、ユーザ設定に従ってRAM203上のTempo変数に設定される値をTempo[ビート/分]とすれば、TickTimeの秒数=TickTimeSec[秒]は、下記(1)式により算出される。 First, the CPU 101 executes an initialization process (step S301 in FIG. 3). In the initialization process, the CPU 101 first resets the ticktime that controls the progress of the automatic accompaniment of the baseline, the number of measures, and the number of beats. In the present embodiment, the progression of the baseline automatic accompaniment proceeds in units of the value of the TickTime variable stored in the RAM 103 of FIG. 1 (hereinafter, the value of this variable is referred to as “TickTime” which is the same as the variable name). In the ROM 102 of FIG. 1, the value of the TimeDivision constant (hereinafter, the value of this variable is referred to as "TimeDivision" which is the same as the variable name) is preset, and this TimeDivision has a resolution of one beat (for example, a quarter note). If this value is, for example, 96, one beat has a time length of 96 × TickTime. Here, how many seconds 1 Tick Time actually becomes depends on the tempo specified for the song data. Now, if the value set in the Tempo variable on the RAM 203 according to the user setting is Tempo [beat / minute], the number of seconds of TickTime = TickTimeSec [second] is calculated by the following equation (1).

TickTimeSec[秒]=60/Tempo/TimeDivision
・・・(1)
TickTimeSec [seconds] = 60 / Tempo / TimeDivision
... (1)

そこでCPU101は、図3のステップS301の初期化処理において、上記(1)式に対応する演算処理により、TickTimeSec[秒]を算出し、CPU101内の特には図示しないハードウェアタイマに設定すると共に、RAM103上のTickTime変数値を0にリセットする。ハードウェアタイマは、上記設定されたTickTimeSec[秒]が経過するごとに、割込みを発生させる。なお、変数Tempoに設定されるTempoの値としては、初期状態では図1のROM102の定数から読み出した所定の値、例えば60[ビート/秒]が、初期設定されてもよい。或いは、変数Tempoが不揮発性メモリに記憶され、電子楽器100の電源の再投入時に、前回終了時のTempo値がそのまま保持されていてもよい。 Therefore, in the initialization process of step S301 of FIG. 3, the CPU 101 calculates TickTimeSec [seconds] by the arithmetic process corresponding to the above equation (1), sets it in the hardware timer in the CPU 101 (not particularly shown), and sets it. Reset the TickTime variable value on the RAM 103 to 0. The hardware timer generates an interrupt every time the TickTimeSec [seconds] set above elapses. As the value of Tempo set in the variable Tempo, a predetermined value read from the constant of ROM 102 in FIG. 1, for example, 60 [beat / sec] may be initially set in the initial state. Alternatively, the variable Tempo may be stored in the non-volatile memory, and the Tempo value at the time of the previous termination may be held as it is when the power of the electronic musical instrument 100 is turned on again.

CPU101はまた、図3のステップS301の初期化処理において、RAM103上の小節数を示す変数の値を第1小節を示す値1にリセットし、RAM103上の拍数を示す変数の値を1拍目を示す値1にリセットする。 In the initialization process of step S301 of FIG. 3, the CPU 101 also resets the value of the variable indicating the number of measures on the RAM 103 to the value 1 indicating the first measure, and sets the value of the variable indicating the number of beats on the RAM 103 to one beat. Reset to the value 1 indicating the eye.

CPU101は更に、図3のステップS301の初期化処理において、ROM102から、図2(b)において例示した、ベースラインの自動伴奏のためのコードデータを取得し、RAM103に記憶させる。 Further, in the initialization process of step S301 of FIG. 3, the CPU 101 acquires the code data for automatic baseline accompaniment exemplified in FIG. 2B from the ROM 102 and stores it in the RAM 103.

その後、CPU101は、図3のステップS302からS308までの一連の処理を繰り返し実行する。この一連の処理において、CPU101はまず、音高決定処理を実行する(ステップS302)。この音高決定処理では、CPU101は、前述した半音処理、スケール音処理、コード音処理、又はルート音処理を実行することにより、現在の拍に対する出力音高及び対応するノートナンバを決定する。音高決定処理の詳細は、図4のフローチャートを使って後述する。 After that, the CPU 101 repeatedly executes a series of processes from steps S302 to S308 in FIG. In this series of processes, the CPU 101 first executes a pitch determination process (step S302). In this pitch determination process, the CPU 101 determines the output pitch and the corresponding note number for the current beat by executing the above-mentioned semitone processing, scale sound processing, chord sound processing, or root sound processing. The details of the pitch determination process will be described later using the flowchart of FIG.

上記一連の処理において、CPU101は次に、ノートオン処理を実行する(図3のステップS303)。このノートオン処理では、CPU101は、ステップS302の音高決定処理で決定したベースラインの現在の拍に対応するノートナンバ値と別途決定した(例えば固定値である)ベロシティ値とを有するノートオンデータを生成し、そのノートオンデータを図1の音源LSI104に転送する。この結果、音源LSI104は、そのノートオンデータに対応するノートナンバ及びベロシティを有するベースライン伴奏の楽音波形データの生成を開始し、D/Aコンバータ111及びアンプ112を介してスピーカ113から放音させる。またこのノートオン処理では、CPU101は、図1の鍵盤105の演奏状態を取り込み、鍵盤105上でユーザによる押鍵が発生したときに、その押鍵に対応するノートナンバ値とベロシティ値とを有するノートオンデータを生成し、そのノートオンデータを図1の音源LSI104に転送する。この結果、音源LSI104は、そのノートオンデータに対応するノートナンバ及びベロシティを有するユーザ演奏の楽音波形データの生成を開始し、D/Aコンバータ111及びアンプ112を介してスピーカ113から放音させる。なお、音源LSI104は、上記ベースライン伴奏とユーザ演奏による1つ以上の押鍵の各楽音波形データの生成は、それぞれ異なる発音チャネルでの時分割処理により同時に実行することができ、D/Aコンバータ111及びアンプ112を介してスピーカ113から同時に放音させることができる。 In the above series of processes, the CPU 101 then executes a note-on process (step S303 in FIG. 3). In this note-on process, the CPU 101 has note-on data having a note number value corresponding to the current beat of the baseline determined in the pitch determination process of step S302 and a velocity value separately determined (for example, a fixed value). Is generated, and the note-on data is transferred to the sound source LSI 104 of FIG. As a result, the sound source LSI 104 starts generating the musical sound form data of the baseline accompaniment having the note number and velocity corresponding to the note-on data, and emits sound from the speaker 113 via the D / A converter 111 and the amplifier 112. .. Further, in this note-on processing, the CPU 101 captures the playing state of the key 105 of FIG. 1, and when a key is pressed by the user on the key 105, the CPU 101 has a note number value and a velocity value corresponding to the key pressed. Note-on data is generated, and the note-on data is transferred to the sound source LSI 104 of FIG. As a result, the sound source LSI 104 starts generating the musical sound waveform data of the user performance having the note number and velocity corresponding to the note-on data, and emits sound from the speaker 113 via the D / A converter 111 and the amplifier 112. In the sound source LSI 104, the generation of each musical sound form data of one or more key presses by the baseline accompaniment and the user performance can be simultaneously executed by the time division processing in different sounding channels, and the D / A converter. Sound can be simultaneously emitted from the speaker 113 via the 111 and the amplifier 112.

上記一連の処理において、CPU101は次に、前述のハードウェアタイマからTickTimeSec[秒]の割込みが発生しているか否かを判定し、その割込みが発生したらRAM103上の変数であるTickTime値をカウントアップさせる(図3のステップS304)。 In the above series of processes, the CPU 101 next determines whether or not an interrupt of TickTimeSec [seconds] has occurred from the above-mentioned hardware timer, and if the interrupt occurs, the TickTime value, which is a variable on the RAM 103, is counted up. (Step S304 in FIG. 3).

上記一連の処理において、CPU101は次に、ノートオフのタイミングに達したか否かを判定する(図3のステップS305)。具体的には、CPU101は例えば、ステップS304でTickTime値をカウントアップした結果、例えば対応するベースラインの伴奏音のノートオンデータの発行から1拍分より若干短い固定時間=90TickTimeが経過したかを判定する。或いは、CPU101は例えば、図1の鍵盤105の演奏状態を取り込み、ユーザによる鍵盤105上での押鍵について離鍵が発生したか否かも判定する。 In the above series of processes, the CPU 101 next determines whether or not the note-off timing has been reached (step S305 in FIG. 3). Specifically, for example, as a result of counting up the TickTime value in step S304, the CPU 101 determines whether a fixed time = 90 TickTime, which is slightly shorter than one beat, has elapsed from the issuance of the note-on data of the accompaniment sound of the corresponding baseline, for example. judge. Alternatively, for example, the CPU 101 captures the playing state of the keyboard 105 of FIG. 1 and determines whether or not a key release has occurred for a key pressed by the user on the keyboard 105.

ステップS305の判定がYESならば、CPU101は、ノートオフ処理を実行する(ステップS306)。具体的には、CPU101は例えば、対応するベースラインの伴奏音のノートオンデータに対応するノートオフデータを生成し、音源LSI104に出力する。この結果、音源LSI104は、生成中であったベースライン伴奏の楽音波形データの生成を終了し、スピーカ113からの放音を消音させる。或いは、CPU101は例えば、鍵盤105上でのユーザによる離鍵操作に対応するユーザ演奏音のノートオンデータに対応するノートオフデータを生成して、音源LSI104に出力する。この結果、音源LSI104は、生成中であったユーザ演奏による楽音波形データの生成を終了し、スピーカ113からの放音を消音させる。 If the determination in step S305 is YES, the CPU 101 executes the note-off process (step S306). Specifically, the CPU 101 generates, for example, note-off data corresponding to the note-on data of the corresponding baseline accompaniment sound, and outputs the note-off data to the sound source LSI 104. As a result, the sound source LSI 104 finishes generating the musical sound form data of the baseline accompaniment that was being generated, and silences the sound emitted from the speaker 113. Alternatively, for example, the CPU 101 generates note-off data corresponding to the note-on data of the user playing sound corresponding to the key release operation by the user on the keyboard 105, and outputs the note-off data to the sound source LSI 104. As a result, the sound source LSI 104 finishes the generation of the musical sound waveform data by the user performance that was being generated, and silences the sound emitted from the speaker 113.

ステップS305の判定がNOならば、CPU101はステップS306のノートオフ処理は実行しない。 If the determination in step S305 is NO, the CPU 101 does not execute the note-off process in step S306.

上記一連の処理において、CPU101は次に、RAM103上のTickTime変数値が前述したTimeDivision定数値(=96TickTime値)に達したか否か、即ち、TickTime変数値によるカウントが1拍分進んだか否かを判定する(図3のステップS307)。 In the above series of processing, the CPU 101 next determines whether or not the TickTime variable value on the RAM 103 reaches the above-mentioned TimeDivision constant value (= 96TickTime value), that is, whether or not the count by the TickTime variable value advances by one beat. Is determined (step S307 in FIG. 3).

ステップS307の判定がNOならば、CPU101は、図3のステップS304の処理に戻って、更にTickTime値をカウントアップさせる。 If the determination in step S307 is NO, the CPU 101 returns to the process of step S304 in FIG. 3 and further counts up the TickTime value.

ステップS307の判定がYESになると、CPU101は、TickTime変数値をリセットし、RAM103上の拍数を示す変数の値を+1し、更にその値が4を超えたらその変数の値を1にリセットすると共に、RAM103上の小節数を示す変数の値を+1する(図3のステップS308)。その後、CPU101は、図3のステップS302の音高決定処理に戻る。 When the determination in step S307 becomes YES, the CPU 101 resets the TickTime variable value, increments the value of the variable indicating the number of beats on the RAM 103 by +1 and further resets the value of the variable to 1 when the value exceeds 4. At the same time, the value of the variable indicating the number of measures on the RAM 103 is incremented by 1 (step S308 in FIG. 3). After that, the CPU 101 returns to the pitch determination process in step S302 of FIG.

図4は、図3のステップS302の音高決定処理の詳細例を示すフローチャートである。まず、CPU101は、半音処理を実行するか否かを判断し(ステップS401)、ステップS401の判定がYESならステップS404の半音処理を実行する。 FIG. 4 is a flowchart showing a detailed example of the pitch determination process in step S302 of FIG. First, the CPU 101 determines whether or not to execute the semitone processing (step S401), and if the determination in step S401 is YES, executes the semitone processing in step S404.

CPU101は、ステップS401の判定がNOならば、スケール音処理を実行するか否かを判断し(ステップS402)、ステップS402の判定がYESならステップS405のスケール音処理を実行する。 If the determination in step S401 is NO, the CPU 101 determines whether or not to execute the scale sound processing (step S402), and if the determination in step S402 is YES, the CPU 101 executes the scale sound processing in step S405.

CPU101は、ステップS402の判定がNOならば、コード音処理を実行するか否かを判断し(ステップS403)、ステップS403の判定がYESならステップS406のコード音処理を実行し、ステップS403の判定がNOならステップS407のルート音処理を実行する。 If the determination in step S402 is NO, the CPU 101 determines whether or not to execute the chord sound processing (step S403), and if the determination in step S403 is YES, the CPU 101 executes the chord sound processing in step S406 and determines in step S403. If is NO, the root sound processing of step S407 is executed.

CPU101は、ステップS404、S405、S406、及びS407の何れかの処理において、現在の小節の現在の拍のタイミングで音源LSI104にベースラインの伴奏の楽音波形データを生成させるべきノートの音名(C〜B:値としては0から11)を決定する。 In any of the processes of steps S404, S405, S406, and S407, the CPU 101 should cause the sound source LSI 104 to generate the musical sound form data of the baseline accompaniment at the timing of the current beat of the current bar (C). ~ B: The value is determined from 0 to 11).

CPU101は、ステップS404、S405、S406、及びS407の何れかの処理の後に、オクターブ処理を実行する(ステップS408)。このオクターブ処理において、CPU101は、上記決定したC〜B(値0〜11)のノート値を、実際に音源LSI104に指示されるノートオンデータに設定される0から127の範囲の値を有するノートナンバ(MIDIのノートナンバ)に変換する(ステップS408)。その後、CPU101は、図3のステップS302の音高決定処理を終了する。 The CPU 101 executes an octave process after any of the processes of steps S404, S405, S406, and S407 (step S408). In this octave process, the CPU 101 sets the note values of C to B (values 0 to 11) determined above to the notes having a value in the range of 0 to 127 set in the note-on data actually instructed by the sound source LSI 104. Convert to a number (MIDI note number) (step S408). After that, the CPU 101 ends the pitch determination process in step S302 of FIG.

図5(a)は、図4のステップS401の判断を行うための半音処理実行判断処理の詳細例を示すフローチャートである。このフローチャートの処理は、前述した電子楽器100の動作概要における処理判断1の動作に対応する。 FIG. 5A is a flowchart showing a detailed example of the semitone processing execution determination processing for performing the determination in step S401 of FIG. The processing of this flowchart corresponds to the operation of the processing determination 1 in the operation outline of the electronic musical instrument 100 described above.

図5(a)の半音処理実行判断処理において、CPU101はまず、現在の拍に対応する図3のステップS301とS308で設定されているRAM103上の拍数を示す変数値が、2拍目又は4拍目の何れかのいわゆる弱拍を示しているか否かを判定する(図5(a)のステップS501)。 In the semitone processing execution determination process of FIG. 5A, the CPU 101 first sets a variable value indicating the number of beats on the RAM 103 set in steps S301 and S308 of FIG. 3 corresponding to the current beat as the second beat or It is determined whether or not any of the fourth beats, the so-called weak beat, is exhibited (step S501 in FIG. 5A).

ステップS501の判定がNOならば、即ち、現在の拍がいわゆる強拍であれば、CPU101は、半音処理の実行は判断せずに、図4のステップS402のスケール音処理判断処理に進む。 If the determination in step S501 is NO, that is, if the current beat is a so-called strong beat, the CPU 101 proceeds to the scale sound processing determination process in step S402 of FIG. 4 without determining the execution of the semitone process.

ステップS501の判定がYESならば、即ち、現在の拍が弱拍であれば、CPU101は、現在の拍にコードデータが設定されているか否かを判定する(ステップS502)。具体的には、CPU101は、現在の小節及び現在の拍に対応する図3のステップS301とS308で設定されているRAM103上の小節数を示す変数値と拍数を示す変数値で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目と「拍」項目とを検索できたか否かにより、現在の拍にコードデータが設定されているか否かを判定する。 If the determination in step S501 is YES, that is, if the current beat is a weak beat, the CPU 101 determines whether or not the code data is set in the current beat (step S502). Specifically, the CPU 101 is a variable value indicating the number of measures on the RAM 103 and a variable value indicating the number of beats set in steps S301 and S308 of FIG. 3 corresponding to the current measure and the current beat, and is a variable value indicating the number of beats. The chord data is set to the current beat depending on whether or not the "bar" item and the "beat" item of the chord data exemplified in FIG. 2B acquired from the ROM 102 to the RAM 103 in step S301 of the above can be searched. Judge whether or not it has been done.

ステップS502の判定がYESならば、即ち、現在の拍が弱拍であるが、現在の拍にコードデータが設定されている場合には、CPU101は、半音処理の実行は判断せずに、図4のステップS402のスケール音処理判断処理に進む。 If the determination in step S502 is YES, that is, the current beat is a weak beat, but the chord data is set for the current beat, the CPU 101 does not determine the execution of the semitone processing, and the figure shows the figure. The process proceeds to the scale sound processing determination process in step S402 of step 4.

ステップS502の判定がNOならば、即ち、現在の拍が弱拍であってコードデータが設定されていない場合には、現在の拍の次の拍にコードデータが設定されているか否かを判定する(ステップS503)。具体的には、CPU101は、現在の小節及び現在の拍に対応するRAM103上の小節数を示す変数値と拍数を示す変数値に対して、図3のステップS308の更新処理と同様に1拍分更新させた変数値で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目と「拍」項目とを検索できたか否かにより、現在の拍の次の拍にコードデータが設定されているか否かを判定する。 If the determination in step S502 is NO, that is, if the current beat is a weak beat and the chord data is not set, it is determined whether or not the chord data is set in the beat next to the current beat. (Step S503). Specifically, the CPU 101 applies 1 to the variable value indicating the number of measures and the variable value indicating the number of beats on the RAM 103 corresponding to the current measure and the current beat, as in the update process of step S308 of FIG. Whether or not the "bar" item and the "beat" item of the code data exemplified in FIG. 2B acquired from the ROM 102 to the RAM 103 in step S301 of FIG. 3 could be searched with the variable value updated by the beat. It is determined whether or not the chord data is set in the beat next to the current beat.

ステップS503の判定がNOならば、即ち、現在の拍が弱拍であってコードデータが設定されておらず、現在の拍の次の拍にもコードデータが設定されていない場合には、CPU101は、半音処理の実行は判断せずに、図4のステップS402のスケール音処理判断処理に進む。 If the determination in step S503 is NO, that is, if the current beat is a weak beat and the chord data is not set, and the chord data is not set for the beat next to the current beat, the CPU 101 Does not determine the execution of the semitone processing, and proceeds to the scale sound processing determination processing in step S402 of FIG.

ステップS503の判定がYESならば、CPU101は、RAM103上の変数値xとして、0から99の範囲の乱数値(コード乱数値)を発生させる(ステップS504)。 If the determination in step S503 is YES, the CPU 101 generates a random number value (code random value) in the range of 0 to 99 as the variable value x on the RAM 103 (step S504).

CPU101は、ステップS504で発生させた乱数値が、半音処理の頻度を示すRAM103上の半音頻度変数よりも小さいか否かを判定する(ステップS505)。この半音頻度変数は、半音処理をある確率で実行させるか否かを制御するための閾値であり、例えば半音頻度変数の値が0なら、半音処理が実行される確率は0%になり、半音頻度変数の値が100以上なら、100%の確率で半音処理が実行されることになる。例えばジャズのベースラインにおいては、半音処理が多用されるため、この半音頻度変数の値を大きくして(「99」に近い値にして)、ほとんど毎回半音処理が実行されるようにしてもよい。また、この半音頻度変数の値は、ユーザが図1のスイッチ107で設定するテンポに応じて変更されるようにしてもよい。例えば、テンポが速い場合は半音にとどまる時間が短く(音符長が短いため)調性感をくずしにくいので、半音頻度変数の値が大きくされてもよい。また、半音頻度変数の値は、曲調によって変えてもよい。例えば、ポップスのときは調性感がくずれないように半音頻度変数の値を下げ、ジャズでは上げる等である。更には、ユーザがリアルタイムで半音頻度変数の値を指定できるようにしてもよい。 The CPU 101 determines whether or not the random value generated in step S504 is smaller than the semitone frequency variable on the RAM 103 indicating the frequency of semitone processing (step S505). This semitone frequency variable is a threshold for controlling whether or not to execute the semitone processing with a certain probability. For example, if the value of the semitone frequency variable is 0, the probability that the semitone processing is executed becomes 0%, and the semitone processing is executed. If the value of the frequency variable is 100 or more, there is a 100% chance that the semitone processing will be executed. For example, in a jazz bassline, semitone processing is often used, so the value of this semitone frequency variable may be increased (to a value close to "99") so that semitone processing is executed almost every time. .. Further, the value of this semitone frequency variable may be changed according to the tempo set by the user with the switch 107 of FIG. For example, when the tempo is fast, the time to stay in a semitone is short (because the note length is short), and it is difficult to break the tonal feeling. Therefore, the value of the semitone frequency variable may be increased. Further, the value of the semitone frequency variable may be changed depending on the tune. For example, in pop music, the value of the semitone frequency variable is lowered so that the tonal feeling is not lost, and in jazz, it is raised. Furthermore, the user may be able to specify the value of the semitone frequency variable in real time.

半音処理が実行されれば、調性外の音符が使用されることにより、不協和音が発生する。生成するベースラインがジャズ調である場合は、ポップス調である場合より不協和音の発生頻度を増加させてもよい。同様に、テンポの速い曲である場合は、遅い曲である場合より不協和音の発生頻度を増加させてもよい。本願発明によれば、確率変数値をジャンルやテンポ等に応じて変化させることにより、ジャンルやテンポ等に合った良好なベースラインを生成できることが利点である。 When semitone processing is performed, dissonance occurs due to the use of non-tonal notes. When the generated bass line is jazz-like, the frequency of dissonance may be increased as compared with the case of pop-like. Similarly, in the case of a song with a fast tempo, the frequency of occurrence of dissonance may be increased as in the case of a song with a slow tempo. According to the present invention, it is an advantage that a good baseline suitable for a genre, a tempo, etc. can be generated by changing a random variable value according to a genre, a tempo, or the like.

ステップS505の判定がNOならば、CPU101は、確率的に半音処理の実行を決定せずに、図4のステップS402のスケール音処理判断処理に進む。 If the determination in step S505 is NO, the CPU 101 probabilistically proceeds to the scale sound processing determination process in step S402 of FIG. 4 without determining the execution of the semitone process.

ステップS505の判定がYESならば、確率的に半音処理の実行を決定し、図4のステップS404の半音処理に進む。 If the determination in step S505 is YES, the execution of the semitone processing is stochastically determined, and the process proceeds to the semitone processing in step S404 of FIG.

以上の図5(a)のフローチャートで例示される半音処理実行判断処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断1の機能が実現される。 By the semitone processing execution determination processing exemplified in the flowchart of FIG. 5A, the function of the processing determination 1 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized.

図6は、図4のステップS404の半音処理の詳細例を示すフローチャートである。まずCPU101は、現在設定されているコードデータの次のコードデータが示すコードのルート(0から11の値)を取得する。具体的には、CPU101は、図5(a)の半音処理実行判断処理のステップS503で検索した現在の拍の次の拍のコードデータの「ルート」項目値(図2(b)参照)を取得する。 FIG. 6 is a flowchart showing a detailed example of the semitone processing in step S404 of FIG. First, the CPU 101 acquires the root of the code (value from 0 to 11) indicated by the code data next to the currently set code data. Specifically, the CPU 101 obtains the "root" item value (see FIG. 2B) of the code data of the beat next to the current beat searched in step S503 of the semitone processing execution determination processing of FIG. 5A. get.

次にCPU101は、RAM103に記憶している1つ前の拍で発音指示しているノートオンデータのノートナンバを取得する(ステップS602)。 Next, the CPU 101 acquires the note number of the note-on-data that is instructed to pronounce in the previous beat stored in the RAM 103 (step S602).

上述のステップS601とS602を、例えば前述した図2(c)のコード進行の例を使って説明すると、現在が第1小節の4拍目であるなら、CPU101は、ステップS601で第2小節の1拍目のコードAm7のルートAの値を取得し、ステップS602で第1小節の3拍目で発音指示しているノートオンデータのノートナンバ(0〜127)を取得する。 Explaining the above-mentioned steps S601 and S602 by using, for example, the above-mentioned example of the chord progression of FIG. 2C, if the present is the fourth beat of the first measure, the CPU 101 will perform the second measure in step S601. The value of the root A of the chord Am7 of the first beat is acquired, and the note number (0 to 127) of the note-on-data whose sound is instructed in the third beat of the first bar in step S602 is acquired.

次にCPU101は、ステップS602で取得した1つ前の拍のノートナンバからステップS601で取得したルート値を減算することで、両者の差分値を算出する(ステップS603)。CPU101は、下記(2)式の演算処理を実行することにより、差分値が、必ず正の値になり、かつ0〜11の範囲に丸め込まれるようにする。「%」は乗余演算を示す。 Next, the CPU 101 calculates the difference value between the two by subtracting the root value acquired in step S601 from the note number of the previous beat acquired in step S602 (step S603). By executing the arithmetic processing of the following equation (2), the CPU 101 ensures that the difference value becomes a positive value and is rounded to the range of 0 to 11. "%" Indicates a multiplier operation.

(1つ前のノートナンバ − ルート値+12)%12 ・・・(2) (Previous note number-root value +12)% 12 ... (2)

続いて、CPU101は、ステップS603で算出した差分値が、11又は2の何れかの値であるか否かを判定する(ステップS604)。 Subsequently, the CPU 101 determines whether or not the difference value calculated in step S603 is any of 11 or 2 (step S604).

ステップS604の判定がYESならば、CPU101は、ステップS601で取得したルート値に+1した値を、現在の拍のノート値とする(ステップS608)。差分値が11の場合、現在の拍の1つ前の拍のノートナンバの音高が現在の拍の次の拍のコードのルートの半音下ということであり、1つ前の拍のノートナンバと次の拍のコードのルートの間の音高は取れないため、1つ前の拍のノートナンバから全音上がってその上がった音高から半音下の次の拍のコードのルートに移行できるようにするために、即ち、同じノート値が続かないように逆の方向の半音を鳴らすために、次の拍のコードのルートの音高を+1して得られる音高が現在の拍のノート値とされる。一方、差分値が2の場合、現在の拍の1つ前のノートナンバの音高が現在の拍の次の拍のコードのルートの全音上ということであり、現在の拍に対してはこれらの音高の間の音高を取るために、次の拍のコードのルートの音高をやはり+1して得られる音高が現在の拍のノート値とされる。 If the determination in step S604 is YES, the CPU 101 sets the value obtained by adding +1 to the root value acquired in step S601 as the note value of the current beat (step S608). When the difference value is 11, it means that the pitch of the note number of the beat immediately before the current beat is a semitone below the root of the chord of the next beat of the current beat, and the note number of the previous beat. Since it is not possible to take the pitch between the root of the chord of the next beat and the root of the chord of the next beat, it is possible to move from the note number of the previous beat to the root of the chord of the next beat from the raised pitch to the root of the next beat. That is, in order to play a semitone in the opposite direction so that the same note value does not continue, the pitch obtained by adding +1 to the pitch of the root of the chord of the next beat is the note value of the current beat. It is said that. On the other hand, when the difference value is 2, it means that the pitch of the note number immediately before the current beat is on the whole note of the chord root of the next beat of the current beat. In order to take the pitch between the pitches of, the pitch obtained by adding +1 to the pitch of the root of the chord of the next beat is taken as the note value of the current beat.

ステップS604の判定がNOならば、CPU101は、ステップS603で算出した差分値が、10又は1の何れかの値であるか否かを判定する(ステップS605)。ステップS605の判定がYESならば、CPU101は、ステップS601で取得したルート値から−1した値を、現在の拍のノート値とする(ステップS609)。差分値が10の場合、現在の拍の1つ前の拍のノートナンバの音高が現在の拍の次の拍のコードのルートの全音下ということであり、現在の拍に対してはこれらの音高の間の音高を取るために、次の拍のコードのルートの音高から−1して得られる音高が現在の拍のノート値とされる。一方、差分値が1の場合、現在の拍の1つ前のノートナンバの音高が現在の拍の次の拍のコードのルートの半音上ということであり、1つ前の拍のノートナンバと次の拍のコードのルートの間の音高は取れないため、1つ前の拍のノートナンバから全音下がってその下がった音高から半音上の次の拍のコードのルートに移行できるようにするために、即ち、同じノート値が続かないように逆の方向の半音を鳴らすために、次の拍のコードのルートの音高から−1して得られる音高が現在の拍のノート値とされる。 If the determination in step S604 is NO, the CPU 101 determines whether or not the difference value calculated in step S603 is any of 10 or 1 (step S605). If the determination in step S605 is YES, the CPU 101 sets the value obtained by subtracting -1 from the root value acquired in step S601 as the note value of the current beat (step S609). When the difference value is 10, it means that the pitch of the note number of the beat immediately before the current beat is the whole pitch of the chord of the chord of the next beat of the current beat, and these are applied to the current beat. In order to take a pitch between the pitches of, the pitch obtained by -1 from the pitch of the root of the chord of the next beat is taken as the note value of the current beat. On the other hand, when the difference value is 1, it means that the pitch of the note number immediately before the current beat is a semitone above the root of the chord of the next beat of the current beat, and the note number of the previous beat. Since the pitch between That is, in order to play a semitone in the opposite direction so that the same note value does not continue, the pitch obtained by -1 from the pitch of the root of the chord of the next beat is the note of the current beat. It is a value.

ステップS605の判定がNOならば、CPU101は、RAM103上の変数値xとして、0から99の範囲の乱数値を発生させる(ステップS606)。 If the determination in step S605 is NO, the CPU 101 generates a random number value in the range of 0 to 99 as the variable value x on the RAM 103 (step S606).

CPU101は、ステップS606で発生させた乱数値が、半音上音の頻度を示すRAM103上の半音上音頻度変数よりも小さいか否かを判定する(ステップS607)。この半音上音頻度変数は、半音処理において、現在の拍のノート値として、現在の拍の次の拍のコードのルートに対して、半音上の音高とするか(ステップS608を実行するか)又は半音下の音高とするか(ステップS609を実行するか)を制御するための閾値であり、例えば半音上音頻度変数の値を70ぐらいに設定すれば、半音下からよりも半音上から次の拍のコードのルートに移行する頻度が、倍ぐらい高くなる。この半音上音頻度変数の値は、予め設定した値でも、ユーザが編集できる値でもよい。 The CPU 101 determines whether or not the random number value generated in step S606 is smaller than the semitone upper tone frequency variable on the RAM 103 indicating the frequency of the semitone upper tone (step S607). In the semitone processing, this semitone above frequency variable is set to the pitch above the semitone with respect to the root of the chord of the next beat of the current beat as the note value of the current beat (whether step S608 is executed). ) Or a semitone below the pitch (whether step S609 is executed). For example, if the value of the semitone above frequency variable is set to about 70, it is a semitone above the semitone. The frequency of transitioning from to the root of the chord of the next beat is about twice as high. The value of this semitone upper tone frequency variable may be a preset value or a value that can be edited by the user.

ステップS607の判定がYESならば、CPU101は、前述したステップS608の処理を実行する。一方、ステップS607の判定がNOならば、CPU101は、前述したステップS609の処理を実行する。 If the determination in step S607 is YES, the CPU 101 executes the process of step S608 described above. On the other hand, if the determination in step S607 is NO, the CPU 101 executes the process of step S609 described above.

ステップS608又はS609の処理の後、CPU101は、出力するノート値が1オクターブ内の音高になるように、ステップS608又はS609で算出したノート値を0から11の値の範囲内に丸め込む処理を実行する(ステップS610)。なお、CPU101は、上記ノート値が、値−1となる場合には値11に、値12となる場合には値0に変換する。その後、CPU101は、図6のフローチャートで示される図4のステップS404の半音処理を終了する。 After the process of step S608 or S609, the CPU 101 rounds the note value calculated in step S608 or S609 into a value range of 0 to 11 so that the output note value has a pitch within one octave. Execute (step S610). The CPU 101 converts the note value into a value 11 when it becomes a value -1, and converts it into a value 0 when it becomes a value 12. After that, the CPU 101 ends the semitone processing of step S404 of FIG. 4 shown in the flowchart of FIG.

以上の図6のフローチャートで例示される半音処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断1に基づいて実行される半音処理の機能が実現される。これにより、図2(c)のコード進行例で前述したように、例えば、第1、第2、第4、第5、第7、第8小節の4拍目と、第6小節の2拍目について、半音処理によりG#、E♭、D#、B♭、A♭、C#と、C#のノート値が出力される。 By the semitone processing exemplified in the flowchart of FIG. 6 above, the function of the semitone processing executed based on the processing determination 1 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized. As a result, as described above in the chord progression example of FIG. 2C, for example, the 4th beat of the 1st, 2nd, 4th, 5th, 7th, and 8th measures and the 2nd beat of the 6th measure. For the eyes, G #, E ♭, D #, B ♭, A ♭, C #, and C # note values are output by semitone processing.

図7は、図4のステップS402の判断を行うためのスケール音処理実行判断処理の詳細例を示すフローチャートである。このフローチャートの処理は、前述した電子楽器100の動作概要における処理判断2の動作に対応する。 FIG. 7 is a flowchart showing a detailed example of the scale sound processing execution determination processing for making the determination in step S402 of FIG. The processing of this flowchart corresponds to the operation of the processing determination 2 in the operation outline of the electronic musical instrument 100 described above.

図7のスケール音処理実行判断処理において、CPU101はまず、現在の拍に対応するRAM103上の拍数を示す変数値が、1拍目を示しているか否かを判定する(ステップS701)。 In the scale sound processing execution determination process of FIG. 7, the CPU 101 first determines whether or not the variable value indicating the number of beats on the RAM 103 corresponding to the current beat indicates the first beat (step S701).

ステップS701の判定がYESの場合、即ち現在の拍が1拍目の場合には、CPU101は、現在の小節の1拍目以外の拍にコードデータが設定されているか否かを判定する(ステップS702)。具体的には、CPU101は、現在の小節に対応するRAM103上の小節数を示す変数値で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目を検索し、その検索結果内に値1以外の「拍」項目値が設定されているコードデータがあるか否かを判定する。 If the determination in step S701 is YES, that is, if the current beat is the first beat, the CPU 101 determines whether or not the chord data is set for a beat other than the first beat of the current bar (step). S702). Specifically, the CPU 101 is a variable value indicating the number of measures on the RAM 103 corresponding to the current measure, and is the code data exemplified in FIG. 2 (b) acquired from the ROM 102 to the RAM 103 in step S301 of FIG. Searches for the "bar" item of, and determines whether or not there is code data in which the "beat" item value other than the value 1 is set in the search result.

ステップS702の判定がYESならば、CPU101は、スケール音処理の実行は判断せずに、RAM103上のスケールフラグの変数値をオフ(値0)にした後に(ステップS706)、図4のステップS403のコード音処理実行判断処理に進む。 If the determination in step S702 is YES, the CPU 101 does not determine the execution of the scale sound processing, turns off the variable value of the scale flag on the RAM 103 (value 0) (step S706), and then turns off (value 0) (step S706), and then steps S403 in FIG. Proceed to the chord sound processing execution judgment processing.

ステップS702の判定がNOならば、CPU101は、RAM103上の変数値xとして、0から99の範囲の乱数値(スケール乱数値)を発生させる(ステップS703)。 If the determination in step S702 is NO, the CPU 101 generates a random number value (scale random value) in the range of 0 to 99 as the variable value x on the RAM 103 (step S703).

CPU101は、ステップS703で発生させた乱数値が、スケール音処理の頻度を示すRAM103上のスケール頻度変数よりも小さいか否かを判定する(ステップS704)。このスケール音処理頻度変数の値は、予め設定した値でも、ユーザが編集できる値でもよい。 The CPU 101 determines whether or not the random number value generated in step S703 is smaller than the scale frequency variable on the RAM 103 indicating the frequency of scale sound processing (step S704). The value of this scale sound processing frequency variable may be a preset value or a value that can be edited by the user.

ステップS704の判定がYESならば、CPU101は、確率的に現在の小節の1拍目に対してスケール音処理の実行を決定し、RAM103上のスケールフラグの変数値をオン(値1)にした後(ステップS705)、図4のステップS405のスケール音処理に進む。 If the determination in step S704 is YES, the CPU 101 stochastically determines the execution of the scale sound processing for the first beat of the current bar, and turns on the variable value of the scale flag on the RAM 103 (value 1). After that (step S705), the process proceeds to the scale sound processing of step S405 of FIG.

ステップS704の判定がNOならば、CPU101は、確率的に現在の小節の1拍目に対してスケール音処理の実行を決定せず、RAM103上のスケールフラグの変数値をオフ(値1に)した後(ステップS706)、図4のステップS403のコード音処理実行判断処理に進む。 If the determination in step S704 is NO, the CPU 101 stochastically does not determine the execution of the scale sound processing for the first beat of the current bar, and turns off the variable value of the scale flag on the RAM 103 (to the value 1). After that (step S706), the process proceeds to the chord sound processing execution determination process in step S403 of FIG.

前述したステップS701の判定がNOの場合、即ち現在の拍が現在の小節の1拍目でない場合には、CPU101は、現在の小節の1拍目に対してスケール音処理の実行を既に判断しておりスケールフラグをオン(値1)に設定しているか否かを判定する(ステップS707)。 If the determination in step S701 described above is NO, that is, if the current beat is not the first beat of the current measure, the CPU 101 has already determined that the scale sound processing is executed for the first beat of the current measure. It is determined whether or not the scale flag is set to on (value 1) (step S707).

ステップS707の判定がYESの場合には、CPU101は、スケール音処理の実行を決定し、現在の拍である2、3、又は4拍目に対して、図4のステップS405のスケール音処理を実行する。 If the determination in step S707 is YES, the CPU 101 decides to execute the scale sound processing, and performs the scale sound processing in step S405 of FIG. 4 with respect to the second, third, or fourth beats that are the current beats. Run.

ステップS707の判定がNOの場合には、CPU101は、スケール音処理の実行は判断せず、現在の拍である2、3、又は4拍目に対して、図4のステップS403のコード音処理実行判断処理を実行する。 If the determination in step S707 is NO, the CPU 101 does not determine the execution of the scale sound processing, and the chord sound processing in step S403 of FIG. 4 is performed with respect to the current beats 2, 3, or 4. Executes the execution judgment process.

以上の図7のフローチャートで例示されるスケール音処理実行判断処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断2の機能が実現される。 By the scale sound processing execution determination processing exemplified in the flowchart of FIG. 7 above, the function of the processing determination 2 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized.

図8は、図4のステップS405のスケール音処理の詳細例を示すフローチャートである。CPU101はまず、現在の拍が2拍目であるか否か、即ち、現在の拍に対応するRAM103上の拍数を示す変数値が2拍目を示しているか否かを判定する(ステップS801)。 FIG. 8 is a flowchart showing a detailed example of the scale sound processing in step S405 of FIG. First, the CPU 101 determines whether or not the current beat is the second beat, that is, whether or not the variable value indicating the number of beats on the RAM 103 corresponding to the current beat indicates the second beat (step S801). ).

現在の拍が1拍目であるためにステップS801の判定がNOの場合、CPU101はまず、1拍目に設定されている現在のコードデータのルートとコード種別を取得する(ステップS802)。具体的には、CPU101は、現在の小節及び現在の拍に対応するRAM103上の小節数を示す変数値と拍数を示す変数値(1拍目なのでこの値は1)で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目と「拍」項目とを検索し、検索されたコードデータの「ルート」項目値と「コード種別」項目値とを取得する。CPU101は、取得した現在のコードデータの「ルート」項目値と「コード種別」項目値をRAM103に記憶する。 If the determination in step S801 is NO because the current beat is the first beat, the CPU 101 first acquires the root and chord type of the current code data set in the first beat (step S802). Specifically, the CPU 101 has a variable value indicating the number of measures on the RAM 103 corresponding to the current measure and the current beat and a variable value indicating the number of beats (this value is 1 because it is the first beat), and is the step of FIG. In S301, the "bar" item and the "beat" item of the code data exemplified in FIG. 2B acquired from the ROM 102 to the RAM 103 are searched, and the "root" item value and the "code" of the searched code data are searched. Get the "type" item value. The CPU 101 stores the "root" item value and the "code type" item value of the acquired current code data in the RAM 103.

続いて、CPU101は、現在の拍が1拍目であるか否かを判定する(ステップS803)。いま、現在の拍は1拍目であるため、ステップS803の判定はYESとなる。この結果、CPU101は、ステップS802で取得されRAM103に記憶されている現在のコードの「ルート」項目値を、ノート値として出力する(ステップS804)。CPU101は、このノート値をRAM103に記憶する。その後、CPU101は、図8のフローチャートで示される図4のステップS405のスケール音処理を終了する。 Subsequently, the CPU 101 determines whether or not the current beat is the first beat (step S803). Now, since the current beat is the first beat, the determination in step S803 is YES. As a result, the CPU 101 outputs the "root" item value of the current code acquired in step S802 and stored in the RAM 103 as a note value (step S804). The CPU 101 stores this note value in the RAM 103. After that, the CPU 101 ends the scale sound processing of step S405 of FIG. 4 shown in the flowchart of FIG.

現在の拍が2拍目であるためにステップS801の判定がYESの場合、CPU101は、スケール音処理を上向きで行うか下向きで行うかを決定するためのステップS805からS811の一連の処理を実行する。 If the determination in step S801 is YES because the current beat is the second beat, the CPU 101 executes a series of processes from steps S805 to S811 for determining whether to perform the scale sound processing upward or downward. do.

まずCPU101は、ステップS408のオクターブ処理後のノート値(0〜127)を取得する(ステップS805)。 First, the CPU 101 acquires the note value (0 to 127) after the octave processing in step S408 (step S805).

次に、CPU101は、ステップS805で取得した1拍目のノート値が、C2(36)未満であるか否かを判定する(ステップS806)。 Next, the CPU 101 determines whether or not the note value of the first beat acquired in step S805 is less than C2 (36) (step S806).

ステップS806の判定がYESの場合、CPU101は、RAM103上の上行/下行変数値として、上行を示す値をセットする(ステップS810)。その後、CPU101は、ステップS812の処理に進む。 If the determination in step S806 is YES, the CPU 101 sets a value indicating ascending as the ascending / descending variable value on the RAM 103 (step S810). After that, the CPU 101 proceeds to the process of step S812.

ステップS806の判定がNOの場合、CPU101は、ステップS805で取得した1拍目のノート値が、G2(43)以上であるか否かを判定する(ステップS807)。 If the determination in step S806 is NO, the CPU 101 determines whether or not the note value of the first beat acquired in step S805 is G2 (43) or more (step S807).

ステップS807の判定がYESの場合、CPU101は、RAM103上の上行/下行変数値として、下行を示す値をセットする(ステップS811)。その後、CPU101は、ステップS812の処理に進む。 If the determination in step S807 is YES, the CPU 101 sets a value indicating the descending line as the ascending / descending variable value on the RAM 103 (step S811). After that, the CPU 101 proceeds to the process of step S812.

ステップS807の判定がNOの場合、即ち、1拍目がC2以上G2未満の場合には、CPU101は、確率的に上行か下行かを決定する。 When the determination in step S807 is NO, that is, when the first beat is C2 or more and less than G2, the CPU 101 stochastically determines whether to go up or down.

即ち、CPU101は、RAM103上の変数値xとして、0から99の範囲の乱数値を発生させる(ステップS808)。 That is, the CPU 101 generates a random number value in the range of 0 to 99 as the variable value x on the RAM 103 (step S808).

CPU101は、ステップS808で発生させた乱数値が、値49よりも大きいか否かを判定する(ステップS809)。この値49は、ユーザが編集できる値でもよい。 The CPU 101 determines whether or not the random number value generated in step S808 is larger than the value 49 (step S809). This value 49 may be a value that can be edited by the user.

ステップS809の判定がYESの場合、CPU101は、ステップS810に進み、RAM103上の上行/下行変数値として上行を示す値をセットする。一方、ステップS809の判定がNOの場合、CPU101は、ステップS811に進み、RAM103上の上行/下行変数値として下行を示す値をセットする。 If the determination in step S809 is YES, the CPU 101 proceeds to step S810 and sets a value indicating ascending as an ascending / descending variable value on the RAM 103. On the other hand, if the determination in step S809 is NO, the CPU 101 proceeds to step S811 and sets a value indicating the descending line as the ascending / descending variable value on the RAM 103.

ステップS810又はS811の処理の後、CPU101は、ステップS812の処理に進む。本実施形態では、図1のROM102は、前述した上行又は下行のそれぞれごとに、図12(a)又は(b)に例示されるスケール音決定テーブルを記憶している。スケール音決定テーブルは、「コード種別」ごとに、1拍目から4拍目までの音程値を記憶している。CPU101は、ステップS812において、ステップS810又はS811でセットされたRAM103上の上行/下行変数値とに基づいて、図12(a)又は(b)の何れかのスケール音決定テーブルを選択し、更に、ステップS802によりRAM103に得られている「コード種別」項目値と、現在の拍に対応するRAM103上の拍数を示す変数値とに基づいて、上記選択したスケール音決定テーブルから現在の拍及びコード種別に対応する音程値を取得する。 After the process of step S810 or S811, the CPU 101 proceeds to the process of step S812. In the present embodiment, the ROM 102 of FIG. 1 stores the scale sound determination table exemplified in FIGS. 12 (a) or 12 (b) for each of the above-mentioned ascending or descending lines. The scale sound determination table stores the pitch values from the first beat to the fourth beat for each "chord type". In step S812, the CPU 101 selects the scale sound determination table according to any one of FIGS. 12A or 12B based on the ascending / descending variable values on the RAM 103 set in step S810 or S811, and further. , The current beat and the current beat from the scale sound determination table selected above based on the "code type" item value obtained in the RAM 103 in step S802 and the variable value indicating the number of beats on the RAM 103 corresponding to the current beat. Get the pitch value corresponding to the chord type.

ステップS812の処理の後、CPU101は、ステップS802によりRAM103に得られている「ルート」項目値に、ステップS812で得られた音程値を加算し、その加算結果がC〜B(0〜11)の範囲に丸め込まれるように演算して、その結果を現在の拍に対応するスケール音のノート値として出力する(ステップS813)。その後、CPU101は、図8のフローチャートで示される図4のステップS405のスケール音処理を終了する。 After the process of step S812, the CPU 101 adds the pitch value obtained in step S812 to the "root" item value obtained in the RAM 103 in step S802, and the addition result is C to B (0 to 11). The calculation is performed so as to be rounded to the range of, and the result is output as a note value of the scale sound corresponding to the current beat (step S813). After that, the CPU 101 ends the scale sound processing of step S405 of FIG. 4 shown in the flowchart of FIG.

以上の図8のフローチャートで例示されるスケール音処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断2に基づいて実行されるスケール音処理の機能が実現される。これにより、図2(c)のコード進行例で前述したように、例えば、第3小節の1拍目から4拍目、第7小節の1拍目から3拍目について、スケール音処理により各スケール音のノート値が出力される。 By the scale sound processing exemplified by the flowchart of FIG. 8 above, the function of the scale sound processing executed based on the processing determination 2 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized. As a result, as described above in the chord progression example of FIG. 2C, for example, the 1st to 4th beats of the 3rd bar and the 1st to 3rd beats of the 7th bar are each subjected to scale sound processing. The note value of the scale sound is output.

図5(b)は、図4のステップS403のコード音処理実行判断処理の詳細例を示すフローチャートである。このフローチャートの処理は、前述した電子楽器100の動作概要における処理判断3の動作に対応する。 FIG. 5B is a flowchart showing a detailed example of the chord sound processing execution determination processing in step S403 of FIG. The processing of this flowchart corresponds to the operation of the processing determination 3 in the operation outline of the electronic musical instrument 100 described above.

図5(b)のコード音処理実行判断処理において、CPU101はまず、現在の拍に対応するRAM103上の拍数を示す変数値が、1拍目以外であるか否かを判定する(図5(b)のステップS510)。 In the chord sound processing execution determination process of FIG. 5B, the CPU 101 first determines whether or not the variable value indicating the number of beats on the RAM 103 corresponding to the current beat is other than the first beat (FIG. 5). Step S510 of (b).

ステップS510の判定がYES、即ち現在の拍が1拍目以外であれば、CPU101は、現在の拍にコードデータが設定されているか否かを判定する(ステップS511)。具体的には、CPU101は、現在の小節及び現在の拍に対応するRAM103上の小節数を示す変数値と拍数を示す変数値で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目と「拍」項目とを検索できたか否かにより、現在の拍にコードデータが設定されているか否かを判定する。 If the determination in step S510 is YES, that is, if the current beat is other than the first beat, the CPU 101 determines whether or not the code data is set in the current beat (step S511). Specifically, the CPU 101 acquires a variable value indicating the number of measures on the RAM 103 corresponding to the current measure and the current beat and a variable value indicating the number of beats from the ROM 102 to the RAM 103 in step S301 of FIG. Whether or not the chord data is set for the current beat is determined based on whether or not the "bar" item and the "beat" item of the chord data exemplified in FIG. 2B can be searched.

ステップS511の判定がNO、即ち1拍目以外である現在の拍にコードデータが設定されていなければ、CPU101は、コード音処理の実行を決定し、図4のステップS406のコード音処理を実行する。 If the determination in step S511 is NO, that is, if no chord data is set for the current beat other than the first beat, the CPU 101 decides to execute the chord sound processing and executes the chord sound processing in step S406 of FIG. do.

ステップS510の判定がNO、即ち現在の拍が1拍目であるか、又はステップS511の判定がYES、即ち現在の拍が1拍目以外であるが現在の拍にコードデータが設定されている場合には、CPU101は、コード音処理の実行は判断せず、ルート音処理の実行を決定して、図4のステップS407のルート音処理を実行する。 The determination in step S510 is NO, that is, the current beat is the first beat, or the determination in step S511 is YES, that is, the current beat is other than the first beat, but the code data is set in the current beat. In this case, the CPU 101 does not determine the execution of the chord sound processing, determines the execution of the root sound processing, and executes the root sound processing in step S407 of FIG.

図9は、図4のステップS406のコード音処理の詳細例を示すフローチャートである。CPU101はまず、現在の拍の前の拍のノート種別を取得する(ステップS901)。CPU101は、コード音処理の後述するステップS911で、現在の拍に対応するノート種別を取得するごとに、RAM103にその拍に対応するノート種別を変数に記憶する。CPU101は、ステップS901において、前の拍に関してRAM103に記憶しているノート種別の変数値を参照することにより、前の拍のノート種別を取得する。ノート種別には、現在のコードの構成音に対応して、ルート音程、3度音程、5度音程、又は7度音程の何れかの音程がある。 FIG. 9 is a flowchart showing a detailed example of the chord sound processing in step S406 of FIG. First, the CPU 101 acquires the note type of the beat before the current beat (step S901). Each time the CPU 101 acquires a note type corresponding to the current beat in step S911 described later in the chord sound processing, the CPU 101 stores the note type corresponding to the beat in a variable in the RAM 103. In step S901, the CPU 101 acquires the note type of the previous beat by referring to the variable value of the note type stored in the RAM 103 with respect to the previous beat. The note type includes a root pitch, a 3rd pitch, a 5th pitch, or a 7th pitch, corresponding to the constituent notes of the current chord.

次に、CPU101は、以下のステップS902からS914の一連の処理を実行することにより、現在の拍が前記現在の小節内で何拍目であるか、及び現在の拍の前の拍の音程が現在のコードの構成音に対応するルート音程、3度音程、5度音程、又は7度音程の何れの音程であるかに応じて確率的に決定した現在のコードの構成音に対応するルート音程、3度音程、5度音程、又は7度音程の何れかのノート種別に基づいて算出される音高を、現在の拍の出力音高として決定する。 Next, the CPU 101 executes the following series of processes from steps S902 to S914 to determine the number of the current beat in the current measure and the pitch of the beat before the current beat. The root pitch corresponding to the constituent pitch of the current chord, the root pitch corresponding to the constituent pitch of the current chord, which is probabilistically determined according to which pitch is the 3rd pitch, the 5th pitch, or the 7th pitch. The pitch calculated based on any of the note types of the 3rd pitch, the 5th pitch, and the 7th pitch is determined as the output pitch of the current beat.

まず、CPU101は、RAM103上の拍数を示す変数の値から現在の拍数を取得する(ステップS902)。ここで、図1のROM102は、図13(a)から(d)に例示されるコード音決定テーブルを記憶している。 First, the CPU 101 acquires the current beat number from the value of the variable indicating the beat number on the RAM 103 (step S902). Here, the ROM 102 of FIG. 1 stores the chord sound determination table exemplified in FIGS. 13 (a) to 13 (d).

ステップS902で2拍目が取得された場合、CPU101は、図13(a)の2拍目用のコード音決定テーブルを選択する(ステップS903)。 When the second beat is acquired in step S902, the CPU 101 selects the chord sound determination table for the second beat in FIG. 13A (step S903).

ステップS902で3拍目が取得された場合、CPU101は、ステップS901で取得された現在の拍の前の拍のノート種別により、図13(b)に含まれる(b−1)、(b−2)、(b−3)、又は(b−4)の複数の3拍目用のコード音決定テーブルの中から1つのテーブルを選択する(ステップS904)。 When the third beat is acquired in step S902, the CPU 101 includes (b-1) and (b-) in FIG. 13 (b) according to the note type of the beat before the current beat acquired in step S901. 2), (b-3), or (b-4), one table is selected from the plurality of chord sound determination tables for the third beat (step S904).

ステップS902で4拍目が取得された場合は、CPU101は、ステップS901で取得された現在の拍の前の拍のノート種別により、図13(c)に含まれる(c−1)、(c−2)、(c−3)、又は(c−4)の複数の3拍目用のコード音決定テーブルの中から1つのテーブルを選択する(ステップS905)。 When the fourth beat is acquired in step S902, the CPU 101 includes (c-1) and (c) in FIG. 13 (c) according to the note type of the beat before the current beat acquired in step S901. -2), (c-3), or (c-4), one table is selected from the plurality of chord sound determination tables for the third beat (step S905).

CPU101は、続くステップS906からS908の処理で、現在のコード種別が3和音なのか4和音なのかの判断を行う。まずCPU101は、RAM103から現在設定されているコードデータのコード種別を取得する(ステップS906)。このために、CPU101は、コードデータを取得する処理を実行するごとに、最新の取得したコードデータの「ルート」項目値及び「コード種別」項目値をRAM103上の各変数に記憶している。 In the subsequent processes S906 to S908, the CPU 101 determines whether the current chord type is a triad or a 4 chord. First, the CPU 101 acquires the code type of the code data currently set from the RAM 103 (step S906). Therefore, the CPU 101 stores the "root" item value and the "code type" item value of the latest acquired code data in each variable on the RAM 103 each time the process of acquiring the code data is executed.

ROM102は、図13(d)に例示されるような、コード種別およびノート種別(3rd、5th、7thの各音程)ごとのルートとの差分値を登録したコード音決定テーブルを記憶している。このテーブルにおいて、コード種別が3和音のコード種別である場合には、ノート種別=7thの差分値として−1が記憶されている。CPU101は、ステップS906で取得したコード種別をキーとして図13(d)に例示されるコード音決定テーブルを参照することにより、ノート種別が7thである差分値を取得する(ステップS907)。 The ROM 102 stores a chord sound determination table in which the difference values from the roots for each chord type and note type (3rd, 5th, and 7th pitches) as illustrated in FIG. 13D are registered. In this table, when the chord type is a triad chord type, -1 is stored as a difference value of note type = 7th. The CPU 101 acquires a difference value in which the note type is 7th by referring to the chord sound determination table exemplified in FIG. 13D using the chord type acquired in step S906 as a key (step S907).

CPU101は、ステップS907で取得した差分値が−1であるか否かを判定する(ステップS908)。 The CPU 101 determines whether or not the difference value acquired in step S907 is -1 (step S908).

ステップS908の判定がNO、即ちステップS906で取得したコード種別が7th音程を含む4和音のコード種別である場合には、CPU101は、RAM103上の変数値xとして、0から99の範囲の乱数値を発生させる(ステップS909)。 When the determination in step S908 is NO, that is, when the chord type acquired in step S906 is a chord type of 4 chords including the 7th pitch, the CPU 101 sets a variable value x on the RAM 103 as a random value in the range of 0 to 99. (Step S909).

ステップS908の判定がYES、即ちステップS906で取得したコード種別が7th音程を含まない3和音のコード種別である場合には、CPU101は、ステップS903、S904、又はS905で選択したコード音決定テーブルの5thに対応する設定範囲のなかの最大値(但し、5thに−1が設定されている場合は3rdに対応されている設定範囲のなかの最大値)をyとして、RAM103上の変数値xとして、0からyの範囲で乱数値を発生させる(ステップS910)。 If the determination in step S908 is YES, that is, if the chord type acquired in step S906 is a triad chord type that does not include the 7th pitch, the CPU 101 determines the chord sound determination table selected in steps S903, S904, or S905. The maximum value in the setting range corresponding to the 5th (however, when -1 is set in the 5th, the maximum value in the setting range corresponding to the 3rd) is set as y, and the variable value x on the RAM 103 is set. , A random value is generated in the range of 0 to y (step S910).

ステップS909又はS910の処理の後、CPU101は、ステップS903、S904、又はS905で選択したコード音決定テーブル上で、上記変数値xを「設定範囲」項目値として含む新規のノート種別を取得する(ステップS911)。 After the processing of step S909 or S910, the CPU 101 acquires a new note type including the variable value x as the "setting range" item value on the chord sound determination table selected in step S903, S904, or S905 (. Step S911).

次に、CPU101は、RAM103から現在設定されているコードデータのルートを取得する(ステップS912)。前述したように、CPU101は、コードデータを取得する処理を実行するごとに、最新の取得したコードデータの「ルート」項目値及び「コード種別」項目値をRAM103上の各変数に記憶している。 Next, the CPU 101 acquires the route of the code data currently set from the RAM 103 (step S912). As described above, the CPU 101 stores the "root" item value and the "code type" item value of the latest acquired code data in each variable on the RAM 103 each time the process of acquiring the code data is executed. ..

CPU101は、ステップS906で取得したコード種別と、ステップS911で取得したノート種別とに基づいて、図13(d)に例示されるコード音決定テーブルを参照することにより、ルートとの差分値を取得する(ステップS913)。 The CPU 101 acquires a difference value from the root by referring to the chord sound determination table illustrated in FIG. 13D based on the chord type acquired in step S906 and the note type acquired in step S911. (Step S913).

最後に、CPU101は、ステップS912で取得したルート値に、ステップS913で取得した差分値を加算し、その加算結果がC〜B(0〜11)の範囲に丸め込まれるように演算して、その結果を現在の拍に対応するコード音のノート値として出力する(ステップS914)。その後、CPU101は、図9のフローチャートで示される図4のステップS406のコード音処理を終了する。 Finally, the CPU 101 adds the difference value acquired in step S913 to the route value acquired in step S912, calculates so that the addition result is rounded to the range of C to B (0 to 11), and calculates the addition result. The result is output as a note value of the chord sound corresponding to the current beat (step S914). After that, the CPU 101 ends the chord sound processing of step S406 of FIG. 4 shown in the flowchart of FIG.

以上の図9のフローチャートで例示されるコード音処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断3に基づいて実行されるコード音処理の機能が実現される。これにより、図2(c)のコード進行例で前述したように、例えば、第1、第2、第4、第5、及び第8小節のそれぞれの2拍目及び3拍目と、第6小節の4拍目について、コード音処理により各コード構成音のノート値E及びG、G及びE、D及びF、B及びE、D及びBと、Cが出力される。 By the chord sound processing exemplified in the flowchart of FIG. 9 above, the function of the chord sound processing executed based on the processing determination 3 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized. As a result, as described above in the chord progression example of FIG. 2C, for example, the second and third beats and the sixth beat of the first, second, fourth, fifth, and eighth measures, respectively. For the 4th beat of the bar, the note values E and G, G and E, D and F, B and E, D and B, and C of each chord constituent note are output by the chord sound processing.

図5(c)は、図4のステップS407のルート音処理の詳細例を示すフローチャートである。CPU101はまず、コードデータに基づいてルートを取得する(ステップS520)。具体的には、CPU101は、現在の小節及び現在の拍に対応するRAM103上の小節数を示す変数値と拍数を示す変数値(1拍目なのでこの値は1)で、図3のステップS301においてROM102からRAM103に取得している図2(b)に例示されるコードデータの「小節」項目と「拍」項目とを検索し、検索されたコードデータの「ルート」項目値を取得し、RAM103に記憶する。 FIG. 5C is a flowchart showing a detailed example of the root sound processing in step S407 of FIG. First, the CPU 101 acquires a route based on the code data (step S520). Specifically, the CPU 101 has a variable value indicating the number of measures on the RAM 103 corresponding to the current measure and the current beat and a variable value indicating the number of beats (this value is 1 because it is the first beat), and is the step of FIG. In S301, the "bar" item and the "beat" item of the code data exemplified in FIG. 2B acquired from the ROM 102 to the RAM 103 are searched, and the "root" item value of the searched code data is acquired. , Stored in RAM 103.

CPU101は、ステップS520で取得されRAM103に記憶されている現在のコードの「ルート」項目値を、ノート値として出力する(ステップS521)。その後、CPU101は、図5(c)のフローチャートで示される図4のステップS407のルート音処理を終了する。 The CPU 101 outputs the "root" item value of the current code acquired in step S520 and stored in the RAM 103 as a note value (step S521). After that, the CPU 101 ends the root sound processing of step S407 of FIG. 4 shown in the flowchart of FIG. 5 (c).

以上の図5(c)のフローチャートで例示されるルート音処理により、前述した電子楽器100の実施形態の動作概要で説明した処理判断3に基づいて実行されるルート音処理の機能が実現される。これにより図2(c)のコード進行例で前述したように、例えば、第1、第2、第4、第5、第6、及び第8小節の各1拍目と第6小節の3拍目について、ルート音処理により各コードのルート音C、A、G、E、A、及びGと、Dが出力される。 By the root sound processing exemplified by the flowchart of FIG. 5 (c) above, the function of the root sound processing executed based on the processing determination 3 described in the operation outline of the embodiment of the electronic musical instrument 100 described above is realized. .. As a result, as described above in the chord progression example of FIG. 2C, for example, the first beat of each of the first, second, fourth, fifth, sixth, and eighth measures and the third beat of the sixth measure. For the eyes, the root sounds C, A, G, E, A, G, and D of each chord are output by the root sound processing.

図10及び図11は、図4のステップS408のオクターブ処理の詳細例を示すフローチャートである。以下に説明するオクターブ処理において、CPU101は、図4のステップS404、S405、S406、及びS407の何れかの処理で決定したC〜B(値0〜11)ノート値を、実際に音源LSI104に指示されるノートオンデータに設定される0から127の範囲の値を有するノートナンバ(MIDIのノートナンバ)に変換する。ノートナンバは前回発生したノードナンバを元に差分値を加算することによって発生させる。 10 and 11 are flowcharts showing a detailed example of the octave processing in step S408 of FIG. In the octave processing described below, the CPU 101 actually instructs the sound source LSI 104 of the C to B (values 0 to 11) note values determined in any of the processes of steps S404, S405, S406, and S407 of FIG. It is converted into a note number (MIDI note number) having a value in the range of 0 to 127 set in the note-on data to be performed. The note number is generated by adding the difference value based on the node number that occurred last time.

CPU101はまず、決定された音が最初の音か否かを判定する(ステップS1001)。 First, the CPU 101 determines whether or not the determined sound is the first sound (step S1001).

ステップS1001の判定がYESの場合、最初の音は前のノートナンバが存在しないため、CPU101は、ノート値(C〜B)によりノートナンバ(E1からEb2)を決定する(ステップS1002)。 If the determination in step S1001 is YES, the first note does not have a previous note number, so the CPU 101 determines the note number (E1 to Eb2) based on the note values (C to B) (step S1002).

ステップS1001の判定がNOの場合、CPU101は、前のノートナンバを例えばRAM103の変数から取得する(ステップS1003)。 If the determination in step S1001 is NO, the CPU 101 acquires the previous note number from, for example, a variable in the RAM 103 (step S1003).

次に、CPU101は、ステップS1003で取得した前のノートのノートナンバと、決定されたノート値との差分値を0〜11の範囲になるように、下記の演算式による演算で算出する(ステップS1004)。 Next, the CPU 101 calculates the difference value between the note number of the previous note acquired in step S1003 and the determined note value by the following calculation formula so as to be in the range of 0 to 11 (step). S1004).

差分値=(前のノートナンバ − 決定されたノート値+12)%12 Difference value = (previous note number-determined note value + 12)% 12

CPU101は、前のノートナンバとステップS1004で算出した差分値とを加算し、その加算結果を新しいノートナンバとする(ステップS1005)。 The CPU 101 adds the previous note number and the difference value calculated in step S1004, and sets the addition result as a new note number (step S1005).

このままでは、必ず前のノートナンバより値が高くなるので、CPU101は、以下のステップS1006からステップ1024の一連の処理により、出力されるノートナンバのオクターブを上下させる処理を実行する。 If nothing is done, the value will always be higher than that of the previous note number. Therefore, the CPU 101 executes a process of raising or lowering the octave of the output note number by a series of processes from step S1006 to step 1024 below.

まずCPU101は、ステップS1004で算出した差分値により、各処理を分岐して実行する(ステップS1006)。ステップS1006の判定における判定結果の各数字の意味は下記のようになる。
0:同じ音
1、2:2度上の音
3、4:3度上の音
5、6、7:4、5度上の音
8、9:6度上の音
10、11:7度上の音
First, the CPU 101 branches and executes each process according to the difference value calculated in step S1004 (step S1006). The meaning of each number of the determination result in the determination of step S1006 is as follows.
0: Same sound 1, 2: 2 degrees above sound 3, 4: 3 degrees above sound 5, 6, 7: 4, 5 degrees above sound 8, 9: 6 degrees above sound 10, 11: 7 degrees above Sound above

ステップS1006で、差分値が0の場合は同じ音なので、同じ音のままか、50%の確率でオクターブを上下させる(ステップS1007〜S1010)。 In step S1006, when the difference value is 0, the sound is the same, so the sound remains the same, or the octave is raised or lowered with a probability of 50% (steps S1007 to S1010).

まず、CPU101は、RAM103上の変数であるオクターブ決定用判定値yとして、0から99の範囲の乱数値を発生させる(ステップS1007)。 First, the CPU 101 generates a random number value in the range of 0 to 99 as the octave determination determination value y, which is a variable on the RAM 103 (step S1007).

CPU101は、変数yの値が50未満であるか否かを判定する(ステップS1008)。 The CPU 101 determines whether or not the value of the variable y is less than 50 (step S1008).

CPU101は、ステップS1008の判定がNOならば、オクターブは変更せずに図11のステップS1021に進む。 If the determination in step S1008 is NO, the CPU 101 proceeds to step S1021 in FIG. 11 without changing the octave.

CPU101は、ステップS1008の判定がYESならば、前のノートがC2未満か否かを判定する(ステップS1009)。 If the determination in step S1008 is YES, the CPU 101 determines whether or not the previous note is less than C2 (step S1009).

ステップS1009の判定がYESならば、CPU101は、図11のステップS1020に進んで、ノートナンバをオクターブアップさせる。 If the determination in step S1009 is YES, the CPU 101 proceeds to step S1020 in FIG. 11 to increase the note number by an octave.

ステップS1009の判定がNOならば、前のノートがE♭2よりも大きいか否かを判定する(ステップS1010)。 If the determination in step S1009 is NO, it is determined whether or not the previous note is larger than E ♭ 2 (step S1010).

ステップS1010の判定がYESならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1010 is YES, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

ステップS1006で、差分値が1又は2の場合、CPU101は、オクターブは変更せずに図11のステップS1021に進む。 If the difference value is 1 or 2 in step S1006, the CPU 101 proceeds to step S1021 of FIG. 11 without changing the octave.

ステップS1006で、差分値が3又は4の場合、CPU101はまず、RAM103上の変数であるオクターブ決定用判定値yとして、0から99の範囲の乱数値を発生させる(ステップS1011)。 When the difference value is 3 or 4 in step S1006, the CPU 101 first generates a random number value in the range of 0 to 99 as the octave determination determination value y, which is a variable on the RAM 103 (step S1011).

CPU101は、変数yの値が75未満であるか否かを判定する(ステップS1012)。 The CPU 101 determines whether or not the value of the variable y is less than 75 (step S1012).

CPU101は、ステップS1012の判定がYESならば、オクターブは変更せずに図11のステップS1021に進む。 If the determination in step S1012 is YES, the CPU 101 proceeds to step S1021 in FIG. 11 without changing the octave.

CPU101は、ステップS1012の判定がNOならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1012 is NO, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

ステップS1006で、差分値が5、6、又は7の場合は、CPU101はまず、RAM103上の変数であるオクターブ決定用判定値yとして、0から99の範囲の乱数値を発生させる(ステップS1013)。 When the difference value is 5, 6, or 7 in step S1006, the CPU 101 first generates a random number value in the range of 0 to 99 as the octave determination determination value y which is a variable on the RAM 103 (step S1013). ..

CPU101は、前のノートがG2以上か否かを判定する(ステップS1014)。 The CPU 101 determines whether or not the previous note is G2 or higher (step S1014).

ステップS1014の判定がYESならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1014 is YES, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

ステップS1014の判定がNOならば、CPU101は、変数yの値が50未満であるか否かを判定する(ステップS1015)。 If the determination in step S1014 is NO, the CPU 101 determines whether or not the value of the variable y is less than 50 (step S1015).

ステップS1015の判定がYESならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1015 is YES, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

CPU101は、ステップS1015の判定がNOならば、オクターブは変更せずに図11のステップS1021に進む。 If the determination in step S1015 is NO, the CPU 101 proceeds to step S1021 in FIG. 11 without changing the octave.

ステップS1006で、差分値が8又は9の場合は、CPU101はまず、RAM103上の変数であるオクターブ決定用判定値yとして、0から99の範囲の乱数値を発生させる(ステップS1016)。 When the difference value is 8 or 9 in step S1006, the CPU 101 first generates a random number value in the range of 0 to 99 as the octave determination determination value y which is a variable on the RAM 103 (step S1016).

CPU101は、前のノートがC2以上か否かを判定する(ステップS1017)。 The CPU 101 determines whether or not the previous note is C2 or higher (step S1017).

ステップS1017の判定がYESならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1017 is YES, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

ステップS1017の判定がNOならば、CPU101は、変数yの値が75未満であるか否かを判定する(ステップS1018)。 If the determination in step S1017 is NO, the CPU 101 determines whether or not the value of the variable y is less than 75 (step S1018).

ステップS1018の判定がYESならば、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the determination in step S1018 is YES, the CPU 101 proceeds to step S1019 in FIG. 11 to octave down the note number.

CPU101は、ステップS1018の判定がNOならば、オクターブは変更せずに図11のステップS1021に進む。 If the determination in step S1018 is NO, the CPU 101 proceeds to step S1021 in FIG. 11 without changing the octave.

ステップS1006で、差分値が10又は11の場合は、CPU101は、図11のステップS1019に進んで、ノートナンバをオクターブダウンさせる。 If the difference value is 10 or 11 in step S1006, the CPU 101 proceeds to step S1019 of FIG. 11 to octave down the note number.

図11のステップS1021以降の処理は、音域のリミット処理である。CPU101は、出力の音域をE1〜G3までの範囲にする。なお、発音する音域を変えたい場合はこの範囲E1〜G3を変更させればよい。 The processing after step S1021 in FIG. 11 is a range limit processing. The CPU 101 sets the output range to the range of E1 to G3. If you want to change the sound range, you can change the range E1 to G3.

CPU101は、発音するノートがE1よりも小さいか否かを判定する(ステップS1021)。 The CPU 101 determines whether or not the note to be pronounced is smaller than E1 (step S1021).

ステップS1021の判定がYESの場合、CPU101は、出力のノートをオクターブアップする(ステップS1023)。 If the determination in step S1021 is YES, the CPU 101 octaves up the output note (step S1023).

ステップS1021の判定がNOの場合、CPU101は、発音するノートがG3よりも大きいか否かを判定する(ステップS1022)。 If the determination in step S1021 is NO, the CPU 101 determines whether or not the note to be pronounced is larger than G3 (step S1022).

ステップS1022の判定がYESの場合、CPU101は、出力のノートをオクターブダウンする(ステップS1024)。 If the determination in step S1022 is YES, the CPU 101 octaves down the output note (step S1024).

ステップS1023若しくはS1024の処理の後、又はステップS1022の判定がNOの場合に、CPU101は、図11のフローチャートで示される図4のステップS408のオクターブ処理を終了する。 After the processing of step S1023 or S1024, or when the determination of step S1022 is NO, the CPU 101 ends the octave processing of step S408 of FIG. 4 shown in the flowchart of FIG.

以上のオクターブ処理により、前のノートと現在のノートの差分値が高いほど、オクターブを下げる処理が多くなっているので、跳躍進行(広い音程での移動)を少なくすることが可能となる。 By the above octave processing, the higher the difference value between the previous note and the current note, the more the processing for lowering the octave, so that the jump progress (movement in a wide pitch) can be reduced.

従来はあらかじめプログラミングされた演奏データを任意の長さで繰り返し演奏させていた伴奏演奏が、ある1定のルールの中でランダマイズさせることで、単調な繰り返し演奏ではなくなり、人間が演奏する生演奏に近づいた演奏を再現することが可能となる。 In the past, accompaniment performance, in which pre-programmed performance data was repeatedly played for an arbitrary length, is no longer a monotonous repetitive performance by randomizing it within a certain rule, and it becomes a live performance played by humans. It is possible to reproduce the approaching performance.

このときの「ある1定のルール」には、既に発音を終えた当該タイミング以前のノートの情報も組み込むことで、1音1音の繋がりが無くランダマイズで発生される音高に比べて、より音楽的に自然な繋がりを持ったフレーズを再現することが可能となる。 By incorporating the information of the notes before the timing when the pronunciation has already been completed into the "certain rule" at this time, there is no connection between each note and the pitch is more than the pitch generated by randomization. It is possible to reproduce phrases that have a musical natural connection.

ランダマイズされる発音音高の決定手段を複数持つことで、単調な演奏からより一層離れ、人間が演奏する生演奏に近づいた演奏を再現することが可能となる。 By having a plurality of means for determining the sounding pitch to be randomized, it is possible to reproduce a performance that is closer to a live performance performed by a human being, further away from a monotonous performance.

半音処理又はスケール音処理などの処理条件を満たす場合でも確率的に実行しないようにして変化を持たせることが可能となる。 Even when processing conditions such as semitone processing or scale sound processing are satisfied, it is possible to make a change without probabilistic execution.

その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。 In addition, the present invention is not limited to the above-described embodiment, and can be variously modified at the implementation stage without departing from the gist thereof. In addition, the functions executed in the above-described embodiment may be combined as appropriate as possible. The above-described embodiments include various steps, and various inventions can be extracted by an appropriate combination according to a plurality of disclosed constitutional requirements. For example, even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, if the effect is obtained, the configuration in which the constituent requirements are deleted can be extracted as an invention.

以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
生成する音が、小節内のいずれの拍のタイミングに該当するかを判断し、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行し、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行する、
ベースライン音自動生成装置。
(付記2)
前記複数の処理は、
取得された前記コードデータのコード構成音に含まれるいずれかの音を生成するコード音処理、
連続する発音タイミングがそれぞれ異なる複数の音を、設定された複数の音高のなかで順番に高音側に遷移していく上行音、及び順番に低音側に遷移していく下行音のいずれかに含まれる音を生成するスケール音処理、
判断された前記拍のタイミングの次の拍のタイミングに発音させる音の半音上又は半音下のいずれかの音高の音を生成する半音処理、
のいずれかを含む、付記1に記載のベースライン音自動生成装置。
(付記3)
判断された前記拍のタイミングが第1拍のタイミングである場合であって、前記小節内の前記第1拍以外の拍のタイミングにコードデータが対応付けられていない場合に、スケール乱数値を発生させ、
発生させた前記スケール乱数値に従って、第2拍以降の拍のタイミングに前記スケール音処理を実行するか否かを決定し、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合であって、前記第2拍以降の拍のタイミングに前記スケール音処理を実行すると既に決定されている場合に、前記確率的に決定された前記スケール音処理を実行する、
付記2に記載のベースライン音自動生成装置。
(付記4)
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合であって、前記第2拍以降の拍のタイミングに前記スケール音処理を実行しないと決定されている場合に、前記確率的に前記コード音処理を実行すると決定された場合、判断された前記拍のタイミングに応じて異なるテーブルに従って、前記コード音処理を実行する、
付記3に記載のベースライン音自動生成装置。
(付記5)
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングであって、判断された前記拍のタイミングの次の拍のタイミングにコードデータが対応付けられている場合に、コード乱数値を発生させ、
発生させた前記コード乱数値に従って、前記半音処理、前記コード音処理のいずれの処理を実行するかを決定する、
付記2乃至4のいずれかに記載のベースライン音自動生成装置。
(付記6)
発生させた前記コード乱数値に従って、前記半音処理の実行が決定された場合に、
判断された前記拍のタイミングの1つ前の拍のタイミングのノート情報の音高が、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して、半音下又は全音上の場合には、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して半音上の音高を前記拍のタイミングの出力音高として決定し、
判断された前記拍のタイミングの1つ前の拍のタイミングのノート情報の音高が、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して、全音下又は半音上の場合には、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して半音下の音高を前記拍のタイミングの出力音高として決定する、
付記5に記載のベースライン音自動生成装置。
(付記7)
自動生成するベースラインがジャズ調である場合に、自動生成するベースラインがポップス調である場合と比べて、前記半音処理が実行される確率が高くなるように、半音頻度変数値が設定されている、
付記5又は6に記載のベースライン音自動生成装置。
(付記8)
自動生成するベースラインのテンポが第1テンポである場合に、前記第1テンポより遅い第2テンポである場合と比べて、前記半音処理が実行される確率が高くなるように、半音頻度変数値が設定されている、
付記5又は6に記載のベースライン音自動生成装置。
(付記9)
付記1乃至8のいずれかに記載のベースライン自動生成装置と、
演奏操作子と、
を備え、
前記演奏操作子の操作に応じた発音処理を実行する、
電子楽器。
(付記10)
ベースライン音自動生成装置のプロセッサに、
生成する音が、小節内のいずれの拍のタイミングに該当するかを判断させ、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行させ、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行させる、
方法。
(付記11)
ベースライン音自動生成装置のプロセッサに、
生成する音が、小節内のいずれの拍のタイミングに該当するかを判断させ、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行させ、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行させる、
プログラム。
The following additional notes will be further disclosed with respect to the above embodiments.
(Appendix 1)
Determine which beat timing in the bar the generated sound corresponds to, and
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
Bassline sound automatic generator.
(Appendix 2)
The plurality of processes
A chord sound process that generates any of the sounds included in the chord constituent sounds of the acquired chord data.
Multiple sounds with different consecutive sound timings can be selected as either an ascending sound that sequentially transitions to the treble side or a descending sound that sequentially transitions to the bass side within the set multiple pitches. Scale sound processing, which produces the included sounds,
A semitone process that generates a pitch that is either above or below a semitone of the sound to be pronounced at the timing of the next beat after the determined beat timing.
The bassline sound automatic generator according to Appendix 1, which comprises any of the above.
(Appendix 3)
A scale random value is generated when the determined timing of the beat is the timing of the first beat and the code data is not associated with the timing of beats other than the first beat in the measure. Let me
According to the generated scale random value, it is determined whether or not to execute the scale sound processing at the timing of the second and subsequent beats.
When the determined beat timing is a beat timing other than the first beat, and it has already been determined that the scale sound processing is executed at the timing of the second and subsequent beats, the above. Performing the stochastically determined scale sound processing,
The bassline sound automatic generator according to Appendix 2.
(Appendix 4)
When the determined beat timing is a beat timing other than the first beat, and it is determined not to execute the scale sound processing at the timing of the second and subsequent beats, the above-mentioned When it is determined that the chord sound processing is stochastically executed, the chord sound processing is executed according to a different table according to the determined timing of the beat.
The bassline sound automatic generator according to Appendix 3.
(Appendix 5)
When the determined beat timing is a beat timing other than the first beat and the code data is associated with the timing of the next beat after the determined beat timing, the code random value is set. Generate,
It is determined whether to execute the semitone processing or the chord sound processing according to the generated chord random value.
The bassline sound automatic generation device according to any one of Supplementary note 2 to 4.
(Appendix 6)
When the execution of the semitone processing is determined according to the generated chord random value,
The pitch of the note information of the timing of the beat immediately before the determined timing of the beat is one half note below or the pitch of the root note of the chord data associated with the timing of the next beat. In the case of a whole note, the pitch above the root note of the chord data associated with the timing of the next beat is determined as the output pitch at the timing of the beat.
The pitch of the note information of the timing of the beat immediately before the determined timing of the beat is below the pitch of the root note of the chord data associated with the timing of the next beat. In the case of a half note above, the pitch below the root note of the chord data associated with the timing of the next beat is determined as the output pitch of the timing of the beat.
The bassline sound automatic generator according to Appendix 5.
(Appendix 7)
When the automatically generated bass line is jazz-like, the semitone frequency variable value is set so that the probability that the semitone processing is executed is higher than when the automatically generated bass line is pop-like. Yes,
The bassline sound automatic generation device according to Appendix 5 or 6.
(Appendix 8)
A semitone frequency variable value so that when the automatically generated baseline tempo is the first tempo, the probability that the semitone processing is executed is higher than when the tempo is the second tempo, which is slower than the first tempo. Is set,
The bassline sound automatic generation device according to Appendix 5 or 6.
(Appendix 9)
The baseline automatic generator according to any one of Supplementary notes 1 to 8 and
With the performance controller,
With
Executes pronunciation processing according to the operation of the performance operator.
Electronic musical instrument.
(Appendix 10)
For the processor of the automatic bass line sound generator
Lets you decide which beat timing in the bar the generated sound corresponds to.
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
Method.
(Appendix 11)
For the processor of the automatic bass line sound generator
Lets you decide which beat timing in the bar the generated sound corresponds to.
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
program.

100 電子楽器
101 CPU
102 ROM
103 RAM
104 音源LSI
105 鍵盤
106 キースキャナ
107 スイッチ
108 I/Oインタフェース
109 LCD
110 LCDコントローラ
111 D/Aコンバータ
112 アンプ
113 スピーカ
114 ネットワークインタフェース
115 システムバス
100 electronic musical instrument 101 CPU
102 ROM
103 RAM
104 Sound source LSI
105 keyboard 106 key scanner 107 switch 108 I / O interface 109 LCD
110 LCD Controller 111 D / A Converter 112 Amplifier 113 Speaker 114 Network Interface 115 System Bus

Claims (11)

生成する音が、小節内のいずれの拍のタイミングに該当するかを判断し、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行し、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行する、
ベースライン音自動生成装置。
Determine which beat timing in the bar the generated sound corresponds to, and
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
Bassline sound automatic generator.
前記複数の処理は、
取得された前記コードデータのコード構成音に含まれるいずれかの音を生成するコード音処理、
連続する発音タイミングがそれぞれ異なる複数の音を、設定された複数の音高のなかで順番に高音側に遷移していく上行音、及び順番に低音側に遷移していく下行音のいずれかに含まれる音を生成するスケール音処理、
判断された前記拍のタイミングの次の拍のタイミングに発音させる音の半音上又は半音下のいずれかの音高の音を生成する半音処理、
のいずれかを含む、請求項1に記載のベースライン音自動生成装置。
The plurality of processes
A chord sound process that generates any of the sounds included in the chord constituent sounds of the acquired chord data.
Multiple sounds with different consecutive sound timings can be selected as either an ascending sound that sequentially transitions to the treble side or a descending sound that sequentially transitions to the bass side within the set multiple pitches. Scale sound processing, which produces the included sounds,
A semitone process that generates a pitch that is either above or below a semitone of the sound to be pronounced at the timing of the next beat after the determined beat timing.
The bassline sound automatic generation device according to claim 1, which comprises any of the above.
判断された前記拍のタイミングが第1拍のタイミングである場合であって、前記小節内の前記第1拍以外の拍のタイミングにコードデータが対応付けられていない場合に、スケール乱数値を発生させ、
発生させた前記スケール乱数値に従って、第2拍以降の拍のタイミングに前記スケール音処理を実行するか否かを決定し、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合であって、前記第2拍以降の拍のタイミングに前記スケール音処理を実行すると既に決定されている場合に、前記確率的に決定された前記スケール音処理を実行する、
請求項2に記載のベースライン音自動生成装置。
A scale random value is generated when the determined timing of the beat is the timing of the first beat and the code data is not associated with the timing of beats other than the first beat in the measure. Let me
According to the generated scale random value, it is determined whether or not to execute the scale sound processing at the timing of the second and subsequent beats.
When the determined beat timing is a beat timing other than the first beat, and it has already been determined that the scale sound processing is executed at the timing of the second and subsequent beats, the above. Performing the stochastically determined scale sound processing,
The bassline sound automatic generation device according to claim 2.
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合であって、前記第2拍以降の拍のタイミングに前記スケール音処理を実行しないと決定されている場合に、前記確率的に前記コード音処理を実行すると決定された場合、判断された前記拍のタイミングに応じて異なるテーブルに従って、前記コード音処理を実行する、
請求項3に記載のベースライン音自動生成装置。
When the determined beat timing is a beat timing other than the first beat, and it is determined not to execute the scale sound processing at the timing of the second and subsequent beats, the above-mentioned When it is determined that the chord sound processing is stochastically executed, the chord sound processing is executed according to a different table according to the determined timing of the beat.
The bassline sound automatic generation device according to claim 3.
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングであって、判断された前記拍のタイミングの次の拍のタイミングにコードデータが対応付けられている場合に、コード乱数値を発生させ、
発生させた前記コード乱数値に従って、前記半音処理、前記コード音処理のいずれの処理を実行するかを決定する、
請求項2乃至4のいずれかに記載のベースライン音自動生成装置。
When the determined beat timing is a beat timing other than the first beat and the code data is associated with the timing of the next beat after the determined beat timing, the code random value is set. Generate,
It is determined whether to execute the semitone processing or the chord sound processing according to the generated chord random value.
The bassline sound automatic generation device according to any one of claims 2 to 4.
発生させた前記コード乱数値に従って、前記半音処理の実行が決定された場合に、
判断された前記拍のタイミングの1つ前の拍のタイミングのノート情報の音高が、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して、半音下又は全音上の場合には、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して半音上の音高を前記拍のタイミングの出力音高として決定し、
判断された前記拍のタイミングの1つ前の拍のタイミングのノート情報の音高が、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して、全音下又は半音上の場合には、前記次の拍のタイミングに対応付けられているコードデータのルート音の音高に対して半音下の音高を前記拍のタイミングの出力音高として決定する、
請求項5に記載のベースライン音自動生成装置。
When the execution of the semitone processing is determined according to the generated chord random value,
The pitch of the note information of the timing of the beat immediately before the determined timing of the beat is one half note below or the pitch of the root note of the chord data associated with the timing of the next beat. In the case of a whole note, the pitch above the root note of the chord data associated with the timing of the next beat is determined as the output pitch at the timing of the beat.
The pitch of the note information of the timing of the beat immediately before the determined timing of the beat is below the pitch of the root note of the chord data associated with the timing of the next beat. In the case of a half note above, the pitch below the root note of the chord data associated with the timing of the next beat is determined as the output pitch of the timing of the beat.
The bassline sound automatic generation device according to claim 5.
自動生成するベースラインがジャズ調である場合に、自動生成するベースラインがポップス調である場合と比べて、前記半音処理が実行される確率が高くなるように、半音頻度変数値が設定されている、
請求項5又は6に記載のベースライン音自動生成装置。
When the automatically generated bass line is jazz-like, the semitone frequency variable value is set so that the probability that the semitone processing is executed is higher than when the automatically generated bass line is pop-like. Yes,
The bassline sound automatic generator according to claim 5 or 6.
自動生成するベースラインのテンポが第1テンポである場合に、前記第1テンポより遅い第2テンポである場合と比べて、前記半音処理が実行される確率が高くなるように、半音頻度変数値が設定されている、
請求項5又は6に記載のベースライン音自動生成装置。
A semitone frequency variable value so that when the automatically generated baseline tempo is the first tempo, the probability that the semitone processing is executed is higher than when the tempo is the second tempo, which is slower than the first tempo. Is set,
The bassline sound automatic generator according to claim 5 or 6.
請求項1乃至8のいずれかに記載のベースライン自動生成装置と、
演奏操作子と、
を備え、
前記演奏操作子の操作に応じた発音処理を実行する、
電子楽器。
The baseline automatic generator according to any one of claims 1 to 8.
With the performance controller,
With
Executes pronunciation processing according to the operation of the performance operator.
Electronic musical instrument.
ベースライン音自動生成装置のプロセッサに、
生成する音が、小節内のいずれの拍のタイミングに該当するかを判断させ、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行させ、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行させる、
方法。
For the processor of the automatic bass line sound generator
Lets you decide which beat timing in the bar the generated sound corresponds to.
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
Method.
ベースライン音自動生成装置のプロセッサに、
生成する音が、小節内のいずれの拍のタイミングに該当するかを判断させ、
判断された前記拍のタイミングが第1拍のタイミングである場合に、前記第1拍のタイミングに対応付けられているコードデータのルート音を生成するルート音処理を実行させ、
判断された前記拍のタイミングが前記第1拍以外の拍のタイミングである場合に、前記コードデータに基づく処理を含む複数の処理のなかから確率的に決定された処理を実行させる、
プログラム。
For the processor of the automatic bass line sound generator
Lets you decide which beat timing in the bar the generated sound corresponds to.
When the determined timing of the beat is the timing of the first beat, the root sound processing for generating the root sound of the chord data associated with the timing of the first beat is executed.
When the determined beat timing is a beat timing other than the first beat, a process stochastically determined from a plurality of processes including a process based on the code data is executed.
program.
JP2020020067A 2020-02-07 2020-02-07 Automatic bass line sound generation device, electronic musical instrument, automatic bass line sound generation method and program Active JP7505196B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020020067A JP7505196B2 (en) 2020-02-07 2020-02-07 Automatic bass line sound generation device, electronic musical instrument, automatic bass line sound generation method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020020067A JP7505196B2 (en) 2020-02-07 2020-02-07 Automatic bass line sound generation device, electronic musical instrument, automatic bass line sound generation method and program

Publications (2)

Publication Number Publication Date
JP2021124688A true JP2021124688A (en) 2021-08-30
JP7505196B2 JP7505196B2 (en) 2024-06-25

Family

ID=77460266

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020020067A Active JP7505196B2 (en) 2020-02-07 2020-02-07 Automatic bass line sound generation device, electronic musical instrument, automatic bass line sound generation method and program

Country Status (1)

Country Link
JP (1) JP7505196B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850051A (en) 1996-08-15 1998-12-15 Yamaha Corporation Method and apparatus for creating an automatic accompaniment pattern on the basis of analytic parameters

Also Published As

Publication number Publication date
JP7505196B2 (en) 2024-06-25

Similar Documents

Publication Publication Date Title
JP5574474B2 (en) Electronic musical instrument having ad-lib performance function and program for ad-lib performance function
JP6465136B2 (en) Electronic musical instrument, method, and program
US8314320B2 (en) Automatic accompanying apparatus and computer readable storing medium
JP3637775B2 (en) Melody generator and recording medium
JP6175812B2 (en) Musical sound information processing apparatus and program
JP2021124688A (en) Baseline sound automatic generation device, electronic musical instrument, baseline sound automatic generation method, and program
JP7409366B2 (en) Automatic performance device, automatic performance method, program, and electronic musical instrument
JP7400798B2 (en) Automatic performance device, electronic musical instrument, automatic performance method, and program
JP6597553B2 (en) Harmony information generation apparatus, harmony information generation program, and harmony information generation method
JP2007240558A (en) Chord detection area setting device, chord display device with same device, and program thereof
JP7452501B2 (en) Automatic performance device, electronic musical instrument, performance system, automatic performance method, and program
JP2007248880A (en) Musical performance controller and program
JP6582517B2 (en) Control device and program
WO2022201945A1 (en) Automatic performance device, electronic musical instrument, performance system, automatic performance method, and program
JP2002032079A (en) Device and method for automatic music composition and recording medium
JP2011197564A (en) Electronic music device and program
Unemi A design of genetic encoding for breeding short musical pieces
TWM531033U (en) Real-time composer and playback apparatus
JP5104414B2 (en) Automatic performance device and program
JP3800947B2 (en) Performance data processing apparatus and method, and storage medium
JP6036800B2 (en) Sound signal generating apparatus and program
JP2024062127A (en) Automatic accompaniment sound generation device, electronic musical instrument, automatic accompaniment sound generation method and program
JP5776205B2 (en) Sound signal generating apparatus and program
JP4942938B2 (en) Automatic accompaniment device
JP3499672B2 (en) Automatic performance device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230201

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20231005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240527