Zitatwarning: cannot find property type-check for `defaultBarType' (translation-type?). perhaps a typing error?Das hättest du doch selbst fixen können: In 2.24.4 ist es nicht `defaultBarType' sonder `measureBarType'. Möglicherweise hätte convert-ly da auch geholfen. Darüberhinaus sind diese Setzungen auch noch komplett überflüssig bei deinem 12/1-Takt.
warning: skipping assignment
\paper {
left-margin = 3\mm
right-margin = 0\mm
}\version "2.24.4"
\header {
title = "Chord Exercise - Month 1"
tagline = ##f
}
\paper {
left-margin = 0\mm
right-margin = 0\mm
line-width = 350\mm
}
% Major Chords
trebleMajor = \relative c' {
\clef treble
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c e g>1^\markup { \sans \bold "C" }_\markup { \center-align \sans \bold "C E G" }
<cis eis gis>1^\markup { \sans \bold "C♯" }_\markup { \center-align \sans \bold "C♯ E♯ G♯" }
<d fis a>1^\markup { \sans \bold "D" }_\markup { \center-align \sans \bold "D F♯ A" }
<ees g bes>1^\markup { \sans \bold "E♭" }_\markup { \center-align \sans \bold "E♭ G B♭" }
<e gis b>1^\markup { \sans \bold "E" }_\markup { \center-align \sans \bold "E G♯ B" }
<f a c>1^\markup { \sans \bold "F" }_\markup { \center-align \sans \bold "F A C" }
<fis ais cis>1^\markup { \sans \bold "F♯" }_\markup { \center-align \sans \bold "F♯ A♯ C♯" }
<g b d>1^\markup { \sans \bold "G" }_\markup { \center-align \sans \bold "G B D" }
<aes c ees>1^\markup { \sans \bold "A♭" }_\markup { \center-align \sans \bold "A♭ C E♭" }
<a cis e>1^\markup { \sans \bold "A" }_\markup { \center-align \sans \bold "A C♯ E" }
<bes d f>1^\markup { \sans \bold "B♭" }_\markup { \center-align \sans \bold "B♭ D F" }
<b dis fis>1^\markup { \sans \bold "B" }_\markup { \center-align \sans \bold "B D♯ F♯" }
\bar "|."
}
bassMajor = \relative c {
\clef bass
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c e g>1
<cis eis gis>1
<d fis a>1
<ees g bes>1
<e gis b>1
<f a c>1
<fis ais cis>1
<g b d>1
<aes c ees>1
<a cis e>1
<bes d f>1
<b dis fis>1
\bar "|."
}
% Minor Chords
trebleMinor = \relative c' {
\clef treble
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c ees g>1^\markup { \sans \bold "Cm" }_\markup { \center-align \sans \bold "C E♭ G" }
<cis e gis>1^\markup { \sans \bold "C♯m" }_\markup { \center-align \sans \bold "C♯ E G♯" }
<d f a>1^\markup { \sans \bold "Dm" }_\markup { \center-align \sans \bold "D F A" }
<ees ges bes>1^\markup { \sans \bold "E♭m" }_\markup { \center-align \sans \bold "E♭ G♭ B♭" }
<e g b>1^\markup { \sans \bold "Em" }_\markup { \center-align \sans \bold "E G B" }
<f aes c>1^\markup { \sans \bold "Fm" }_\markup { \center-align \sans \bold "F A♭ C" }
<fis a cis>1^\markup { \sans \bold "F♯m" }_\markup { \center-align \sans \bold "F♯ A C♯" }
<g bes d>1^\markup { \sans \bold "Gm" }_\markup { \center-align \sans \bold "G B♭ D" }
<aes ces ees>1^\markup { \sans \bold "A♭m" }_\markup { \center-align \sans \bold "A♭ C♭ E♭" }
<a c e>1^\markup { \sans \bold "Am" }_\markup { \center-align \sans \bold "A C E" }
<bes des f>1^\markup { \sans \bold "B♭m" }_\markup { \center-align \sans \bold "B♭ D♭ F" }
<b d fis>1^\markup { \sans \bold "Bm" }_\markup { \center-align \sans \bold "B D F♯" }
\bar "|."
}
bassMinor = \relative c {
\clef bass
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c ees g>1
<cis e gis>1
<d f a>1
<ees ges bes>1
<e g b>1
<f aes c>1
<fis a cis>1
<g bes d>1
<aes ces ees>1
<a c e>1
<bes des f>1
<b d fis>1
\bar "|."
}
% Diminished Chords
trebleDim = \relative c' {
\clef treble
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c ees ges>1^\markup { \sans \bold "Cdim" }_\markup { \center-align \sans \bold "C E♭ G♭" }
<cis e g>1^\markup { \sans \bold "C♯dim" }_\markup { \center-align \sans \bold "C♯ E G" }
<d f aes>1^\markup { \sans \bold "Ddim" }_\markup { \center-align \sans \bold "D F A♭" }
<ees ges beses>1^\markup { \sans \bold "E♭dim" }_\markup { \center-align \sans \bold "E♭ G♭ B𝄫" }
<e g bes>1^\markup { \sans \bold "Edim" }_\markup { \center-align \sans \bold "E G B♭" }
<f aes ces>1^\markup { \sans \bold "Fdim" }_\markup { \center-align \sans \bold "F A♭ C♭" }
<fis a c>1^\markup { \sans \bold "F♯dim" }_\markup { \center-align \sans \bold "F♯ A C" }
<g bes des>1^\markup { \sans \bold "Gdim" }_\markup { \center-align \sans \bold "G B♭ D♭" }
<aes ces eses>1^\markup { \sans \bold "A♭dim" }_\markup { \center-align \sans \bold "A♭ C♭ E𝄫" }
<a c ees>1^\markup { \sans \bold "Adim" }_\markup { \center-align \sans \bold "A C E♭" }
<bes des fes>1^\markup { \sans \bold "B♭dim" }_\markup { \center-align \sans \bold "B♭ D♭ F♭" }
<b d f>1^\markup { \sans \bold "Bdim" }_\markup { \center-align \sans \bold "B D F" }
\bar "|."
}
bassDim = \relative c {
\clef bass
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c ees ges>1
<cis e g>1
<d f aes>1
<ees ges beses>1
<e g bes>1
<f aes ces>1
<fis a c>1
<g bes des>1
<aes ces eses>1
<a c ees>1
<bes des fes>1
<b d f>1
\bar "|."
}
% Augmented Chords
trebleAug = \relative c' {
\clef treble
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c e gis>1^\markup { \sans \bold "Caug" }_\markup { \center-align \sans \bold "C E G♯" }
<cis eis gisis>1^\markup { \sans \bold "C♯aug" }_\markup { \center-align \sans \bold "C♯ E♯ G𝄪" }
<d fis ais>1^\markup { \sans \bold "Daug" }_\markup { \center-align \sans \bold "D F♯ A♯" }
<ees g b>1^\markup { \sans \bold "E♭aug" }_\markup { \center-align \sans \bold "E♭ G B" }
<e gis bis>1^\markup { \sans \bold "Eaug" }_\markup { \center-align \sans \bold "E G♯ B♯" }
<f a cis>1^\markup { \sans \bold "Faug" }_\markup { \center-align \sans \bold "F A C♯" }
<fis ais cisis>1^\markup { \sans \bold "F♯aug" }_\markup { \center-align \sans \bold "F♯ A♯ C𝄪" }
<g b dis>1^\markup { \sans \bold "Gaug" }_\markup { \center-align \sans \bold "G B D♯" }
<aes c e>1^\markup { \sans \bold "A♭aug" }_\markup { \center-align \sans \bold "A♭ C E" }
<a cis eis>1^\markup { \sans \bold "Aaug" }_\markup { \center-align \sans \bold "A C♯ E♯" }
<bes d fis>1^\markup { \sans \bold "B♭aug" }_\markup { \center-align \sans \bold "B♭ D F♯" }
<b dis fisis>1^\markup { \sans \bold "Baug" }_\markup { \center-align \sans \bold "B D♯ F𝄪" }
\bar "|."
}
bassAug = \relative c {
\clef bass
\key c \major
\omit Staff.TimeSignature
\time 12/1
\set Score.defaultBarType = ""
<c e gis>1
<cis eis gisis>1
<d fis ais>1
<ees g b>1
<e gis bis>1
<f a cis>1
<fis ais cisis>1
<g b dis>1
<aes c e>1
<a cis eis>1
<bes d fis>1
<b dis fisis>1
\bar "|."
}
% Major Chords Score
\markup { \vspace #1 }
\markup { \line { \sans \huge \bold "Major Chords - Root - Major 3rd - Perfect 5th or semitones: 0 - 4 - 7" } }
\markup { \line { \sans "Exercise Block and Broken and Inversions and both Hands" } }
\markup { \vspace #1 }
\score {
\new PianoStaff <<
\new Staff = "right" \trebleMajor
\new Staff = "left" \bassMajor
>>
\layout {
indent = 0
ragged-last = ##f
ragged-right = ##f
\context {
\PianoStaff
\override StaffGrouper.staff-staff-spacing.basic-distance = #15
}
\context {
\Staff
\override NoteSpacing.spacing-increment = #10.0
\override SpacingSpanner.spacing-increment = #10.0
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/8)
}
\context {
\Score
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8)
\override SpacingSpanner.strict-note-spacing = ##t
}
}
}
% Minor Chords Score
\markup { \vspace #2 }
\markup { \line { \sans \huge \bold "Minor Chords - Root - Minor 3rd - Perfect 5th or semitones: 0 - 3 - 7" } }
\markup { \line { \sans "Exercise Block and Broken and Inversions and both Hands" } }
\markup { \vspace #1 }
\score {
\new PianoStaff <<
\new Staff = "right" \trebleMinor
\new Staff = "left" \bassMinor
>>
\layout {
indent = 0
ragged-last = ##f
ragged-right = ##f
\context {
\PianoStaff
\override StaffGrouper.staff-staff-spacing.basic-distance = #15
}
\context {
\Staff
\override NoteSpacing.spacing-increment = #10.0
\override SpacingSpanner.spacing-increment = #10.0
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/8)
}
\context {
\Score
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8)
\override SpacingSpanner.strict-note-spacing = ##t
}
}
}
% Diminished Chords Score
\markup { \vspace #2 }
\markup { \line { \sans \huge \bold "Diminished Chords - Root - Minor 3rd - Diminished 5th or semitones: 0 - 3 - 6" } }
\markup { \line { \sans "Exercise Block and Broken and Inversions and both Hands" } }
\markup { \vspace #1 }
\score {
\new PianoStaff <<
\new Staff = "right" \trebleDim
\new Staff = "left" \bassDim
>>
\layout {
indent = 0
ragged-last = ##f
ragged-right = ##f
\context {
\PianoStaff
\override StaffGrouper.staff-staff-spacing.basic-distance = #15
}
\context {
\Staff
\override NoteSpacing.spacing-increment = #10.0
\override SpacingSpanner.spacing-increment = #10.0
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/8)
}
\context {
\Score
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8)
\override SpacingSpanner.strict-note-spacing = ##t
}
}
}
% Augmented Chords Score
\markup { \vspace #2 }
\markup { \line { \sans \huge \bold "Augmented Chords - Root - Major 3rd - Augmented 5th or semitones: 0 - 4 - 8" } }
\markup { \line { \sans "Exercise Block and Broken and Inversions and both Hands" } }
\markup { \vspace #1 }
\score {
\new PianoStaff <<
\new Staff = "right" \trebleAug
\new Staff = "left" \bassAug
>>
\layout {
indent = 0
ragged-last = ##f
ragged-right = ##f
\context {
\PianoStaff
\override StaffGrouper.staff-staff-spacing.basic-distance = #15
}
\context {
\Staff
\override NoteSpacing.spacing-increment = #10.0
\override SpacingSpanner.spacing-increment = #10.0
\override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/8)
}
\context {
\Score
\override SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/8)
\override SpacingSpanner.strict-note-spacing = ##t
}
}
}Zitat von: harm6 am Donnerstag, 1. Januar 2026, 11:19Dein Code-Beispiel zeigt leider nichtJa, sehr berechtigte Fragen - die ich einfach deshalb vergessen hatte, weil sie in meinem Fall nicht vorkommen.
- ob die Beams über das Taktende hinaus gezogen werden sollen (so habe ich es jetzt gemacht)
- wie mit einzelnen Achteln zu verfahren ist: Beam oder Flag? (ich habe beide Möglichkeiten implementiert)
- ob nur Achtel bebalkt werden sollen oder alles was kürzer als eine Viertel ist? (ich habe letzteres gewählt)
- ob manuelle Beams noch möglich sein sollen?
,beamQuaver =
#(define-music-function (beam-all mus)((boolean? #f) ly:music?)
"Beam all continuing quaver (or shorter) notes.
CAVEAT: additional manual beaming disturbs.
"
(let* ((quaver '())
(single-quaver #f)
(quater-dur (ly:make-duration 2)))
;; Add beam to continuing quaver (or shorter) notes
(map-some-music
(lambda (m)
(and
(ly:duration? (ly:music-property m 'duration))
(or (music-is-of-type? m 'event-chord)
(music-is-of-type? m 'note-event)
(music-is-of-type? m 'rest-event))
(let* ((m-dur (ly:music-property m 'duration))
(rest? (music-is-of-type? m 'rest-event)))
(cond
((and (not rest?) (null? quaver) (ly:duration<? m-dur quater-dur))
(ly:music-set-property! m 'articulations
(cons #{ [ #} (ly:music-property m 'articulations)))
(set! quaver (cons m quaver)))
((and (not rest?) (pair? quaver) (ly:duration<? m-dur quater-dur))
(set! quaver (cons m quaver)))
((or rest? (and (pair? quaver) (not (ly:duration<? m-dur quater-dur))))
(if (= (length quaver) 1)
(set! single-quaver (car quaver))
(set! single-quaver #f))
(ly:music-set-property! (car quaver) 'articulations
(cons #{ ] #} (ly:music-property (car quaver) 'articulations)))
(set! quaver '())))
m)))
mus)
;; Special case: Deal with single quaver, relies on `beam-all`
(if (and single-quaver (not beam-all))
(let ((arts (ly:music-property single-quaver 'articulations)))
(ly:music-set-property! single-quaver 'articulations
(remove
(lambda (q) (music-is-of-type? q 'beam-event))
arts))
(set! single-quaver #f)))
;; Special case: Beam at end of music
(if (pair? quaver)
(begin
(ly:music-set-property! (car quaver) 'articulations
(cons #{ ] #} (ly:music-property (car quaver) 'articulations)))
(set! quaver '())))
;; Return
mus))
music = \relative {
c'8 d e f g r
d2
f8 g a b
r4 a8 b c d e f
r2 g,1 c8 d e f
r4
e8 r8
}
\score {
<<
\beamQuaver ##t \music
\beamQuaver \music
>>
\layout {
\context {
\Voice
\override Beam.breakable = ##t
}
}
}
\score {
\beamQuaver \repeat unfold 40 { b4 b8 16 8 8 8 }
\layout {
\context {
\Voice
\override Beam.breakable = ##t
}
}
}
\version"2.25.6"
music = \relative {
\override Beam.breakable = ##t
\overrideTimeSignatureSettings
4/4 % timeSignatureFraction
1/1 % baseMomentFraction
3,1 % beatStructure
#'()% beamExceptions
\time4/4 %erst damit werden die oberen Settings aktiv
c'8 d e f g r
d2
f8 g a b
r4 a8 b c d e f
r2 g,1 c8 d e f
r4f8f f f f f f f f r f f f f f f f f f f \break
f f f f f f f f f r f f f f f f f f f f f f f f f }
\score { \music }Was mich wundert: die letzten Noten sind (wegen des unvollständigen Taktes) nicht mehr gebeamed.\version "2.20.0"
music = \relative {
c'8 d e f g r
d2
f8 g a b
r4 a8 b c d e f
r2 g,1 c8 d e f
r4
}
\score { \music }