/**
*【名称】TransGate
*【説明】音をオン/オフ(あるいは音量を変化させる)効果を持つ。
* 「ステップゲート」や単に「ゲートエフェクト」などと呼ばれる場合もある。
*【引数】[0] TIME SHIFT(0:NO/1:YES) 指定後に時間をシフトするかどうかの指定
* [1] LENGTH 1ステップの時間の長さ(STEP値)
* [2] COUNT ステップ数
* [3] Expression 音量
* [4] TEXT ステップのオンオフを示す文字列 ■=オン/□=オフ
*/
Function TransGateA1(Array AaData) {
Int LnTempTime = Time;
Int LnShift = AaData(0);
Int LnStep = AaData(1);
Int LnCnt = AaData(2);
Int LnEp = AaData(3);
Str LsItem = {};
EP(LnEp);
For (Int I = 0; I < LnCnt; I++) {
LsItem = MID(AaData(4), I + 1, 1);
If (LsItem == {■}) {
EP(LnEp);
}
If (LsItem == {□}) {
EP(0);
}
Time(Time + LnStep);
}
EP(LnEp);
If (LnShift == 0) {
Time(LnTempTime);
}
}
/**
*【名称】TransGate
*【説明】音をオン/オフ(あるいは音量を変化させる)効果を持つ。
* 「ステップゲート」や単に「ゲートエフェクト」などと呼ばれる場合もある。
*【引数】[0] TIME SHIFT(0:NO/1:YES) 指定後に時間をシフトするかどうかの指定
* [1] LENGTH 1ステップの時間の長さ(STEP値)
* [2] COUNT ステップ数
* [3] Expression 音量
* [4] TEXT ステップのオンオフを示す文字列 ■=オン/□=オフ
* [5...] Expression 音量(ステップ数分)
* [6...] PanPod パン(ステップ数分)
*/
Function TransGateA2(Array AaData) {
Int LnTempTime = Time;
Int LnShift = AaData(0);
Int LnStep = AaData(1);
Int LnCnt = AaData(2);
Int LnEp = AaData(3);
Str LsItem = {};
EP(LnEp);
For (Int I = 0; I < LnCnt; I++) {
LsItem = MID(AaData(4), I + 1, 1);
If (LsItem == {■}) {
EP(AaData(5 + I));
P(AaData(5 + LnCnt + I));
}
If (LsItem == {□}) {
EP(0);
}
Time(Time + LnStep);
}
EP(LnEp);
If (LnShift == 0) {
Time(LnTempTime);
}
}
Tempo(156)
Track(01) Channel(01) @(87)
EP(110) q100 V(110) v110
a1
g1
f1
e1
l32 arara^^^rarara^^^rarara^^^rarara^^^r
l32 grgrg^^^rgrgrg^^^rgrgrg^^^rgrgrg^^^r
l32 frfrf^^^rfrfrf^^^rfrfrf^^^rfrfrf^^^r
l32 erere^^^rerere^^^rerere^^^rerere^^^r
[
TransGateA1(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□});
a1
TransGateA1(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□});
g1
TransGateA1(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□});
f1
TransGateA1(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□});
e1
]
[
TransGateA2(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□}, 110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0, 0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110);
a1
TransGateA2(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□}, 110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0, 0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110);
g1
TransGateA2(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□}, 110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0, 0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110);
f1
TransGateA2(0, !32, 32, 110, {■□■□■■■□■□■□■■■□■□■□■■■□■□■□■■■□}, 110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0,110,0,110,0,110,60,50,0, 0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110,0,0,110,110);
e1
]
Track(10) Channel(10);//リズムチャンネルに
//リズムマクロの定義
$b{n36,}//bにn36,を割り当てる
$s{n38,}//sにn38,を割り当てる
Rhythm{ //リズムモード
[12 l4 b s b s8s8 | b s b s16s16s8 ]
}