lilypond-user
[Top][All Lists]
Advanced

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

Re: dynamic and midi velocity


From: Philippe Hezaine
Subject: Re: dynamic and midi velocity
Date: Fri, 19 Feb 2010 12:08:16 +0100
User-agent: Thunderbird 2.0.0.23 (X11/20100124)

Brett McCoy a écrit :
On Thu, Feb 18, 2010 at 7:27 PM, Peter Chubb
<address@hidden> wrote:

I had a quick look at what it would take to generate notes with
different velocities instead of just CC 7 events.  It's harder than it
should be: dynamic events always come after the notes they affect, so
I couldn't see an obvious/easy way to get the current dynamics while
processing a note, ...

Sorry for my bad English but may be this can help you.
When I was beginning the Drummer's "Gigsaw" I was using mididings which
is a Python app. It takes me a lot of time to understand why I always
get a few errors when I processed CC7-to-velocity.py (a script Dominic
Sacré especially wrote for this case). Finally I had to give up
mididings because it was unable to convert the midi output of Lilypond
which is not clean (an odd thing (bug?)). Dominic's answer was: Nothing
to do with mididings in this case. Fortunately I found midicomp.
 In the current Gigsaw's ugly hack I've found a solution. Here is the
excerpt in question:

" lancer midicomp pour obtenir le ascii
" Launch midicomp and get the ascii
:silent! !midicomp -vt MY-SONG.midi > MY-SONG.asc
:w!
"
" Ouvrir le .asc
" Open the .asc
:gvim MY-SONG.asc
"
" A cause d'une bizarrerie dans la sortie midi de Lilypond, rectifier
l'ordre d'apparition des Param
" Because of an odd thing (bug?) in the Lilypond's midi output, I
correct the range of Param
:silent! g/\(.*\)On.*\n\1Param/normal ddp
:w!
"
" Seulement maintenant copier les valeurs des Param vers les Note On
" Now i can paste the Param values to the Note On
"autre commande possible
"one another command
""""""""""":g/On/s/127/\=matchstr(getline(line('.')-1), 'val=\zs\d\+')
:silent! %s/val=\(\d\+\).*\n.*On.*vol=\zs\d\+/\1/
:w!
"
" Effacer toutes les lignes  Param
" Delete all the Param line
:silent! g/Param/d
:w!
"
" Retransformer le ascii en midi en l'envoyant dans MA-BASE
" Transform again the .asc to midi >  MY-BASE
:silent! !midicomp -c MY-SONG.asc > MY-SONG.midi


...nor is it obvious to me how to get at notes in the
same voice as a dynamic indication at the same timestep.

In the Gigsaw each element of a chord burst out in its own variable,
hence a track for each drums instrument (or Voice, here I mean Voice in
a musical sense, ie. a fugue with 4 voices). It becomes a linear format.


Nor is it obvioous to me how to tell which voices dynamic indications
should be applied to.  Sometimes they should be for several (e.g.,
centered piano dynamics), sometimes just to the voice they are
attached to. And there's still the issue of handling what instruments
are capable of, and adjusting expression accordingly.

There are three classes of instruments I can think of:
 1.  Instruments that play at a fixed volume no matter what you do:
     -- harpsichord, most organ stops, recorder, etc.
 2.  Instruments where the volume is determined at the start of a
     note, but you can't change it afterwards:
     -- piano, clavichord, most percussion, plucked strings, etc.
 3.  Instruments that can change volume anywhere -- most woodwinds and brass,
     swell stops on the organ, etc.

So I'm leaving it in the `too hard' basket for now.
... [skip]

-- Brett

Cheers.
--
  Phil.







reply via email to

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