Re: [ecasound] Ecasound and midi?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

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
   files.

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
is transfered.

> 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!


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Tue Nov 19 2002 - 05:13:15 EET