プログラミング言語「ドリトル」

大阪電気通信大学 兼宗研究室

ユーザ用ツール

サイト用ツール


ref_music33

音楽オブジェクト

  • 音楽はプログラムの流れと並行して(スレッドとして非同期に)演奏され、プログラムは演奏の終了を待たずに先に進みます。演奏の終了を待つには「待つ」を使います。
  • 演奏は内蔵されたMIDI音源を使って演奏されます。外部のMIDI音源などが存在する場合は、編集画面の下部にMIDIボタンが表示され、演奏時に使用される機器を選択できます。

メロディ

  • 音階のある旋律を表します。“ドレミ〜” のように、分かりやすい文字列でメロディを表現します。
  • 以下の「作る」以外の例では、「メロディ1」などを作ってから実行してください。
  • 作る : 新しいメロディを作ります。
    • (例)「メロディ1」という名前のメロディオブジェクトを作ります。
 メロディ1=メロディ!作る。
  • (例)「メロディ1」という名前で「“ドレミ〜”」という音符のメロディオブジェクトを作ります。
 メロディ1=メロディ!"ドレミ〜" 作る。
  • 設定 : 楽器を設定します。
    • (例)メロディ1に「オルガン」の楽器オブジェクトを設定します。
 メロディ1!(楽器!"オルガン" 作る)設定。
  • 追加 : 音符を追加します。音符は文字列とメロディオブジェクトで指定できます。
    • (例)メロディ1に「“ドレミ〜”」という音符を追加します。
 メロディ1!"ドレミ〜" 追加。
  • (例)メロディ2にメロディ1の音符を追加します。
 メロディ2!(メロディ1)追加。
  • 無音 : 休符を追加します。
    • (例)メロディ2に4拍の休符とメロディ\ns1を追加します。
 メロディ2!4 無音(メロディ1)追加。
  • 繰り返す : 繰り返したメロディを返します。
    • (例)メロディ2にメロディ1を2回繰り返した音符を追加します。
 メロディ2!(メロディ1!2 繰り返す)追加。
  • 音上げる : メロディを半音の個数分上げた音階で返します。
    • (例)メロディ1の音程を1オクターブ(半音12個分)上げたメロディ2を作ります。
 メロディ2=メロディ1!12 音上げる。
  • (例)メロディ1の音程を1オクターブ(半音12個分)下げたメロディ2を作ります。
 メロディ2=メロディ1!-12 音上げる。
  • 演奏 : メロディを演奏します。
    • (例)メロディ1を演奏します。
 メロディ1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    • (例)メロディ1の演奏が終るのを待ちます。
 メロディ1!待つ。
  • クリア : メロディの音符をすべて消します。
    • (例)メロディ1の音符をすべて消します。
 メロディ1!クリア。
  • メロディを示す文字列には、次の表記を使えます。
  • ド , レ , ミ , ファ , フ, ソ , ラ , シ ,ど , れ , み , ふぁ , ふ, そ , ら , し, C, D, E, F, G, A, B: 音階を表します。
    • (例)メロディ1!“ドレミ” 追加。
  • : 半音上げます。直前の音階を半音上げます。
    • (例)メロディ1!“ド#レミ” 追加。
  • ('
    • (例)メロディ1!“ドレミ♭” 追加。
  • , \kwy{^}^ : オクターブ上げます。これ以降の音階が1オクターブ上がります。
    • (例)メロディ1に「“ドレミファソラシ^ドレミ”」を追加します。最後の「“ドレミ”」はオクターブ上の音階です。
 メロディ1!"ドレミファソラシ^ドレミ" 追加。
  • , _: オクターブ下げます。これ以降の音階が1オクターブ下がります。
    • (例)メロディ1に「“ド_シラソファミレド”」を追加します。最後の「“ド”」以降はオクターブ下の音階です。
 メロディ1!"ド_シラソファミレド" 追加。
  • : 休符
    • (例)メロディ1!“ド・レ・ミ” 追加。
  • ): 長音。前の音を1拍延ばします。
    • (例)メロディ1!“ドレミ〜” 追加。
  • : 付点。前の音をその半分の長さだけ伸ばします。
    • (例)メロディ1!“ドレミ.” 追加。
  • &,1,2,4,8,16: 長さを指定します。“ド4レ8ミ4&8” と書くと、ドは4分音符、レは8分音符、ミは付点4分音符になります。
    • (例)メロディ1!“ド4レ8ミ4&8” 追加。
  • {…}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
    • (例)メロディ1!“{ドレミ}8” 追加。

コード

  • 和音を表します。“CCD〜” のような文字列で記述します。
  • 以下の「作る」以外の例では、「コード1」などを作ってから実行してください。
  • 作る : 新しいコードを作ります。
    • (例)「コード1」という名前のコードオブジェクトを作ります。
 コード1=コード!作る。
  • (例)「コード1」という名前で「“CCD”」という音符のコードオブジェクトを作ります。
 コード1=コード!"CCD" 作る。
  • 設定 : 楽器を設定します。
    • (例)コード1に「オルガン」の楽器オブジェクトを設定します。
 コード1!(楽器!"オルガン" 作る)設定。
  • 追加 : 音符を追加します。音符は文字列とコードオブジェクトで指定できます。
    • (例)コード1に「“CCD〜”」という音符を追加します。
 コード1!"CCD〜" 追加。
  • (例)コード2にコード1の音符を追加します。
 コード2!(コード1)追加。
  • 無音 : 休符を追加します。
    • (例)コード2に4拍の休符とコード\ns1を追加します。
 コード2!4 無音(コード1)追加。
  • 繰り返す : 繰り返したコードを返します。
    • (例)コード2にコード1を2回繰り返したコードを追加します。
 コード2!(コード1!2 繰り返す)追加。
  • 音上げる : コードを半音の個数分上げた音階で返します。
    • (例)コード1の音程を1オクターブ(半音12個分)上げたコード2を作ります。
 コード2=コード1!12 音上げる。
  • (例)コード1の音程を1オクターブ(半音12個分)下げたコード2を作ります。
 コード2=コード1!-12 音上げる。
  • 演奏 : コードを演奏します。
    • (例)コード1を演奏します。
 コード1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    • (例)コード1の演奏が終るのを待ちます。
 コード1!待つ。
  • クリア : 追加したコードをすべて消します。
    • (例)コード1のコードをすべて消します。
 コード1!クリア。
  • コードを示す文字列には、次の表記を使えます。
  • A , B , C , D , E , F , G: コードを表します。
    • (例)コード1!“CCG” 追加。
  • m, 7: コードを修飾します。マイナーコードを作るときに使います。
    • (例)コード1!“CCmC7Cm7” 追加。
  • : 半音上げます。直前の音階を半音上げます。
    • (例)コード1!“C#CD” 追加。
  • ('
    • (例)コード1!“CCD♭” 追加。
  • , \kwy{^}^ : オクターブ上げます。これ以降の音階が1オクターブ上がります。
    • (例)コード1に「“C^CD”」を追加します。最後の「“CD”」はオクターブ上の音階です。
 コード1!"C^CD" 追加。
  • , _: オクターブ下げます。これ以降の音階が1オクターブ下がります。
    • (例)メロディ1に「“C_CD”」を追加します。最後の「“CD”」はオクターブ下の音階です。
 コード1!"C_CD" 追加。
  • : 休符
    • (例)コード1!“C・C・D” 追加。
  • ): 長音。前の音を1拍延ばします。
    • (例)コード1!“CCD〜” 追加。
  • : 付点。前の音をその半分の長さだけ伸ばします。
    • (例)コード1!“CCD.” 追加。
  • &,1,2,4,8,16: 長さを指定します。“C4D8E4&8” と書くと、Cは4分音符、Dは8分音符、Eは付点4分音符になります。
    • (例)コード1!“C4D8E4&8” 追加。
  • {…}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
    • (例)コード1!“{CDE}8” 追加。

ドラム

  • ドラム楽器の演奏を表します。“ドツタツ” のように、分かりやすい文字列でリズムを表現します。
  • 楽器を設定せず、ドラムオブジェクトで演奏してください。単独で演奏できるほか、

バンドオブジェクトのメンバーとして他の楽器などと同時に演奏できます。

  • 以下の「作る」以外の例では、「ドラム1」などを作ってから実行してください。
  • 作る : 新しいドラムを作ります。
    • (例)「ドラム1」という名前のドラムオブジェクトを作ります。
 ドラム1=ドラム!作る。
  • 追加 : 音符を追加します。音符は文字列とドラムオブジェクトで指定できます
    • (例)ドラム1に「“ドツタツ”」という音符を追加します。
 ドラム1!"ドツタツ" 追加。
  • (例)ドラム2にドラム1の音符を追加します。
 ドラム2!(ドラム1)追加。
  • 無音 : 休符を追加します。
    • (例)ドラム1に4拍の休符を追加します。
 ドラム1!4 無音。
  • 繰り返す : 繰り返したドラムを返します。
    • (例)ドラム2にドラム1を2回繰り返した音符を追加します。
 ドラム2!(ドラム1!2 繰り返す)追加。
  • 演奏 : ドラムを演奏します。
    • (例)ドラム1を演奏します。
 ドラム1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    • (例)ドラム1の演奏が終るのを待ちます。
 ドラム1!待つ。
  • 音量 : 音の大きさを設定します。値は0〜127で、標準の大きさは95です。
    • (例)「ドラム1」の音の大きさを「127」に設定します。
 ドラム1!127 音量。
  • クリア : 追加したドラムをすべて消します。
    • (例)ドラム1の音符をすべて消します。
 ドラム1!クリア。
  • 楽器設定 : 音符と楽器の対応を設定します。楽器は楽器名の文字列または楽器番号で指定します。複数の楽器を設定できます。
    • (例)ドラム1の「“ド”」を「“手拍子”」という楽器に設定します。
 ドラム1!"ド" "手拍子" 楽器設定。
  • (例)ドラム1の「“ド”」を「36」番の楽器に設定します。
 ドラム1!"ド" 36 楽器設定。
  • (例)ドラム1の「“ドタツクチパ”」を、それぞれ「35, 38, 42, 44, 46, 49」番の楽器に設定します。
 ドラム1!"ドタツクチパ" 35 38 42 44 46 49 楽器設定。
  • ドラムを示す文字列には、次の表記を使えます。楽器の割当は「楽器設定」で変更できます。
    • (例)ドラム!作る “ドツタツドツタツドツタツクチパ・” 追加 演奏。
    • ド , (ど): バスドラの半拍を表します。
    • タ , (た): スネアの半拍を表します。
    • ツ , (つ): ハイハット(クローズ)の半拍を表します。
    • ク , (く): ハイハット(ハーフオープン)の半拍を表します。
    • チ , (ち): ハイハット(オープン)の半拍を表します。
    • パ , (ぱ): クラッシュシンバルの半拍を表します。
    • ン (ん): 長音。前の拍を半拍長くします。
    • ・: 休符。1拍休みます。
    • &,1,2,4,8,16: 長さを示します。“タン4タン8タン4&8” と書くと、最初のタンは4分音符、次のタンは8分音符、最後のタンは付点4分音符になります。
    • {…}: 三連符。3個の音を2拍で演奏します。全体の長さを指定できます。
  • ドラムの「楽器設定」で使える楽器名と楽器番号には、次のものが使えます。
番号名前番号名前番号名前
35 バスドラム 2 51 ライドシンバル 1 67 ハイアゴゴ
36 バスドラム 1 52 チャイニーズシンバル 68 ローアゴゴ
37 サイドスティック 53 ライドベル 69 カバサ
38 スネアドラム 1 54 タンバリン 70 マラカス
39 手拍子 55 スプラッシュシンバル 71 ショートホイッスル
40 スネアドラム 2 56 カウベル 72 ロングホイッスル
41 ロートム 2 57 クラッシュシンバル 2 73 ショートギロ
42 クローズハイハット 58 ヴィブラスラップ 74 ロングギロ
43 ロートム 1 59 ライドシンバル 2 75 クラヴェス
44 ペダルハイハット 60 ハイボンゴ 76 ハイウッドブロック
45 ミドルトム 2 61 ローボンゴ 77 ローウッドブロック
46 オープンハイハット 62 ミュートハイコンガ 78 ミュートクイーカ
47 ミドルトム 1 63 オープンハイコンガ 79 オープンクイーカ
48 ハイトム 2 64 ローコンガ 80 ミュートトライアングル
49 クラッシュシンバル 1 65 ハイタンバール 81 オープントライアングル
50 ハイトム 1 66 ロータンバール

楽器

  • メロディとコードを演奏する楽器です。
  • 以下の「作る」以外の例では、「ピアノ1」を作ってから実行してください。
  • 作る : 新しい楽器を作ります。
    • (例)「ピアノ1」という名前の楽器オブジェクトを作ります。
 ピアノ1=楽器!"ピアノ" 作る。
  • 設定 : 演奏するメロディとコードを設定します。
    • (例)「ピアノ1」に「メロディ1」のメロディを設定します。
 ピアノ1!(メロディ1)設定。
  • (例)「ピアノ1」に「コード1」のコードを設定します。
 ピアノ1!(コード1)設定。
  • 演奏 : 楽器を演奏します。
    • (例)「ピアノ1」を演奏します。
 ピアノ1!演奏。
  • 待つ : 演奏が終るのを待ちます。
    • (例)「ピアノ1」の演奏が終るのを待ちます。
 ピアノ1!待つ。
  • 音量 : 音の大きさを設定します。値は0〜127で、標準の大きさは95です。
    • (例)「ピアノ1」の音の大きさを「127」に設定します。
 ピアノ1!127 音量。
  • 楽器名と楽器番号は次の表のように対応しています。
    • 実行する環境でどの楽器が使えるかは次のプログラムで調べることができます。
 m=メロディ!”どれみふぁそらしー”作る。
 タイマー!作る 3 間隔 128 回数「|n|
  ラベル!(n)作る。
  m!(楽器!(n) 作る)設定。
  m!演奏。
 」実行。
番号名前番号名前番号名前
1 グランドピアノ 44 コントラバス 87 フィフスリード
2 ブライトピアノ 45 トレモロストリングス 88 ベースアンドリード
3 エレクトリックグランドピアノ 46 ピチカートストリングス 89 ニューエイジパッド
4 ホンキートンクピアノ 47 オーケストラハープ 90 ワームパッド
5 エレクトリックピアノ1 48 ティンパニ 91 ポリシンセパッド
6 エレクトリックピアノ2 49 ストリングス 92 クワイアパッド
7 ハープシコード 50 スローストリングス 93 ボウドパッド
8 クラビネット 51 シンセストリングス1 94 メタリックパッド
9 チェレスタ 52 シンセストリングス2 95 ハロパッド
10 グロッケンシュピール 53 コーラス 96 スウィープパッド
11 ミュージックボックス 54 ボイス 97 アイスレイン
12 ビブラフォン 55 シンセボイス 98 サウンドトラック
13 マリンバ 56 オーケストラヒット 99 クリスタル
14 シロフォン 57 トランペット 100 アトモスフィア
15 チューブラーベル 58 トロンボーン 101 ブライトネス
16 ダルシマー 59 チューバ 102 ゴブリン
17 ドローバーオルガン 60 ミュートトランペット 103 エコードロップ
18 パーカッシブオルガン 61 フレンチホルン 104 エスエフ
19 ロックオルガン 62 ブラスセクション 105 シタール
20 チヤーチオルガン 63 シンセブラス1 106 バンジョー
21 リードオルガン 64 シンセブラス2 107 三味線
22 アコーディオン 65 ソプラノサックス 108
23 ハーモニカ 66 アルトサックス 109 カリンバ
24 タンゴアコーディオン 67 テナーサックス 110 バグパイプ
25 ナイロンギター 68 バリトンサックス 111 フィドル
26 スティールギター 69 オーボエ 112 シャナイ
27 ジャズギター 70 イングリッシュホルン 113 ティンクルベル
28 クリーンギター 71 バスーン 114 アゴゴ
29 ミュートギター 72 クラリネット 115 スティールドラム
30 オーバードライブギター 73 ピッコロ 116 ウッドブロック
31 ディストーションギター 74 フルート 117 太鼓
32 ギターハーモニクス 75 リコーダー 118 メロディックタム
33 アコースティクベース 76 パンフルート 119 シンセドラム
34 フィンガーベース 77 ブロウボトル 120 リバースシンバル
35 ピックベース 78 尺八 121 ギターフレットノイズ
36 フレットレスベース 79 ホイッスル 122 ブレスノイズ
37 スラップベース1 80 オカリナ 123 シーショア
38 スラップベース2 81 スクウェアリード 124 バード
39 シンセベース1 82 ソートゥースリード 125 テレフォン
40 シンセベース2 83 カリオペ 126 ヘリコプター
41 バイオリン 84 チフリード 127 アプローズ
42 ビオラ 85 チャランゴ 128 ガンショット
43 チェロ 86 ボイスリード

バンド

  • 複数の楽器やメロディ/コード/ドラムを演奏します。
  • 以下の「作る」以外の例では、「マイバンド」を作ってから実行してください。
  • 作る : 新しいバンドを作ります。
    • (例)「ピアノ1」「ドラム1」がメンバーの、「マイバンド」という名前のバンドオブジェクトを作ります。
 マイバンド=バンド!(ピアノ1)(ドラム1)作る。
  • 追加 : 演奏する楽器/メロディ/コード/ドラムを設定します。
    • (例)「マイバンド」に「ピアノ1」という楽器を追加します。
 マイバンド!(ピアノ1)追加。
  • 演奏 : バンドを演奏します。
    • (例)「マイバンド」を演奏します。
 マイバンド!演奏。
  • 待つ : 演奏が終るのを待ちます。
    • (例)「マイバンド」の演奏が終るのを待ちます。
 マイバンド!待つ。
  • クリア : バンドのメンバー(楽器/メロディ/コード/ドラム)をすべて取り消します。
    • (例)「マイバンド」に追加された楽器/メロディ/コード/ドラムのメンバーをすべて取り消します。
 マイバンド!クリア。
  • テンポ : 演奏する速度を指定します。標準は88です。
    • (例)「マイバンド」の演奏する速度を「100」に設定します。
 マイバンド!100 テンポ。
ref_music33.txt · 最終更新: 2020/01/06 06:59 by klab