Hi,
Is it possible to configure in the front panel a button to start and stop the rack (instead of the small button in the top)? And also to configure a time indicator how long the rack space is playing?
Hi,
Is it possible to configure in the front panel a button to start and stop the rack (instead of the small button in the top)? And also to configure a time indicator how long the rack space is playing?
Yes that is possible.
And what do you mean by rackspace playing?
Do you mean the time spent since the global play has been started?
Yes, or it would even be better if you could see in GP the measure count from Ableton.
Ok, so you want to see bar:beat?
Important, enable LINK in Ableton Live and Gig performer.
Try this:
PlayHead.gig (10.3 KB)
And this is the script used in the rackspace:
//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
START_STOP : Widget
DURATION : Widget
beat : Widget
vtimer : double
vtimer_run : double
v_beat : Integer
v_counter : Integer
v_bar : Integer
v_pointer : String
//$</AutoDeclare>
initialization
SetTimersRunning(false)
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
end
// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from START_STOP
if newValue > 0.5 then
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
EnablePlayhead(true)
SetTimersRunning(true)
vtimer = TimeSinceStartup()
else
EnablePlayhead(false)
SetTimersRunning(false)
end
End
On TimerTick(ns : double)
vtimer_run = TimeSinceStartup() - vtimer
Print(vtimer_run/1000.0)
DURATION.SetWidgetLabel(Round(vtimer_run/1000))
End
On BeatChanged(Bar : Integer, Beat : Integer, Subbeat : Integer)
v_counter = v_counter+1;
v_beat := v_beat+1;
if v_beat == 5
then v_bar = v_bar+1;
v_beat = 1;
end;
v_pointer = IntToString(v_bar)+"."+IntToString(v_beat)
SetWidgetLabel(beat, v_pointer)
End
on Activate
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
end
Thanks this works for me. WHen there is already a script in the rackspace, do you have to define a new script tab or just paste the new script under the old script?
As each rackspace can only have 1 script you have to merge my code into your existing code.
Oh…I think for that you need quite some computer knowledge. This script is in de rackspace (is also one of yours). How to merge them?
var mOSC : OSCMessage
mOSCP : OSCMessage
mOSCT : OSCMessage
// Called on attempt to change playhead status
On SystemEvent(newValue : double) Matching PlayheadStateChanged
if newValue == 1.0 then
EnablePlayhead(true)
//Start = MakeControlChangeMessage(112,127)
//SendNowExternal(ABLETON, Start)
OSC_SetAddress(mOSC, "/LaunchScene")
OSC_SendSpecific(mOSC, "127.0.0.1", 8000)
else
EnablePlayhead(false)
end
End
on Activate
OSC_SetAddress(mOSCP, “/SelectScene”)
OSC_AppendIntArg(mOSCP, 0)
OSC_SendSpecific(mOSCP, “127.0.0.1”, 8000)
OSC_ClearArgs(mOSCP)
OSC_SetAddress(mOSCP, “/SetSongName”)
OSC_AppendStringArg(mOSCP, GetRackspaceName())
OSC_SendSpecific(mOSCP, “127.0.0.1”, 8000)
OSC_ClearArgs(mOSCP)
end
Here the merged code:
//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
START_STOP : Widget
DURATION : Widget
beat : Widget
vtimer : double
vtimer_run : double
v_beat : Integer
v_counter : Integer
v_bar : Integer
v_pointer : String
mOSC : OSCMessage
mOSCP : OSCMessage
mOSCT : OSCMessage
//$</AutoDeclare>
initialization
SetTimersRunning(false)
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
end
// Called on attempt to change playhead status
On SystemEvent(newValue : double) Matching PlayheadStateChanged
if newValue == 1.0 then
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
SetTimersRunning(true)
vtimer = TimeSinceStartup()
EnablePlayhead(true)
//Start = MakeControlChangeMessage(112,127)
//SendNowExternal(ABLETON, Start)
OSC_SetAddress(mOSC, "/LaunchScene")
OSC_SendSpecific(mOSC, "127.0.0.1", 8000)
else
EnablePlayhead(false)
end
End
// Called when a widget value has changed
On WidgetValueChanged(newValue : double) from START_STOP
if newValue > 0.5 then
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
EnablePlayhead(true)
SetTimersRunning(true)
vtimer = TimeSinceStartup()
else
EnablePlayhead(false)
SetTimersRunning(false)
end
End
On TimerTick(ns : double)
vtimer_run = TimeSinceStartup() - vtimer
Print(vtimer_run/1000.0)
DURATION.SetWidgetLabel(Round(vtimer_run/1000))
End
On BeatChanged(Bar : Integer, Beat : Integer, Subbeat : Integer)
v_counter = v_counter+1;
v_beat := v_beat+1;
if v_beat == 5
then v_bar = v_bar+1;
v_beat = 1;
end;
v_pointer = IntToString(v_bar)+"."+IntToString(v_beat)
SetWidgetLabel(beat, v_pointer)
End
on Activate
v_counter = 0
v_beat = 0
v_bar = 1
v_pointer = "1.1"
SetWidgetLabel(beat, v_pointer)
OSC_SetAddress(mOSCP, "/SelectScene")
OSC_AppendIntArg(mOSCP, 0)
OSC_SendSpecific(mOSCP, "127.0.0.1", 8000)
OSC_ClearArgs(mOSCP)
OSC_SetAddress(mOSCP, "/SetSongName")
OSC_AppendStringArg(mOSCP, GetRackspaceName())
OSC_SendSpecific(mOSCP, "127.0.0.1", 8000)
OSC_ClearArgs(mOSCP)
end
Thanks