Saturday, August 20, 2011

Softstep and Max/MSP...

[EDIT: July 20, 2014. This software is now available at AND the LEDs work fine now.]

I'm absolutely loving my Softstep...a very versatile footcontroller...smaller, lighter and does way more than any other foot controller out there at this time that I am aware of. However, in the past it required all users to use a standalone piece of software. Being a Max/MSP user, I like to do everything natively within Max itself...I think this is common with many of us Max users... Thankfully, Keith McMillen Instruments has recently come out with a Max/MSP developers kit that pointed me and several other users in a direction that allowed us to create software that runs on standard objects within Max.

In short, you drop the jk.softstep abstraction in your max patch and give it a number that corresponds to the button you want it to be associated with. Then choose the outlet you want: bangs, toggles, lists, xy data, pressure data, pressure with latching, dials, and with more options on the way. That's it, really *very* simple...even though the example patch has everything going at once...

As a warning, though, it uses common sysex that was sniffed out with a midi monitor. If used incorrectly, sysex can really scramble things. I've even heard stories of sysex permanently "bricking" hardware, although I've never personally experienced it. I've used this software daily since Thursday without any problems, but there are no guarantees.


Please, until KMI releases this information officially and with more specifics,

***No guarantees, use at your own risk***

Also: I've chosen functionality that pertains to my own use, so, not a lot of LED action. There is information inside of the jk.stepcore abstraction if you want to add this functionality.

A big thanks to my friend Chris Lavender for helping with the output stage.

[EDIT: July 20, 2014. This software is now available at AND the LEDs work fine now.]


Tom Ritchford said...

Just wanted to say what a great idea this is, and that I'm "stealing" your research to produce a Javascript implementation of a plain Max Softstep driver - which I'll of course open source right back to you and the world.

Thanks for the good work!

Jeff Kaiser said...

Hey Tom, thanks for your post! Glad to hear from you and look forward to seeing your work.

Nils Berg said...

Thanks for sharing this beautiful piece of work!

I'm trying to use it in the M4L environment but can't seem to get the Softstep to respond while inside M4L. It works if I keep a copy open in Max that sends to my M4L equivalent of the same document, but as soon as I shift the active app to Ableton Live from Max the connection is lost.

I get a midi signal from the Softstep into Ableton, but I just can't get your patch to respond... Any input would be greatly appreciated, your work would be so nice to incorporate into my setup.


/ Nils

Jeff Kaiser said...

Hi Nils, I've never used it with M4L....I'll try to give it a shot when I'm in front of it later this week. I do know that there have been issues with different versions of the firmware for the Softstep and I haven't updated my Softstep patches in over a year...I need to do that. Also: do other midi controllers work as you would like within M4L?

Nils Berg said...

Hi Jeff, thanks for getting back to me so soon! Right now I'm using a dead simple pedal inside M4L. It's not a midi pedal, but a custom-transformed external numeric keyboard put into a stompbox, that let's me write the numbers 1-8 with 8 buttons and my feet. And these numbers control either Ableton Live and/or Max. I use midikeyboards without any problem though, so my connections seem to be running smoothly.

In the meantime I'll check out this M4L plugin called SoftStep4Live that Jesse Engel created on a Javascript that Tom Ritchford wrote, based on your research if I got it right? A three-step-rocket. That I'll try to launch from my kitchen table in a few minutes :-)

Greetings from Stockholm

Jesse Engels device:

Tom Ritchfords javascript:

Jeff Kaiser said...

Hi Nils,

Thanks for the links. It seems that Ableton 8 does not directly support sysex via its MIDI, which is how I communicate with the Softstep in Max. They must've got around it, very cool. Hopefully 9 will support sysex directly.

All the best,

Nils Berg said...

Aha... Yepp, hoping for Live 9. In the meantime I think I'll have a solution up and running through the links.


Jeff Kaiser said...

Hey Nils, If you are interested, supposedly you can get my patch to work in Live with these objects:

I haven't had time to try, but others have.