インストール
|
インストールTcl/Java よりjaclBinaryをダウンロードして展開するとlib/tcljava1.4.0などの下に jacl.jarとtcljava.jarが得られます。 さらにアーカイブmdpw30.zipをダウンロードして解凍すると mdpw.jarファイルが現れます。 この3つを貴方のシステムのJava環境にくわえて下さい。 この製品は内容的にJavaプログラマー向けなのでこの説明で分って頂きたいところですが 大体以下の3つの方法があります。
c:\mdpw\sample> dir /w ..\*.jar mdpw.jar jacl.jar tcljava.jar C:\mdpw\sample> dir /w jacl.bat sample.tcl C:\mdpw\sample> java -cp ..\mdpw.jar;..\jacl.jar;..\tcljava.jar tcl.lang.Shell sample.tcl C:\mdpw\sample> dir /w jacl.bat sample.tcl sample.mid C:\mdpw\sample> ページの先頭| 次のステップへ 音の定義まずは音が一つなるだけの例です。 jaclのバージョンが1.26で動作を確認していますが、 古いバージョンだと最初の1行は不用になります。 mdpw.tclはユティリティー関数を定義しているもので、 アーカイブを展開したsampleフォルダにあります。 また:mnの引数ですが ピッチ(高さ:0-127), デュレーション(長さ:正のdouble), ベロシティ(強さ:0 - 127), プログラムナンバー(音色:0 - 127, 129) の順に指定します。package require java java::load com.cwbp.mdpw.PlayExtension source mdpw.tcl play MIDIFilePlayer "note.mid" play tempo 60 play [:mn 60 1 64 0] play end exit 0 ページの先頭| 次のステップへ 音列の定義音列とは時間的に連続して鳴る一連の音の事です。 以下のように:msで音列リストを作りその中に音をならべる事で、実現可能です。 ドレミと音がするはずです。 :mnで引数が足りない場合は前の音の値を用います。package require java java::load com.cwbp.mdpw.PlayExtension source mdpw.tcl play MIDIFilePlayer "seq.mid" play tempo 120 play [:ms [:mn 60 1 64 0] [:mn 62 1] [:mn 64 1]] play end exit 0 ページの先頭| 次のステップへ 和音の定義和音は以下のように:mcで作った和音リストに音をくわえる事により、実現可能です。 ドミソの和音の例です。 やはり:mnで引数が足りない場合は前の音の値を用います。package require java java::load com.cwbp.mdpw.PlayExtension source mdpw.tcl play MIDIFilePlayer "chord.mid" play tempo 120 play [:mc [:mn 60 2 64 0] [:mn 64] [:mn 67]] play end exit 0 ページの先頭| 次のステップへ 曲を作る音列と和音で曲を作ります。 音列と和音はそれぞれtclで言うところのリストで実現されているのですが、 これらのリストは更に音列や和音のに含める事が出来ます。 自由に入れ子に出来るので和音の列を始め何段でもリスト構造を作る事が出来ます。 ついでにplayを複数呼び出すと連続して演奏される事も使ってみました。 「チューリップ」最初の2小節です。package require java java::load com.cwbp.mdpw.PlayExtension source mdpw.tcl set chord_c [:mc [:mn 60 2 64 0] [:mn 64 2] [:mn 67 2]] set chord_part [:ms $chord_c $chord_c] set melody [:ms [:mn 60 1 80 0] [:mn 62 1] [:mn 64 1] [:mn 64 1 0]] set phrase [:mc $melody $chord_part] play MIDIFilePlayer "sample.mid" play tempo 120 play $phrase play $phrase play end exit 0後は貴方のアイデア次第で、音楽プログラミングをお楽しみ下さい。 ページの先頭 |