個人の目次へ - 全体の目次へ
前の章へ - 次の章へ

2章 システムの構造

 このシステム全体の流れは、

  1. 調を選んでください。
    作成しようとしている楽譜の調を選びます。
  2. 作曲者名、曲名を入力します。
    この2つの情報を入力しないと次の画面に進むことができません。著作権上の問題もあるので必ず入力してください。
  3. 楽譜を作成します。
    これについては、共同研究者の細川が説明します。
  4. 作成した楽譜を移調してください。
    変換したい楽器の調に合うボタンを選びます。

五線上に表示される音符、休符、臨時記号のシャープ、フラット、ナチュラルについてですが、ペイントで画像作成をし、イメージリストに呼び込みました。

ナチュラルについては、シャープ、フラットと同じく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(ド)につく)に移調されます。