2020年10月13日火曜日

思慮無きコード再生機能の実装

 MuseScore3.5よりコード記号を入れると再生時に和音を再生する機能が実装されました。このブログではMuseScore3は原則扱うつもりはないですが、機能の実装の仕方がお粗末で、多くのユーザーにとっては却って手間が増えるだけの、使い勝手を悪くするような実装であったので、今回この新たな機能について書きたいと思います。

 単旋律のメロ譜や、コード記号しか書いていない譜面ではコード再生機能は有用ですが、コード記号を楽譜の補助的な記号として用いている時、例えばピアノソロ譜とかで、再生時に、楽譜に書かれている音符に加えて、コード記号の和音を鳴らしたいと思うことが果たしてあるでしょうか?曲を演奏するのに必要な音符が全て譜面に書かれている場合に、コード記号の再生が邪魔で不要なものであることは、普段楽譜を書いている人であれば想像に容易いことだと思います。デフォルトでコード記号が再生される設定はコードを補助的な記号として用いるユーザーにとっては手間が増えるだけです。このような「使い勝手を変える=従来のユーザーを切り捨てる」ようなアップデートはMuseScore3以降、度々行われるようになりました。

コード再生をオフにする方法
 MuseScoreのミキサーで、コード記号が挿入されている楽器・パートのハーモニーのチャンネルをミュートにすることで、再生時にコード記号をミュートすることが出来ます。ミキサーの画面はメニューの「表示(V)」の中から開けます。

 また個別のコード記号はインスペクタで再生・非再生を切り替えることができます。コード記号を全選択してインスペクタで、コード記号の「再生」のチェックボックスを外せば、コード記号を再生させないことが可能です。同種の記号を全選択するには、コード記号を右クリックして「選択」→「全ての類似した要素」から、全てのコード記号を選択状態にすることができます。

2020年8月9日日曜日

譜表を跨ぐ連桁を持つ音符のスペーシング手順

 今回はMuseScoreを使って、譜表を跨ぐ音符で、符幹を等間隔に揃える手順を書いていきます。今回の主な工程は下図の通りです。
 この3つの手順を組み合わせることで、あらゆる音符間隔を調節することがMuseScoreで可能となります。MuseScore2に実現不可能な音符スペーシングはありません。

①一段一小節法で入力する
 さて、MuseScoreで普通に入力すると、デフォルトの出力結果はこのような感じになります。
 これでは使い物にならないので、取り敢えず一段一小節法を使います。一段一小節法は、MuseScoreで音符間隔をどうにかするためには必須テクニックですので、連載「MuseScoreの音符間隔の仕様と有効な手法」を読んでおいてください。

 一段一小節法を使った場合のデフォルトの音符間隔はこんな感じです。
 臨時記号が付いてる音符で、音符間隔が不必要に広くなっています。MuseScoreは臨時記号や加線、音部記号、音符の旗など、音符・休符以外の水平スペーシングに関わる要素が、音符間隔に加算されます。この「加算されたスペース」は、「割振り」で調節することが可能です。一段一小節法を使う時は、全ての音符を選択して、「割振り」の値を前後共に-3.00sp程度にして、これらの「加算されたスペース」を無効にしてしまうと良いでしょう。

 全ての音符の「割振り」の値を前後共に-3.00spにするとこのようになります。
 一見これでも音符間隔が揃っていないように見えますが、符頭の間隔は上図の赤線で示したように全く均等に揃っています。音符の符尾は符頭に対して上向きにつくか下向きにつくかによって、符頭に付く位置が左右異なります。このため、符頭の間隔が均等であっても、符尾の間隔は不均等になってしまうので、パッと譜面を見た時に音符間隔が揃っていない印象を与えてしまいます。ここで、符尾を基準に間隔を揃えることで、見た目の印象が全く変わってきます。

 このまま各音符の「割振り」を調節することで、音符間隔を整えることも可能ですが、臨時記号が含まれる音符があり、「割振り」は「加算されたスペース」を調節する機能なので、そのまま「割振り」で調節するととても面倒くさいです。


②音価分割テクニックを使う
 そこで、更に音価分割テクニックを使います。音価分割テクニックでは、未使用の声部で全ての音符を等分するように休符を挿入していきます。こうすることによって、一つの音符に対し、必ず「加算されたスペース」を含まない休符が入るので、「加算されたスペース」を含まない休符の「割振り」で音符間隔を調整することで、臨時記号の「割振り」への影響無しに、「割振り」で音符間隔を調整することができます。全て分割したら、分割に使った声部の休符を全選択して、「割振り」の数値を前後共に-3.00spにしておきます。
 MuseScore2では「割振り」の数値を減らしていけば、どんなに音価を分割していっても一段に全て入れることが可能ですが、MuseScore3では「割振り」の仕様改悪で、狭められる音符間隔に限界があるので、音価分割テクニックを使うとまともに1段に小節が入らなくなります。MuseScore3で音符間隔を調整するのは非現実的なので諦めてください。開発陣を恨め
 MuseScoreの「割振り」は加算されたスペースが無い音符間隔を狭めることはできないので、音符間隔を狭めたいところは、挿入した休符の分割を無しにすることで、相対的に音符間隔を狭めます。逆にデフォルトの音符間隔より広げたいところは、多めに分割することが有効です。

 記号が重なっているところは「割振り」の数値を0に戻します。それでもスペースが不十分であれば「割振り」の数値を増やし、スペースが余分であれば数値を減らすと良いでしょう。
 この状態でも十分綺麗ですが、今回は更に音符間隔を個別調整して、符幹の間隔を揃えたいと思います。今回は、16分音符に部分は符幹の間隔を均等にするまで調整します。
③「割振り」で微調整する
 音符間隔は原則「割振り」で調節しますが、「割振り」は加算されたスペースの調整機能なので、臨時記号が含まれる音符とそうでない音符の間隔を等しくする時に、同じ数値を使っても臨時記号が含まれる音符の方が広くなってしまいます。そこで、音価分割テクニックで分割した2番目の休符の「割振り」を使います。


 分割2番目の休符をまとめて選択して、「割振り」の「前の間隔」を増やして調整していくと右の.gifのように動きます。

 音符間隔を広げるべきところの「割振り」の前の間隔をそれぞれ増やすとこのようになりました。

 このようにして、一段一小節法と音価分割テクニックを併用することで、MuseScore2はあらゆる音符間隔を比較的合理的な手順で調整することが可能です。但しMuseScore3では音価分割テクニックを使って特定の音符間隔を狭めることには全く向かなくなっているので、音符間隔を調整することは非常に苦手になっています。楽譜浄書でMuseScore3は使うべきではありません。MuseScore2を使うべきです。

余談
 ちなみにこの譜例では、高音部譜表の最初の小節に、ヘ音記号が挿入されていますが、一段一小節法を使うと途中挿入された音部記号がバグります。一段一小節法自体はMuseScoreで用意されている機能を普通に使っているだけで、1段を1小節で構成すれば同様のバグが発生します。当然、普通に楽譜を書いていても1段を1小節で構成する場面はあるので、一段一小節法は何も悪くありません(キリッ バグった音部記号は、一度ファイルを保存してMuseScoreを再起動すると多くは直りますが、最初の小節の1拍目に途中挿入された音部記号は直りません。

 更に余談ですが、「セクション区切り」を使った後に、最初の小節の1拍目に音部記号を途中挿入すると、調号がバグります。MuseScore2.1までのMuseScoreでは、1拍目に音部記号を挿入すると調号がバグっていて、2.2で修正されたので現在は普通に書けるのですが、「セクション区切り」を使うとバグ出会えるので懐かしいですね。

 いずれの場合も、音価分割テクニックを使っていれば、1拍目の2つ目の休符に対してヘ音記号を入れるならバグりませんし、1拍目から音符がある場合は、右図の感じで色々やれば対応できます。

関連記事
一段一小節法
連載「MuseScoreの音符間隔の仕様と有効な手法」
音価分割テクニック
非表示の休符を挿入するスペーシングテクニック
一段一小節法と音価分割テクニック
同拍に異なる連符同士のスペーシング

2020年6月23日火曜日

同拍に異なる連符同士のスペーシング


・音価分割テクニック
 同じ拍に八分音符と三連符がある時など、同拍に異なる音価の連符が絡む譜例の場合、MuseScoreのデフォルトのスペーシングでは、右図のように三連符の一部分が不必要に広がってしまいます。これはMuseScoreが三連符と八分音符が交わる部分を6連符に分割してスペーシングしているからです。そこで、三連符の部分に6連符の休符を入れ、同じ小節の全ての音符に対して等分するように休符を入れることで、MuseScoreが過度に分割した部分を打ち消すことができます。→「非表示の休符を挿入するスペーシングテクニック」


複雑な分割が必要な例
 さて下の譜例の場合はどうでしょうか。MuseScore2のデフォルトの出力です。十六分音符と三連符が同じ拍にあるので、一見、4×3で12等分すれば音符間隔は揃いそうです。
 その前に取り敢えず一段一小節法を適用します。下図は一段一小節法で入力し、全ての音符の前/後の間隔を-3.00spにしてあります。赤色の臨時記号は、一段一小節法では脱落するので、付け直す必要があります。→連載「MuseScoreの音符間隔の仕様と有効な手法」
 さて三連符のところの1拍を12等分したものがこちらです。
 一見悪く無さそうですが、Hashiboso流では必ず最小音価に対し等しい休符の数で分割します。この譜例では16分音符に対し3等分しているのに対し、三連符では4等分しています。更に八分音符や第45小節の1拍目の三連符では2等分になっています。このような分割はMuseScoreの音符比率を乱すためNGです。原則全ての最小音価に対し、共通の分割を行います。

・最小音価
 MuseScoreの音符比率を乱さないためにも、最小音価に対して共通の分割が必要です。従って音価分割テクニックを用いるには、まず私が使っている「最小音価」という概念を理解しておく必要があります。ここでは「最小音価」は、「その部分において最も短い音価を持つ音符または休符」を指します。

・MuseScoreのスペーシング比率
 最小音価に対して共通の分割を行うのは、MuseScoreの音符スペーシングを最大限生かすためです。MuseScoreは単譜表・単声部において、小節内にのみ注目すれば、それなりに妥当な音符間隔になっています。

 下図はDoricoで作成したものですが、一般的に音符間隔は、音価に比例したスペースを持つのではなく、固有の比率に基づいて決められます。長い音符が短い音符より長いスペースを持ちますが、四分音符が八分音符の2倍の間隔にはせずに、楽譜の密度などによって変わりますが、基本は1.4倍程度にします。そのため、各小節の幅は音符の密度によって伸縮しますが、最小音価が同じである部分は、同じ間隔に保たれます。
この図はDoricoで作成
Doricoでは段全体で最小音価が等しい部分の間隔は揃う
MuseScoreでは小節内では最小音価が等しい部分では「素の音符間隔」は揃う




 MuseScoreはDoricoのスペーシング比率とは音符間隔の定め方が異なりますが、小節内では、おおよそ似たような音符間隔になっています。この音符間隔の仕様を乱さずに最大限利用することが、Hashiboso流では必要な操作になります。
 MuseScoreの音符間隔の仕様については、「MuseScoreの音符間隔の仕様と有効な手法1」に詳しく書いてあります。

・音価を等分しても比率は変化しない説
 音価分割テクニックは、音価を等分しても音符間隔の比率は変化しないという仮定を前提に成り立っています。
一段一小節法を用いて音符を入力している。また全ての音符・休符の「割振り」前/後の間隔は-3.00spにしている。一段一小節法のため、段の途中の小節線は小節内に引かれた小節線であり、段末の小節線(二重線)はMuseScoreの機能上の小節線であるため、異なる挙動になっている。機能上の小節末尾は分割が大きい程、分割分のスペースが取られ、広くなってしまうので、小節末尾の分割は控えめにして「割振り」でスペースを調節すべきであろう。
 上図のように、最小音価に対して2等分しても3,7等分しても音符間隔の比率は変化していないことがわかります。しかしMuseScoreの機能上の小節での小節末尾の間隔は分割が大きい程、音符・休符が小節からはみ出ないように、広くなってしまうので、小節末尾の分割は他より少ない分割に抑えて、「割振り」で間隔を調整するのが良いでしょう。なお、分割を行っても小節末尾のスペースに余裕がある場合は、スペースは広がりません。
 このように最小音価に対して共通の分割をすることは、MuseScore本来のそこそこ妥当な音符間隔を乱さないために、音価分割テクニックでは遵守すべきなのです。

・妥当な分割は何か
 さて、右図のようなリズムでは、妥当な音価の分割はどんなものでしょうか。緑枠では最初16分音符が最小音価で、途中から三連符が最小音価になります。最小音価に対し共通の分割をするという原則に従うため、16分音符と三連符の最小公倍数である12分割に加え、16分音符と三連符の分割数が同じにしなければなりません。

 それらのことを踏まえた場合、16分音符2つ+八分音符に対し同拍に三連符が絡むリズムでは、左図のような分割になりました。最小音価である16分音符と三連符に対し、6分割になり、かつ全ての音符に対応する休符があります。最小音価に対し6分割がこの譜例で音価分割テクニックを適用する最適解なので、段全体の最小音価を6分割します。
 上図のようになりました。なかなか大変でインパクトのあるように見えますが、音符間隔は間隔が広い順に「八分音符>三連符>16分音符」になっていて音価の大きさと対応しています。この音符間隔は十分妥当で修正する必要はありません。
 個人的には、16分音符に対して三連符がやや広めに感じたので、段の水平スペースに若干余裕があるので、16分音符の間隔を上図より広めに取って浄書しました(下図)。
・音価分割テクニックと一段一小節法
 上図の浄書例では、MuseScoreのそこそこ妥当な音符間隔に対し、16分音符を広めに調整しました。一段一小節法では、個別の音符間隔は、「割振り」の「前/後の間隔」の数値を弄って調整します。
MuseScore2で一段一小節法を使った時の「割振り」の挙動
 しかし臨時記号や加線等の「加算されたスペース」が含まれている音符と、そうでない音符が段内に混在している場合、右図のように同じ八分音符であっても、「割振り」の数値は同じ数値を流用すると異なる音符間隔になってしまいます。
 そこで、音価分割テクニックを使うと、「加算されたスペース」を含まない拍が休符によって創出されるので、音符と音符の間の拍に位置する休符の「割振り」には、音価の等しい各音符を揃えるのに「割振り」の数値を流用することが出来ます。→一段一小節法と音価分割テクニック」

 今回の浄書例では、最小音価に対し6分割しているので、16分音符を分割した6つの休符のうち、2番目の休符の「前の間隔」を増やしています。
 今回は、音価分割テクニックを使う上で、最小音価に対し常に共通の分割を行うべきだということを強調しました。音価分割テクニックを厳密に運用すると、今回のように非常に複雑な分割になってしまいます。場合によっては、一段一小節法の個別調整のしやすさを生かして、「割振り」で音符間隔を個別に直していく方が、楽かもしれません。しかしながら、音符間隔を個別に調整するには、個人の感覚では難しいものがあるので、場合によって使い分けるのが良いでしょう。

関連記事
連載「MuseScoreの音符間隔の仕様と有効な手法1」
非表示の休符を挿入するスペーシングテクニック
一段一小節法と音価分割テクニック

2020年4月23日木曜日

一段一小節法と音価分割テクニック

 MuseScoreで一段一小節法を使う時に、音符間隔の個別調整に「割振り」を併用するのは必須ですが、「割振り」は「加算されたスペース」を増減させる機能であって、個別の音符間隔を増減させる機能ではないため、扱いづらい部分があります。
 一段一小節法についてはこちらの記事をまず見てください。

 MuseScore3の場合、「割振り」から「後の間隔」が削除されたことで、非常に複雑な挙動を示し、機能としては後退しているため、ここではMuseScore2を前提とします。

 「加算されたスペース」を与える臨時記号等を含む音符とそうでない音符では、同じだけ音符間隔を増やしたい時に、「割振り」に同じ数値を入れても、臨時記号を含む方の音符間隔が広くなってしまいます。「割振り」は音符間隔を増減させる機能ではなく、「加算されたスペース」を増減させる機能であるため、元から「加算されたスペース」を含む音符とそうではない音符では、同じ音符間隔にするために「割振り」の数値は流用できないのです。

音価分割テクニック
 「割振り」の数値を他の音符間隔に流用したい場合は、全ての音符・休符であるスペーシング単位を、休符で等分割して、「加算されたスペース」の無いスペーシング単位を各音符・休符に作ってしまう手法があります。
 加算されたスペースを与える要素の有無で、音符間隔を等しくするために「割振り」の数値が変わってしまうのであれば、加算されたスペースの無い音価単位で、「割振り」を調節すれば良いのです。
 まず、一段の全ての音符と休符を等分するように未使用の声部で休符を入れます。この時に全ての休符の割振り「前の間隔/後の間隔」は-2.00sp程度にしておきます。図の赤く表示した休符は、前の休符との間に臨時記号がないので、「前の間隔」の数値は同じ数値で音符間隔を等しくすることが出来ます。この図では「前の間隔」を3.00spにしていますが、2箇所の音符間隔が等しいことがわかります。

音符間隔の比率を調節したい時に使う
 MuseScoreで、*長い音符の間隔が狭く感じる時があると思います。図の二分音符の間隔を大きくしたい場合に、このテクニックは有用です。

*MuseScoreの音符間隔はデフォルトでは長い音符のスペースが過度に狭くなりがちな傾向があります。一般的に2倍の長さの音符は2倍の間隔ではなく、それよりも狭い1.4倍程度の間隔に浄書され、その比率をスペーシング比率と呼びます。MuseScoreでは短い音符間ではスペーシング比率が大きくなり、長い音符間ではスペーシング比率が小さくなる傾向があります。そのために、MuseScoreでは長い音符が余計に狭くスペーシングされているように見えます。


関連記事
連載「MuseScoreの音符間隔の仕様と有効な手法1」
非表示の休符を挿入するスペーシングテクニック

2020年3月1日日曜日

小節を跨ぐ連符の書き方

 MuseScoreの連符は小節を跨ぐことは通常できません。しかし、発想を変えたり既存の機能をいくつか組み合わせることで、小節を跨ぐ連符を書くことができます。

一段一小節法を使う
 最もスマートな方法は、一段一小節法を用いることです。一段一小節法とは、MuseScoreの1段を任意の小節数分の拍数に設定した単一の小節で構成し、その単一の小節を小節線で任意の小節数に分割する方法です。この方法は連載「MuseScoreの音符間隔の仕様と有効な手法で説明しています。概要だけ知っても容易には使いこなせない方法なので、連載記事を全て読んでから一段一小節法を使ってください。

 まず1段に1小節だけ入れるように「譜表の折り返し」を置きます。



 次に小節のプロパティを開き、「小節の長さ」をその段に入れたい小節数分の拍数に変えます。



 音符を入力します。




 小節線を入れたいところの拍に挿入します。小節線を挿入する拍に音符・休符がない時は、未使用の声部で非表示の休符を入れ、その休符に対して小節線を入れることで挿入することが可能です。



 表記上は複数の小節を入れても、実際には1段には1小節しか入っていないため、小節番号はズレます。従って次の段初の小節のプロパティを開き、「小節番号の増減」で小節番号を調節する必要があります。


 このようにして、小節を跨ぐ連符をMuseScoreで表記することが可能ですが、一段一小節法はMuseScoreの小節の機能を敢えて回避する手法のため、小節に依存する機能は全て正しく機能しません。小節番号を手動で調節しなければならなかったり、本来表記されるはずの臨時記号が同一小節判定のために抜けたりします。従って一段一小節法を使う場合は、必ず連載「MuseScoreの音符間隔の仕様と有効な手法を全て読んだ上で使ってください。



一段一小節法を使わない場合
 一段一小節法を使わなくても、複数の機能を組み合わせてゴリ押しすれば右図のように小節を跨ぐ連符を表記することが可能です。



 まずこのように小節を跨がない書き方で音符を入力します。




 小節を跨ぐところの連桁を繋げるために、パレットから「連桁のプロパティ」の「連桁(中間)」を音符に挿入します。

 連桁を選択した状態でインスペクタの連桁の項目にある「右旗/左旗の位置」の数値を0にします。この項目は、本来は連桁の間隔を調節するための機能です。


 不要な部分を非表示にします。各々の記号はインスペクタの「要素」の項目にある「表示」のチェックボックスをオフにすることで非表示にできます。



 連符の数字や括弧の位置を調節すると完成です。 




 上図のように、連桁の桁の本数が途中で変わる場合は、インスペクタで「右旗/左旗の位置」を0にしてしまうと、強制的に連桁の桁が1つになってしまいます。この場合は他の声部を使って、連桁の桁を補います。

 上図のように、足りない連桁は別の声部で補って、元の声部の連桁と重ねることで再現できます。今回の譜例では声部2の「右旗/左旗の位置」も0にしましたが、補うべき連桁が複数の時は0にしない方が楽でしょう。

Doricoの音符間隔機能、さてはビミョーだなこれ

一見使い勝手良さげに見える「音符のスペーシングの変更」  Doricoの音符間隔の機能は、一見他の浄書ソフトよりも先進的で使いやすいように思えます。しかし、実際に音符間隔の機能を使って、音符間隔を調整しようとすると、思ったほどうまく機能しないことに気づきます。今回はDoricoの...