lilypond-user
[Top][All Lists]
Advanced

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

Re: A Midi question


From: H. S. Teoh
Subject: Re: A Midi question
Date: Tue, 11 Sep 2018 16:43:32 -0700
User-agent: Mutt/1.10.1 (2018-07-13)

On Tue, Sep 11, 2018 at 03:15:48PM -0700, foxfanfare wrote:
[...]
> So I guess there is no solution for my first problem than re-write all
> the nuances and pedal markings with the notes input instead of
> variables if I want to improve the audio output?
[...]

Generally, the way I've been dealing with Lilypond and midi output is to
separate generate the layout score and the midi score.  Of course,
nobody wants to type in the same music twice just to be able to make the
midi not make your ears bleed without making the printed score a mess,
so I generate both from the same input.  Here's how I do it:

        music = {
                % Stuff that works for both printed score and midi:
                a4 b c d e f g

                % Stuff that requires extra midi markings, e.g. manual
                % dynamics to control expression that you don't want to
                % actually print in the score:
                a-\tag #'midi \fff\> b-\tag #'midi \ff

                % Stuff that basically requires completely different
                % inputs to make the midi sound sane (e.g., spelling
                % exactly how you want a trill played instead of
                % fighting with Lilypond and/or articulate.ly):
                \tag #'layout { a1\trill }
                \tag #'midi { \tuplet 17/16 \repeat unfold 7 { a16 b } a gs a }

                % More stuff in common
                g8 a b c d e f
        }

        % This score is only for layout. Remove all midi-specific stuff.
        \score {
                \removeWithTag #'midi \music
                \layout {}
        }

        % This score is only for midi. Remove all layout-only stuff.
        \score {
                \removeWithTag #'layout \music
                \midi {}
        }

Depending on your needs, you can do more than just \tag-ging midi vs.
layout stuff in your input.  For example, I compose polyphonic music
that I want to typeset in a 2-staff piano score, but for better midi
control I prefer to split the voices into separate staves in the midi
output. Generally, this is so that I can apply dynamics separately to
each voice (Lilypond has a tendency of messing up midi dynamics
otherwise) that in the printed score should only be printed once.

        voiceA = ...
        voiceB = ...
        voiceC = ...
        voiceD = ...
        dynPart = {
                s1\ff
                s1\p
                % ... etc.
        }

        % For printed score, use 2 staves shared between pairs of
        % voices.
        \score {
                \removeWithTag #'midi
                \new PianoStaff <<
                        \new Staff = "rhs" <<
                                \voiceA
                                \voiceB
                        >>
                        \new Dynamics \dynPart
                        \new Staff = "lhs" <<
                                \voiceA
                                \voiceB
                        >>
                >>
                \layout { }
        }

        % For midi output, output each voice in a separate Staff.
        \include "articulate.ly"
        \score {
                \articulate
                \removeWithTag #'layout
                <<
                        \new Staff = "rhs" << \voiceA \dynPart >>
                        \new Staff         << \voiceB \dynPart >>
                        \new Staff = "lhs" << \voiceC \dynPart >>
                        \new Staff         << \voiceD \dynPart >>
                >>
                \midi { }
        }

In extreme cases, esp. in orchestral music, sometimes I set it up so
that each voice / instrument is output as a separate midi, and played by
a software synth with different parameters (e.g., for individually
controlling reverb, panning, and other effects, and also as a workaround
for the 15-channel limit in midi when I have more than 15 parts), then
blended together with a post-processing tool.


T

-- 
Insanity is doing the same thing over and over again and expecting different 
results.



reply via email to

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