SoftStep API

Share your wishes for the future of SoftStep.
Axel
Posts: 26
Joined: Sun Jul 31, 2011 12:04 pm

Re: SoftStep API

Postby Axel » Sun Aug 07, 2011 11:57 pm

Macciza wrote:
> Hi Axel
> I think you should find a bit more out about Max - the programming
> environment.

I know just enough about Max, the programming environment, to make the judgements and guesses I've made. I've played with Max, Reaktor and PD at certain points in my life. Now I'm on SuperCollider which I prefer. It also costs nothing, as compared to Max which is a couple of hundred Euros.

> As SS is a Max app the API is the Max objects for Max
> development - what exactly do you expect ? The MaxDevKit IS the API!

As far as I know the SS is a footswitch... It's hardware... hardware is not an app.... app stands for application which stands for software. So: SS != Max app!

Now, of course, the Softstep also has a processor on board which runs software. You might be surprised that the software on the softstep is not a Max app either. It's more like some custom micro controller code that can communicate with other software over usb. It doesn't mattter what software that is as long as it uses a protocol that the software on the Softstep understands. In fact, the Softstep cannot know what software it is talking to. It just knows how to react to certain messages. These messages are the API. The MaxDevKit is NOT the API.


> Re the global reset and SS not knowing issue - please check out the 'Key n
> Pressed' and 'Other Key Pressed' sources in order to achieve what you want.
> The SS can already do what you want here.

The example was actually an oversimplification. I put it there to show that no level of complexity can replace direct coupling of the hardware with program state. What if, e.g., I automate recording so that I step on a third button and recording starts, then stops and then starts again into a different loop? You see what I mean?

> Re The 4G RAM issue. This is industry standard opinion.

The computer marketing industry, maybe ;-) I've said it before: the amount data that is passed from and to the Softstep does in no way justify this much resource consumption.

> As I said find out more about Max, before passing judgement - it is
> perfectly suited to applications such as the SS and far more.

Again: the SS is a hardware. It is independent from Max. It could be programmed with any programming language that's able to access the usb port.

If Max was perfectly suited for an editor application, this editor application wouldn't need as much ram as it does.

> The fact that
> it was a Max app was a major part of it's appeal for I figured access would
> be made available in Max (and yes you could get max to display your emails
> via the SS if you wanted) - not as a C/C++/C# library.

Midi and osc were invented to overcome restrictions between different hardware and software environments. You don't need a C library to send a midi noteOn to turn on an Led on an Akai LPD8. You could do it from your keyboard, from your iPad, from your midi guitar, from Ableton Live, from Max, from PD, from Processing, from Reaktor, from SuperCollider... from any old software or midified hardware. I just don't think how it would be wise for a small company to restrict direct access to their hardware to a single (expensive!) programming environment. Even more so, if the product is a niche product that may only appeal to some tiny market segment. Make it hackable, I say :-)

Cheers,
Axel

PS: Have you tried using a Monome as a foot controller?
User avatar
Macciza
Posts: 157
Joined: Mon Jan 31, 2011 6:23 pm
Location: Sydney, Australia

Re: SoftStep API

Postby Macciza » Mon Aug 08, 2011 6:03 am

Hi
Well the in-depth response I just wrote got eaten somehow because I wasn't logged in, damn . . .
So heres a quicker shorter v2 . . .

Yes I know all that stuff about hardware/software and micros not running Max etc. I am doing some Arduino dev myself at the moment so I am aware of those sorts of things. My point was that the SS package is a combination of the two SShardware and Max software to manipulate it. And the MaxDevKit is the (Max)language specific programming interface for it. It's what they developed the app in, so thats what the API is in . . . If they had written it with SC3 as the backend there would be an SC specific API, a in C a c API etc . . .

My point with your example was that it showed you were not aware the SS could actually do what you claimed it 'stupidly' couldn't. And the RAM issue is just commonsense not hype - lack of RAM is like a limiter on your processing power, best avoided . ..

Yes it is also independent as hardware - it sends raw cc data for its sensors. Anyone could write an app to interpret this data as they see fit in the language they choose and duplicate everything the SS now does. Yet I don't see anyone doing this yet? Talking back is a bit more complex but it could also be nutted out as it is just serial comms from the computer to the SS. Updating firmware and standalone operation would be a different kettle of fish though.

Werent we talking API's? I know millions of things can send midi. And so you might be able to turn a led on on an LPD8, (though maybe not because it does not recognise notes, maybe sysex) I can do that with the SS, and a hell of a lot more, plus dev . . ..

With the monome the idea was that it would be hacked into a footcontroller form - then someone could design an RGB lit, velocity and pressure sensitive 8-sensors per pad design, sending midi and osc over midi, usb , ethernet, wifi etc design boards, develop custom firmware, write an API and opensource the whole shebang in several different languages, different IDEs . . .

I'm just getting tired of people asking for so much and yet offering ??? in return, and telling KMI how to run their business
KMI have released a programming interface for the SS and it is in Max - the program that it was designed in. Thats it folks - live with it or start developing your own open codebase . . .

Cheers ( and apologies)
MM
KMI StringPort_1650, SoftStep_VK2 v1.2 & MIDI Expander; Mac_Moore Guitar,
Roland VG 8, 88 & 99, YamahaVL 70m; OSX 10.6.8, iMac i7 2.8G QC; MaxMSP 5.1.8, Ableton Live 8.2.2, M4L, SC3, QC, cSound, etc, etc,
Axel
Posts: 26
Joined: Sun Jul 31, 2011 12:04 pm

Re: SoftStep API

Postby Axel » Mon Aug 08, 2011 9:45 am

Macciza wrote:

> My point with your example was that it showed you were not aware the SS
> could actually do what you claimed it 'stupidly' couldn't.

Well, you got me. I studied the docs but couldn't make head nor tail of 'key n pressed' etc. My point however is that the softstep cannot do what I want it to do without me buying Max, even if they added another 99 custom sources.

> Yes it is also independent as hardware - it sends raw cc data for its
> sensors. Anyone could write an app to interpret this data as they see fit
> in the language they choose and duplicate everything the SS now does. Yet I
> don't see anyone doing this yet?

Please read my post again. What I and everybody who wants to do really useful stuff need is access to the Leds and the display. Why should anyone want to duplicate what's there already?

> Talking back is a bit more complex but it
> could also be nutted out as it is just serial comms from the computer to
> the SS.

The 'bit more complex' part is actually the problem. Yes, one could indeed try to reverse engineer the protocol by listening on the usb port. Are you suggesting that I and the other people here who want an API stop posting our feature requests to the feature wishlist and start reverse engineering what Keith McMillen already has and could make public to improve their product?


> Werent we talking API's? I know millions of things can send midi. And so
> you might be able to turn a led on on an LPD8, (though maybe not because it
> does not recognise notes, maybe sysex) I can do that with the SS, and a
> hell of a lot more, plus dev . . ..

Well, you can change the state of the program running on the controller of the LPD8 by sending it noteOn messages. This is documented. (Sort of) an API. By the way, you can't to that with the softstep in standalone mode, afaik, right? Do you know how much ram you need to run an LPD8?

But this is fruitless. I'm sure you can see my point. And I can see yours. Just one more thing:


> I'm just getting tired of people asking for so much and yet offering ??? in
> return, and telling KMI how to run their business

I am a paying customer who has offered he'll put videos on youtube of the cool stuff he'll do with his softstep as soon as he gets access to the Leds and the display without having to buy Max. I'm not telling KMI how to run their business, I am making suggestions on how they could reach a broader audience.

You know, this might be better for their business than fanboys applauding their every decision and telling people to

> live with it or start
> developing your own open codebase . . .

when all they've asked for was a little official help in doing just that.


Cheers,
Axel

Btw. no hard feelings :-)
User avatar
MattKMI
Posts: 41
Joined: Fri May 06, 2011 12:53 pm

Re: SoftStep API

Postby MattKMI » Mon Aug 08, 2011 11:45 am

Hi Guys,
One small thing-- Axel wrote:
"There is a fundamental problem with not allowing other software to talk to a foot pedal that has 3 (I'm counting the yellow :)) Leds and a 4 digit display. You will want to have those visual aids give you hints about the state of your program. E.g. I would like to have the red led flash while I'm recording a loop with my software. Sure I could set up a toggle function in the editor. But I also have a global reset function that I trigger with another button on the Softstep. This also stops the the loop recording, but the Softstep doesn't know about that, so it would stupidly continue flashing and not correctly represent the state of the program anymore. If I could control the flashing of the Led from my software I could update the state of the Led every time the recording state changes. This would be two lines of code. Two lines of code that would do more than the whole huge wanna-do-it-all editor currently is able to do."

You can turn LEDs on and off by sending CCs 20-29(red) and CCs 110-119(green) a value of 1-4 for the various modes... We're working on M4L devices and various ways to implement this more seamlessly into the SoftStep, but right now, with a bit of work you can have the LEDs do whatever you want!

Hope that helps!,
~Matt
---------------
Matt Hettich
Product Specialist @ KMI
office: (877)812-0408
www.keithmcmillen.com
Axel
Posts: 26
Joined: Sun Jul 31, 2011 12:04 pm

Re: SoftStep API

Postby Axel » Mon Aug 08, 2011 12:29 pm

Thanks a lot, Matt. It helps indeed. I would even say it belongs in the faq. Now all that's missing is access to the display... :-)
TheSupport@KMI
Posts: 726
Joined: Wed Jul 13, 2011 12:30 pm

Re: SoftStep API

Postby TheSupport@KMI » Mon Aug 08, 2011 12:49 pm

We'll get this into the FAQ very soon.
2, 3, 5, 13, 89, 233, 1597, 28657, 514229, 433494437, 2971215073
User avatar
Macciza
Posts: 157
Joined: Mon Jan 31, 2011 6:23 pm
Location: Sydney, Australia

Re: SoftStep API

Postby Macciza » Mon Aug 08, 2011 5:11 pm

Hi Axel
Yep No hard feelings - just engaged discussion here . . .

Yes - I believe we can both see each others points, just from a different perspective. ( Max / Code)
My point about duplicating is just trying to work out what people want to achieve and how they want to do it.

I also am a paying customer however rather than conditionally offering to do something for them (once I get what I want) I instead spent a few hours under the hood and helped KMI cut a huge swathe off the memory, and have offered a number of suggestions that have been adopted. I will also be posting some vids soon, gratis . . .

My 'live with it' point simply meant 'They have released an API, use it or make your own' - If it is in a format you can't use then that is unfortunate. If they had released an objC API and everyone was asking for it in C# or .Net it would be the same thing. If it had been developed in SC3 and an SC3 API released I would probably have to accept that I could not easily implement it on Max. It just the way the cookie crumbles.

Fortunately this discussion has brought some interesting info to light re the LED CC msgs and that is great. I look forward to seeing your SC developments. I have mucked around with it a bit over the years (since the early days when it was a pay to play app) but never really kept up or taken off with it. It would be interesting to see an SC app with GUI that did the things that the SS does plus more.

Cheers
MM
KMI StringPort_1650, SoftStep_VK2 v1.2 & MIDI Expander; Mac_Moore Guitar,
Roland VG 8, 88 & 99, YamahaVL 70m; OSX 10.6.8, iMac i7 2.8G QC; MaxMSP 5.1.8, Ableton Live 8.2.2, M4L, SC3, QC, cSound, etc, etc,
TomSwirly
Posts: 79
Joined: Sun Aug 07, 2011 9:04 am

Re: SoftStep API

Postby TomSwirly » Tue Aug 09, 2011 11:23 am

Now, now, we have to be able to come up with a way for people to do software development without paying for a big development kit!

I personally have Max but am sympathetic to not having the money.

Luckily, it turns out that there's a free cousin or even sibling of Max called Pure Data or pd - and it's often the case that third-party Max boxes are either compatible with Pure Data, or can simply be recompiled to be compatible with pd.

So a nice compromise that would work for everyone might be to test to see if the Max box worked with pd, or failing that, if it could be easily recompiled for pd. I'll bet you a KMM engineer could evaluate the plausibility of it in an hour, and could get it done in a day IF it could be done at all (the current ss box might somehow be essentially incompatible with pd, I don't understand the differences well enough to know how that could be so but I'm sure there's some way!)

I'd also like to point out that, while Max costs money, the Max runtime is free, so programmers writing in Max can give their work to other people who don't own the program...

I'd finally point out that if you do all your development in Javascript, then you actually don't need to purchase Max at all - IF (another big if) you are willing to create all your Max boxes from inside Javascript.

This is actually reasonably plausible - I'm creating most of the interface on my main project that way, because the GUI is dynamic - but there's a lot of JS code and experimentation to get there. Without having a working copy of Max to get to that point, you'd really have to be dedicated.
User avatar
Macciza
Posts: 157
Joined: Mon Jan 31, 2011 6:23 pm
Location: Sydney, Australia

Re: SoftStep API

Postby Macciza » Wed Aug 10, 2011 5:57 pm

Hi

Hmm, not sure that we 'have' to be able to come up with a way? There are many development projects out there that are unavailable to me for all sorts of reasons - Platform, Language, IDE etc. Unfortunate fact of life . . . .

Pure Data or even jMax may be an option though there may be issues with the 'open-source' nature of these projects. ie They may require open access to the KMI developed objects, and would almost definitely want access to the whole SSEditor patch etc. Just a few thoughts. It may also be that the proprietary objects and closed Editor app are acceptable but I think it will be an issue. Certainly it would not stop anyone from process the raw midi data from the SS and controlling the leds via MIDI. So for some this may be an option.

Certainly support the idea of distributing Runtime apps for others and also M4L devices. But geez I reckon you would have to be pretty keen and bloody talented to do all your Max dev 'headless' via js, phew . . . I do think there could be a talented M4L dev community who may get involved before too long, I certainly would like to see what could be done there as people bend the SS to suit there particular purposes and workflow.

As I dabble in a few different dev environments I would also like to see some other projects get started. The discussions with Axel have retweeked my SC3 interest, I guess I just needed a project for it, and would like to see something get started in it soon. Might also be a good excuse to renew my foray into objC/iOS as well. No doubt there will be others with interests in other langs as well and ideas can cross-pollinate . . .

All of this also raises an issue which so far has not been mentioned so far - Licensing?? What sort of license is the DevKit released under? or What is the prefferred model of those looking at doing dev? Open or not? Should I be able to make $M off some amazing app using the devkit and/or info gleaned from technical data from KMI and keep it completely closed? Should we have a public repository for all SS related dev projects and freely share code? What rights do KMI wish to retain and what rights would we like to see? Lots of options here, so just raising it for discussion, though I guess I am in the middle, recognising that KMI will want to retain certain rights and are providing some sort of 'open' dev possibilities that I would like to see fed back to KMI and the open community.

Cheers

MM
KMI StringPort_1650, SoftStep_VK2 v1.2 & MIDI Expander; Mac_Moore Guitar,
Roland VG 8, 88 & 99, YamahaVL 70m; OSX 10.6.8, iMac i7 2.8G QC; MaxMSP 5.1.8, Ableton Live 8.2.2, M4L, SC3, QC, cSound, etc, etc,
TJ-Shredder
Posts: 22
Joined: Fri Aug 12, 2011 2:51 pm

Re: SoftStep API

Postby TJ-Shredder » Sat Aug 13, 2011 2:22 pm

Another option to reveal the "real" API would be to publish the source code for the ss external
or if this is still just Midi, simply publish all the Midi commands including Sysex the box will understand...

Stefan

Return to “SoftStep Feature Wishlist”

Who is online

Users browsing this forum: No registered users and 1 guest

cron