well, i’ve completed a lot of functions for use with liveapi.
these are just control. none of the request functions have been written yet.
these functions will be able to be called from any midibox application you’re writing and the script will respond. i believe there will be enough available control that you don’t have to even touch liveapi or python.
i’ve also figured out how to get live to tell the midibox when anythign has changed, and the midibox will simply run a function. so, for example, if you send out the command to increment master volume, you won’t have to track the volume in your code. when the volume is changed, live will automatically report back what the volume has been set to (all knob/fader functions are increment/decrement so no parameter jumping) and you can just update your display.
in case anybody’s curious, here’s what i’ve got so far (functions to be sent from a midibox). something like setMasterRecord would be sent as setMasterRecord(on). pretty damn easy :). if anybody has some items they think i’ve missed from master controls or track specific controls (track plugin code hasn’t been started yet) let me know. there’s a few methods i can’t find, but i think i will find them eventually. i can’t find how to switch session/arrangement view, for one, but mackie does it so the capability must exist. if anybody is familiar with python and knows how to use decompyle, please let me know.
void setMasterPlay();
void setMasterStop();
void setMasterRecord(unsigned char state);
void setMasterFollow(unsigned char state);
void setMasterOverdub(unsigned char state);
void setMasterBackToArrangement();
void setMasterPunchIn(unsigned char state);
void setMasterPunchOut(unsigned char state);
void setMasterLoop(unsigned char state);
void setMasterSongTime(unsigned char incrementer, unsigned char scale);
void setMasterLoopStart(unsigned char incrementer, unsigned char scale);
void setMasterLoopLength(unsigned char incrementer, unsigned char scale);
void setMasterQuantization(unsigned char incrementer);
void setMasterTempo(unsigned char incrementer, unsigned char scale);
void setMasterSignatureNumerator(unsigned char incrementer);
void setMasterSignatureDenominator(unsigned char incrementer);
void setMasterGrooveAmount(unsigned char incrementer);
void setMasterMetronome(unsigned char state);
void setMasterVolume(unsigned char incrementer, unsigned char scale);
void setMasterPan(unsigned char incrementer, unsigned char scale);
void setMasterCueVolume(unsigned char incrementer, unsigned char scale);
void setMasterCrossfader(unsigned char incrementer, unsigned char scale);
void setMasterReturnAmount(unsigned char incrementer, unsigned char scale, unsigned char returnNumber);
void setMasterSendAmount(unsigned char incrementer, unsigned char scale, unsigned char returnNumber, unsigned char sendNumber);
void setMasterReturnPan(unsigned char incrementer, unsigned char scale, unsigned char returnNumber);
void setMasterReturnMute(unsigned char state, unsigned char returnNumber);
void setMasterReturnSolo(unsigned char state, unsigned char returnNumber);
void setMasterReturnCrossfade(unsigned char state, unsigned char returnNumber);
void setMasterPlayScene(unsigned char scene);
void setMasterStopAllClips();
void setMasterDrawMode(unsigned char state);
void setTrackVolume(unsigned char incrementer, unsigned char scale, unsigned char channel);
void setTrackPan(unsigned char incrementer, unsigned char scale, unsigned char channel);
void setTrackMute(unsigned char state, unsigned char channel);
void setTrackSolo(unsigned char state, unsigned char channel);
void setTrackSendAmount(unsigned char incrementer, unsigned char scale, unsigned char sendNumber, unsigned char channel);
//not implemented void setTrackCrossfade
void setClipPlay(unsigned char clip, unsigned char channel);
void setClipStop(unsigned char clip, unsigned char channel);
void setClipNudge(unsigned char direction, unsigned char amount, unsigned char clip, unsigned char channel);