该喇叭是有阀管乐器仪器,一般在投B♭
。当演奏者振动嘴唇以置换乐器内部的空气时,将发出声音。这种振动是通过以一种特定的方式张口而获得的,这种方式被称为“囊袋”。嘴唇更紧或更松的不同囊袋会产生不同的音高。
此外,小号中的每个气门也会改变乐器的音高。按下时,阀门会关闭乐器管内的路径,使空气流经更长的路径,从而降低原始声音的音调。为了应对这一挑战,我们将考虑标准B♭
喇叭,其中第一个阀门将螺距降低整步,第二个阀门将螺距降低半步,第三个阀门将螺距降低一个和一个。半步。
挑战
您面临的挑战是创建一个程序或函数,给定两个输入embouchure
和valves
,确定要弹奏的音符的音高。
出于此挑战的目的,注释将遵循以下顺序:
B♭, B, C, C♯, D, E♭, E, F, F♯, G, G♯, A.
规则
- 可以通过任何合理的方法进行输入/输出。
- 标准漏洞。
- 您可以使用
b
和#
代替♭
和♯
,如果你想。 - 的输入
valves
可以作为低压阀列表(1, 3
)或布尔值列表(1, 0, 1
)的形式。 - 这是代码高尔夫球,因此每种语言中最短的代码将获胜。
测试用例:
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吗?
C#
不按下任何气门就不能在小号上弹奏。只是特定的注释(B♭-F-B♭-D-F-A♭-B♭...
),是的泛音系列B♭
。尽管如此,即使它不能反映真实的工具,也可以很好地定义挑战。