- dynamics))
-
- ;;;;;;;;;
-
- ;; extract ancient-music groups before extracting default
- ;; accidentals, rests, etc. to prevent duplication.
- (define vaticana (get-group glyph-list "vaticana"))
- (define medicaea (get-group glyph-list "medicaea"))
- (define hufnagel (get-group glyph-list "hufnagel"))
- (define neomensural (get-group glyph-list "neomensural"))
-
- ;; remove neomensural before defining mensural; otherwise, searching
- ;; for "mensural" would return "neomensural" matches too.
- (set! glyph-list
- (filter-out-groups
- glyph-list
- "vaticana"
- "medicaea"
- "hufnagel"
- "neomensural"))
-
- ;; get the rest of the ancient-music groups
- (define mensural (get-group glyph-list "mensural"))
- (define petrucci (get-group glyph-list "petrucci"))
- (define solesmes (get-group glyph-list "solesmes"))
-
- ;; remove them from the glyph-list
- (set! glyph-list
- (filter-out-groups
- glyph-list
- "mensural"
- "petrucci"
- "solesmes"))
-
- ;; This would only get "rests.2classical".
- ;; We're leaving it with the other rests for now.
- ;; (define classical (get-group glyph-list "classical"))
- ;; (set! glyph-list (filter-out-groups glyph-list "classical"))
-
- ;;;;;;;;;
-
- ;; get everything else except noteheads.
- ;; * Some accidentals contain "slash" substring, so extract
- ;; "accidentals" before extracting "slash" (noteheads).
- ;; * Also use "pedal." not "pedal", for example, to prevent things
- ;; like "scripts.upedalheel" ending up in the "pedal." list.
- ;; * This doesn't apply to the ancient stuff because searching for
- ;; "vaticana." (as an example) would miss things like
- ;; "dots.dotvaticana"
- (define clefs (get-group glyph-list "clefs."))
- (define timesig (get-group glyph-list "timesig."))
- (define accidentals (get-group glyph-list "accidentals."))
- (define rests (get-group glyph-list "rests."))
- (define flags (get-group glyph-list "flags."))
- (define dots (get-group glyph-list "dots."))
- (define scripts (get-group glyph-list "scripts."))
- (define arrowheads (get-group glyph-list "arrowheads."))
- (define brackettips (get-group glyph-list "brackettips."))
- (define pedal (get-group glyph-list "pedal."))
- (define accordion (get-group glyph-list "accordion."))
-
- ;; remove them from the glyph-list
- (set! glyph-list
- (filter-out-groups
- glyph-list
- "clefs."
- "timesig."
- "accidentals."
- "rests."
- "flags."
- "dots."
- "scripts."
- "arrowheads."
- "brackettips."
- "pedal."
- "accordion."))
-
- ;;;;;;;;;
-
- ;; get special noteheads
- (define cross (get-group glyph-list "cross"))
- (define diamond (get-group glyph-list "diamond"))
- (define harmonic (get-group glyph-list "harmonic"))
- (define slash (get-group glyph-list "slash"))
- (define triangle (get-group glyph-list "triangle"))
- (define xcircle (get-group glyph-list "xcircle"))
-
- (define special-noteheads
- (append cross
- diamond
- harmonic
- slash
- triangle
- xcircle))
-
- ;; remove special noteheads from the glyph-list
- (set! glyph-list
- (filter-out-groups
- glyph-list
- "cross"
- "diamond"
- "harmonic"
- "slash"
- "triangle"
- "xcircle"))
-
- ;; (lazy solution)
- ;; any remaining glyphs containing "noteheads." should be shape-notes.
- (define shape-note-noteheads (get-group glyph-list "noteheads."))
-
- ;; remove shape-note-noteheads from the glyph-list
- (set! glyph-list (filter-out-group glyph-list "noteheads."))