ユーザーID

Password


ホーム
検索

ページトップ
メッセージを送る
掲示板
ブログ(日記)
お気に入りに追加
お友達一覧に登録

オンライン版ドリトルで『Palindrome』を演奏
夢限
オンライン版ドリトルを使って『Palindrome』を演奏させることができます。

【手順】

【1】下記のページにアクセスします。

オンライン版ドリトル
http://etext-music.com/online-dolittle/

【2】編集画面のタブを開き、下のプログラムソースをコピーして編集画面に貼り付けます。


//--------------ここから------------------
// 『Palindrome』オンライン版ドリトル用
// 指定範囲の乱数を作る
RandomNumber=[|r_min r_max|
random(r_max - r_min) + r_min.
].
// カンマ区切りのデータからランダムに選ぶ
RandomSelect=[|slc; ary|
ary=slc ! "," 分割. ary! (random(ary! 要素数?)) 読む.
].
// MIDIノート番号からドリトルの音名を作る
NoteName=[|番号; 音階 前 後 octv|
音階="ド:ド#:レ:レ#:ミ:ファ:ファ#:ソ:ソ#:ラ:ラ#:シ" ! ":" 分割.
前="_____:____:___:__:_::^:^^:^^^:^^^^:^^^^^]"! ":" 分割.
後="^^^^^:^^^^:^^^:^^:^::_:__:___:____:_____]"! ":" 分割.
octv=floor(番号/12)+1.
(前 ! (octv) 読む) + (音階 ! (番号%12+1) 読む) + (後 ! (octv) 読む).
].
// ドリトルの音名からMIDIノート番号を作る
NoteNumber=[|音名; mns pls onk scl bis k|
mns=0. pls=0. onk=0.
scl="c,d,e,f,g,a,b,ド,レ,ミ,ファ,ソ,ラ,シ,#,%,#,♭" ! "," 分割.
bis="0,2,4,5,7,9,11,0,2,4,5,7,9,11,1,-1,1,-1" ! "," 分割.
k=1.[
[音名! (scl!(k)読む)含む?]! なら [onk=onk+(bis!(k)読む)]実行. k=k+1.
] ! (scl! 要素数?) 繰り返す.
k=1.[
[(音名! (k)(1) 部分)! "↓" 含む?]! なら [mns=mns+1]実行.
[(音名! (k)(1) 部分)! "↑" 含む?]! なら [pls=pls+1]実行.
k=k+1.
] !(音名! 長さ?)繰り返す.
60 + onk + (pls*12) - (mns*12).
].
compose2=[|小節数 拍子 下限 上限 使う音符 音符配列 長さ配列; m tt tm to w_base|
w_base=拍子! "/" 分割.
m=小節数 * (w_base! (1) 読む) * (4/(w_base! (2) 読む)).
i=1. tt=0.
[tt < m]!の間 [
note_n=(!(!(!(下限)NoteNumber)(!(上限)NoteNumber)RandomNumber) NoteName).
tm=(!(使う音符) RandomSelect).
to=tt. tt=tt+(1/tm)*4.
[tt > m]! なら [tm=1/(m-to)*4] 実行.
note_l=tm.
[(m-to)==0.75]! なら [note_l="8.". tt=m ] 実行.
[(m-to)==1.50]! なら [note_l="4.". tt=m ] 実行.
[(m-to)==1.75]! なら [note_l="4..". tt=m ] 実行.
音符配列! (i)(note_n) 挿入.
長さ配列! (i)(note_l) 挿入.
i=i+1.
] 実行.
].

タイトル="Palindrome".
曲数=12.
サブタイトル="(二声の回文的カノンによる"+曲数+"の変奏)".

初期処理=[|v_no|
変奏番号=v_no.
乱数初期化 (変奏番号*194612).
速さ=(!("48,64,80,96,112,128") RandomSelect) .
音符種類=!("2/4/8/8/8/8,2/2/4/4/4/8,2/4/4/4/8/8,2/4/8/16/16/16") RandomSelect.
使う音符=音符種類! "/" "," 全部置き換える.
曲の内容=リスト!作る (画面!幅?)(画面!高さ?) 大きさ ((画面!幅?)*-0.5)((画面!高さ?)*0.5) 位置.
].

作曲処理=[
小節数=16. 拍子="4/4". 下限="↓ソ". 上限="ミ↑↑".
音符配列=配列! 作る. 長さ配列=配列! 作る.
! (小節数)(拍子)(下限)(上限)(使う音符)(音符配列)(長さ配列) compose2.
音符数=(音符配列! 要素数?).
mml_1="". [|i|
音符=(音符配列!(i)見る)+(長さ配列!(i)見る).
mml_1=mml_1+音符+" ".
]! (音符数) 繰り返す.
mml_2="". [|i|
音符=(音符配列!(音符数+1-i)見る)+(長さ配列!(音符数+1-i)見る).
mml_2=mml_2+音符+" ".
]! (音符数) 繰り返す.
].

演奏処理=[
part_1="・・"+mml_1+mml_2. part_2=mml_1+mml_2+"・・".

曲の内容!クリア.
曲の内容!("タイトル:"+タイトル+サブタイトル)書く.
曲の内容!("変奏No:"+変奏番号)書く.
曲の内容!("テンポ:"+速さ) 書く.
曲の内容!("音符長:"+使う音符) 書く.
曲の内容!("{P1} "+part_1) 書く.
曲の内容!("{P2} "+part_2) 書く.

バンド!(メロディ!作る (part_1) 追加 )追加(メロディ!作る (part_2) 追加)追加 (速さ/2)テンポ 演奏 待つ クリア.
].

[|v_no|
!(v_no) 初期処理. !作曲処理. !演奏処理.
]! (曲数) 繰り返す.

//--------------ここまで------------------



【3】画面の下の方にある[実行!]ボタンを押します。


ピアノの音が聞こえますか?

・No.1〜No.12まで連続して演奏します。途中で止める場合は[中断]ボタンを押してください。
作成日:01/20 11:03
1件のコメント
全て  1
夢限
編集画面にペーストできない事例があるようです。
調査しましたが、最新版のJavaではセキュリティーに関するポリシーでクリップボードからのペーストが標準では禁止されているようです。
対処方法については下記を参照してください。

Copy And Paste in Java Applets
http://blogs.oracle.com/kyle/entry/copy_and_paste_...
01/20 13:05
  1

Muse運営について

Muse(c)2024