Feature idea - Retrospective MIDI

This is not an original idea of mine but one I discovered (but have not used) in newer versions of Cubase.

Imagine you are sitting playing your MIDI keyboard which is hooked to your computer. Ardour is open but not recording anything. Possibly you are playing a VST that’s in Ardour or just listening to what’s coming out of your synth. You are either practicing or working on a composition and somewhere along the way you begin to develop a song idea that you don’t want to forget so that you can study and develop it later. You stop playing, click a button somewhere in Ardour and Ardour creates a new MIDI track and inserts MIDI from the last minute or two. The MIDI key down/up/velocity events are placed on the new track, not aligned with tempo or bars, just as rough data representing whatever was played. The MIDI track gets a name “RM-%DATE-%TIME”, no plugins and is muted.

You click save on the session and have the idea to come back to at a later time.


Sounds like something that could be (better) handled by a plugin, a midi buffer, as it were, but if you are interested in capturing your noodling (don’t be offended… noodling has its benefits), perhaps you should just have a standard session that you always start in Ardour before you compose/practice, you start the shuttle rolling, when you’re done practicing, you drag that region down to create a new region, rename it with the date and time, rinse and repeat. You’ll have the history of all your practices in one session. Just an idea :slight_smile:

Maybe one of x42’s midi plugins has a buffer-like function.

There are already plans to do this for audio.


It could be a plugin, certainly. However if you forget to place the plugin or for some reason don’t capture the right channel you might lose the idea.

The standard session idea doesn’t work for me. Maybe I’ve just laid down some drum beats in Ardour and I’m noodling around on the keyboard. The drums are in a loop and I’m experimenting with chords or a bass line, etc. 10 or 15 minutes go by. It’s all crap, and then something good happens. That’s what I want to catch.

Granted, there’s always some way to set up your DAW to catch this. I could leave Ardour in a loop and run a second program that captures all my MIDI all day. (Excessive just to make the point) What Steinberg has done is create a way for Cubase users to catch it without having to do much thinking ahead of time.

Ardour already has a MIDI monitor so I suspect just setting the depth of that buffer and filtering for a channel after capture, and then dumping it on a track somewhere probably doesn’t represent a lot of design risk.

wow, that sounds promising!
i hope midi implementation is being considered, too! :slight_smile:

Audio would be great also, although that sounds like potentially a lot more issues, like how many channels, which ones are live, system resources, etc., but would be nice to have.

Possibly doing MIDI first would be an opportunity to get user feedback but either way I’m glad you guys are thinking about it.

“plans” means that we’ve talked about it.

It’s a lot more complex than it appears (as usual).


On the audio side it sounds daunting.

On the MIDI side what Cubase offers (and I haven’t tested it myself) doesn’t appear to be much more than a cut & paste. I suspect what they are doing is just recording a normal track in the back ground and then giving access to it if you ask. As best I can tell it just shows up as raw MIDI note which I am left to do with what I please. For instance, there’s a bunch of chords which I cut away by snipping the region to keep the part I want. Personally I don’t imagine that I would ever use this data in a session. I’d review & learn the chords or melody later, and then replay & record them if I was going to use them.

I see it more like a pencil on a pad of scratch paper and possibly a good use of a button on an MPC type controller that has a keyboard.

Anyway, just wanted to communicate the idea for your consideration.

For audio, I use Steve Harris’ Timemachine, I have it on all the time and one can route the soundcards output to it. I have it to record anything that has happened in the last 3 minutes, and when I hit the GUI with the mouse, It will record everything I do - plus the previous three minutes. For MIDI, I use Pianoteq which records the noodling and makes a new midi file if a break is long enough. But if one does not have Pianoteq, Timemachine records everything that you can hear via the soundcard.

In Cubase it seems one of the main purposes is not so much about capturing your random noodling but saving your butt when you perform the perfect take but you forgot to hit record. Capturing CC data as well as velocity is vital for this purpose.

Fair enough, but what is being asked is for Ardour to be always listening, and somehow guarantee that you are all hooked up correctly (so, you basically want it listening to everything all the time)… which sounds like a big drain. Which is why I would still argue that a good session discipline may do you better in a lot of respects. Just my 2 cents.

1 Like

I guess there are many different points of view on this general idea which is good.

As for ‘a big drain’ it’s my assumption that there would be a preference that is default off and the user turns the feature on. If someone doesn’t find it valuable or isn’t using MIDI it’s no drain. I have 5 minute MIDI files for complete arrangements with 15 instruments that don’t often go above 100KB so it wouldn’t have to be a lot of memory or eventually disk space.

As a fairly terrible keyboard player I wasn’t suggesting capturing anything approaching a ‘performance’. I agree with others that at least minimal CC data might be valuable - velocity, after touch, maybe mod wheel, sustain pedal - but as a starting point for debug and testing that stuff could be added later.

In thinking about this last evening I changed my mind about creating a track or any of that. I think just having a buffer collecting so many minutes of MIDI data, possibly limited to a single default MIDI channel, and then when I push a button telling Ardour to save it writes nothing but a *.mid file to a known directory which is NOT part of the session would be ideal for me. I’m free to go back and look at it in the future if I want to. If I trash the session I don’t lose the idea.

Anyway, it’s just an unoriginal idea I wanted to share. I’ll leave it to others to decide what to do with it.

And the more I think about it the more I think the suggestion about a plugin might be the best idea. I’m both a Linux and Windows user, mostly Mixbus32C so a plugin designed for both OS’s would be great and probably get to my desktops sooner.

Additionally it is a bit more Linux-like to do small apps that do one thing well.

FWIW: the (native Linux) standalone Pianoteq GUI supports this usecase (implicitly recording MIDI segments) perfectly, without ever coming close to stressing CPU / IO on my now-rather-elderly system. I’ve found it super useful to sit noodling to find a bit of sound (melody, chords, whatever), and then export to a file for later load into Ardour.

Pianoteq preserves a circular buffer of maybe ten segments, broken at “empty” stretches (maybe 15 or 30 seconds without a note?)

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.