ブログは死なず、ただ放置されるのみ。

終わっちゃいましたね。

Ruby スクリプトでトランペットの運指を覚える

神戸の山奥に住んでいる、と書いてますが、どのぐらい山の中かというと、写真のような長い階段を汗だくでのぼりおりしないとコンビニにいけない程度です。

それはさておき、知ってる人は知ってることですが、ふつう、トランペットにおけるドの音はピアノのシのフラットです。ピアノのシのフラットを Bb と書いて「ベー」と読みます。ふつう、と書いたのはピアノのド(C)をドにしてるトランペットもあるからで、よくある Bb がドのトランペットが「Bb管」(べーかん)、Cがドのものが「C管」(しーかん、ではなく、つぇーかん、と読む)です。当然僕が持ってるものは Bb管です。
このように楽器というのはドの位置がいろいろあります。アルトサックスは Eb (えす)、ホルンはたしか F (これもそのまま)です。
そういうわけで、トランペットのような Bb管の楽器でドレミファソラシドと音階を吹くと、それはピアノにおけるシbドレミファソラシb になるというわけです。

で、自分の得意な音階(キー)ばかりでうまくいけばなんの問題もないんですが、当然曲を演るときはその曲のキーに合わせねばならないわけで、これからはラッパではむずかしいキーも練習しようと、運指表を作ろうかとおもったのだけど、ちょっと考えたら Ruby でちょっと書いたら全キーの運指が出せると思ってちょっと書いてみましたので公開しますです。動作は ASR1.8.4.5で確認しています。

#scale.rb

notes  = ["C"  ,"Db" ,"D"  ,"Eb" ,"E"  ,"F"  ,"Gb" ,"G"  ,"Ab" ,"A"  ,"Bb" ,"B"  ]
finger = ["@-@","-@@","@@-","@--","-@-","---","-@@","@@-","@--","-@-","---","@@@"]
scale  = [0,2,4,5,7,9,11,12]

key     = ARGV[0]
key_val = -1
for i in 0..12
  if notes[i] == key
    key_val = i
    break
  end
end

exit if key_val == -1

ii = key_val
for i in 0...8
  ii = key_val + scale[i]
  ii = ii - 12 if 12 <= ii
  printf("%-2s: %s\n", notes[ii], finger[ii]);
end

というわけで、さっそく Bb の運指を確認しましょう。手前から、人差し指、中指、薬指で、"-"はピストンを押さえない、"@"は押さえることを示しています。

d:\>scale.rb Bb
Bb: ---
C : @-@
D : @@-
Eb: @--
F : ---
G : @@-
A : -@-
Bb: ---

Bbはドになるので、どこも押さえません。Cがレになりますが、人差し指と薬指は押さえて、中指は押さえません。
「Bb も F もどこも押さえないのかよ。どうやって違う音になるんだよ」というするどい方。すいませんがうまく説明できないので今回は略。

ちなみに、Bb という基本的なスケールから半音ずれるAとBはかなりしんどくなることを下の表から読み取っていただけますでしょうか。薬指の使用率が高くなるのがポイントです。ピアノでいうと黒鍵が混じってきたみたいな感じでしょうか。

d:\>scale.rb A
A : -@-
B : @@@
Db: -@@
D : @@-
E : -@-
Gb: -@@
Ab: @--
A : -@-

d:\>scale.rb B
B : @@@
Db: -@@
Eb: @--
E : -@-
Gb: -@@
Ab: @--
Bb: ---
B : @@@

ちなみにロックなやつらと一緒にやろうと思ったら E のスケールは必須ですが、これも結構大変。

d:\>scale.rb E
E : -@-
Gb: -@@
Ab: @--
A : -@-
B : @@@
Db: -@@
Eb: @--
E : -@-

実際にはBbより上は薬指不要になるので(なぜかは聞くな!)

E : -@-
Gb: -@@
Ab: @--
A : -@-
B : @@-
Db: -@-
Eb: @--
E : -@-

になります。

というわけで、次回からがんばって難しいキーの練習に励みたいと思います。

ところでほえくん誕生日おめでとう。