From: Paul Davis (paul_at_linuxaudiosystems.com)
Date: 10/23/03 15:16 EDT
Message-Id: <200310231916.h9NJGCEU012681@oud.linuxaudiosystems.com>
Subject: Re: [ardour-dev] Re: [Ardour-users] Ardour and Emagic/Mackie Logic Control
From: Paul Davis <paul@linuxaudiosystems.com>
Date: Thu, 23 Oct 2003 15:16:12 -0400
>mmm just tell me how I can start working on this. I don't know how ardour=
>=20
>engine works... As you said, it just need a "driver" for the LC that conv=
>ert=20
>incoming midi data to ardour function.
we don't have a thought-out "structure" for this right now. all
external MIDI control surfaces up to now are assumed to generate
generic MIDI CC messages. all relevant controls in ardour are derived
from a class called MidiControllable, which can be "bound" to a
port/channel/message tuplet. see libs/midi++/midicontrollable.cc for
details.
incoming messages on that port cause SigC::Signals to be emitted. any
object may be connected to these signals. the signals are currently
totally MIDI message-type-specific.
binding a MidiControllable means attaching a handler to the first
message type received (i.e. its dynamic: the user starts a bind
operation, tweaks a knob, the first message is, for example, CC17, so
we connect to the relevant signal). the handler calls a virtual
function ("set_value") which updates the relevant value. you need to
understand how virtual function calls work to understand how this
updates the "interesting" class object.
to handle the LC protocol will be more complex than this. the model is
not the same at all: its not dynamic: there are set mappings between
messages and changes in ardour. you can parse the messages by
attaching to the SysEx signal on the relevant input port. take a look
at how MMC is handled in libmidi++ to get a rough idea of what i mean
in terms of parsing sysex. but once you've parsed them, i don't know
at the moment what you should do with the results. it really is not
clear. with MMC, the functions are clearly defined and map very simply
to existing ardour objects. with LC, the flexibility in the
protocol/system means that the mapping is not so obvious.
--p
-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community? Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
Ardour-users mailing list
Ardour-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ardour-users
This archive was generated by hypermail 2.1.7 : 10/23/03 23:37 EDT