View Issue Details

IDProjectCategoryView StatusLast Update
0005474ardourfeaturespublic2013-05-20 21:12
Reporterdjbarney Assigned To 
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status newResolutionopen 
Summary0005474: Allow feature to pipe out and/or return MIDI data from external MIDI CLI or scripts
DescriptionThe June 2013 issue of Linux Magazine had a favorable review of Ardour 3 that contains the following quote ...

"I'm happy about Ardour3's MIDI sequencing capabilities, but I'm ready for the next level. I'd like to see routines for generating and transforming MIDI data in compositionally useful ways (e.g, retrograde, inversion, mapping, harmonic transposition, randomizations, and so forth)." p42

The Linux CLI environment is a set of common tools (GNU tools) that can manipulate data/media using shell scripts or scripting languages like Python. Python already has MIDI modules available for it. Here are some examples of the CLI tools that are available out there ...

* http://das.nasophon.de/mididings/ - Python
* http://www.midish.org/ - Command line (2012)
* http://www.sreal.com:8000/~div/midi-utilities/ - Command line (2012), looks more in line with Linux philosophy

This might allow Ardour to stay focused on its own set of MIDI manipulation tools while allowing the user greater flexibility and access to exotic/innovated manipulation/generation of MIDI through the CLI/Script interface.
Additional InformationI think MIDI files can already be manually exported and manipulated in this way, but it might make things easier if there is an actual implemented send/return path for that kind of processing that can be linked to user defined routines (CLI/Python) that are listed in a user defined MIDI functions menu.
TagsNo tags attached.

Activities

x42

2013-05-18 15:00

administrator   ~0014928

You can already "pipe" send/return jack midi data just using jack ports. and use any jack application to modify it in realtime.

However this does not allow for automation / sync with the ardour timeline (unless the external application also syncs to jack-transport or..)

Allowing LV2 plugins to modify MIDI data directly from Ardour's mixer is on the TODO list.

As for destructively algorithmically editing MIDI snippets on the timeline.. Uhm. Dunno if that's a good idea in ardour itself..

x42

2013-05-19 16:32

administrator   ~0014930

Since revision 3.1-82-gdb39613 Ardour3 allows to chain LV2 midi plugins.
ie. plugins can filter/rewrite MIDI events on the fly and synths can send MIDI feedback.

djbarney

2013-05-20 16:58

reporter   ~0014936

I see. So I could write or encourage someone to write an LV2 plugin that ports the MIDI date to external command line programs and scripts. Thanks.

x42

2013-05-20 17:17

administrator   ~0014937

Just use jack midi ports.

Mididings for example supports that already. midish will work (via a2jmidi)..

djbarney

2013-05-20 21:12

reporter   ~0014939

OK, thanks for the advice.

Issue History

Date Modified Username Field Change
2013-05-06 14:54 djbarney New Issue
2013-05-18 15:00 x42 Note Added: 0014928
2013-05-19 16:32 x42 Note Added: 0014930
2013-05-20 16:58 djbarney Note Added: 0014936
2013-05-20 17:17 x42 Note Added: 0014937
2013-05-20 21:12 djbarney Note Added: 0014939