New Tool (3.2): PushyPushPush - Ableton Push 1 Integration

Darn, how disappointing that it didn’t work. I’ll keep at it and see what i can do.

The annoying thing about the Renoise MIDI scripting API is that it requires a specific device name to open the MIDI port in the tool. Makes it very hard to add true multi-platform compatibility. I suppose i could add a little tool window with a drop down menu to select the device manually, that might work… Or i could just try and be cleverer and write better code… hmm. :thinking:

You shouldn’t have any probs with Mac, fingers crossed.

Had an idea and slightly changed the way the tool returns the device name when starting up:

lil.cupcake.PushyPushPush-v0.008.xrnx (12.9 KB)

Also pushed to github.

Also not tested at all, so might have borked it even for macs now.

EDIT: works fine for me.

ey up! good news and bad news. good news is - the mac version is great so far, the pad grid fits with the Renoise columns really well n it’s a tidy little sequencer!

bad news is - you guessed it - no dice with windows. tbh now i’ve got a taste i’ll probably just pinch the macbook when i fancy using the push sequencer - please don’t squander any time wrestling with windows on my behalf! i’m sure there’s some considerably more exciting features you’re keen to work on…

Aha, bittersweet news indeed.

I can’t help but wonder what i’m getting wrong… Anyway, if you’re happy to use a Mac it will continue to work as well as it does on my machine (ie i will keep introducing silly bugs and then finding them later on when i least expect it). At the moment it seems pretty stable.

There’s not much going on with the tool as is, but i hope it will expand in usefulness with time. It’s slow going for now because i left it too long and forgot how most of the code works… bah.

I did a little bit of digging and, on my PC at least, the problem seems to be that the push midi input and output have different names “(MIDIIN2 (Ableton Push)” and “MIDIOUT2 (Ableton Push)”, and your code tries to use a single variable Push:device_name to open both midi ports.

I could make it work by pasting the proper name into the code, but there’d need to do some refactoring or platform dependent string magic to make it work properly.

Really nice tool btw :slight_smile:

hi, thanks!
i am aware that my method for discovering a Push is a bit wonky at the moment, and i think i made a note somewhere about the issue of using a single name to open the device. At least, i am aware of it. I’m gearing up to start work on the tool again this week, so hopefully can find a way to fix it. Are the names you quoted above the exact strings that Windows gives you? With the parentheses like that and everything? If so, i could probably find a way to grep around the parens and look just for the “Push” part of the string. Will aim to find the best (simplest) solution that proves robust enough. In the last stretch of work i did i got some rudimentary sysex ID matching going on as an alternative to the name checking, but can’t remember right now how i have it set (sysex before name check, or vice versa)…

1 Like

Hi! Yeah, those were the exact names. There is actually a midi in and out just called “Ableton Push”, but oddly you have to use the other ones I named above :man_shrugging:

It actually was set to sysex checking, but on my computer it barfed when it tried to open the built in Microsoft GM synth, so I switched to finding by name instead.

1 Like

Aha, ok. I was trying to figure out what the name would be based on the published docs for Push 2, but as they never gave any specs for the original it is a bit difficult to tell what would happen. Strange thing about that GM synth! Possibly it doesn’t reply to sysex? Or perhaps i have it doing something wrong in the check, havent given it a full test, and there is a problem with Renoise’s sysex/lua implementation where it breaks the returned ID message into chunks if it’s too long, so it’s hellishly difficult to get working properly. Currently it only looks for the match to a part of the Push sysex ID reply, perhaps the GM synth matches somehow as well. hmm. Anyway, will be digging in again this week, so keep an eye out on the repo. And thanks for pointing me in the right direction for Windows. Hopefully we’ll figure it out. Then maybe i can get the tool actually doing something useful! Didn’t realise when starting out quite how much work would be involved in trying to map out a renoise song in code and applying that to the hardware for interaction. it’s a bit daunting tbh

1 Like

Hi @thereturnofkippertof
I’ve just pushed a fix to the github repo if you want to grab it and see if it does the trick for you. I’ve separated the input and output names, and hopefully found a way to grab the right devices through the regex string. Also now it should not try and use sysex on Windows, and will just try to find the device by name. Please let me know what happens, whether it’s worked or not. I haven’t tested it on my setup yet, so i could have just borked the whole thing! Who knows. Ta.

Great, I’ll check it out

Just a note to say that i have migrated the repo to bitbucket here: https://bitbucket.org/cupcake99/pushypushpush as i don’t get on too well the interface on github. Updated the first post to show this as well. Bye.

Bit of hope for you Windows people, if you haven’t been having any luck with this tool, i just pushed an update to bithubbucket that adds a configuration panel for the tool under the ‘tools’ menu. It allows you to disable automatic startup and also manually select and restart Push to get the right ports opened for the hardware. The preferences are then saved for the next launch. It’s not 100% perfect and i can already think of a few problems that might arise, but it should work to get you going, not that there’s a lot to do once you get there mind…

Hi @cupcake
My machine runs on a linux based distro prepared for audio and video editing. (AVL) Now you have a linux guy who will test your script. :stuck_out_tongue:
I’ll do it today and will head back with a reply.
Greetings!

1 Like

Cool, thanks. Bear in mind i haven’t worked on this for some years now just because i lost interest, so there are definitely bugs! I keep planning to get back to work on it but i’m so lazy.

Thank you anyway. I hoped that the script will activate the LEDs but it wasn’t able to get installed in the first place. The guy who sold be the push told me that it has an open structure and could be configurated via sysex. I did not investigate yet but my first impression is that most of the folks who are digging in this realm are using Max4Live & Mac.

You install the script on Renoise. The XRNX tool then communicates with the Push over MIDI using the Lua API. You do not need Max, Ableton Live, nor a Mac to run the script, this is specifically for Renoise. I have never tested it on a Linux machine so can’t be sure I got the process right to allow the tool to discover the Push once its connected.

And yes, the Push uses Sysex (for the display mainly) and other standard MIDI messages to illuminate the LEDs. It does basically nothing on its own. It’s just a massive USB MIDI controller.

Would it be possible to translate some of these capabilities with the existing tools you’ve created to maybe integrate a Push 2 atleast somewhat with Renoise?

Hi!
Yes that was part of the original plan but i lost interest and never got round to it. It would be quite straightforward as to my knowledge they use almost identical MIDI messages for the buttons, pads, encoders etc. Main difference is the display which uses some serial protocol over USB. It would be difficult to get that working in a XRNX tool as it would probably require writing a little program to run separately. I will get back to work on this one day!

I suspect this will be even more highly desired with the release of the Push 3 (including Standalone); a lot of folks - like me - will have a Push 2 “just sitting around.”