huangbaiさま、度々ありがとうございます。
実環境で試してみました。
長くなって申し訳ございません。
以下■1で示したものを手動で4半音下げたものが■2です。
huangbaiさまのプログラムで4半音下げたものが■3です。
上手く行きません…
何が問題でしょうか。
■1
Include(gs.h);
//------------------------------------------------------------------------------
TrackName={"Evfer"}; //タイトル
Copyright={"作曲:三宅元貴"}; //著作権表示
MetaText = {"2005年9月20日作曲、トルコ古典音楽のウスールUsul:Evfer"} //説明・コメントなど
TimeSignature=9,8; //拍子記号の設定
ResetGM; r2 ResetGS; r2 //音源初期化命令
//GSScaleTuningを使って音律を設定する
//(GS音源が必要)
//12平均律の12の音、
//ド、ド♯、レ、レ♯、ミ、ファ、ファ♯、ソ、ソ♯、ラ、ラ♯、シ
//=
//C,Cp,D,Dp,E,F,Fp,G,Gp,A,Ap,B
//の事。
//各音に+-するセントcent値
//+64セント、-64セントまで
//(+64セントでGSScaleTuningの値が127を超える場合エラーになる?
Array R = (0,36,4,40,-37,-2,-34,2,38,6,-4,-35)
//64に対して加減算
GSScaleTuning(R(0)+64,R(1)+64,R(2)+64,R(3)+64,R(4)+64,R(5)+64,R(6)+64,R(7)+64,R(8)+64,R(9)+64,R(10)+64,R(11)+64)
Time=(!1)//ここで、1小節送る
TrackSync; //全てのトラックを同期する
System.MeasureShift = 1; //(弄らないこと)
Tempo(106); //テンポの設定
//-------------------------------------------------
トラック1
音色(Dulcimer)
ゲート99
音量110
TrackKey(0)//-4
音量曖昧さ20
ソソソソ8ソソソソソ8ソ
ソラ♭ソファ8ミファソファミ8レ♭
ミファミレ♭8ド↓シ♭↑ドミレ♭8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
トラック2
音色(Violin)
ゲート99
音量52
TrackKey(12)//12-4
音量曖昧さ0
ビブラート
音量52
ソソソソ8ソソソソシ♭16ラ♭16ソ
ソラ♭ソ連符{ファソファ}8ミファソファ連符{ミファミ}8レ♭
ミファミ連符{レ♭ミレ♭}8ド↓シ♭↑ドミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドレ♭ミ8ファソファミファ16ソ16ラ♭
ソファ連符{ミファソ}シ♭8ラ♭ソファミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16↓シ♭16ラ16↑ド16
↓シ♭↑ド連符{レ♭ドレ♭}連符{ミレ♭ミ}8ファソファ連符{ミレ♭ミ}ファ16ソ16ラ♭
ソファ連符{ミファソ}連符{シ♭↑ド↓シ♭}8ラ♭ソファ連符{ミファミ}連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16レ♭16ミ16ファ16
■2(手動で4半音下げたもの)
Include(gs.h);
//------------------------------------------------------------------------------
TrackName={"Evfer"}; //タイトル
Copyright={"作曲:三宅元貴"}; //著作権表示
MetaText = {"2005年9月20日作曲、トルコ古典音楽のウスールUsul:Evfer"} //説明・コメントなど
TimeSignature=9,8; //拍子記号の設定
ResetGM; r2 ResetGS; r2 //音源初期化命令
//GSScaleTuningを使って音律を設定する
//(GS音源が必要)
//12平均律の12の音、
//ド、ド♯、レ、レ♯、ミ、ファ、ファ♯、ソ、ソ♯、ラ、ラ♯、シ
//=
//C,Cp,D,Dp,E,F,Fp,G,Gp,A,Ap,B
//の事。
//各音に+-するセントcent値
//+64セント、-64セントまで
//(+64セントでGSScaleTuningの値が127を超える場合エラーになる?
//Array R = (0,36,4,40,-37,-2,-34,2,38,6,-4,-35)
//TrackKey(-4)のため4半音下げる
//→つまりC+0の位置をずらす
//つまり、Gp+0にする
//(C-37,Cp-2,D-34,Dp+2,E+38,F+6,Fp-4,G-35,Gp+0,A+36,Ap+4,B+40)
Array R = (-37,-2,-34,2,38,6,-4,-35,0,36,4,40)
//64に対して加減算
GSScaleTuning(R(0)+64,R(1)+64,R(2)+64,R(3)+64,R(4)+64,R(5)+64,R(6)+64,R(7)+64,R(8)+64,R(9)+64,R(10)+64,R(11)+64)
Time=(!1)//ここで、1小節送る
TrackSync; //全てのトラックを同期する
System.MeasureShift = 1; //(弄らないこと)
Tempo(106); //テンポの設定
//-------------------------------------------------
トラック1
音色(Dulcimer)
ゲート99
音量110
TrackKey(-4)
音量曖昧さ20
ソソソソ8ソソソソソ8ソ
ソラ♭ソファ8ミファソファミ8レ♭
ミファミレ♭8ド↓シ♭↑ドミレ♭8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
トラック2
音色(Violin)
ゲート99
音量52
TrackKey(12-4)
音量曖昧さ0
ビブラート
音量52
ソソソソ8ソソソソシ♭16ラ♭16ソ
ソラ♭ソ連符{ファソファ}8ミファソファ連符{ミファミ}8レ♭
ミファミ連符{レ♭ミレ♭}8ド↓シ♭↑ドミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドレ♭ミ8ファソファミファ16ソ16ラ♭
ソファ連符{ミファソ}シ♭8ラ♭ソファミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16↓シ♭16ラ16↑ド16
↓シ♭↑ド連符{レ♭ドレ♭}連符{ミレ♭ミ}8ファソファ連符{ミレ♭ミ}ファ16ソ16ラ♭
ソファ連符{ミファソ}連符{シ♭↑ド↓シ♭}8ラ♭ソファ連符{ミファミ}連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16レ♭16ミ16ファ16
■3
Include(gs.h);
//------------------------------------------------------------------------------
TrackName={"Evfer"}; //タイトル
Copyright={"作曲:三宅元貴"}; //著作権表示
MetaText = {"2005年9月20日作曲、トルコ古典音楽のウスールUsul:Evfer"} //説明・コメントなど
TimeSignature=9,8; //拍子記号の設定
ResetGM; r2 ResetGS; r2 //音源初期化命令
//GSScaleTuningを使って音律を設定する
//(GS音源が必要)
//12平均律の12の音、
//ド、ド♯、レ、レ♯、ミ、ファ、ファ♯、ソ、ソ♯、ラ、ラ♯、シ
//=
//C,Cp,D,Dp,E,F,Fp,G,Gp,A,Ap,B
//の事。
//各音に+-するセントcent値
//+64セント、-64セントまで
//(+64セントでGSScaleTuningの値が127を超える場合エラーになる?
//Array R = (0,36,4,40,-37,-2,-34,2,38,6,-4,-35)
// sample ------
//Copyright (c) 2021 huangbai
//Released under the MIT license
//
https://opensource.org/licenses/mit-license.php
//Array Arr= (0,1,2,3, 4,5,6,7, 8,9,10,11) // 変則チューニング
Array Arr = (0,36,4,40,-37,-2,-34,2,38,6,-4,-35)
Array Brr= ()
Int k= -4 // ここでキー選択//-4
Int j= 0
k= -k
If(k<0){
k= 12+ k%12
}
While(j<12){
Brr= (Brr,64+ Arr((k+j)%12))
j++;
} //
Print(Brr)
//Include(gs.h);
//ResetGS;r4
//64に対して加減算
GSScaleTuning( Brr(0),Brr(1),Brr(2),Brr(3),Brr(4),Brr(5),Brr(6),Brr(7),Brr(8),Brr(9),Brr(10),Brr(11));
//------
Time=(!1)//ここで、1小節送る
TrackSync; //全てのトラックを同期する
System.MeasureShift = 1; //(弄らないこと)
Tempo(106); //テンポの設定
//-------------------------------------------------
トラック1
音色(Dulcimer)
ゲート99
音量110
TrackKey(0)//-4
音量曖昧さ20
ソソソソ8ソソソソソ8ソ
ソラ♭ソファ8ミファソファミ8レ♭
ミファミレ♭8ド↓シ♭↑ドミレ♭8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
↓シ♭↑ドレ♭ミ8ファソファミファ8ラ♭
ソファミシ♭8ラ♭ソファミレ♭8ド
↓シ♭↑ドミレ♭8ドドドドド8ド
トラック2
音色(Violin)
ゲート99
音量52
TrackKey(12)//12-4
音量曖昧さ0
ビブラート
音量52
ソソソソ8ソソソソシ♭16ラ♭16ソ
ソラ♭ソ連符{ファソファ}8ミファソファ連符{ミファミ}8レ♭
ミファミ連符{レ♭ミレ♭}8ド↓シ♭↑ドミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドレ♭ミ8ファソファミファ16ソ16ラ♭
ソファ連符{ミファソ}シ♭8ラ♭ソファミ連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16↓シ♭16ラ16↑ド16
↓シ♭↑ド連符{レ♭ドレ♭}連符{ミレ♭ミ}8ファソファ連符{ミレ♭ミ}ファ16ソ16ラ♭
ソファ連符{ミファソ}連符{シ♭↑ド↓シ♭}8ラ♭ソファ連符{ミファミ}連符{レ♭ミレ♭}8ド
↓シ♭↑ドミ連符{レ♭ミレ♭}8ドドドドド8ド16レ♭16ミ16ファ16