このシステム全体の流れは、
五線上に表示される音符、休符、臨時記号のシャープ、フラット、ナチュラルについてですが、ペイントで画像作成をし、イメージリストに呼び込みました。
ナチュラルについては、シャープ、フラットと同じくButtonで作成しようと思ったのですが、記号の呼び込みの関係上、BitButtonで作成しました。
音符の上げ下げは、Buttonで調節します。また、上下ともに五線を越した音符については、副線を出すようにしました。
4の移調についてですが、まず、3で作成した楽譜から変換したい楽器の調を選びます。例えば、ピアノの楽譜をホルンに吹いてもらう場合、ピアノはinCの楽器で、ホルンはinFの楽器なので、inC→inFボタンを押すと、ピアノ用の楽譜からホルン用の楽譜に変換されます。
上の例のプログラムです。
保存しておいた音符の値をsx、sy、sonpに入れ、変換させます。
for a:=1 to 50 do begin
if sy[a]<>0 then begin
gosen2.Canvas.CopyRect(gosen2.canvas.cliprect,
gosen.canvas,gosen2.canvas.cliprect);
imagelist1.draw(gosen.canvas,sx[a],sy[a]+16,sonp[a]);
end;
変換前の楽譜のシャープ、フラットを消します。
form2.sharpF.Visible:=False;
form2.sharpF2.Visible:=False;
form2.sharpF3.Visible:=False;
form2.sharpF4.Visible:=False;
form2.sharpC.Visible:=False;
form2.sharpC2.Visible:=False;
form2.sharpC3.Visible:=False;
form2.sharpC4.Visible:=False;
form2.sharpG.Visible:=False;
form2.sharpG2.Visible:=False;
form2.sharpG3.Visible:=False;
form2.sharpG4.Visible:=False;
form2.sharpD.Visible:=False;
form2.sharpD2.Visible:=False;
form2.sharpD3.Visible:=False;
form2.sharpD4.Visible:=False;
form2.sharpA.Visible:=False;
form2.sharpA2.Visible:=False;
form2.sharpA3.Visible:=False;
form2.sharpA4.Visible:=False;
form2.flatB.Visible:=False;
form2.flatB2.Visible:=False;
form2.flatB3.Visible:=False;
form2.flatB4.Visible:=False;
form2.flatE.Visible:=False;
form2.flatE2.Visible:=False;
form2.flatE3.Visible:=False;
form2.flatE4.Visible:=False;
form2.flatA.Visible:=False;
form2.flatA2.Visible:=False;
form2.flatA3.Visible:=False;
form2.flatA4.Visible:=False;
form2.flatD.Visible:=False;
form2.flatD2.Visible:=False;
form2.flatD3.Visible:=False;
form2.flatD4.Visible:=False;
form2.flatG.Visible:=False;
form2.flatG2.Visible:=False;
form2.flatG3.Visible:=False;
form2.flatG4.Visible:=False;
form2.flatC.Visible:=False;
form2.flatC2.Visible:=False;
form2.flatC3.Visible:=False;
form2.flatC4.Visible:=False;
end;
以下のプログラムでは、ピアノがinH(シャープが5個)の調の楽譜で、この楽譜をホルン用に変換すると、inF♯(フラットが6個)にかわります。
form2.flatB.Visible:=true;
form2.flatB2.visible:=true;
form2.flatB3.visible:=true;
form2.flatB4.visible:=true;
form2.flatE.Visible:=true;
form2.flatE2.Visible:=true;
form2.flatE3.visible:=true;
form2.flatE4.visible:=true;
form2.flatA.visible:=true;
form2.flatA2.visible:=true;
form2.flatA3.visible:=true;
form2.flatA4.visible:=true;
form2.flatD.visible:=true;
form2.flatD2.visible:=true;
form2.flatD3.visible:=true;
form2.flatD4.visible:=true;
form2.flatG.visible:=true;
form2.flatG2.visible:=true;
form2.flatG3.visible:=true;
form2.flatG4.visible:=true;
form2.flatC.visible:=true;
form2.flatC2.visible:=true;
form2.flatC3.visible:=true;
form2.flatC4.visible:=true;
end;
end;
以上のプログラムにより、ピアノ(inC楽器)で楽譜がinHの調(シャープがF(ファ)、C(ド)、G(ソ)、D(レ)、A(ラ)につく)から、ホルン(inF楽器)で楽譜がinF♭の調(フラットがB(シ)、E(ミ)、A(ラ)、D(レ)、G(ソ)、C(ド)につく)に移調されます。