LilyPond: Problem mit Pausen

Leef
Leef
Registrierter Benutzer
Zuletzt hier
17.11.24
Registriert
16.03.07
Beiträge
4.462
Kekse
6.458
Hallo,

ich möchte folgendes umsetzen, leider kommt irgendwas komisches raus.
Ich habe bereits im online Manual gelesen (dort habe ich auch das Template her), finde aber meinen Denkfehler einfach nicht.

Vielleicht kann mir hier jemand helfen? Danke! :(

attachment.php


Code:
upper = \relative c' {
  \clef treble
  \key c \major
  \time 3/4
  
  d4 d c 
  r1
  d4 d c 
  r1
}

lower = \relative c' {
  \clef bass
  \key c \major
  \time 3/4

  r1 
  b4 b c 
  r1
  b4 b c 
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
  \midi { }
}
 
Eigenschaft
 

Anhänge

  • LilyPond.png
    LilyPond.png
    16,3 KB · Aufrufe: 1.139
problem ist wohl (ohne dass ich das Programm je bedient hätte), dass es beim Befehl "r1" eine 4/4tel Pause einfügt und keine 3/4tel, und sich das dementsprechend immer verschiebt.

Gibt es keinen Befehl r3/4 oder sowas?
 
Du hast eine Reihe von Möglichkeiten, dem Problem zu begegnen.

1. Du setzt statt der ganzen Pause eine punktierte halbe Pause (r2.) -- Dann erscheint auch eine punktierte Halbe
2. Du setzt eine ganzen Pause, die um den Faktor 3/4 verkürzt ist (r1*3/4)
Diese Pausenzeichen stehen am Anfang des Taktes.

3. Du setzt das Zeichen einer Ganztaktpause (großes R) und dahinter die Länge dieser Pause. Die Länge kannst Du auf verschiedene Arten angeben z.B.
3.1 in Vierteln: R4*3
3.1 als punktierte Halbe: R2.
3.1 als verkürzte Ganze: R1*3/4
Die Ganztaktpause steht automatisch immer zentriert in der Mitte des Taktes.


Codes
Code:
\version "2.12.2"

\header {
   title = "Pausen im 3/4 Takt"
}

upper = \relative c' {
  \clef treble
  \key c \major
  \time 3/4
  
  d4 d c 
  r2.^"r2."
  d4 d c 
  r1*3/4 ^"r1*3/4"
  d4 d c 
  d4 d c 
}

lower = \relative c' {
  \clef bass
  \key c \major
  \time 3/4
 
  R4*3^"R4*3"
  d4 d c 
  R2.^"R2."
  d4 d c 
  R1*3/4^"R1*3/4"
  d4 d c 
  
}

\score {
  \new PianoStaff <<
    \set PianoStaff.instrumentName = #"Piano  "
    \new Staff = "upper" \upper
    \new Staff = "lower" \lower
  >>
  \layout { }
  \midi { }
}



NACHTRAG:
Wenn Du Dir die Arbeit etwas einfacher machen willst, und nicht jedesmal erneut die Taktangaben etc. tippen willst, so kannst Du Dir eine weitere Variable definieren und entsprechend mit Werten füllen.
Im folgenden Beispiel heißt sie "global".
Darin sind die Tonart, Taktangaben gespeichert. Zudem ist dort das Tempo angegeben. Das ist wichtig, damit die MIDI-Datei in der richtigen Geschwindigkeit spielt. Auch das MIDI-Instrument ist dort angegeben. Beim MIDI-Instrument muß man auf die korrekte Schreibweise achten, sonst klingt alles nach Klavier.
Soll ein System in einem anderen MIDI-Sound erklingen, so kann man das an entsprechender Stelle umdefinieren (siehe im Beispiel "lower")

Willst Du Ganztaktnoten haben, die in mehreren aufeinanderfolgenden Systemen erscheinen, so setzt Du hinter die Zeitangabe einfach einen Multiplikator (im Beispiel: mal 6 = *6)

Damit der Code übersichtlicher wird, würde ich Dir raten keine Leerzeichen zum Einrücken zu verwenden, sondern Tabulatoren.
Besimmte Codeteile sollte man auch kommentieren (%-Zeichen davor setzen), insbesondere wenn man mit Lilypond anfängt und sich mühsam die Kommandos zum Verbiegen mancher Einstellungen zusammensucht.

Hier ein Beispiel mit drei Systemen:
Code:
\version "2.12.2"

% Tonart, Taktart, Tempo etc.
global = {
	\key c \major
	\time 3/4
	%Geschwindigkeit: wichtig für MIDI-Ausgabe
	\tempo 4 = 180  
	%Midi-Instrument für die MIDI-Ausgabe
	\set Staff.midiInstrument = #"honky-tonk" 

}

%erstes System
upper = \relative c' {
	\clef treble
	d4 d c 
	r2.^"r2."
	d4 d c 
	r1*3/4 ^"r1*3/4"
	d4 d c 
	d4 d c 
}

%zweites System
lower = \relative c' {
	%überschreibt hier die globalen MIDI-Einstellungen
	\set Staff.midiInstrument = #"rock organ" 
	\clef bass

	R4*3^"R4*3"
	d4 d c 
	R2.^"R2."
	d4 d c 
	R1*3/4^"R1*3/4"
	d4 d c 
}

%drittes System
schnarch = \relative c {
	\clef bass
	R1*3/4*6^"R1*3/4*6"
}


\score {
	\new GrandStaff
	<<
		\new Staff  = "upper" { \global \upper }
		\new Staff  = "lower" { \global \lower }
		\new Staff  = "Schlafmuetze" { \global \schnarch }
	>>
	\layout { }
	\midi{}
}
 

Anhänge

  • pausen.jpg
    pausen.jpg
    31,6 KB · Aufrufe: 791
  • schnarch.jpg
    schnarch.jpg
    36,5 KB · Aufrufe: 308
Zuletzt bearbeitet:
Super, Danke!
 
Wenn Du zwei Systeme, die untereinander stehen eingeben willst, kannst Du Dir auch mal die Funktion von sog. "Paralleler Musik" angucken.
Dort werden die Stimmen/Systeme direkt untereinander notiert.

Beispiel:
Code:
\version "2.12.2"

%Dt. Sprachpaket für Noteneingabe laden: h statt b etc.
\include "deutsch.ly"

% Tonart, Taktart, Tempo etc.
global = {
	\key c \major
	 \time 4/4
	 \tempo 4 = 160  	%Geschwindigkeit
	 \set Staff.midiInstrument = #"honky-tonk"  %Midi-Instrument
}

	
\parallelMusic #'(voiceA voiceB voiceC) {
	% Takt 1
	c2			e			|
	r4	< g c e >	r	< g c e > 	|
	c4 	r 		c 	r		|

	% Takt 2
	g2			e 			|
	r4 	< g c e >	r 	< g c e > 	|
	c4 	r 		c 	r		|

	% Takt 3
	d 	e 		f	g 		|
	r4 	< g h d > 	r 	< g h d > 	|
	g'4	r 		g 	r 		|
	\bar "|."
	}

\score {
	\new GrandStaff
	<<
		\new Staff { \global \relative c' { \clef treble \voiceA }}
		\new Staff { \global \relative c' {\clef bass \voiceB }}
		\new Staff { \global \relative c, {\clef bass \voiceC }}
	>>

	\layout { 
		indent = #0  %Kein Einzug
		ragged-right = ##f  %Notensystem auf Seitenbreite strecken
	}

	\midi{}
}
 
Oh, das ist sogar noch besser! Mir kam es bereits etwas umständlich vor, vor allem der Übersicht wegen. Ich mag LilyPond mehr und mehr :)
 
Noch eine kleine Frage, wie kann ich einen "Zeilenumbruch" erzwingen? Also einen Takt explizit auf der neuen Zeile starten lassen?
 
Einfach am Ende eines Taktes \break schreiben

Um beim Beispiel von oben zu bleiben

Code:
\parallelMusic #'(voiceA voiceB voiceC) {
	% Takt 1
	c2			e			|
	r4	< g c e >	r	< g c e > 	|
	c4 	r 		c 	r		|

	% Takt 2
	g2			e 			|
	r4 	< g c e >	r 	< g c e > 	|
	c4 	r 		c 	r		|
\break

	% Takt 3
	d 	e 		f	g 		|
	r4 	< g h d > 	r 	< g h d > 	|
	g'4	r 		g 	r 		|
	\bar "|."
	}
Nun kommen Takt 1 und Takt 2 in eine Zeile und Takt 3 in eine neue Zeile.
 
Ich hoffe ich darf das Thema nochmal nutzen. Diesmal möchte ich zusätzlich zu den Noten Gitarrenakkorde notieren. Diese sollen einfach nur als Am C Em usw dargestellt werden, so daß jemand mit der Gitarre dazu begleiten kann. Die Akkorde sollen unter oder über dem System stehen. Wie kann ich das geschickt machen? Mein bisheriger Code:

Code:
\version "2.12.2"
\header {
    composer = "Verfasser unbekannt"
    title = "Scarborough Fair"
}

global = {
    \key d \major
    \time 3/4
    \tempo 4 = 120
}


% 0    1    2    3    4    5    6    6+    7
% d    e    fis    g    a    b    c    cis    d

\parallelMusic #'(voiceUpper) {

\set Staff.midiInstrument = #"flute"

    e4. r8 e4|
    b'4. r8 b4|
    fis4. g8 fis4|
    e2 r4|

\break

    b' d e~|
    e d b|
    cis a b~|
    b r e|

\break

    e4. r8 e4|
    d b r|
    b a g|
    fis8 d4. r4|

\break

    e2 b'4|
    a2 g4|
    fis e d|
    e1|

\bar "|."
}

\score {
    \new GrandStaff
    <<
        \new Staff {\global \relative c' {\clef treble \voiceUpper}}
    >>

    \layout {
        indent = #0          %Kein Einzug
        ragged-right = ##f      %Notensystem auf Seitenbreite strecken
    }

    \midi{}
}

Edit:

Lösung wie folgt:

Code:
\version "2.12.2"
\header {
    composer = "Verfasser unbekannt"
    title = "Scarborough Fair"
}

global = {
    \key d \major
    \time 3/4
    \tempo 4 = 120
}


DChord = \markup { \lower #1 "D   " \fret-diagram-terse #"x;x;o;2;3;2;"}
AmChord = \markup { \lower #1 "Am   " \fret-diagram-terse #"x;o;2;2;1;o;"}
CChord = \markup { \lower #1 "C   " \fret-diagram-terse #"x;3;2;o;1;o;"}
EmChord = \markup { \lower #1 "Em   " \fret-diagram-terse #"o;2;2;o;o;o;"}

% 0    1    2    3    4    5    6    6+    7
% d    e    fis    g    a    b    c    cis    d

\parallelMusic #'(voiceUpper) {

\set Staff.midiInstrument = #"flute"

    e4.^\AmChord r8 e4|
    b'4.^\CChord r8 b4|
    fis4.^\EmChord g8 fis4|
    e2^\AmChord r4|

\break

    b'^\CChord d e~|
    e^\AmChord d b|
    cis^\DChord a b~|
    b^\AmChord r e|

\break

    e4. r8 e4|
    d^\CChord b r|
    b^\AmChord a g|
    fis8^\EmChord d4. r4|

\break

    e2^\AmChord b'4|
    a2^\EmChord g4|
    fis e d|
    e2.^\AmChord|

\bar "|."
}

\score {
    \new GrandStaff
    <<
        \new Staff {\global \relative c' {\clef treble \voiceUpper}}
    >>

    \layout {
        indent = #0          %Kein Einzug
        ragged-right = ##f      %Notensystem auf Seitenbreite strecken
    }

    \midi{}
}
 
Zuletzt bearbeitet:
... Mir kam es bereits etwas umständlich vor ... Ich mag LilyPond mehr und mehr :)

Nachdem ich das alles hier lesen durfte, mag ich mein Capella (ältere Version und schon länger im Gebrauch) trotz aller kleinen Mängel immer mehr ;)

Gruß druckluft
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben