2012年9月16日日曜日

ピアノの楽譜をアルトサックスの楽譜に変える

ピアノの楽譜をアルトサックスで吹こうとするとアルトサックスの「ド」がピアノでいうと「ミb」になってしまうのでピアノとあわせようとすると音が合わないことになる。 これはアルトサックスはEbをド、ピアノはCをドとして楽譜が記載されるからになる。





















上の5度圏でいうとアルトサックスはEbの調でピアノはCの調で楽譜が書かれる。 だからピアノの調で書かれた楽譜をアルトサックスで吹くには5度圏でいうと右に3つずらせばいい(らしい)。 たとえばCの調で書かれていたらAの調にすればいい(らしい)。 この調を右に3つずらす方法としては人手でやる方法もあるがソフトを使ったほうが簡単だ。 転調は無料で公開されているFinale Nodepad 2012を使うとすぐにできる。 やり方の例は以下になる。

 1)ピアノ用に楽譜を書く。ここでは調をCメジャーで書いている。









2)調合ツールのボタンを押す。







3)3つ上の調を選択してOKボタンを押す。ここではAメジャーを選択。














4)アルトサックス用の楽譜ができる。








試したらできたぐらいのことを記事にしただけなのでもし間違えていたらコメントで指摘ください。

2012年9月5日水曜日

Threadの呼ぶ順番を制御してみる

Threadの呼ぶ順番を制御するには単純にrunメソッドの最後に呼びたいスレッドを呼び出せばよいだけであった。複数のスレッドの終了を前提として起動する場合は前提となるスレッドの終了時にカウントして待ち合わせを行うスレッドの数に達したら起動すればよい。notifyメソッドは起こしたいスレッドを指定できないのでスレッド関係の処理は順序の制御が難しそうだと思われがちだが結構単純にできた。
public class ThreadTest {

 static Thread1 t1 = new Thread1();
 static Thread2 t2 = new Thread2();
 static Thread3 t3 = new Thread3();
 static Thread4 t4 = new Thread4();

 public static void main(String[] args) {

  t1.start();
  t2.start();
 }

 static class Thread1 extends Thread {

  public void run() {
   System.out.println("t1");
   t3.fire();
   t4.fire();
  }
 }

 static class Thread2 extends Thread {

  public void run() {
   System.out.println("t2");
   t3.fire();
   t4.fire();
  }
 }

 static class Thread3 extends Thread {
  int i = 0;

  public void fire() {
   if (++i >= 2) {
    start();
   }
  }

  public void run() {
   System.out.println("t3");
  }

 }

 static class Thread4 extends Thread {
  int i = 0;

  public void fire() {
   if (++i >= 2) {
    start();
   }
  }

  public void run() {
   System.out.println("t4");
  }

 }

}