トランペットは、通常で登板バルブ付きaerophone機器、ですB♭
。プレイヤーが唇を振動させて楽器内の空気を移動させると、音が鳴ります。その振動は、アンブシュアと呼ばれる特定の方法で口を設定することによって取得されます。唇がよりタイトまたはルーズなアンブシュアは、ピッチが異なります。
さらに、トランペットの各バルブは、楽器のピッチも変更します。押されると、バルブが楽器のチューブ内の経路を閉じ、空気が長い経路を流れるようにし、元の音のピッチを下げます。この課題のために、標準のB♭
トランペットを考えます。最初のバルブはピッチをフルステップ下げ、2番目はピッチをハーフステップ下げ、3番目はピッチを1段下げ、半歩。
チャレンジ
あなたの課題は、2つの入力embouchure
とが与えられたときvalves
に、演奏されるノートのピッチを決定するプログラムまたは関数を作成することです。
このチャレンジの目的のために、メモはシーケンスに従います。
B♭, B, C, C♯, D, E♭, E, F, F♯, G, G♯, A.
ルール
- I / Oは、合理的な方法で取得/指定できます。
- 標準の抜け穴が適用されます。
- 必要に応じて、
b
およびの#
代わりに使用することができます。♭
♯
- の入力は
valves
、押し下げられたバルブのリスト(1, 3
)またはブールリスト(1, 0, 1
)として取得できます。 - これはcode-golfなので、各言語で最も短いコードが優先されます。
テストケース:
Valves
これらのテストケースでは、0が押され、1が押されたことを意味するブールリストとして与えられます。
Embouchure: Valves: Output:
B♭ 0 0 0 B♭
B♭ 0 1 0 A
B♭ 1 0 1 F
C♯ 0 0 1 B♭
C♯ 1 1 1 G
E♭ 1 0 0 C♯
G 0 1 1 E♭
G♯ 1 0 0 F♯
G♯ 0 0 1 F
G 1 0 0 F
F♯ 1 0 0 E
D 1 0 1 A
A 1 1 1 E♭
E 1 1 0 C♯
E 0 0 1 C♯
免責事項:私はまだミュージシャンではないので、テストケースで行ったかもしれない屠殺について謝罪します。訂正を歓迎します。
F# 100
EないFなりますか?
C#
バルブを押さずにトランペットを演奏することはできません。特定の音符(B♭-F-B♭-D-F-A♭-B♭...
)、の倍音シリーズB♭
。それでも、実際の楽器を反映していない場合でも、課題は完全に明確に定義されています。