Luminite Graviton M1 MIDI Controller

Software Update 3.1.0

New feature: Control Surfaces:

  • Build your own set of touchscreen controls, similar to physical knobs on pedals.
  • Each Control Surface supports 16 PC / CC parameters, there are 10 Control Surfaces in total.
  • Real-time control parameters are accessible via the touchscreen.
  • Achieve two-way synchronization with pedals through:
  • Displaying up-to-date parameters and statuses by monitoring outgoing MIDI messages to the pedals.
  • Displaying up-to-date parameters and statuses by monitoring incoming MIDI messages from pedals (for pedals that support sending statuses back, e.g., Strymon).
  • Works together with existing Presets system.
  • Toggle back and forth between Control Surfaces and XY Controllers / Footswitch Pedals Screen with new assignable action.
Bug fixes:
  • Fixed a bug where a new MIDI Message is added after restart
  • Fixed a bug where a screen layout changes after restart
  • Fixed a bug where Expression Editor is not openable
  • Send button working properly in Expression Preset now
@laxu can you test this with your Strymon pedalboard :D
 
Last edited:
Software Update 3.1.0

New feature: Control Surfaces:

  • Build your own set of touchscreen controls, similar to physical knobs on pedals.
  • Each Control Surface supports 16 PC / CC parameters, there are 10 Control Surfaces in total.
  • Real-time control parameters are accessible via the touchscreen.
  • Achieve two-way synchronization with pedals through:
  • Displaying up-to-date parameters and statuses by monitoring outgoing MIDI messages to the pedals.
  • Displaying up-to-date parameters and statuses by monitoring incoming MIDI messages from pedals (for pedals that support sending statuses back, e.g., Strymon).
  • Works together with existing Presets system.
  • Toggle back and forth between Control Surfaces and XY Controllers / Footswitch Pedals Screen with new assignable action.
Bug fixes:
  • Fixed a bug where a new MIDI Message is added after restart
  • Fixed a bug where a screen layout changes after restart
  • Fixed a bug where Expression Editor is not openable
  • Send button working properly in Expression Preset now
@laxu can you test this with your Strymon pedalboard :D
Im on 3.0.0 and can't get the update to start.
I get to the Update Software page and the two bars of text are:

'Software Update Available: 3.1.0'
and
'Update'

But neither seem to be bright like other text that respond to a touch they just remain unchanged

Trying to use the arrow at the top to go back is also unresponsive

EDIT to add:
Now, after powering down and trying again I was able to initiate the update but it has been stuck at 'Updating Software...0 percent complete' for over 20 minutes
 
Last edited:
The update should be 2-3 mins only. If it hangs up longer than that (usually because of the internet quality) then you can power cycle and try again, totally safe to try as many times as needed.
I'll fix the unresponsive button bug / add clearer instruction text in the next update.
 
Last edited:
@laxu can you test this with your Strymon pedalboard :D
Tested.

I seem to have very flaky wireless connection to my CME WIDI Jack. I have had similar issues on a past firmware but on 3.0.0 it has worked without issue. Now it seems to quite quickly disconnect from the CME, or maybe something crashes. For example just toggling presets back and forth (which used to work just fine), after a while this stops working where the CME no longer receives anything. But this might be a separate problem.

I could send MIDI CC commands from the Control Surfaces view but I could not receive anything back. I made sure to set my MIDI pedals to output MIDI CCs. I can see my CME WIDI Jack flashing when I turn knobs on the pedals so that points to the "send pedal MIDI CC messages" configuration working.

I also tried directly connecting the MIDI out of my Strymon Conduit to the Graviton MIDI in using two different cables and still can't seem to get it to track any values on control surfaces.

The way the Strymons work should be this:
  1. Configure the pedal for MIDI via the EXP jack.
  2. Configure the pedal to send MIDI CCs on its EXP out.
  3. Connect pedal via TRS cable to Strymon Conduit.
  4. Strymon Conduit merges any MIDI messages it receives via its TRS jacks and sends them to its 5-pin MIDI out.
Then Graviton should be able to pick the MIDI CCs from the Conduit and set them to control surfaces.


Suggestion: A toggle for "Immediately Send" in the Control Surfaces block slider view (where you select CC number etc) would be useful. You might want to adjust a knob my dragging the slider, but you might also want "only when I hit the Send button" functionality for things like toggle switch that respond to values between 0-3 for example.
 
I seem to have very flaky wireless connection to my CME WIDI Jack. I have had similar issues on a past firmware but on 3.0.0 it has worked without issue. Now it seems to quite quickly disconnect from the CME, or maybe something crashes. For example just toggling presets back and forth (which used to work just fine), after a while this stops working where the CME no longer receives anything. But this might be a separate problem.
Could be an memory issue with this extra feature added. I'll optimize the memory further and see if it gets better. Does this happen consistency after a certain time period or a certain number of messages were sent ?

I could send MIDI CC commands from the Control Surfaces view but I could not receive anything back. I made sure to set my MIDI pedals to output MIDI CCs. I can see my CME WIDI Jack flashing when I turn knobs on the pedals so that points to the "send pedal MIDI CC messages" configuration working.

I also tried directly connecting the MIDI out of my Strymon Conduit to the Graviton MIDI in using two different cables and still can't seem to get it to track any values on control surfaces.

The way the Strymons work should be this:
  1. Configure the pedal for MIDI via the EXP jack.
  2. Configure the pedal to send MIDI CCs on its EXP out.
  3. Connect pedal via TRS cable to Strymon Conduit.
  4. Strymon Conduit merges any MIDI messages it receives via its TRS jacks and sends them to its 5-pin MIDI out.
Then Graviton should be able to pick the MIDI CCs from the Conduit and set them to control surfaces.
Accidentally undo a tiny line of code before uploading. Fixed and working for me now. Update to 3.1.1 and try again :D

Suggestion: A toggle for "Immediately Send" in the Control Surfaces block slider view (where you select CC number etc) would be useful. You might want to adjust a knob my dragging the slider, but you might also want "only when I hit the Send button" functionality for things like toggle switch that respond to values between 0-3 for example.
Cool I was thinking the same, slider should send CC continuously by default. "Send" button can by used after a value was typed in by keypad. I'll add this in.
 
Last edited:
Could be an memory issue with extra features added. I'll optimize the memory further and see if it gets better. Does this happen consistency after a certain time period or a certain number of messages were sent ?
As long as I don't use the control surfaces screen it seems to work fine. I tried swapping all my pedals via presets, changing presets on individual pedals and it all worked fine. Entered control surfaces, tried twisting a knob on the pedal, then it stopped working.

Accidentally undo a tiny line of code before uploading. Fixed and working for me now. Update to 3.1.1 and try again :D
Happens to the best of us! Installed 3.1.1 and it does now work to some degree.

For testing, I hooked up my Strymon Nightsky alone via 5-pin DIN MIDI cables so no wireless etc.

It seems to track pretty slowly, l tried turning reverb mix knob from zero to 10 pretty quickly on the pedal and it took about 8 seconds for the Graviton to catch up. If I turn multiple knobs the delay becomes much longer where it seems to move one knob, then move the one I moved next and so on. I also tried making a control surface with nothing but reverb mix block, but it was just as slow.

I wonder if it's either overloading the processing by the number of MIDI in messages or it just takes very long to find the right block and render the changes.

For comparison, I tried hooking the Nightsky to my Focusrite Scarlett 6i6 2nd gen audio interface's MIDI ports and using my Stream Deck Plus which has a MIDI control plugin assignable to its 4 knobs/screens. The changes are reflected immediately as I turn the knobs on the Nightsky. Of course, there's a M2 Macbook Pro to process it all so it won't break a sweat.

As another issue, I can't seem to make wireless MIDI input work. I have the CME WIDI Jack connected to the the Nightsky and Graviton wireless MIDI out -> CME works perfectly, but CME MIDI out -> Graviton does not. If the MIDI out is wired it works fine.

Cool I was thinking the same, slider should send CC continuously by default. "Send" button can by used after a value was typed in by keypad. I'll add this in.
I think toggle would be better because if you add min/max functionality to the sliders, then the slider would become more usable when a small range of values covers the slider. I think there's definitely uses for both and being able to turn it on/off on a case by case basis would be good.

"Send needed when keypad is used" is sensible functionality tho.
 
As long as I don't use the control surfaces screen it seems to work fine. I tried swapping all my pedals via presets, changing presets on individual pedals and it all worked fine. Entered control surfaces, tried twisting a knob on the pedal, then it stopped working.
Hmm seems like a bug with handling a particular type of MIDI Input stream.

It seems to track pretty slowly, l tried turning reverb mix knob from zero to 10 pretty quickly on the pedal and it took about 8 seconds for the Graviton to catch up. If I turn multiple knobs the delay becomes much longer where it seems to move one knob, then move the one I moved next and so on. I also tried making a control surface with nothing but reverb mix block, but it was just as slow.

Same as above, seems like a bug with handling Strymon MIDI output rather than hardware speed.

I tried with Expression Pedal > Graviton M1 ( Expression CC) > 5 pin MIDI cable > Graviton M1 (Control Surface), the sliders on both pedal screens were pretty much in sync as the pedal were moving and CC continuously exchanged, with very little latency.

I’ll see if I can get a Strymon pedal to test with this feature.

As another issue, I can't seem to make wireless MIDI input work. I have the CME WIDI Jack connected to the the Nightsky and Graviton wireless MIDI out -> CME works perfectly, but CME MIDI out -> Graviton does not. If the MIDI out is wired it works fine.

The M1 does receive wireless MIDI messages, but it does not react to them for now, until a connection confirmation button/screen is implemented in the upcoming updates. (This is to prevent accidental connections with bandmates/audience devices in live situations.)
 
Last edited:
Hmm seems like a bug with handling a particular type of MIDI Input stream.



Same as above, seems like a bug with handling Strymon MIDI output rather than hardware speed.

I tried with Expression Pedal > Graviton M1 ( Expression CC) > 5 pin MIDI cable > Graviton M1 (Control Surface), the sliders on both pedal screens were pretty much in sync as the pedal were moving and CC continuously exchanged, with no latency.

I’ll see if I can get a Strymon pedal to test with this feature.

Strymon should not do anything special here. It just sends a stream of MIDI CC values for any controls you turn. Maybe you can try using e.g your computer to generate a stream of MIDI commands to feed to the Graviton to see if you can duplicate the behavior?

If you have trouble replicating it, I can try collecting some logs by running the pedals' output to my computer.

Some of the pedal manuals do state that the MIDI out also sends Sysex data so could that cause some issues? There doesn't seem to be a way to not send Sysex but I haven't looked at the values sent to see if this is the case.

For example these are the TRS MIDI out options (and LED indicator colors marking them) for the Deco V2:

• OFF: RED (default) - No MIDI messages are sent out of Deco.
• THRU: BLUE - Incoming MIDI messages are sent to the MIDI Out without any additional MIDI messages generated by Deco.
• SEND CC PC OTHER: WHITE - MIDI CC, PC, and SysEx messages generated by Deco are all sent to the MIDI Out.
• SEND CC OTHER: GREEN - MIDI CC and SysEx messages generated by Deco are sent to the MIDI Out.
• SEND PC OTHER: PURPLE - MIDI PC and SysEx messages generated by Deco are sent to the MIDI Out.
• SEND OTHER: AMBER - SysEx messages generated by Deco are sent to the MIDI Out.

I have used the GREEN mode here.

Nightsky manual does not mention Sysex but might be the same deal. It has a separate setting for the 5-pin MIDI out that is just OFF/THRU/ON for MIDI messages.

The M1 does receive wireless MIDI messages, but it does not react to them for now, until a connection confirmation button/screen is implemented in the upcoming updates. (This is to prevent accidental connections with bandmates/audience devices in live situations.)
Ok so known issue. Will test with wired MIDI in for now. Or I can probably just disable wireless MIDI from the Graviton and plug a CME WIDI Master dongle to the side as it will auto-connect to the WIDI Jack on my board.
 
Strymon should not do anything special here. It just sends a stream of MIDI CC values for any controls you turn. Maybe you can try using e.g your computer to generate a stream of MIDI commands to feed to the Graviton to see if you can duplicate the behavior?
I think I found the bug :D the graphic engine trying to refresh the screen in the background for all incoming CC messages at once.

For one stream of CC its very fast, but more than 3-4 its lagged down considerably.

Fixed now and I just stress tested with 8 streams of CC and it responded very fast.

This may also fix the wireless connection to the CME WIDI Jack.

The M1 does receive wireless MIDI messages, but it does not react to them for now, until a connection confirmation button/screen is implemented in the upcoming updates. (This is to prevent accidental connections with bandmates/audience devices in live situations.)
Yeah seems like very unlikely to happen :unsure:, and if it did you can turn it off manually in Settings > MIDI. So I enabled it again, let me know if its works with Control Surfaces.

3.1.2 is live now. Give it a try :D
 
Last edited:
I think I found the bug :D the graphic engine trying to refresh the screen in the background for all incoming CC messages at once.

For one stream of CC its very fast, but more than 3-4 its lagged down considerably.

Fixed now and I just stress tested with 8 streams of CC and it responded very fast.

This may also fix the wireless connection to the CME WIDI Jack.


Yeah seems like very unlikely to happen :unsure:, and if it did you can turn it off manually in Settings > MIDI. So I enabled it again, let me know if its works with Control Surfaces.

3.1.2 is live now. Give it a try :D
3.1.2 seems to work much better! I tried it both wireless and wired and the values now track in real time, even if try turning 3 knobs at the same time.

I think to make them extra smooth visually it could animate the sliders with some interpolation between values depending on the framerate that the Graviton uses. Compared to the computer + Streamdeck it's not as smooth but is certainly good enough if you'd prefer to focus on something more relevant.
 
One idea for control surfaces would be the ability to quickly adjust multiple parameters.

The way it works now:
  1. Click a block.
  2. Adjust slider.
  3. Back out of block.
  4. Click another block.
  5. Adjust slider.
  6. Back out of block...
How would you feel about something like this? A view mode that shows 4 params up top and a slider taking the place of the bottom row of blocks. Then the workflow becomes this:
  1. Click a block. It is now selected for the bottom of the screen slider to adjust.
  2. Click another block, now that is adjusted by the slider.
  3. Press a button at the bottom to switch rows or pages to put the rest of the params up top.
No editing here except maybe by holding or something, just selecting params.

Quick mockup:

GravitonM1 UI mockup 1.jpg
 
Last edited:
Wow you guys have gotten alot done in the last few days. I'll check out 3.1.2 as soon as I have a few minutes. My Graviton updated to this level just now in a couple minutes.
 
got mine updated, used my phone as a wifi hotspot and it worked.
how would you guys set up the XY controller to replicate a synthesizer mod/pitch joystick or is that asking too much? I saw the settings for 'ramp time' and 'fall' etc and started dreaming big for my guitar synth...

Is that something that could be split up into four presets, sending different CC for each of the four directions of travel of the joystick. Not sure if the GM 800 or the Graviton M1 would do the receiving and sending math if you had constantly varying ratio of two vectors at work.
 
How would you feel about something like this? A view mode that shows 4 params up top and a slider taking the place of the bottom row of blocks. Then the workflow becomes this:
  1. Click a block. It is now selected for the bottom of the screen slider to adjust.
  2. Click another block, now that is adjusted by the slider.
  3. Press a button at the bottom to switch rows or pages to put the rest of the params up top.
No editing here except maybe by holding or something, just selecting params.

Quick mockup:

I like it, it looks quite intuitive. This can be named "Block 4 + 1", together with "Block 8" and "List" layout. Maybe adding a layout selector menu like with other screens as well.

got mine updated, used my phone as a wifi hotspot and it worked.
how would you guys set up the XY controller to replicate a synthesizer mod/pitch joystick or is that asking too much? I saw the settings for 'ramp time' and 'fall' etc and started dreaming big for my guitar synth...

Is that something that could be split up into four presets, sending different CC for each of the four directions of travel of the joystick. Not sure if the GM 800 or the Graviton M1 would do the receiving and sending math if you had constantly varying ratio of two vectors at work.

I think the first step would be creating four presets on your GM800, examples: Pitch Bend Up / Down and Modulation Speed + / - , each with the desired settings (ramp / fall time, speed adjustment step etc) . Then you can programing the X or Y switch up / down / left / right to trigger these 4 presets.
 
I like it, it looks quite intuitive. This can be named "Block 4 + 1", together with "Block 8" and "List" layout. Maybe adding a layout selector menu like with other screens as well.



I think the first step would be creating four presets on your GM800, examples: Pitch Bend Up / Down and Modulation Speed + / - , each with the desired settings (ramp / fall time, speed adjustment step etc) . Then you can programing the X or Y switch up / down / left / right to trigger these 4 presets.
I see where you are going but that won’t get where I’m trying to go.
I’m looking for real time manipulation of CC values that send, for example, the filter cutoff frequency across a spectrum defined by the range given the minimum and maximum in the CC definition.
So my left hand holding a chord or hammering notes on fretboard will create the foundation of the sound and my right hand on the joystick can do ‘mod wheel’ manipulation…up down up up way down etc

I guess I need to look to expression pedals.

I was hoping the ‘control surface’ addition was based on something that could mimic that real-time control, sending those values. I was thinking the XY pad could take control of those sliders
I guess I don’t know what the ‘control surface’ function is.
 
I was hoping the ‘control surface’ addition was based on something that could mimic that real-time control, sending those values. I was thinking the XY pad could take control of those sliders
I guess I don’t know what the ‘control surface’ function is.
The control surface is just a set of parameters that you can control directly from the touchscreen.

As an example, you could add a parameter that controls the pitch wheel, so if you drag your finger on the touchscreen slider it would be as if you moved the pitch wheel on your keyboard.

If you wanted to use the XY Controller joystick, it's exactly like @Luminite described. You could set up for example 4 presets:
  • X up -> preset 1 - "send pitch bend MIDI CC scroll up"
  • X down -> preset 2 - "send pitch bend MIDI CC scroll down"
  • X left -> preset 3 - "send mod wheel MIDI CC scroll down"
  • X right -> preset 4 - "send mod wheel MIDI CC scroll up"
Now every time you click the XY joystick up, it will increment the CC scroll by the given step. Click down, it decrements the value.
 
I’m looking for real time manipulation of CC values that send, for example, the filter cutoff frequency across a spectrum defined by the range given the minimum and maximum in the CC definition.
So my left hand holding a chord or hammering notes on fretboard will create the foundation of the sound and my right hand on the joystick can do ‘mod wheel’ manipulation…up down up up way down etc

Ahh I see, basically there are 2 methods as you said:
  • Program the CC real-time controls in the GM800 and use the M1 to trigger them.
  • Program the CC real-time controls directly with the M1.
I thought the GM800 can manipulate its own parameters in real-time with its presets. (method 1)

If thats not the case, then you can try method 2, using CC Scroll messages like @laxu described.

You can scroll up and down different CC parameters, each with multiple adjustment steps, and theres CC Scroll Jump if you want to "reset" a CC parameter to a neutral position.

Also the Toggle / Momentary mode can be useful in this situation as well (ex: left hand holds a note / chord, then right hand hits the XY switch to apply programmed effect (pitch shift, kill switch etc.. ), release to go back to normal sound, or just toggling them on / off)
 
Last edited:
Ahh I see, basically there are 2 methods as you said:
  • Program the CC real-time controls in the GM800 and use the M1 to trigger them.
  • Program the CC real-time controls directly with the M1.
I thought the GM800 can manipulate its own parameters in real-time with its presets. (method 1)

If thats not the case, then you can try method 2, using CC Scroll messages like @laxu described.

You can scroll up and down different CC parameters, each with multiple adjustment steps, and theres CC Scroll Jump if you want to "reset" a CC parameter to a neutral position.

Also the Toggle / Momentary mode can be useful in this situation as well (ex: left hand holds a note / chord, then right hand hits the XY switch to apply programmed effect (pitch shift, kill switch etc.. ), release to go back to normal sound, or just toggling them on / off)
Thanks guys!
I will explore both options. I didn't realize there was a 'retriggering' possibility. When I read 'make 4 presets' with predetermined 'movement' I imagined the movement would happen once upon changing to the preset and then I would have to go to a different preset to get more and still be limited to the preplanned, one time only paradigm as well as deal with any gap in changing presets on the GM800.

I think the most fun would be having the XY able to trigger via momentary to change a parameter (or parameters) when ever I want and releasing to have it return-to-start-point at a chosen ramp down rate. I could get spontaneously creative that way.

Can the XY be set to momentary to trigger Boss control assignments...like trigger CNTRL 3 via CC# assignments? I haven't found the Midi info for that yet in the Boss menus but that would probably be the easy way

Or, can the XY movements be used to remotely replicate a finger on the Control Surface slider. Program the Control Surface preset to Mod Wheel in the synth then use the X or Y to be the 'finger' on the slider. 'Remote Control' surface lol
 
Last edited:
Can the XY be set to momentary to trigger Boss control assignments...like trigger CNTRL 3 via CC# assignments? I haven't found the Midi info for that yet in the Boss menus but that would probably be the easy way

Yes it can, if Boss follows the standard control assignment of CC# with value 0 = turning off (Or you can assign that CC# to effect mix level, with value 0 = off ) Then you can set the Toggle mode to Momentary. Now every time you release a switch, the same CC#, with value = 0 will be sent to turn off that control assignment.

Or, can the XY movements be used to remotely replicate a finger on the Control Surface slider. Program the Control Surface preset to Mod Wheel in the synth then use the X or Y to be the 'finger' on the slider. 'Remote Control' surface lol

Yes its already working that way. Example: in MIDI Editor screen, if you assign:
  • X left to Preset 1 with a CC - block
  • X right to Preset 2 with a CC + block (with same number with the CC - above)
  • Now you can control the on screen slider with the X joystick left - right movement (either together with other blocks, or just that block enlarged after you tap on it)
Now if you setup the joystick to left - right for one CC slider, up - down for another CC slider, with the MIDI Editor Screen you can only see 1 slider at a time (inside the current Preset). This is when Control Surfaces become useful, as it can display a set of the CC blocks / sliders you want to keep track of, separated from what the current Preset contains:
  • Open a Control Surface.
  • Add a CC block with same number with the CC Scroll left - right
  • Add a CC block with same number with the CC Scroll up - down
Now you can control and keep track of both sliders with your XY Controller (moving the sliders by touch will temporary override its position. After that if you move the joystick again, the slider will jump back to the programmed position)
 
Last edited:
Back
Top