「VexFlow 音部記号」の版間の差分
(→概要) |
(→概要) |
||
35行目: | 35行目: | ||
})(); | })(); | ||
</yjavascript> | </yjavascript> | ||
<syntaxhighlight lang="JavaScript"> | |||
<div id="yonet202302_Output01"></div> | |||
<script> | |||
(function(){ | |||
const { | |||
Factory, | |||
Stave, | |||
} = Vex.Flow; | |||
const f = new Factory({ renderer: { elementId: 'yonet202302_Output01', width: 1500, height: 195 } }); | |||
const ctx = f.getContext(); | |||
const stave1 = new Stave(10, 50, 200).setContext(ctx).draw(); | |||
stave1.addClef("treble").setContext(ctx).draw(); | |||
const stave2 = new Stave(230, 50, 200).setContext(ctx).draw(); | |||
stave2.addClef("bass").setContext(ctx).draw(); | |||
const stave3 = new Stave(450, 50, 200).setContext(ctx).draw(); | |||
stave3.addClef("alto").setContext(ctx).draw(); | |||
})(); | |||
</script> | |||
</syntaxhighlight> | |||
2023年2月3日 (金) 22:04時点における版
VexFlow 使い方に戻る。
概要
音部記号はト音記号、ヘ音記号、ハ音記号があります。ト音記号は丸と縦棒の交差するところが、ト音です。イ=Do、ロ=Re、ハ=Mi、ニ=Fa、ホ=So、ヘ=Ra、ト=Si。つまり 「シ」 だね。へ音記号は、:の間に挟まった線の上ががヘ音。つまり「ラ」です。線一つ分低い音が主体になります。ハ音記号はチェロ、ビオラ、コントラバスとかでよく使われる記号で、上下対象の真ん中にあたる部分がハ音。つまり、「ミ」です。
ト音記号は通常、下から二本目が交差するポイントに配置されます。へ音記号は下から四本目が:の上下の点で挟むように配置します。くるっと丸めてるところの上とも言えます。ハ音、下から三本目が中央になるように配置します。しかし、ハ音は特に上下をずらして使うことも多いです。アルトとかテナーとかソプラノとかねいろいろあります。ト音もヘ音もずらしていいです。滅多にみかけませんけど。
なんで、こんなことになってるのかは知りません。長い曲を作ってるクラシックの大御所なんかは、臨時の五線譜を上や下に足すのが嫌でうまれた手法なのかなとは思います。演奏する側は楽器を持ちかえることがあるとしたら、やりにくいかもしれません。ピアノの低いところはヘ音記号。そのほかは大体ト音記号が使われるので、ヘ音記号はちょっと特殊で、ハ音記号はかなり特殊な感じで認識されていると思います。これをでは、それぞれを描いてみましょう。
<div id="yonet202302_Output01"></div>
<script>
(function(){
const {
Factory,
Stave,
} = Vex.Flow;
const f = new Factory({ renderer: { elementId: 'yonet202302_Output01', width: 1500, height: 195 } });
const ctx = f.getContext();
const stave1 = new Stave(10, 50, 200).setContext(ctx).draw();
stave1.addClef("treble").setContext(ctx).draw();
const stave2 = new Stave(230, 50, 200).setContext(ctx).draw();
stave2.addClef("bass").setContext(ctx).draw();
const stave3 = new Stave(450, 50, 200).setContext(ctx).draw();
stave3.addClef("alto").setContext(ctx).draw();
})();
</script>
VexFlow 使い方に戻る。