Lilypond Ein wenig Revolution muß sein - Linux-Tage · Lilypond EinwenigRevolutionmußsein...

35
Lilypond Ein wenig Revolution muß sein David Kastrup [email protected] http://www.lilypond.org, http://news.lilynet.net 18. März 2012

Transcript of Lilypond Ein wenig Revolution muß sein - Linux-Tage · Lilypond EinwenigRevolutionmußsein...

LilypondEin wenig Revolution muß sein

David [email protected]

http://www.lilypond.org, http://news.lilynet.net

18. März 2012

Texteingabe

{ <c’ e’>4. d’16( e’ f’2) }

� �� � ���� �Tonhöhen Notennamen (default niederländisch) plus OktaveTondauern Zahl mit Punkten

Akkorde Eingeschlossen in <. . . >Zusatzanweisungen NachgestelltGruppierung { } sequentiell, « » parallel

Interna

{ <c’ e’>4. d’16( e’ f’2) }

(make-music ’SequentialMusic’elements (list

(make-music ’EventChord’elements (list (make-music ’NoteEvent

’duration (ly:make-duration 2 1 1 1)’pitch (ly:make-pitch 0 0 0))

(make-music ’NoteEvent’duration (ly:make-duration 2 1 1 1)’pitch (ly:make-pitch 0 2 0))))

(make-music ’NoteEvent’articulations (list

(make-music ’SlurEvent’span-direction -1))

’duration (ly:make-duration 4 0 1 1)’pitch (ly:make-pitch 0 1 0))

[...]

Präludium #1

\new PianoStaff <<\new Staff <<

\repeat unfold 2 { r8 g’ 16 c’’ e’’ g’ c’’ e’’ } \\\repeat unfold 2 { r16 e’ 8. ~ e’ 4 }

>>\new Staff {

\clef bass<<

\repeat unfold 2 { c’ 2 }>>

}>>

�� ��� � � � ��� ��� ��

����

��� �

��

�� �� �

Aufteilung in Stimmen

\parallelMusic #’(low middle high) {\repeat unfold 2 { c’ 2 } |\repeat unfold 2 { r16 e’ 8. ~ e’ 4 } |\repeat unfold 2 { r8 g’ 16 c’’ e’’ g’ c’’ e’’ } |

}\new PianoStaff <<

\new Staff << \high \\ \middle >>\new Staff { \clef bass \low }

>>

� �� ��� ��� ��� � ��

� ��

�� ���� �

� �

�� ��

Musikfunktion für die Phrase

ph = #(define-music-function (parser location p1 p2 p3 p4 p5)(ly:pitch? ly:pitch? ly:pitch? ly:pitch? ly:pitch?)#{

\repeat unfold 2 { $p1 2 } |\repeat unfold 2 { r16 $p2 8. ~ $p2 4 } |\repeat unfold 2 { r8 $p3 16 $p4 $p5 $p3 $p4 $p5 } |

#})\parallelMusic #’(low middle high) {

\ph c’ e’ g’ c’’ e’’\ph c’ d’ a’ d’’ f’’ }

\new PianoStaff <<\new Staff << \high \\ \middle >>\new Staff { \clef bass \low }

>>

������� ���� � ��

� �����

��

������

� ��� ���

���� �

��� �� � ��

��

����� � �

Agnus DeiJ. S. Bach

���

��

� ���

��

���

���

��������

Continuo

Violino 1 & 2

��

�� ��

���

�����

���

����

���

���

��

� ���

�� �

����

� ���

��

����

���

�� ��

� ��

�� �� �

��

��

�� ��

���4

V1&2

Cont.

� �������

��

�� ��

�����

�� ��

� �����

��� �� �� ��

�� �

�� ���

���

� ���

� �

���� ��

�������

��

������

� ��

�� ���

��i

8 ��

��

� �� � ��

Alto

V1&2

Cont.

��

� �pec

��

�lis

� ���

�ca

��

��

��

� ��

� ����

tol

��

��qui

��

����

� �

��

�De

�p� �

��

����

��

�A

��

�gnus�

� ���ta

�� �

�� �mun

��

�ta

� �ca

���

�pec

����12

��� ��

�re

�����

Alto

V1&2

Cont.

� �di

� �

����

��

�se

�mi

��

��� ��

�mun

��� �

��

���

��

� ��pec

��

��

ta

� ���

��

��lis

���

tol

��

� �ca

� ��

��

�di,

�qui

��

���

���

�bis,

�� �

�mi

���

� �

���

re

��

��

��

�16 ��

��

�re

��

Alto

V1&2

Cont.

� ��� ��

se

��

� �� �

���

� � �

��

� �re

���

� �re

��

��

� �

��

� � �no

��

��

����no

�� ���

���

��

��

���

��

��

�mi

��bis,

�f�

�se�re�

���

�re

��

�mi

��

� ��se

�no

� �

re

��

�� �mun�

��

��

��

20 ��

�� ���

Alto

V1&2

Cont.

� ��� ��

��

� � �bis.

��

����� �

��

����

�qui

��

� �tol

��

�lis

��

� �� ��

no

�� �

��

�di,

��

�bis,

��

��

ca

��

��

���

�pec

� �ta

��

��

���

��

pec

� �ca

��

ta,

��

��

� ��

�gnus

�����

����

�� � �

��

24 ��

� �� �

���

Alto

V1&2

Cont.

� �

��

�De�p

� ��

��

���

� �� �

���

������� �

����

��

���� � �

�A

���

��

����

����

� ��� ��

�������

��

��

„Agnus Dei“ aus Bachs h-Moll-Messe fürStandardbaßakkordeon

ProblematikI Es existieren nur 12 Baßtöne mit diffuser Oktavlage

I Anordnung ist nicht melodisch, sondern im QuintenzirkelI Akkordeonspieler lesen aus dem Baß nur den Rhythmus abI Akkordbuchstaben geben die notwendige ZusatzinformationI Also wird für jede Note ein Akkordbuchstabe benötigt

„Agnus Dei“ aus Bachs h-Moll-Messe fürStandardbaßakkordeon

ProblematikI Es existieren nur 12 Baßtöne mit diffuser OktavlageI Anordnung ist nicht melodisch, sondern im Quintenzirkel

I Akkordeonspieler lesen aus dem Baß nur den Rhythmus abI Akkordbuchstaben geben die notwendige ZusatzinformationI Also wird für jede Note ein Akkordbuchstabe benötigt

„Agnus Dei“ aus Bachs h-Moll-Messe fürStandardbaßakkordeon

ProblematikI Es existieren nur 12 Baßtöne mit diffuser OktavlageI Anordnung ist nicht melodisch, sondern im QuintenzirkelI Akkordeonspieler lesen aus dem Baß nur den Rhythmus ab

I Akkordbuchstaben geben die notwendige ZusatzinformationI Also wird für jede Note ein Akkordbuchstabe benötigt

„Agnus Dei“ aus Bachs h-Moll-Messe fürStandardbaßakkordeon

ProblematikI Es existieren nur 12 Baßtöne mit diffuser OktavlageI Anordnung ist nicht melodisch, sondern im QuintenzirkelI Akkordeonspieler lesen aus dem Baß nur den Rhythmus abI Akkordbuchstaben geben die notwendige Zusatzinformation

I Also wird für jede Note ein Akkordbuchstabe benötigt

„Agnus Dei“ aus Bachs h-Moll-Messe fürStandardbaßakkordeon

ProblematikI Es existieren nur 12 Baßtöne mit diffuser OktavlageI Anordnung ist nicht melodisch, sondern im QuintenzirkelI Akkordeonspieler lesen aus dem Baß nur den Rhythmus abI Akkordbuchstaben geben die notwendige ZusatzinformationI Also wird für jede Note ein Akkordbuchstabe benötigt

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)

(let* ((event (ly:grob-property grob ’cause))(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))

(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))

(name (format #f "~a~a"(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

„Engraver“

namer =#(make-engraver

(acknowledgers((note-head-interface engraver grob source)(let* ((event (ly:grob-property grob ’cause))

(pitch (ly:event-property event ’pitch))(newgrob (ly:engraver-make-grob engraver ’TextScript event))(name (format #f "~a~a"

(string-ref "CDEFGAH" (ly:pitch-notename pitch))(assoc-ref’((-1/2 . "[") (0 . "") (1/2 . "]"))(ly:pitch-alteration pitch)))))

(if (string= name "H[")(set! name "B"))

(set! (ly:grob-property newgrob ’text) name)))))

Einsatz

\include "namer.ily"basspart = \relative c’ {

\key g \minorg8 r fis r g r e rfis r d r g r c, rd r fis r g r b ra r g r f d a’ a, }

\new Voice \with { \consists #namer } { \clef bass \basspart }

�� �� �G

�G

� � �C

DG �� ��

�� �� ��� �

♯F

�� ��

�� ��

E♯F�

�� �� �

F�

♯F

G

� �A

�� �

� �� ��

AD A

� �

D

3 � ���

��G

��H

Agnus DeiJ. S. Bach

D�

� ��

♯F���

����

C

���

���

��

�� ��

Continuo

Violino 1 & 2 � �

G��

�� �

B��

�� ���

G

��

��

�E

��

G

��

����

�♯F� ���

��

D���

����

G��

������ ���

♯F�

♯F

���

�� ��

��� ��

�� ��

�C

�D

�♭E

��

� �� �

�Cont.

V1&2 �4 � �� � ��

�B

����� � � ��

A

�♯C

�� �

F

��D

�� ��

��

A

��A

��� ��

A

� ��

G

��

��

G

�� �

��

��

� ���

�G

� �

�H��

D

���

���

♭A

��

E

���F

�F

��

���

�♭EH

��

C

� ��A

���

�i

��

8 �

�C

�Cont.

Alto �V1&2

��

��

� ��

lis

��

♯F�

�pec

� �G

���

� �ca

��

��G

��

D

���

B

� �tol

��

��

��qui

��

� ��♯F

��

D

�G

��

�De

�p�G

��

��

����

G

A

D

��

gnus

�♯F

���C

��

�mun

��

�ta

��

��

��D

��

� �ta

�ca

��

�pec

��

�B

������

�G

�se

��

� �re

Alto

V1&2

Cont.

� ���12

� �di

� �

�D

��

�♯F

�mi

�♯F

���� ��

�mun

���

���

�♭E

���

G

qui

�� �

�pec

G

��

�♯F

ta

�♭E

��

�lis

���

�G

♯F

��

�ca

��

D

di,

�� �

B

♯F

�tol

�C

��

B

���

��bis,

���

A

��mi

���

��♯C

�� �

��

�re

�A

��

���

��

��D

�re

Alto

V1&2

Cont.

� ��

�����

� �se

���

��

���♯C

�D

��

� �re

���

F

� �re

��

�E

� �

��

no

�A

G

� �

�D

16 �

��

����no

��

�����

�A

��

��

���

�G

���

��B

��

re �

�D

�mi

�A

�bis,

F

�se

�f�

���

���

� �

��

A

� �se

� �re

��� �

♯C

�mi

��

�E�

�ta�

� �

��

� �mun

��

H�

��

♯C

��������

���20

Alto

V1&2

Cont.

� ���

F

�no

A

�D

� �re

D

��

A

� �bis.

��bis,

���

�D F

�� �

���E

�qui

��

� �tol

� �D

� ��

��

�di,

�� �

�no

�� ���

�ta,

��

��ca

��E

�pec

�H�

♯C

�lis

���

�� �� � ��

D

�pec

� �ca

A

D

�� �A

�� �

D

��

� �

�G E

��

�� ��

���

�D

���

D

���

�Alto

V1&2

Cont.

gnus�

��

� �

�De�p��♯C

����A

��

� �

D

� ���

�� ��� ♯C

���

24

��

� �� ��

���

����♯C

�F

��A

���D

��� �

����

��F

���G

���

��� �

�� �

A

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des Übersetzerteams

David Hauptfokus Programmiermodell, Features auf Scheme-Ebene,Bugfixes, Tester. Verbleib unsicher.

Julien Fokus Buildsystem DokumentationJean-Charles Übersetzer

Graham Projektleiter. Verbleib unsicher.Mike Avantgarde-Musiker, -Komponist und -Programmierer. Hauptfokus

Grafikfeatures.Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.

Julien Fokus Buildsystem DokumentationJean-Charles Übersetzer

Graham Projektleiter. Verbleib unsicher.Mike Avantgarde-Musiker, -Komponist und -Programmierer. Hauptfokus

Grafikfeatures.Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles Übersetzer

Graham Projektleiter. Verbleib unsicher.Mike Avantgarde-Musiker, -Komponist und -Programmierer. Hauptfokus

Grafikfeatures.Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till Übersetzer

Phil Dokumentation, WindowsJames Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Entwickler

git shortlog -n --since "3 months ago" -s102 Francisco Vila96 David Kastrup88 Julien Rioux54 Jean-Charles Malahieude51 Graham Percival41 Mike Solomon36 Till Rettig34 Phil Holmes30 James Lowe

Francisco Leiter des ÜbersetzerteamsDavid Hauptfokus Programmiermodell, Features auf Scheme-Ebene,

Bugfixes, Tester. Verbleib unsicher.Julien Fokus Buildsystem Dokumentation

Jean-Charles ÜbersetzerGraham Projektleiter. Verbleib unsicher.

Mike Avantgarde-Musiker, -Komponist und -Programmierer. HauptfokusGrafikfeatures.

Till ÜbersetzerPhil Dokumentation, Windows

James Leiter Dokumentation, Tester

Weitere Informationsquellen

Webseite http://www.lilypond.org

LilyPond Report http://news.lilynet.net

Mailingliste für User http://lists.gnu.org/mailman/listinfo/lilypond-usermailto:[email protected]

Mailingliste für Entwickler http://lists.gnu.org/mailman/listinfo/lilypond-develmailto:[email protected]

Issue tracker http://code.google.com/p/lilypond/issues

Weitere Informationsquellen

Webseite http://www.lilypond.org

LilyPond Report http://news.lilynet.net

Mailingliste für User http://lists.gnu.org/mailman/listinfo/lilypond-usermailto:[email protected]

Mailingliste für Entwickler http://lists.gnu.org/mailman/listinfo/lilypond-develmailto:[email protected]

Issue tracker http://code.google.com/p/lilypond/issues

Weitere Informationsquellen

Webseite http://www.lilypond.org

LilyPond Report http://news.lilynet.net

Mailingliste für User http://lists.gnu.org/mailman/listinfo/lilypond-usermailto:[email protected]

Mailingliste für Entwickler http://lists.gnu.org/mailman/listinfo/lilypond-develmailto:[email protected]

Issue tracker http://code.google.com/p/lilypond/issues

Weitere Informationsquellen

Webseite http://www.lilypond.org

LilyPond Report http://news.lilynet.net

Mailingliste für User http://lists.gnu.org/mailman/listinfo/lilypond-usermailto:[email protected]

Mailingliste für Entwickler http://lists.gnu.org/mailman/listinfo/lilypond-develmailto:[email protected]

Issue tracker http://code.google.com/p/lilypond/issues

Weitere Informationsquellen

Webseite http://www.lilypond.org

LilyPond Report http://news.lilynet.net

Mailingliste für User http://lists.gnu.org/mailman/listinfo/lilypond-usermailto:[email protected]

Mailingliste für Entwickler http://lists.gnu.org/mailman/listinfo/lilypond-develmailto:[email protected]

Issue tracker http://code.google.com/p/lilypond/issues