質問の最初の部分への回答: ヘ長調のキーでは、Bb は Bb のように演奏されます。ヘ長調で演奏されるときの B 自体と同じです。これをテストするプログラムは次のとおりです。
StaccatoParser parser = new StaccatoParser();
DiagnosticParserListener dpl = new DiagnosticParserListener();
parser.addParserListener(dpl);
Pattern pattern = new Pattern("KEY:Cmaj B Bn Bb KEY:FMaj B Bn Bb");
parser.parse(pattern);
そしてその出力 (MIDI ノート 70 は Bb で、MIDI ノート 71 は B であることに注意してください):
Before parsing starts
Key signature parsed: key = 0 scale = 1
Note parsed: value = 71 duration = 0.25 onVelocity = 64 offVelocity = 64
Note parsed: value = 71 duration = 0.25 onVelocity = 64 offVelocity = 64
Note parsed: value = 70 duration = 0.25 onVelocity = 64 offVelocity = 64
Key signature parsed: key = 5 scale = 1
Note parsed: value = 70 duration = 0.25 onVelocity = 64 offVelocity = 64
Note parsed: value = 71 duration = 0.25 onVelocity = 64 offVelocity = 64
Note parsed: value = 70 duration = 0.25 onVelocity = 64 offVelocity = 64
After parsing finished
あなたの質問の 2 番目の部分への回答: 今のところ適切な回答があるかどうかはわかりません。しかし、あなたは私にクラスのtranspose()
メソッドを書くように促しました. Pattern
ありがとうございました!