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: 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…