Subject: Re: [ecasound] Ecasound and midi?
From: Kai Vehmanen (k_AT_eca.cx)
Date: Tue Nov 19 2002 - 05:16:25 EET
On 10 Nov 2002, Nolan J. Darilek wrote:
> I'm trying to use a simple setup. I'd like to use midge to create midi
> tracks, send them to my keyboard to hear how they sound, then allow my
> keyboard to render them for mixing with guitar, vocals, etc. I'm
> curious, though. How much of this can be done from within ecasound? I
At the moment ecasound doesn't have any code that handles "musical" MIDI
data (playing notes, patch changes, etc).
> can record any data coming from my keyboard, but is it possible to
> stream the midi data through the midi port, instead of relying on
> timidity to convert it?
Unfortunately this is not possible at the moment. To have true
MIDI-output, ecasound would have to contain a MIDI-sequencer engine. The
basic problem is that you just can't dump MIDI-events to some MIDI-port (a
soft synth or external synth), but you need to schedule them and send them
at the right time (and be aware of current tempo, manage different tracks,
MIDI-channels, etc, etc).
But as it happens, MIDI integration is something that interests me
personally very much at the moment, so I'm looking at the alternatives.
The primary options are:
1) Forget ecasound and use an integrated audio+MIDI sequencer.
Currently especially Rosegarden-4 and MusE are looking really
nice. I probably won't be choosing this myself ;), but if you
need this functionality and can live with a GUI, I recommend
trying these apps out.
2) Integration through JACK. This is an area I've spent most of
time with. JACK contains a transport API that enables to operate
multiple applications in sync (ie. when you press play in
one app, all will start from the same position). Ecasound already
supports this and I expect many other apps to do the same
in the future. Basicly, you'd just need some MIDI-sequencer
app that supports the JACK transport API and that's it.
It remains to be seen how usable this approach really is.
Personally I'd really like to see JACK support added to
some of the more compact sequencers like ttrk or soundtracker.
3) Adding a MIDI-sequencer engine to ecasound (either a ready
engine package like TSE3, or implementing one from scratch,
possibly for instance using the ALSA sequencer API for
scheduling). This would be a _big_ task... and you'd still
need a separate probram for creating and editing the midi
4) Syncing with MMC/SMTPE/etc. Ecasound could be synced
to either a sw or external hw sequencer using some
existing protocol(s). Due to various technical problems
that arise from audio syncing, it's uncertain whether
this approach could really work well enough.
> Also, I've noticed that ecasound can transmit
> some midi messages. Are these generally used for allowing effects to
> be manipulated from external controllers?
- controlling effect parameters in real-time with MIDI-CCs
- send MMC (midi machine control) start and stop
- send MIDI start and stop (but not MIDI-sync clock)
- you can use MIDI-files as inputs (uses Timidity++ to render
the files to PCM data)
So basicly MIDI-input is used for controlling effect
params, while MIDI-ouput is used for sending start/stop
commands via various protocols. So no "musical" MIDI data
> Or is it possible to
> start/stop external sequencers, such that I can store my midi data
> externally, starting the sequencer at the correct time? What about
This is possible already (by sending MMC), but I haven't yet tested how
well this _really_ works. I have a Yamaha Rm1x hw sequencer at home, and I
can succesfully start and stop it from ecasound using MMC. But this is a
bit clumsy as you always have to start from the beginning.
There's also the risk of clock drift. Basicly if either the Rm1x's clock,
my soundcard's clock or both of them drift (=speed changes slightly during
processing), this will cause problems. For instance, if you record
multiple audio tracks against the sequencer track, the tracks might not be
synced when mixed together.
> capturing data from external midi devices? Can ecasound capture my
> performances and store them in a GM file?
Nope. The MIDI sequencer engine would be needed also for this.
-- http://www.eca.cx Audio software for Linux!
This archive was generated by hypermail 2b28 : Tue Nov 19 2002 - 05:13:15 EET