ch_music
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
ch_music [2018/01/04 00:36] – 作成 kanemune | ch_music [2018/02/09 11:06] (現在) – klab | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | # 音楽の演奏 | ||
+ | |||
+ | ドリトルでは**MIDI音源**((MIDIはコンピュータで音楽を演奏するための規格。)) を使った楽器演奏を行える。演奏する**メロディ**は、「どれみー」といった分かりやすい形で記述する。**コード**による伴奏と**ドラム**による打楽器演奏を合わせて、**バンド**やオーケストラのような合奏が可能である。 | ||
+ | |||
+ | |||
+ | |||
+ | ## メロディの演奏 | ||
+ | |||
+ | メロディを演奏するには、譜面に相当する**メロディオブジェクト**に**旋律**を書き込み、それを演奏する。次のプログラムでは、「きらきらぼし」という名前のメロディオブジェクトを生成し、「" | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## メロディの記述 | ||
+ | |||
+ | メロディには、「ドレミ」 といった音階に加えて、数字や記号で細かい指定を行える。 | ||
+ | |||
+ | オクターブ上に移るときは 「^」 を、オクターブ下に移るときは 「_」 を指定する。ひとつの音だけでなく、それ以降がすべてオクターブ上(または下)になる。音を伸ばすときは 「〜」 や 「ー」 で指定する。音の後ろに 1, 2, 4, 8, 16 といった数字を書くことで、それぞれ全音符、二分音符、四分音符、八分音符、十六分音符を指定することもできる。 | ||
+ | |||
+ | 次のプログラムは、これらを使ったサンプルである。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 楽器の指定 | ||
+ | |||
+ | 標準のピアノ以外に、いくつかの楽器を指定して演奏できる。あらかじめ、いくつかの楽器が用意されている(**obj_instrument** )。次のプログラムでは、楽器をオルガンに設定して演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | 次のプログラムでは、「メロディ欄」という名前の**フィールド**オブジェクトを作り、そこに初期値として「ドドソソララソ〜ファファミミレレド〜」という旋律を入れている。この旋律は実行中にキーボードから修正することができる。続いて「楽器名」という名前の**選択メニュー**オブジェクトを作り、ピアノ、オルガン、ギター、トランペット、ベルを設定している。最後に「実行ボタン」という名前の**ボタン**オブジェクトを作り、ボタンを押したときに「メロディ欄」に書かれた旋律を「楽器名」で指定された楽器で演奏する。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 音楽の構造をプログラムする | ||
+ | |||
+ | 「きらきらぼし」 のメロディをもう一度見てみよう。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | メロディの部分をよく見ると、次のような**曲の構造**があることが分かる。 | ||
+ | * 「ドドソソララソ〜ファファミミレレド〜」 という同じ旋律が、最初と最後に出てきている。 (Aメロディと呼ぶことにする) | ||
+ | * 「ソソファファミミレ〜ソソファファミミレ〜」 という2番目の旋律は、「ソソファファミミレ〜」 が2回繰り返されている。(Bメロディと呼ぶことにする) | ||
+ | |||
+ | これを整理すると、「きらきらぼし」 という曲は、次のような構造を持っていることが分かる。 | ||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 分かりやすいように、プログラムの最初で 「Aメロディ」 と「Bメロディ」 という**変数**を定義すると、次のように書ける。 | ||
+ | |||
+ | < | ||
+ | // 変数の定義 | ||
+ | | ||
+ | | ||
+ | |||
+ | // 演奏 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | 2個の 「Bメロディ」 を**繰り返し**で書くと、次のようになる。 | ||
+ | |||
+ | < | ||
+ | // 変数の定義 | ||
+ | | ||
+ | | ||
+ | |||
+ | // 繰り返しを使った演奏 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | // 変数の定義 | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | // 繰り返しと条件分岐を使った演奏 | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | この例で見たように、多くの曲では、ひとつの曲の中にいくつかのメロディの断片が繰り返して含まれている。音楽をプログラムで演奏する際には、単に楽譜を入力するのではなく、曲の構造をうまく見つけてプログラムで表現することが大切である。 | ||
+ | |||
+ | |||
+ | |||
+ | ## メロディの合奏 | ||
+ | |||
+ | 同じメロディを何拍かずらして演奏することで、輪唱を演奏できる。次のプログラムでは、「かえる2」 というメロディの先頭に8拍の**無音**を入れ、続けて 「かえる1」 というメロディを加えている。そして、「かえる1」 と 「かえる2」 を同時に演奏している。 | ||
+ | |||
+ | **バンド**オブジェクトを使うと、複数のメロディを演奏することができる。次のプログラムでは、「輪唱」 というバンドオブジェクトを作り、バンドのメンバーとして、「かえる1」 と 「かえる2」 を追加している。輪唱を演奏すると、「かえる1」 と 「かえる2」 が同時に演奏される。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 楽器を変えて演奏する | ||
+ | |||
+ | 標準の楽器であるピアノ以外にも楽器が用意されている。先ほどの輪唱プログラムは、ピアノ2台だったので2つのメロディの区別がつきにくかった。ここでは1台の楽器を**オルガン**に変えて演奏してみる。次のプログラムでは、「オルガン1」という名前の**楽器**オブジェクトを作り、「かえる2」に**設定**して演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | 楽器は1〜128で表されるMIDIの楽器番号((**ch_reference** を参照。)) で指定することもできる。次のプログラムでは、**乱数**で楽器を指定している。実行するたびに、異なる楽器で演奏される。乱数のような数式は、括弧(…) で囲んで記述する。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ## 楽譜からの入力 | ||
+ | |||
+ | 音楽の楽譜を見ながら、曲を入力してみよう。 | ||
+ | |||
+ | {{ : | ||
+ | {{ : | ||
+ | |||
+ | ## リズム | ||
+ | |||
+ | 打楽器のリズムを演奏するには、**ドラム**オブジェクトを使用する。使い方はメロディオブジェクトなどと同様である。音階の代りに、「ドツタツドツタツ」といったリズムを記述する。 | ||
+ | |||
+ | 次のプログラムでは、最初に「きらきらぼし」という名前のメロディオブジェクトを作り、続いて「きらりずむ」という名前のドラムオブジェクトを作っている。「ドツタツ」といった表記は、「ド」がバスドラ、「ツ」がハイハットなど、それぞれがドラムで使われる楽器を表す。メロディと違って、音の長さは半拍である。詳しくは**ch_reference** を参照してほしい。最後にバンドオブジェクトを作り、「きらきらぼし」と「きらりずむ」を追加して演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | もちろん、バンドに名前を付けることもできる。次のプログラムでは「マイバンド」という名前のバンドを作り演奏している。 | ||
+ | |||
+ | < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||