I am looking for a way to beat sync arpeggiator to the next beat/downbeat similar to what I can do in Ableton. My church uses Ableton for click and tracks. I would like to have GP linked and be able to use temp synced arps etc and be locked in with the click so if if play a hair early or late it will play the next arp not on the next beat instead of right when I press the key.
I’ve been messing around with it using Live running on my same MacBook as GP. The temp links ok and when I change the tempo in Live it changes in GP. But I can’t seem to get the arp to sync to the next beat.
Try this rackspace script.
The Idea is that played notes are remembered in a Note Tracker and sent from the MIDI IN block when a Widget is pressed.
//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
MIN : MidiInBlock
nt : NoteTracker
ARP : Widget
i : Integer
//$</AutoDeclare>
On NoteEvent(m : NoteMessage) from MIN
NoteTracker_GotNote(nt, m)
if IsNoteOff(m) then
SendNow(MIN,m)
end
End
// Called when beat changes
// Only beat number is valid for now
On BeatChanged(bar : integer, beat : integer)
if ARP.GetWidgetValue() == 1.0 then
For i = 0; i < 128; i = i+1 Do
if NoteTracker_GetSpecificNoteOnCount(nt, i) > 0 then
SendNow(MIN, MakeNoteMessage(i,100))
end
end
end
End
You can remove the check against the widget value, then the note are always sent out with the next beat.
//$<AutoDeclare>
// DO NOT EDIT THIS SECTION MANUALLY
Var
MIN : MidiInBlock
nt : NoteTracker
nn : Integer Array
i : Integer
//$</AutoDeclare>
On NoteEvent(m : NoteMessage) from MIN
NoteTracker_GotNote(nt, m)
if IsNoteOff(m) then
SendNow(MIN,m)
end
End
// Called when beat changes
// Only beat number is valid for now
On BeatChanged(bar : integer, beat : integer)
nn = NoteTracker_GetHeldNotes(nt)
For i = 0; i < Size(nn); i = i+1 do
SendNow(MIN, MakeNoteMessage(nn[i],100))
end
NoteTracker_Clear(nt)
End