[nama] Re: MIDI roadmap

  • From: Julien Claassen <julien@xxxxxxxx>
  • To: nama@xxxxxxxxxxxxx
  • Date: Sat, 20 Aug 2011 15:50:55 +0200 (CEST)

Hello Joel!
I know, that I've been very quiet of late, although I saw the threads, that were actively discussed. I'm sorry, but I was very distracted with other organisational matters and thought, I didn'thave to say much on the matters anyway. So I'll try to supply something to the roadmap below, since this is very important and should gain as much directed input as possible.

In Aug 20 A.D. 2011 Joel Roth scripsit:
[...]
a. Is latency sufficiently low?
From what I heard: yes! Not much data has to flow and I suspect that especially with JACK-MIDI, this should be taken care of.
b. Are there transport or sync issues when coupling Midish
  MIDI recording/playback with JACK MIDI
Sort of, I think. It depends on how well the relocation in Midish works. It shouldn't work automatically, so when jumping or otherwise setting location, Midish must receive an extra command for that. I wouldn't gamble my life on it thogh, perhaps the left foot. :-)
2. Identify or discover the MIDI device addresses
  of the MIDI controller device.
Should be done with configuration. Ecasound can only see the ALSAseq devices, These can be listed with aconnect -li and aconnect -lo respectively. Ecasound's -Md:alsaseq option allows specifying ALSAseq devices as either name or number. Names are preferrable, because numbers can change, especially with software ports. Even hardware can sometimes change without good reason, if you have loadabe kernel modules for your hardware or switch something. I think Midish as well can work with names.
3. Connect MIDI controller to effect parameter controller (-km)

4. Insert midish filter between MIDI controller and -km
3. and 4. seem one step, since I suspect the best thing would be to ave Midish connected to the controller and then optionally record and send the filtered data to Ecasound. That way, you can internally decide, which controller and channel Midish should send to Ecasound. Thus being able to record a huge number of controllers, which couldn't all be reached from a hardware control-surface. Midish offers extensive mapping capabilities. I'll look up the specific filters and send them later.
5. Midish writes automation curve
  A simple recording, instead of performance.
6. Associate automation curve with effect/parameter
You will have to do that, when doing 4. and 5. Only slight problem one might have, when allowing for general track curve modification, that you must take care of not having the same Real Hardware Controller for two effect parameters on the same track. Unless the user wants that. A thought to keep in mind, coupling of curves to multiple parameters...

7. Midish plays back automation, including feedback to control surface
Not sure, if that will work. At the moment I can't think of a life way of correcting curves. The playback is no problem though. A simple play command.

8. ability to edit automation, possibly live updating (touch mode)
  See 7.
9. Show/enable/disable automation curves for track/effect/parameter
Requires structured grouping of internal Nama data. You can mute traks in Midish. If you record each curve for a single parameter to a single track, you can mute and unmute as you like. I think Midish also has a solo feature. If not, I'm almost sure one can implement a Midish proc to mimic the behaviour and include it in a special Midish rc file.

10. Option to bind automation curves to track (general) or track/version
   (specific)
That is - I suppose - as difficult or easy as binding other parameters to specific track versions.
11. Jack session support
Well that of course is something, they are still debating and probably working on. Ecasound - to my knowledge - doesn't have Jack session support and won't for some time. It would be nice, but I think we'll have to live without it, since - as I understand it - it must be part of the software, which wants to enjoy the profits of Jacksession.




Tasks in recording MIDI tracks

(1), (2) and (11) as above.

3. Track/version logic for recording/selecting MIDI
  MIDI tracks to be similar to that for audio tracks
Midish doesn't have a versioning system. But if you take control of track creation, then you can create tracknames, like in the audio part of Nama. To avoid bad behaviour, at this point it would be wise to normally forbid the user to have direct access to Midish commands. A user might unmute two versions of the same track by hand. Perhaps allow such access for experts with something like "midish command" and only document it under diagnostics or advanced user functionality.

4. option to direct each Midish audio track through a Nama audio track
  for recording/monitoring/mixdown. Would provide pan/vol/mute/etc
  for each MIDI track.
Question to the GUI users of audio/MIDI software: How does software, that supports both MIDI and audio handle this? Do you get one track with the option to record audio or do you just create an audio track and set it to record, when you feel, that it's time? If one wants to link them and GUIs don't offer any help, I see two proposals from the top of my head: 1. Create an audio track, when you create a MIDI track and allow the normal operations on it, but set it to rec defeat. Perhaps offer one convenience command like activate/deactivate to toggle between rec and rec defeat on these tracks. 2. Offer a sort of bind or link command. so you can create a MIDI track and an audio track seperately and then at some point allowing to couple the two. In any case logic for this would be:
if MIDI_track->status == record then audio_track->status != rec.
probably if it was rec, set to rec_defeat, if it was mon or off, leave unchanged.

there are other minor issues, that might be debated, but first things first and I believe this whole list is more than enough to be getting on with.
  Warm regards
           Julien


--
Joel Roth



=-=-=-=-=-=-=-=-=-=-=-=-
Such Is Life: Very Intensely Adorable;
Frightening Absence Just Arriving, Reigns Disappeared, Ornate - flowers!

======      Find my music at      ======
http://juliencoder.de/nama/music.html
.....................................
"If you live to be 100, I hope I live to be 100 minus 1 day,
so I never have to live without you." (Winnie the Pooh)

Other related posts: