How would one setup a C0 to C1 momentary note toggle to play a bass harmonic sound for ample Jaco Bass when I am playing left hand bass?

Hello all,
I have the latest version of GP, a quad midi expression usb adapter and a sustain pedal and the bass library harmonic sound I am attempting to enable when I press the sustain pedal is the harmonic sound from Jaco Bass plugin.

What I would like is create some kind of a configuration to have C0 pressed anytime the sustain pedal is not being used and when pressed momentarily let go of C0 and press C1 and when the sustain pedal is released return to the original setting.
I was initially able to make this work with an organ preset bar on my DMC-122 controller but this is unwieldy and it prevented me from using those bars for controlling Hammond type sounds which is why I wanted to control this feature from the floor instead.

Can anyone advise a configuration that will allow me to do this with my existing hardware?
The MIDI expression pedal does not seem to have an option in its own programming to do this with a sustained pedal which is why I’m hoping there might be some way of coming up with a work around through GP.

Thank you
Curt Foster

OK I try to understand:
When the sustain pedal is pressed then C0 should be released and C1 should be pressed?
When sustain is released then C1 should be released and C0 should be pressed?

Seems you describe a solution for a problem.
What is the problem you want to solve?

maybe you need something like this

Sustain note until other note is played

Hi Curt,
you may try the rackspace that i’ve attached…
I had to involve some scripting to make it work properly.
There are two buttons… the first one will start and stop the sound playing, the second one plays the second note. You should MIDI-learn this second button to your sustain pedal.
I used an OSC-Midiblock just to receive the commands from the script (please replace the synth plugin with your own).
Within the script you can edit which notes will be played and which velocity wil be used to do this.
The variables for this are located in the “Initialization” block and the meaning should be understood quite easily.
This is the script which is contained in the rackspace:

btn_onoff, btn_1up : widget
midi_dummy : MidiInBlock

note1, note2, velocity : Integer

//Change the values to yur own needs
    note1 = C2
    note2 = C#2
    velocity = 100

//when the "ON/OFF" button is pressed
On WidgetValueChanged (b_val : double) from btn_onoff
    If b_val > 0.6 Then //if the button is switched ON
        SendNow (midi_dummy, MakeNoteMessage (note1, velocity)) //play note1
    Else //if the button is OFF,
        AllNotesOff(midi_dummy) // stop all note from playing

//when the "1 UP" button is pressed
On WidgetValueChanged (b_val : double) from btn_1up
    If b_val > 0.6 Then //if the button is switched ON
        AllNotesOff(midi_dummy) //first stop any playing notes
        SendNow (midi_dummy, MakeNoteMessage (note2, velocity)) //now play note2
    Else //if the button is OFF
        AllNotesOff(midi_dummy)//first stop any playing notes
        SendNow (midi_dummy, MakeNoteMessage (note1, velocity))//then play note1 again

And here is the rackspace:
sustainpedal_noteshift.rackspace (12.4 KB)

1 Like

If I understand what you want to do, you can use two widgets in a widget group for this:
pedal_alternates_C0_and_C1.gig (5.7 KB)

  • assign you MIDI pedal to the widget pedal
  • the widget pedal is assigned to the C0 note of a MIDI in block plugin
  • the widget LED button is assigned to the C1 note of the same MIDI in block plugin
  • the widget value of the LED button is inverted
    => when you press the pedal it sends Note ON C0 and Note OFF C1 to the plugin, while it sends Note ON C1 and Note OFF C0 to the plugin when you release the pedal.


This is something that i tried first, but you cannot stop the notes from playing, it only toggles the two notes.
That’s why i used scripting, to get a defined start and stop.

We both like GPScript I think, but I tried to avoid it. We don’t know much about the use case, but I just followed what @foster.jazz described. It is possible to use two other button in another group to stop the pending notes. We could also change their form factor and superpose them, but I am not sure it is what @foster.jazz needs :face_with_monocle:

pedal_alternates_C0_and_C1_2.gig (7.6 KB)

1 Like

Yeah, this one works, but it takes four widgets to do the job.
I think he explained quite well what he wants to achieve:
A C0 shall be played as long as the sustain pedal is not pressed, and when the pedal is pressed the played note should be changed to C1 and vice versa.
I just don’t know if it will play a tone or if the notes will control a plugin parameter…

Hi Paul,
I described what I would like to change it to but the Midi expression did not have an option to program it within that software unless I purchase a dual pedal.

Since I am am constantly playing the keyboard I don’t know how an option to Sustain note until other note was played unless it’s coded with GP script.

This is the current basic config connected to my DMC-122 that I want to change. It’s currently mapped to lower manual slider #7 which was all I could think of at the time to control it.
It would be more practical for me to initiate it with my foot so I can keep both hands on the keyboard on left hand bass jazz or pop gigs
Curts Default GP.gig

Apologies all, the 2 notes are adjacent. They should have been C0_NoteOn_24 and C0_NoteOn_25.
I made the change though on both.
and they both change the setting and cycles between the two settings on the plugin each time I click on the top button.
So it looks like I’ll have to click on it again to change back to the original state.

It’s an extra step but it solves the need of keeping both hands on the keyboard so that would work if that is the best way to do this but how do I trigger that button from the Midi Expression to push that button instead of having to actuate it via mouse,

I have never used GP script as yet so I am researching how to load and use the .rackspace file to test it.

I appreciate everyone’s assistance with this.

I don’t understand this, why do you want to clic on the LED button if you MIDI learned your MIDI sustain pedal to the pedal widget in the gig file? :thinking: If your pedal is momentary, the whole stuff will be momentary too, which is exactly what you requested… :face_with_monocle:

I have never used GP script as yet so I am researching how to load and use the .rackspace file to test it.

You can “import” single rackspaces into your actual gig. The script is already integrated in the rackspaces (I just copied it to my posting to show the code).
2021-02-07 11_46_00-Window

You can open and edit the script by opening the “Script Editor” window (see menus), if you have changed some values in the code, you have to hit the “compile” button at the bottom to let the changes take place.
2021-02-07 11_47_10-Window

1 Like

Hi David-san, T
With the pedal C0_NoteOn_24 {C} and C0_NoteOn_25 {Db aka C#} I can only press C or Db

So with only a sustain pedal to work with I can only send a C or a Db {enharmonic C#}.
So the end result is either a C or C# when using the pedal.
Eric I made a change to
note1 = C2
note2 = C#2
note1 = C0
note2 = C#0
and recompiled it but there is still something I must be doing wrong. I will look at it again later today.


Keep you pedal sending any CC# it will be fine. Then go to the properties of the GP pedal widget in my gig file and go to the MIDI tab. From there MIDI learn your MIDI controller pedal (whatever the CC# it has, but DON’T CONFIGURE IT TO PRODUCE A NOTE EVENT or it won’t work).

Might help to see the process… of mapping :wink: @foster.jazz

More videos;-

1 Like

Thanks everyone.
I finally got the result below that I was looking for with just one press and release of the pedal.

My .gig file isn’t anywhere near as complicated as others I’ve read about in the forum but it serves it’s purpose.
Eric I would have enjoyed learning more about GP scrip but since this worked out with a single press and release, it seems the best solution. Thanks David-san for mentioning that I use a CC command from the pedal instead of notes. once I discovered that and what Widget groups were that was when I started getting somewhere.
Thanks to everyone

1 Like

You are welcome. Yes, for the moment it is not a good idea to learn MIDI controllers using MIDI notes.
Happy you could solve your issue :wink: