Start/stop recording audio using MMC from hardware

I havent used GP in a while. I have been using a Tascam DA-3000 as a hardware recorder, and it worked well, but was only 2 channels. I want to use my PC as a substitute, but I want to record all the channels of my audio interface. I think I understand that manually starting and stopping recording in GP is straightforward, but what I want is to keep GP open for an entire “session” and every time I hit start and stop on my hardware sequencer transport, I want GP to start and stop recording new wav files that comprise all the channels of my audio.

The only DAW I know of that might accomodate this is Reaper, but this use case doesnt seem to be in their sweet spot and I really hate reaper. GP is more straightforward and since it is also scriptable, I wonder if it is possible to do what I want to do, whether it requires scripting or not.


Yes - this is definitely possible!

Here is the basic functionality…

Every time you stop and start a new recording with GP it will automatically create a new folder with a time-stamp containing the new recording for all the selected audio channels. This makes sure that you never overwrite anything and have a good sense of when a particular recording took place.

You can start your recording either immediately or you can schedule it and tell GP when to start recording.

Make sure you set your recording options the way you want them. Target folder, channels to record, bit depth etc…

Drop a button widget onto a panel, then switch to the advanced tab in widget properties and make sure you give that widget a handle (name) to be used in GPScript. Name it “btnRec”.

Open the rackspace script editor and paste the following code.

   btnRec : Widget

// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from btnRec
   If newValue > 0.5

If you now press that button it will start/stop you’re recording.
Because it’s a Gig Performer widget - you can lear MIDI to control it, use OSC or any other method available in GP for controlling widgets.

Hope this helps.


Excellent, this gives me a starting point.

Thanks for your quick response, this will save me a lot of time trouble and perhaps even money.

So I am not near my music computer where GP is installed - can GP record one WAV file per audio channel on my interface? I need “stems” of what is played in, so I can forward it to a collaborator who uses the DAW to mix.

Yes, one WAV file per channel. You can simply check the desired channels.

You can also record your MIDI input.

Check the user guide for more info: Capturing a Performance with the Audio Input and MIDI Recorders

1 Like

ok the midi part is stumping me. when I hit the transport on my sequencer, the midi monitor in GP shows
F0 7F 7F 06 01 F7 when I hit stop
F0 7F 7F 06 03 F7 when I hit play
F0 7F 7F 06 44 06 01 20 00 00 00 00 F7
F0 7F 7F 06 02 F7
when I hit “play start”

I tried hitting midi learn on my button, which does correctly toggle recording on and off, but the button does not respond to the midi messages.

edit - MMC are a kind of sysex event, I naively thought that MMC would be integral to the GP midi scripting API. I guess no one uses GP with external hardware like a midi controller? I cannot see any mention of global start/ stop in the scripting documentation, and in the global Midi, Play / stop does not respond to MMC from my hardware.

All the time!

However, unfortunately, widgets can’t learn Sysex messages at this time.

Nevertheless, it’s easy to use GP Script to send out Sysex messages to an external device.

Attached is a simple gigfile showing this conceptually.

MMC.gig (8.0 KB)

I need to start and stop recording when certain sysex (MMC) messages come into GP.

The widget was just a means to an end. Is there anyway to start and stop recording upon receipt of sysex messages more specifically MMC?

I guess I will have to find a DAW that is sufficiently scriptable but most DAWs are a mess and not actually geared towards recording of raw waves files.

Actually there are several solutions to address this. You can run an intermediate program that can convert sysex to CC and then pass those on to GigPerformer. Quite a few apps out there to do this depending on your platform. Quite a few of our users do this.

The next release of GP will have better support for such things as well. I regret that I cannot say when it will be released.

Ok thanks for the tip. I can buy something like that Bome software or write my own solution using rtMidi and portaudio in c++ or use python bindings.

Yes, bome midi translater is one of the options that a lot of people use.