> On 12 Jan 2017, at 10:58, Jonathan Scholbach <j.scholb...@posteo.de> wrote:
> Dear Ponders,
> I have a feature wish, and I hope this is the right channel to utter it:
> I typeset choir pieces and in this field it is a big advantage of
> LilyPond that producing MIDI files with highlighted voices for each
> single voice is possible. Today I do this by defining a new book for
> each voice and by "highlighting" the respective voice - by increasing
> her volume and assigning her a distinct midiInstrument - see the
> attached MWE. The result is good and very usable for choirs to improve
> the individual practicing at home.
> But the input is ugly. The MWE works with only 2 voices and yet has a
> lot of repetitive code. Imagine a piece with 8 voices! The MIDI output
> for 8 highlighted voices would need hundreds of highly repetitive lines
> of LilyPond code. I wish there was a feature to produce the output with
> one line of code in the \midi{}-section of the pdf producing \score.
> LilyPond would have to loop over the voices in the score and produce a
> book as described in the MWE.
> I have tried to understand Scheme multiple times but I didn't make it
> yet. That's why I would be thankful if someone could write the Scheme
> function to achieve that. I think many typesetters of choir music would
> appreciate an easy way to produce the MIDI as described. (Actually,
> there are some guys around who do that with some other programmes, see
> [1], [2]). I believe most typesetters don't know the way how to do it
> with LilyPond today - that's why I think this would be a great benefit
> for the community.
> Kind regards,
> Jonathan
> [1] http://www.learnchoralmusic.co.uk/
> [2] http://www.choraltech.us/midilibrary.htm
> <midi with highlighted 
> voices.ly>_______________________________________________
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user

I have recently adopted the rehearsalMidi function that is hidden in the gridly 
part of the openlilylib snippets for this purpose


Creating the rehearsal-tracks for the different voices is then as easy as 
including a

\rehearsalMidi { \music } “voiceName”

for each voice that you want a rehearsal track for into your lilypond file (or 
even better: in the template for a specific voices arrangement that you include 
in your main lilypond file)

In my current setup I use:
- a main file for a song (eg MySong.ly)
- a subfolder with the same name as the song (eg MySong) containing the various 
voices which are all included by the main file (soprano.ly, alto.ly etc)
- a choral template (eg SATB.ly for the typical S-A-T-B vocal score) that 
expects music and lyrics of the voices present under predefined variable names 
that is included in the main file
- a file with the rehearsalMidi function that is included by the Choral 
template and used there to generate per-voice rehearsalmidis

It might even be possible to have it inspect the music and act and loop 
accordingly, but IMHO the one line per voice extra is too little overhead to 
bother trying to extend the code to automagically detect the present voices.

Kind regards,
lilypond-user mailing list

Reply via email to