lilypond-devel
[Top][All Lists]
Advanced

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

Re: MIDI restructuring


From: Michael Welsh Duggan
Subject: Re: MIDI restructuring
Date: Sun, 25 Apr 2004 20:15:03 -0400
User-agent: Gnus/5.110002 (No Gnus v0.2) Emacs/21.3.50 (gnu/linux)

Han-Wen Nienhuys  <address@hidden> writes:

> address@hidden writes:
>> I am looking at restructuring some of the MIDI code, in the hopes of
>> letting the user have a little more control over the output.  I have
>> looked carefully at the way things are currently done, and have a few
>> ideas how to go about doing this.  But I have several questions first:
>> 
>> 1) How tied is the performer abstraction to MIDI?  For example, we
>>    currently have Audio_staffs, which are mapped to channels.  I want
>>    to be able to be able to tweak (as a user) the definitions as to
>>    whether a particular voice, staff, staffgroup or score gets its
>>    own channel.  If performers are tied tightly to midi, I could
>>    rename these Audio_channels or Audio_tracks.  If not, maybe
>
>>    something more generic can be considered.  Ideas?
>
> No, unfortunately, I don't have specific ideas. The audio output has
> never been seriously considered, and it's not clear what it should be
> offering. Hence, there never was a generic design (A half-hearted
> attempt to add a separation between audio and MIDI was added though).

Just to let you know that I haven't disappeared yet.  My power-supply
died and my computer was dead for a couple of days.

I have started working on a rewriting of the way performance works, 
using the way Paper_score works as a guide.  In the same way as
Paper_score::process returns a set of systems, I want to make
Performance output a set of SCM "threads" (or "tracks",  or "channels",
or whatever you want to call them).  Scheme code will convert these
to MIDI (or something else) as needs be.

I'll let you know when I have something a little more concrete.  I
have started by creating a new type of Music_output -- a copy of
Performace.  I have also made copies of Score_performer and
Midi_def.  Basically I have created just enough duplication such that
I can have a \midi block and a \newmidi block side-by-side.  I can
then write the changeover as gradually as necessary and not have to
worry as much about conflicts in the constant CVS changes.  Besides,
I am particularly fond of the ouput_def separation in the codebase,
so I felt like I should use it.

Hopefully in a month or so (I don't have huge amounts of time to
devote to this) I will have a midi-output.scm library and enough glue
code to produce something similar to what the current code does.

-- 
Michael Welsh Duggan
(address@hidden)




reply via email to

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