\override Voice.Accidental.color = #red
ラテン語版聖書
in principio creavit Deus caelum et terram
in prīncipiō creāvit Deus caelum et terram.
単語
- in
- 前置詞 対奪 「~の中に対/~の中で奪」
- principio
- prīncipiō←prīncipium 中性名詞 単数 奪与 「最初」
- creavit
- creāvit<-creō 直接法 能動 完了 三人称単数「作った」<-「作る」
- Deus
- 男性名詞 単数 主呼 「神」
- caelum
- 中性名詞 単数 主呼対 「空」
- et
- 接続詞 andと同じ
- terram
- ←terra 女性名詞 単数 対 「大地」
解釈
<in前 prīncipiō名>
- 前置詞は直後に名詞句を取り,前置詞句を作る
- 前置詞句は動詞を含まない
よってin prīncipiōで前置詞句は終わる.意味は「初めに」
creāvit以降は
creāvit動 Deus名 [caelum名 et接 terram名]
- etがつなぐ語はcaelumとterramだと考え,両者は対格と考える
- creāvit動 Deus主だとわかる
lilypondの\overrideコマンドでプロパティを変更する
出力を調整する方法
lilypondでは,出力を調整するために「\set ○○」や「\override ○○」を使い,
内部のパラメータを変更する.
(出力の調整の例:音部記号を消す,符頭の色を変える,等)
「○○」の構造
出力を調整する命令の構文(角カッコの意味:その角カッコの中身を省略できる場合がある)
- \set context.property = #value
- \override [context.]GrobName.property = #value
- \tweak [layout-object.]grob-property value
上記はあくまで構文なので,実際の命令ではオレンジ色の文字の部分を,実際の「プロパティの名前」に書き換えねばならない.
「○○」の決め方
では,何を変更するために,なんという「プロパティの名前」に書き換えるかは,
内部リファレンスを使って調べることになる.
以下では,どのページを見て,そのページのどこを見れば
- \override [context.]GrobName.property = #value
における
- context
- GrobName
- property
を決定できるかを以下で示す.
ここでは,テキスト スクリプト(音符の上下につく文字列)のフォントを変更する場合の手順を例示する.
(全ての場合に適用可能な手順であるかはわからない)
手順はおよそ次のようになる.
- 「記譜法リファレンス」で変更したいものを説明しているページを開く.
- 「記譜法リファレンス」から「内部リファレンス」(中心ページ)を開く(GrobNameが決まる)
- 「中心ページ」から「下位ページ」を開き,その中からpropertyに相当する部分を見つける.
- 「中心ページ」から「上位ページ」を開き,その中からcontextに相当する部分を見つける.
見るべきページ
- 「LilyPond — 記譜法リファレンス」を参照する.
- リンクより,内部リファレンス「TextScript」を参照する.(中心ページ)
- ページ下部に「This object supports the following interface(s): font-interface, grob-interface, instrument-specific-markup-interface, item-interface, self-alignment-interface, side-position-interface, text-interface and text-script-interface.」がある.
- ページ上部に「TextScript objects are created by: Text_engraver.」がある.
- 今回は,フォントを変更したいので,font-interfaceが関連しそうなので,ここにアクセスすべきだと判断する.
- 中心ページからのリンクより,内部リファレンス「font-interface」を参照する.(下位ページ)
- 「User settable properties:」以下の記述で,「font-name (string)」があり,これがフォント名を指定するための変数だと判断する.
- propertyはfont-nameとなる.
- 「User settable properties:」以下の記述で,「font-name (string)」があり,これがフォント名を指定するための変数だと判断する.
- 中心ページからのリンクより,内部リファレンス「Text_engraver」を参照する.(上位ページ)
- ページ下部に「Text_engraver is part of the following context(s): CueVoice, DrumVoice, Dynamics, GregorianTranscriptionVoice, KievanVoice, MensuralVoice, PetrucciVoice, TabVoice, VaticanaVoice and Voice.」
以上より,
- \override [context.]GrobName.property = #value
は
- \override Voice.TextScript.font-name = #value
となる.
ここで,valueは,
下位ページに「font-name (string)」とあったので,文字列形式であり,フォント名をダブルクォーテーションで囲んだものを書けばよいとわかる.
入力すべきフォント名の調べかたは,lilypond 2.18.0でテキスト スクリプトのフォント変更 - 雑感・音楽等の最後の方に示した.
lilypond 2.18.0でテキスト スクリプトのフォント変更
変更方法
下記黄色太字でフォント変更できた.
\version "2.18.0"
\language "deutsch"
sopI = \relative c' {
\clef soprano
\override Voice.TextScript.font-name=#"Kozuka Mincho Pr6N"
r2 c'^"漢字かんじabc"
}
bas = \relative c {
\clef bass
c1^"漢字かんじabc"
}
\book{
\score {
\new PianoStaff<<
\new Staff \sopI
\new Staff \bas
>>
}
}
使用可能なフォントファミリーを調べる
フォント変更
- \override Voice.TextScript.font-name=#"ここにフォント
ファミリー名を入力"
使用可能なフォントファミリーを調べるコマンド(cmd.exeで実行した)
- lilypond -dshow-available-fonts
- コンソール画面で文字化けしたので,上記コマンドで出力される文字列をファイルに保存する.
- lilypond -dshow-available-fonts 2> lily.txt
下記は,lily.txtの一部.
行頭に"family"とある行を見て(family Kozuka Mincho Pr6N)"family"と半角スペース1文字を無視して,残りの文字列(Kozuka Mincho Pr6N)を- 行頭に"family"を含まない行から,使用したいフォント名を見つける.
- 同じ行にあり,コンマで区切られた名前は同じフォントを指している?
- 「Kozuka Mincho Pr6N」,「小塚明朝 Pr6N」,「Kozuka Mincho Pr6N R」の場合はいずれも成功した.
- 「小塚明朝 Pr6N R:style=R」とした場合はフォント変更に失敗した.
- 同じ行にあり,コンマで区切られた名前は同じフォントを指している?
- 「ここにフォント
ファミリー名を入力」に入力する(\override Voice.TextScript.font-name=#"Kozuka Mincho Pr6N")
family Kozuka Mincho Pr6N Kozuka Mincho Pr6N,小塚明朝 Pr6N,Kozuka Mincho Pr6N R,小塚明朝 Pr6N R:style=R,Regular family Informal Roman Informal Roman:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta family Palace Script MT Palace Script MT:style=Regular family Copperplate Gothic Light Copperplate Gothic Light:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta family Bradley Hand ITC Bradley Hand ITC:style=Normal,obyčejné,Standard,Κανονικά,Regular,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta family Yu Mincho Yu Mincho,游明朝:style=Regular
メモ
"Prolongation"―シェンカー理論の「延長」?
ポピュラー音楽の常套句
「お決まりの」にあふれた/の組み合わせでできたポピュラー音楽
- 25
- 4536
- 456
- etc.
「お決まりの」骨格?
常套句をいかに飾るか・美しくするか
www.nicovideo.jp
動画0:15のコード進行
- IV7/VI IV7/VI VIb I/V (IV#m7-5)
- VIb I/V V V
- VIb I/Vにする効果
- 前二つのが同じコードなのと対比して進行感を出す
- 拍点を稼ぐ―延長
問題の解き方・考え方―Haskellプログラミングと力学の問題
Haskellプログラムを書いていて感じたことがある.
それは,
- Haskellでプログラムを書くこと
- 物理の文章題を解くこと
が似ていることだ.
両者の考え方の共通点として感じたのは
- 最も大事なことが,何の値を求めたいのか明確にすること
- 問題の条件を「数式」や「ソースコード」として表現する方法が要求される
- 次元解析のような考え方が有効
ということだ.
1. 求めたい値を明確にすること
何よりも大事だと思う.
プログラムの文法を知らなくても,数式変形の方法を知らなくても,
これができなくては,問題を解けない.
物理の問題なら問題文を読み,これを念頭に置きながら,
立式,式変形(「求めたい値=○○」になるように式変形を進める)すればよい.
2. 問題条件を「数式」・「ソースコード」として表現する方法
物理の問題で言えば,自分が覚えている数々の公式の中から,
問題を解くのに有効な公式を引っ張り出すこと.
これらは教科書や授業などで扱われる部分だと思う.
これらは理解が重要だと思う.つまり,丸暗記のみで対応できない点.
数式もソースコードも言葉・言語だ.なまけなければ理解できる……はず.
※「丸暗記のみする」ことと「しっかり理解するため,多くのパターンを結果的に暗記してしまうほど勉強する」ことは違う.
3. 次元解析の考え方
これは,公式の作り方に近いもの.
- まず,求めたい値にどんなパラメータが影響しているか,を考える.
- e.g. 加速度aには,力Fと物体の質量mが関係してる
- それから,そのパラメータが求めたい値にどう影響するのかを考える.
- e.g. 加速度aは,力Fに比例し,質量mに反比例する
手元にある値・データ・パラメータをどう変形・変換して,求めたい値にするか,を考える.
「関数プログラミングとはパイププログラミングのようなプログラミングのことです。」(引用元:http://www.mew.org/~kazu/material/2015-fp.pdf p.108)
12音と群論
『ガロア理論の頂を踏む』を読んで,思い付きでやってみた.
12音:C, Cis, D, ...をそれぞれ0, 1, 2, ...と対応させる.
(ここではC=0としているが,Cis=0やD=0としても変わらない.つまり,移調してよい.)
加法に関する群
C=0から半音ずつ,12回上ると,Cに戻る.(:位数12の巡回群)
これは12の剰余類で,加法に関して群をなす.
乗法に関する群
はそのままでは積に関して群をなさない.
そこで既約剰余類群を考える.
は,
C=0に対して,{半音上,完全四度上≡完全五度下,完全五度上,長七度上≡半音下}となる.
これは,エドモン=コステールの「親和性」に出てくる音度に含まれる(「親和性」ではこれに加え,完全一度と完全八度がある).