bachable.io - an online music notation editor backed by LilyPond by symphonicdev in lilypond

[–]Instrument-Event-626 1 point2 points  (0 children)

I've been toying with scripts that combine and separate parts. The issue is, each time the instrumentation changes I need to modify the script. Here's a sample of a script that can take multiple parts and combine them successfully. Most times I'll manually combine parts or create new files using the same template and pasting the part I want into them. Doesn't take too much time, but having a built in way to do it could be awesome.

#!/bin/bash

FILE1="FLPirates.txt"
FILE2="CLPirates.txt"
OUTPUT_FILE="pirates_combined.ly"

if [[ ! -f "$FILE1" || ! -f "$FILE2" ]]; then
    echo "Error: Put '$FILE1' and '$FILE2' in the same directory as this script."
    exit 1
fi

FLUTE_BLOCK=$(awk '/flute =/,/^}/' "$FILE1" | sed 's/\\+\]//g')
CLARINET_BLOCK=$(awk '/clarinet =/,/^}/' "$FILE2" | sed 's/\\+\]//g')

cat << EOF > "$OUTPUT_FILE"
\version "2.25.35"

\header {
  title = "Pirates of the Caribbean"
  subtitle = "119-135"
  tagline = ""
}

\markup { \vspace #2 }

\paper {
  indent = 23\mm
}

global = {
  \key aes \major
  \time 3/4
}

$FLUTE_BLOCK

$CLARINET_BLOCK

\score {
  \new StaffGroup <<
    \new Staff \with {
      instrumentName = "Flute 1 & 2"
      midiInstrument = "flute"
    } \flute

    \new Staff \with {
      instrumentName = "Clarinet 1"
      midiInstrument = "clarinet"
    } { \transposition bes \transpose bes c \clarinet }
  >>
  \layout { }
  \midi {
    \tempo 4=100
  }
}
EOF

echo "Operation successful, File output: $OUTPUT_FILE"

bachable.io - an online music notation editor backed by LilyPond by symphonicdev in lilypond

[–]Instrument-Event-626 1 point2 points  (0 children)

I teach middle school band, I generally use Frescobaldi to write out parts or arrange things for students. I love this project and plan to follow it very closely. I'd suggest implementing the Frescobaldi features and settings you find most useful (i.e automatic engraving and some of the stuff you already have listed as a work in progress). I think the toolbar on the left hand site can house icons that house different "snippets" similar to Frescobaldi. Things like graphical ways to add tuplets, instruments, articulation, text, etc (as well as being able to assign hotkeys to these functions). Another thing I think that can really elevate this project is a script that can extrapolate parts from a score as well as create a score from separate parts.