Transpose with Ripchord

A quick Sunday morning script. I am using Ripchord with GP4.8.2 and also transpose from practice to live. Ripchord does not transpose nicely. The problem is the output of Ripchord is not transposed and it does not expose a control parameter allowing the output to transpose. This means all the chord patterns have to be moved for live use.

I decided to add a couple of lines of script to get it playing nicely. This is a scriptlet and can be inserted in the Ripchord MIDI path. Setting the input parameter of the scriptlet to zero (default) adds the global transpose to the MIDI data, and setting it to one removes the transpose from the midi data.

var global_remove : Subrange Parameter 0..1 = 0
On NoteEvent(m : NoteMessage)
    If global_remove != 0 Then
        m = MakeNoteMessage(GetNoteNumber(m)-GetGlobalTranspose(), GetVelocity(m))
    Else
        m = MakeNoteMessage(GetNoteNumber(m)+GetGlobalTranspose(), GetVelocity(m))
    End
    SendNow(m)
End

There are two ways to utilise this with Ripchord, the first is to put the scriptlet after ripchord and check the Ignore global transpose checkbox in the MIDI in block. The output scriptlet has the parameter set to 0 (default) to add the global transpose to the Ripchord output.

The second is to wrap Ripchord with the scriptet either side. The input scriptlet has the parameter set to 1 to remove the global transpose, allowing the Ignore global transpose checkbox to remain unchecked (defaut).


Using either option, the patterns in Ripchord remain in the same place and transpose correctly regardless of the GP global transpose setting.

1 Like