/*
ビート音は、トレモロ効果でよろしいでしょうか、間違っていたらすみません。
それと当方、XPのみなので、win8での効果は確認できません、ご了承願います。
トレモロ効果を出すために、こちらを参考にファンクション化しています。
http://www2.yamaha.co.jp/u/naruhodo/22harmonica/harmonica1.html
複音ハーモニカを再現しようとすると、思ったより大仰になってしまいました。
このファンクションはトラックを複数使います。
ピッチをずらしたトラックを重ねることによって複音を再現しています。
ただしピッチは平均律の仕組みもふくめ、物理周波数で単純に割ったものという訳にはいかないので、
ピッチ数値を各音にきちんと合わせるまではしていません。
このへんの調整はYamada様にお任せします。
実際のトレモロはかなり柔らかいみたいので、Str CHK={ OCT= 233+ (MML(o)-4) *48 } の、
233を幾分減らしたほうがそれらしくなると思います。
48はオクターブピッチのズレです。これも調整可能です。
*/
//↓------コピーアンドペースト------↓
//---- GS音源初期化
Include(gs.h) ResetGS()r4
TimeBase=96 Tempo=121
Time=(!1) TrackSync
//---- 複音演奏するファンクションを事前に書き込む
Function UnisonHamonica(Str TT,Int NN){
Int TRK=TR
TT;
TR=(TRK+1)
Int OCT;
Str CHK={ OCT= 233+ (MML(o)-4) *48 } //オクターブごとのピッチ変化とトレモロ強度
//ノート音ごとのピッチ変化を追加
TT.s({ド},{ CHK; p%=OCT+3*0 ド }) //3*0が各音のピッチ調整
TT.s({レ},{ CHK; p%=OCT+3*4 レ })
TT.s({ミ},{ CHK; p%=OCT+3*7 ミ })
TT.s({ファ},{ CHK; p%=OCT+3*10 ファ })
TT.s({ソ},{ CHK; p%=OCT+3*12 ソ })
TT.s({ラ},{ CHK; p%=OCT+3*14 ラ })
TT.s({シ},{ CHK; p%=OCT+3*15 シ })
TT; //Print(TT)
TR=TRK
} //func
Function TrackReset(Str TT, Int NN){
Int TRK=TR; TT;
TR=(TRK+1); TT;
TR=TRK
} //func
//---- 以下ストトン,MML
トラック1
// TrackResetで複数トラックの初期値を変更
TrackReset({ 音色(Hamonica) ゲート96 方向前 EP.W(101,127,!4^8)})
// UnisonHamonica({ 複音のストトン,MMLを書き込む })
UnisonHamonica({
音量99 音符8 音階6
れ12み16ーーーーーー16そ16ーーーーーー
ん24み24れ16↓しーーー24ん24らん24し16ーーーーーーーーー↑
ん↓みーーーーーーーー↑
ん12み12ら12し12↑れ12みーーーーーー
れ12みーーーーーーーー
ん24↓↓↓しーーーーーーーーー
})
トラック3 音色(Koto) 音量77 音符12 音階4 ゲート104 方向前 EP.W(88,127,!4)
ん”みーーーーーー24”しれそらしらみーーーーーーーー
ん”みーーーーーー24”しれそらし‘れ‘みーーーーーーーーん16
ん”みーーーーーー24”しれし‘れしらーん24みーーーーーーーーーーーーー24ん16
ん”みーーーーーーー24”しれ‘み‘れしそーーー48みーーーーーーー24
//↑------コピーアンドペースト------↑