lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: midi articulation


From: H. S. Teoh
Subject: Re: midi articulation
Date: Wed, 23 Mar 2016 21:44:18 -0700
User-agent: Mutt/1.5.24 (2015-08-30)

On Wed, Mar 23, 2016 at 05:21:13PM +0000, Daniel Birns wrote:
> Hi all,
> 
> Okay, I see what articulate.ly does. However… has anyone tried to do
> this within the midi generator. I debugged the python_midi.c file, and
> I can see what it’s doing. Geez, it seems like at the point where the
> midi file is being generated, lilypond ought to know everything about
> what’s the score, and ought to be able to apply articulation easily
> and much more correctly at that point.
> 
> Has anyone tried doing this? My guess is it’s nowhere near as easy as
> I think it should be. But, honestly, the midi files suck. As a
> Sibelius user, this is a showstopper — Sibelius does a beautiful job
> at this, and it seems like it shouldn’t be difficult for lilypond to
> do the same.
> 
> I’m a software developer — not python, nor guile , but just about
> everything else, but especially C++. I could do guile and python if
> needed. Perhaps I should try this, but is there interest? Do I have
> time for this? And why haven’t the others who know a great deal more
> about this than I do, done this?
> 
> Thanks. No criticism at all intended: I think lilypond is amazing. 
[...]

As far as I understand it (and I could be wrong), lilypond's original
authors did not regard midi support as important, as lilypond's original
mission was to typeset music and do it well.  So the original midi
support was tacked on as an afterthought and was pretty rudimentary, and
as far as I can tell, hasn't changed very much since then.  This was
probably one of the main reasons articulate.ly was invented in the first
place.

Be that as it may, I for one thing would be glad if somebody would take
the time to improve midi generation so that it's not so atrocious.  My
ideal conception of it is to have some kind of mapping mechanism for
translating notation into midi that offers the same configurability and
expressive power as the notation syntax itself, such that the user would
be able to, for example, specify how phrases should be rendered, whether
a particular Staff should emit Expression events for crescendos or
merely increment the velocity of the notes (as is currently done,
piano-style), how to translate breathing marks, or any mark, for that
matter (e.g., trill mark on a timpani Staff should emit tremolos or
switch to a different program for rolls).  The defaults ought to produce
pretty decent midi, but should be overridable by the user.

In any case, midi itself is rather limited, as the built-in limit of 16
channels is too restrictive for rendering large orchestral scores. For
this purpose I have written an auxiliary helper program that renders
individual StaffGroup's into separate midi files, to be separately
rendered by a software midi synth and then mixed into a single file
afterwards.  The program also generates suitable MIDI program switching
macros for implementing different articulations. Such functionality is
probably beyond the scope of lilypond, though conceivably one could
implement the necessary infrastructure for the user to be able to do
such things within lilypond itself, as opposed to resorting to external
tools.


T

-- 
"How are you doing?" "Doing what?"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]