Hatena::ブログ(Diary)

gymnoの自由談

a b link friendfeed twilog iceberg earlymusic

2013-11-09

lilypondサンプル (3) 応用的な記述 21:39 lilypondサンプル (3) 応用的な記述を含むブックマーク

lilypondサンプル (1) ページ設定 - gymnoの自由談

lilypondサンプル (2) 基本の記述 - gymnoの自由談

休符

LilyPond 記譜法リファレンス: 1.2.2 休符を記述する

http://lilypond.org/doc/v2.16/Documentation/notation/writing-rests


  a4 r cis2 | e4.  fis8 r8 gis r a| a4 r2. | R1 |
 d4  cis8 b a4 a8 b |R1 * 3 |cis4 r2. |
  \time 3/4  a2 fis4 | r2. | R1 * 3 | R2. * 3     |               

f:id:gymno:20131011001731p:image

最後の2組の休符に注意 全休符3つは4分音符12個なので3/4拍子だと4小節になる 大文字Rは小節単位の休符(full bar rest)だけど 小文字rの休符同様きちんと長さを測定される

アーティキュレーションと装飾、スタッカート

LilyPond 記譜法リファレンス: 1.3.1 音符に付けられる発想記号

http://lilypond.org/doc/v2.16/Documentation/notation/expressive-marks-attached-to-notes

  a4\marcato b\tenuto cis2\staccatissimo | e4.--  fis8-. gis4-|
 a->| a-^ g-_  f\mordent e\turn |
 d\fermata  cis8 b a4 a8 b |cis4         

f:id:gymno:20131011002652p:image

正式にmarcatoなどの名前を書くだけでなく簡易記法がある

小節線、練習番号(リハーサル記号)

LilyPond 記譜法リファレンス: 1.2.5 小節

http://www.lilypond.org/doc/v2.16/Documentation/notation/bars

そのほか小節番号などの説明もある なお小節ごとに書いているパイプ記号|は出力結果の譜面には関係なくて間違っていたらwarningが出る単なるチェックである

  a4 b cis2 |\mark \default e4.  fis8 gis4 a\bar "."| a g  f e |\mark \default                 
  \set Score.markFormatter = #format-mark-box-alphabet                                         
  d  cis8 b a4 a8 b |\bar "||"cis4 b a2 |\mark #6                                              
  \set Score.markFormatter = #format-mark-circle-letters                                       
  a4 b cis2 |\bar "dashed" e4.  fis8 gis4 a|\mark \default a g  f e |                          
  \set Score.markFormatter = #format-mark-numbers                                              
  \mark #2 \bar ":|" d  cis8 b a4 a8 b |cis4 b a2 |                                            
  \set Score.markFormatter = #format-mark-letters                                              
  \mark \default     

f:id:gymno:20131014131920p:image

サンプルがなんか長くなってしまったが 普通は練習番号は最初に一度指定するだけなのでこうはならない

3連符の刻み

これが大変だった 上の方で

repthree= #(define-music-function (parser location p) (ly:pitch?)                              
 "test"                                                                                       
  #{ \times 2/3 { \repeat tremolo 3 $p } #}) 

という関数を定義する

  a16 a a a b4:16 cis2:32^"tremolo" |e4.  fis8 gis4 { \repeat tremolo 4 a16}|                  
  a4 g  {\times 2/3  {\repeat tremolo 3 f8}} {\times 2/3 {\repeat tremolo 3 e8}}|              
  {\times 4/6 {\repeat tremolo 6 d8}}  {\times 2/3 \repeat tremolo 3 cis8} \repthree b |       
  \repthree cis \repthree a b4 cis  

f:id:gymno:20131014135700p:image

通常の連符はa:16などで 4分音符の3連符は{\times 2/3 {\repeat tremolo 3 f8}} つまり8分音符3つで合計付点4分だけど全体の音価として2/3つまり4分音符に収める という無理矢理な方法 といってすべての音符ごとにこれをやっているとしんどいので上記の関数で対処する というやり方 これでもかなり大義なので楽なやり方が欲しい あと関数をもっと柔軟にしたい 8分音符の3連符による2分音符とかなんとかならないだろうか 最悪でもカリー化とか使えば行けるような気もする

前打音 グリッサンド アウフタクト

GNU LilyPond 学習マニュアル: 2.1.7 高度なリズム コマンド

http://www.lilypond.org/doc/v2.16/Documentation/learning/advanced-rhythmic-commands

LilyPond 記譜法リファレンス: 1.2.6 特殊なリズム関連事項

http://lilypond.org/doc/v2.17/Documentation/notation/special-rhythmic-concerns.ja.html

アウフタクトはドイツ語Auftaktであって英語ではanacrusisとかpickupとかupbeatというらしい

http://www.lilypond.org/doc/v2.16/Documentation/music-glossary/anacrusis

acciaccatura - an unmeasured grace note indicated by a slurred small note with a slashed stem

(長さを持たない装飾小音符で、スラッシュ付きの符幹を持つスラーでつなげられる小さな音符)

appoggiatura - which takes a fixed fraction of the main note and appears in small print without a slash

(一定比率で主音符から演奏時間をとり、スラッシュを持たない小さな音符で譜刻されます)

http://lilypond.org/doc/v2.16/Documentation/notation/special-rhythmic-concerns.html
  \partial 4 e,4| \acciaccatura gis8 a4 b \appoggiatura d16 cis2 |                             
  \grace cis16 e4.  fis8 gis4 \grace { a16[ gis]} a4|                                          
  \grace d16 \glissando a8 d, g4 \afterGrace f {e16 [ f]} e4 |                                 
  d  cis8 b \afterGrace a4 {d16 [ cis b]} a8 b |cis4\< \glissando a'\!         

f:id:gymno:20131014142207p:image

弦楽器のボウイングと運指、

LilyPond 記譜法リファレンス: 2.3.1 フレットの無い弦楽器で共通の記譜法

http://lilypond.org/doc/v2.16/Documentation/notation/common-notation-for-unfretted-strings#bowing-indications

LilyPond 記譜法リファレンス: 5.5.1 オブジェクトを揃える

http://www.lilypond.org/doc/v2.16/Documentation/notation/aligning-objects.ja.html

長い音符の途中でばらして弓を返すことを正式に何と呼ぶのだろうか これの高さを変えるのがわりと大変で ここでは見えない休符を同時に描いてそれにボウイングを付けつつその指示記号の高さ(Y-offset)を変える という手順を取った

  a4\downbow b cis2 | e4.  fis8 gis4\upbow a\upbow | a g  f e | d  cis8\downbow( b) a4 a8 b |                                  
  <<cis1 {s2\downbow s2\upbow}>> |                                                                                             
  <<cis1 {s4\downbow s4  -\tweak #'Y-offset #3 \upbow                                                                          
          s4  -\tweak #'Y-offset #-1 \downbow s4  -\tweak #'Y-offset #5 \upbow}>> |                                            

f:id:gymno:20131109212710p:image

ハーモニクス、アーティフィシャルハーモニクス

LilyPond Notation Reference: 2.3.1 Common notation for unfretted strings

http://lilypond.org/doc/v2.16/Documentation/notation/common-notation-for-unfretted-strings.html

Natural harmonicsとArtificial harmonicsという区別面白いと思った リンク先にはSnap (Bartók) pizzicatoの書き方も紹介されている

  a4 b cis2 | e4. fis8 gis4 a| a\open^\markup {\small "sul A"} g  f e |                                                        
  \harmonicsOn d  cis8 b a4 a8 \harmonicsOff b | cis4 <cis fis\harmonic>2.|                                                    
  | \set harmonicDots = ##t <cis fis\harmonic>2.    

f:id:gymno:20131109213343p:image

2013-10-10

lilypondサンプル (3) 応用的な記述 00:19 lilypondサンプル (3) 応用的な記述を含むブックマーク

lilypondサンプル (1) ページ設定 - gymnoの自由談

lilypondサンプル (2) 基本の記述 - gymnoの自由談

休符

LilyPond 記譜法リファレンス: 1.2.2 休符を記述する

http://lilypond.org/doc/v2.16/Documentation/notation/writing-rests


  a4 r cis2 | e4.  fis8 r8 gis r a| a4 r2. | R1 |
 d4  cis8 b a4 a8 b |R1 * 3 |cis4 r2. |
  \time 3/4  a2 fis4 | r2. | R1 * 3 | R2. * 3     |               

f:id:gymno:20131011001731p:image

最後の2組の休符に注意 全休符3つは4分音符12個なので3/4拍子だと4小節になる 大文字Rは小節単位の休符(full bar rest)だけど 小文字rの休符同様きちんと長さを測定される

アーティキュレーションと装飾、スタッカート

LilyPond 記譜法リファレンス: 1.3.1 音符に付けられる発想記号

http://lilypond.org/doc/v2.16/Documentation/notation/expressive-marks-attached-to-notes

  a4\marcato b\tenuto cis2\staccatissimo | e4.--  fis8-. gis4-|
 a->| a-^ g-_  f\mordent e\turn |
 d\fermata  cis8 b a4 a8 b |cis4         

f:id:gymno:20131011002652p:image

正式にmarcatoなどの名前を書くだけでなく簡易記法がある

小節線、練習番号(リハーサル記号)

LilyPond 記譜法リファレンス: 1.2.5 小節

http://www.lilypond.org/doc/v2.16/Documentation/notation/bars

そのほか小節番号などの説明もある なお小節ごとに書いているパイプ記号|は出力結果の譜面には関係なくて間違っていたらwarningが出る単なるチェックである

  a4 b cis2 |\mark \default e4.  fis8 gis4 a\bar "."| a g  f e |\mark \default                 
  \set Score.markFormatter = #format-mark-box-alphabet                                         
  d  cis8 b a4 a8 b |\bar "||"cis4 b a2 |\mark #6                                              
  \set Score.markFormatter = #format-mark-circle-letters                                       
  a4 b cis2 |\bar "dashed" e4.  fis8 gis4 a|\mark \default a g  f e |                          
  \set Score.markFormatter = #format-mark-numbers                                              
  \mark #2 \bar ":|" d  cis8 b a4 a8 b |cis4 b a2 |                                            
  \set Score.markFormatter = #format-mark-letters                                              
  \mark \default     

f:id:gymno:20131014131920p:image

サンプルがなんか長くなってしまったが 普通は練習番号は最初に一度指定するだけなのでこうはならない

3連符の刻み

これが大変だった 上の方で

repthree= #(define-music-function (parser location p) (ly:pitch?)                              
 "test"                                                                                       
  #{ \times 2/3 { \repeat tremolo 3 $p } #}) 

という関数を定義する

  a16 a a a b4:16 cis2:32^"tremolo" |e4.  fis8 gis4 { \repeat tremolo 4 a16}|                  
  a4 g  {\times 2/3  {\repeat tremolo 3 f8}} {\times 2/3 {\repeat tremolo 3 e8}}|              
  {\times 4/6 {\repeat tremolo 6 d8}}  {\times 2/3 \repeat tremolo 3 cis8} \repthree b |       
  \repthree cis \repthree a b4 cis  

f:id:gymno:20131014135700p:image

通常の連符はa:16などで 4分音符の3連符は{\times 2/3 {\repeat tremolo 3 f8}} つまり8分音符3つで合計付点4分だけど全体の音価として2/3つまり4分音符に収める という無理矢理な方法 といってすべての音符ごとにこれをやっているとしんどいので上記の関数で対処する というやり方 これでもかなり大義なので楽なやり方が欲しい あと関数をもっと柔軟にしたい 8分音符の3連符による2分音符とかなんとかならないだろうか 最悪でもカリー化とか使えば行けるような気もする

前打音 グリッサンド アウフタクト

GNU LilyPond 学習マニュアル: 2.1.7 高度なリズム コマンド

http://www.lilypond.org/doc/v2.16/Documentation/learning/advanced-rhythmic-commands

LilyPond 記譜法リファレンス: 1.2.6 特殊なリズム関連事項

http://lilypond.org/doc/v2.17/Documentation/notation/special-rhythmic-concerns.ja.html

アウフタクトはドイツ語Auftaktであって英語ではanacrusisとかpickupとかupbeatというらしい

http://www.lilypond.org/doc/v2.16/Documentation/music-glossary/anacrusis

acciaccatura - an unmeasured grace note indicated by a slurred small note with a slashed stem

(長さを持たない装飾小音符で、スラッシュ付きの符幹を持つスラーでつなげられる小さな音符)

appoggiatura - which takes a fixed fraction of the main note and appears in small print without a slash

(一定の比率で主音符から演奏時間をとり、スラッシュを持たない小さな音符で譜刻されます)

http://lilypond.org/doc/v2.16/Documentation/notation/special-rhythmic-concerns.html
  \partial 4 e,4| \acciaccatura gis8 a4 b \appoggiatura d16 cis2 |                             
  \grace cis16 e4.  fis8 gis4 \grace { a16[ gis]} a4|                                          
  \grace d16 \glissando a8 d, g4 \afterGrace f {e16 [ f]} e4 |                                 
  d  cis8 b \afterGrace a4 {d16 [ cis b]} a8 b |cis4\< \glissando a'\!         

f:id:gymno:20131014142207p:image

2013-10-05 lilypond使い方メモ

lilypondサンプル (1) ページ設定 23:29 lilypondサンプル (1) ページ設定を含むブックマーク

http://lilypond.org/index.ja.html

楽譜作成ツールlilypond の使い方メモ

lilypondサンプル (1) ページ設定 - gymnoの自由談

lilypondサンプル (2) 基本の記述 - gymnoの自由談

音程 スラー、タイ、フレージングスラー 強弱 重音、トレモロ 連符

lilypondサンプル (3) 応用的な記述 - gymnoの自由談

休符 アーティキュレーションと装飾、スタッカート 小節線、練習番号(リハーサル記号) 3連符の刻み 前打音 グリッサンド アウフタクト

今後もここを起点に更新していく


linux系のツールはだいたいそうだけど 慣れればすごく作業がはかどるけど最初のハードルが高い

せっかくいろいろやり方を調べたのでメモる わかれば適用は大したことないけど単語がわからないだけでも調べるのは意外に面倒

f:id:gymno:20131005231220p:image

たったこれだけ書くのに以下のコード必要

ただし音符が増えてもコード自体はそれほど増えない

参考ページ

LilyPond 記譜法リファレンス: 3.2.1 タイトル、ヘッダ、フッタを作成する

http://lilypond.org/doc/v2.16/Documentation/notation/creating-titles-headers-and-footers

コンパイルはソースコードがsample.lyなら単純に

$ lilypond sample.ly

でsample.pdfができる sample.lyは以下

続きを読む

lilypondサンプル (2) 基本の記述 23:53  lilypondサンプル (2) 基本の記述を含むブックマーク

音程

LilyPond 記譜法リファレンス: 1.1 ピッチ

http://www.lilypond.org/doc/v2.16/Documentation/notation/pitches

a4 b e a | e a e, a |e' bes e, bes|a'' e bes e  

f:id:gymno:20131006000705p:image

オクターブの中でなるべく近い音程に飛ぶ

スラー、タイ、フレージングスラー

LilyPond 記譜法リファレンス: 1.3.2 曲線の発想記号

http://www.lilypond.org/doc/v2.16/Documentation/notation/expressive-marks-as-curves

a4 b cis2 | e4. ( fis8 ) gis4 a~| a g \( f (e) | d \) cis8 b a4 ~ (a8 b |cis4)

f:id:gymno:20131005235053p:image

phrasing slurという単語ははじめて知った

強弱

LilyPond 記譜法リファレンス: 1.3.1 音符に付けられる発想記号

http://www.lilypond.org/doc/v2.16/Documentation/notation/expressive-marks-attached-to-notes

a4\mf b cis2 | e4.\<  fis8 gis4\! a| a\ff g\dim  f e | d  cis8 b a4\pp a8 b |cis4 

f:id:gymno:20131006000051p:image

重音、トレモロ

  <a cis>4.^"div." <b d>8 <a cis e>2| a'4:8 gis: fis: e:16^"trem." |        

f:id:gymno:20131006002619p:image

^"div." というのは単に任意の文字列を楽譜に出力するためだけのものなので 別になくても音符はちゃんと重音やトレモロで出力される

連符

LilyPond 記譜法リファレンス: 1.2.1 リズムを記述する

http://www.lilypond.org/doc/v2.16/Documentation/notation/writing-rhythms

  \times 2/3 {b'4 a8} \times 2/3 { gis fis e}                                                  
  \times 4/5 { d16 e fis  gis a} \times 4/6 { b a fis e cis b}    

f:id:gymno:20131006002926p:image

休符 スタッカート 練習番号 3連符の刻み(これがしんどい) 前打音 グリッサンドなどはまた今度

2013-07-08 はてなブログ このエントリーを含むブックマーク

どうせ2年放置したままだったし今更長文を書くともおもえないけれど

gymno's blog

http://gymno.hatenablog.jp/

2011-07-28

swigでJavaとc++連携 01:13 swigでJavaとc++連携を含むブックマーク

http://d.hatena.ne.jp/gymno/20110728/1311868581

の続き


今度は

すみっこのメモ - SWIGでJNI〜JavaからCのプログラムを呼ぶ

http://www.sabamiso.net/yoggy/hiki/?SWIG%A4%C7JNI%A1%C1Java%A4%AB%A4%E9C%A4%CE%A5%D7%A5%ED%A5%B0%A5%E9%A5%E0%A4%F2%B8%C6%A4%D6

SWIG and Java

http://www.swig.org/Doc1.3/Java.html

を参照した

同様にhello.cppとhello.hとhello.iを用意した後 同様に

swig -java -c++  hello.i

とやると hello.javaとhelloJNI.javaとMyClass.javaができる

MyClassはc++コード自分で書いたクラスだが 別ファイルになるのか

c++の明示的なメモリ管理をjavaのポインタにうまく置き換えるためのものであるように見える



g++ -c -fpic hello.cpp
g++ -c -fpic hello_wrap.cxx -I//System/Library/Frameworks/JavaVM.framework/Headers/
g++ -shared hello.o hello_wrap.o -o libhello.jnilib 

でhello.oとhello_wrap.oとlibhello.jnilibができ

javac hello*.java

MyClass.class hello.class helloJNI.classができる

而して

javac Main.java

とやると

$ java Main 4

Hello World!!

sum to 4 = 6

のようになる


Main.java

public class Main {
    static {
	System.loadLibrary("hello");
    }
    public static void main(String [] args) {
	hello.hello();
	if (args.length!=1) {
	    return;
	}
	int d = Integer.parseInt(args[0]);
        int ret = hello.sum(d);
	System.out.println("sum to "+d+" = "+ret);
    }
}

swigで pythonとc++連携 00:56 swigで pythonとc++連携を含むブックマーク

pythonやjavaが遅いのなら その部分だけ別の言語で書けばよいではないか という拡張の話

参考にしたページは以下

SWIG and Python

http://www.swig.org/Doc1.3/Python.html

distutils with boost.python - おびなたん☆

http://d.hatena.ne.jp/earth2001y/20070611/p1

C++とPythonのコラボレーション ― PythonMatrixJp

http://python.matrix.jp/tips/cpp_extension/

nesugi.net - swigの使い方のメモ書き

http://www.nesugi.net/hiki/?swig%A4%CE%BB%C8%A4%A4%CA%FD%A4%CE%A5%E1%A5%E2%BD%F1%A4%AD


手順は以下

続きを読む