oKontrol


#1

in a couple of posts I eluded to some work Im up to on the Organelle, so I thought Id give a ‘sneak peek’

some perhaps will say … boring, another multi page menu system… but read on, its a bit different :wink:

here it is in action: with an updated (testing only) version of brds.

I call it a distributed parameter system (part of a bigger project I’m calling oKontrol) , you can see here:

  • Organelle parameters with a multi page system (nothing new but read on )
  • Push 2 directly connected to the Organelle
  • Mec running a Push 2 oKontrol device, so that it can see all parameters and pages from the Organelle

This allows you to control a patch simultaneously from the Push2 and the Organelle…
The Push 2 is in no way tied to the organelle screen, this means that you can control parameters that are not currently displayed on the organelle OLED. also we can render the Push 2 and Organelle completely differently (to take account of their unique properties)

of course there is ‘takeover’ functionality, for the organelle in cases of page switching and the push changing parameters.

but theres more… its all done over OSC, so other types of controllers could also be used to control the organelle parameters

features I’m working on:

  • midi learn,
  • save/load preset

Im also taking a very different approach (partly due to ultimate direction) to this :

  • its all C++, with a PD external, which gives me much more flexibility
  • patch developers simply define parameters and then oKontrol does the rest…

heres an example:
54

(these messages are just sent to an oKontrol object)

this is one page, of the patch… defining 4 parameters for one page
(you can have more than four parameters per page, these will display on the push, but currently only first 4 are shown on organelle)
basically they are of the form of

param type  unique_id displayname [minimum maximum default]

type: there are predefined type of parameters, these are going help control parameters in a sensible way without the patch developer worrying about them (e.g. step values, log/linear) , also display (e.g. there is a bool type, which display as on/off)

unique id: this is how we tie to a page, but it is also the ‘send’ that the data is sent on , so in the patch we just need to have [r f_cutoff]

display name: name used for display purposes

min/max - only on numeric types, oKontrol will keep parameter in this range
default - default value, when initially loaded… also on the push will allow the ‘delete + encode’ returns to default value

(page message is similar, pageId, display name , list of parameters)

thats it, thats all the patch developer has to do… no worryingly about page changes, or layout… and it will give users a consistent feel across all patches (using it ;))

of course, it wont be for everyone… but I will be using it for the basis of all my patches (all MI patches will be updated to it)

Its still work in progress, as I want to add more types, and also by moving the MI patches over to it, Im giving a good testing to check its got all i need in it…

Push 2 also has some more to do as well, e.g scale selection… and probably will improve the font/colours :slight_smile:

anyway, I thought Id share what I’m up to, in case anyone thought I wasn’t doing anything with the Organelle.

p.s. yes, it all runs on mac/linux, and also rPI.


#2

Looks really interesting :slight_smile: For the simpletons among us (ie.me…), is this going to mean using an octatrack/ipad to access multiple pages/CC’s on organelle is potentially going to become easier/improved functionality?


#3

Yes, its going to support midi learn…
and yes, all parameters are available for changing at any time , you can kind of see this in the video, the push has a completely different ‘current page’ to the Organelle, and can change any parameter.

my current idea is, you will:

  • activate a midi learn mode.
  • wiggle a parameter
  • wiggle something on your controller

viola its mapped. (exit midi learn mode)

these mappings are then going to be saved on the preset, so different presets can have different mappings.

one thing I need finalise, is handling of takeover… I guess I’ll do the same as the Organelle.

i.e. which ever control you use last (organelle or midi CC) , will have ‘control’ , and the other will then have to ‘takeover’… this will prevent you ‘jumping’ parameters regardless of if you use the Organelle or Midi CC.
in practice, I suspect most users that have mapped CCs , will tend to use the CC/Controller instead of the Organelle, so wont even notice this, but its important to be consistent in these things!.

fortunately the Push 2 doesn’t have this issue, since it has endless encoders, so doesn’t required takeover :slight_smile:

as for the iPad, it can use midi learn… but also the communication is all done via OSC… so you could use any app that supports OSC to change parameters as well, this gives higher precision, and also if the app is written well, it can also get to meta data about parameters (e.g. max/min/step values) .
I’ll probably target Lemur for testing this… but its not my highest priority.


#4

THIS LOOKS AMAZING!

Is there a difference between the push 1 and push 2 in this case?


#5

yes…
Push 2 has a hi res RGB display, which I need to talk to via USB with a proprietary protocol.
Push 1 lo res display, you communicate with via Sysex via standard midi channel.

it would be fairly simple for me to add the Push 1 (its simpler code than the Push2) , but unfortunately I don’t have one any more, as I traded my in for the Push 2, so not really possible for me to implement.
(I did this kind of thing with Axoloti on Push1 before I traded it, and it was simple to do)

I am keeping an eye out for a cheap Push 1, as Id like another one, because its a good device for this kind of thing, as it can be powered off USB and be still bright, whereas the Push 2 display is very dim when powered solely off usb.
alas, Ive not see a cheap Push 1 yet :wink:


#6

I am anyways extremely stoked on this development! I don’t really like the Push since it is so massive, but would love to develop a port that replaced the push with an Arduino with a screen and four encoders and a few buttons!


#7

yeah its pretty large, but I think fairly compact for the number of controls it has…

I think it pairs quite nicely with the Organelle, if I want portable, I just take the Organelle, but If I need more notes (pads with poly pressure), strip, and more control options, the push is actually pretty good for its size.
(what I also like is its got a ‘workflow’ that I think I can adopt for Organelle patches… but that’s a whole different story :wink: )

but controllers are personal things, so definitely can see Push is not for all :slight_smile:


#8

Yes. Great controller indeed =)
I just have a bit to many buttons already :wink: With a Monome 256 and 64 in my setup. Would love a push with just the screen and the encoders! Really looking forward to following this project though! I feel like I got on board with the Organelle at just the right time! I love making patches for it as well.


#9

Sounds like it’ll open things up a lot for sequencing automation etc…Sweet!
I have Push 2 but tbh I never really gelled with it. Keep considering to sell. Maybe I’ll hold off til I can see how it feels paired with Organelle :wink:
Octatrack has endless encoders too and is probably the thing I’d be most hyped to use with Organelle. Especially with the conditional trigs update coming up :slight_smile:
Also been checking out Beatmaker 3 on ipad recently. Pretty cool app with some big modulation updates coming soon. Multiple-param macros exist already on it and a bunch of modulation options for those macros coming soon. Seems like could pair up pretty nice with Organelle after this stuff spreads out :slight_smile:


#10

Me and you are in the same boat @Generationloss, my setup is Organelle + Octatrack too. Conditional trigs + lfo random parameters on Organelle = weeeeeeeeeeeeeeee!


#11

I have a push 2 and an octatrack as well heh.
i would love to check this out when you release it


#12

its pretty close, just adding the midi learn and presets
these needs the ‘okontrol menu’ system, behind the parameter display, which is an important UI step

a couple of notes:

  • this is also going to only run on BetaTb10 /and next official release, as I’m using the graphics primitives for the page selection… I do currently have a version using text only - doesn’t look at nice though, and I’m quite tempted to use a few more graphics :wink:

  • @oweno , I think we should switch mother host over to using oscpack, as the current osc layer does not support osc bundles… and when your doing graphics its pretty useful to be able to bundle together a group of graphics messages, e.g. here im using gfillarea -> gbox ->gprintln
    thoughts?
    possibly also might be an idea if I create a few more ‘user level’ graphic functions e.g. draw some text in a box… this means the patch doesn’t need to send so many osc messages.


#13

This is amazing, especially as I’m currently don’t use my Push2 when I’m playiing live, so it just sitting around and wait for such a use-case.


#14

i know it’s unwieldy but i spent a few hours getting it to play nice with Sc3 last summer and i love Push2 for creating beats with Ableton and running those insane IRCAM 1& 2 M4Ls


#15

oKontrol looks awesome! nice job, excited to see where this leads.

oscpack is a possibility. It needs to work with both serial and UDP (I don’t know if oscpack is decoupled in this way, other OSC libs assume you are using UDP) The OSC stuff that is already there is based on the CNMAT library. It is setup to use the Arduino print streams or something for sending messages, I just changed send() to dump messages to buffer instead… anyway, it does support bundles, for some reason I just didn’t include those files. Might be easier to just grab OSCBundle.cpp/h (and update the send() function like OSCMessage, although we are more interested in receiving bundles so it should work right away for that)


#16

if CNMAT supports bundles then lets do that…
though one thing ‘confuses’ me, whilst I can see for sending you would need the extra file, for receiving OSCMessage must already understand the bundle format… and that is what failed, I was sending bundles from my external (using oscpack) and mother host could not parse them.
(as you say, I think we are only interested in receiving bundles, not sending them)

I’ll take another look, perhaps CNMAT has a latter version, or perhaps something else is broken? perhaps i’ll try the cnmat bundle examples.

EDIT: ok, so I had a closer look at CNMAT bundles and worked it out, essentially you should just need to substitute OSCBundle for OSCMessage… that was easy enough., you just need to change it to not share the msgIn object with the slip (it cant cope with bundles) and switch Print for SimpleWriter in OSCBundle.

unfortunately, if doesn’t work with simple messages… basically, it sort of works for the first message it gets, but then if you use empty() it core dumps, if you use a new OSCBundle object each time, its returns invalid osc. … i had a look at the cnmat code, i can see where the error occurs, but the fix is less obvious.
one thing, I’ve taken the latest version of OSCBundle.cpp and of course its possible OSCMessage has changed since you took it… but i wasn’t confident to upgrade all the OSC classes , just in case that introduced other issues :frowning:


#17

Hi guys, this is kinda on/off topic but I’m thinking of purchasing a Push 2 and doing away with my Octatrack. I can’t afford to have both. The Octatrack is pretty brilliant and obviously is tailor made for live warped beatmaking, my realtionship with it is love/hate however and i don’t really go in for the crossfader effects. The thing is a frequent source of aggravation (especially pickup machines). With sync’d parameter controls for organelle coming soon through Push2 (with parameter names displayed!), I’m wondering if there are any owners of both ( @shreeswifty ?) who could advise.

Also: @thetechnobear, can the Push2 be used with Live and the organelle simulateously? This might be a clincher.


#18

I can’t say anything about the OT, as though I keep considering one, I don’t have one.

I will say , I do love the Push 2 along with Ableton, and every time I think of getting an OT - I just breakout Live/Push and really it does all I need - I think its fair to say, a Push 2 is only really worth it, if you like Ableton, as thats where it shines.
(what is exciting, is it looking increasingly likely Ableton is going to announce Live 10 quite soon :crossed_fingers:)

an obvious caveat here, never plan on something that is not yet currently available.
Ive many projects and which are my current favourites to work on does change - thats not to say I’m not working on it, just I wouldn’t want anyone ‘planning on it’… it will come when it comes :wink:

not as it stands, because only one application can have access to the push 2 display at a time, so without hacking Ableton (which is what sigabort has done), you cant run have ableton and something feeding the display.
(this demo, was more also aimed at using a Push 2 with Organelle… and plans I have associated with that)

that said, as part of MEC, Ive already created a VST, so theoretically I can push the organelle parameters to the VST, its a bit of a different use-case of the current MEC VST, but no technical reason i cant do it - and is probably need for other parts of the project anyway… so with this, the Organelle parameters would appear on the Push 2 in Ableton, in the same way as any other VST parameters plugin.


#19

Thanks for your response. I didn’t mean to weigh pressure on you, I just figured it may be coming soon as you had announced it here :slight_smile:
I find I get quite different results when using Ableton vs my Octatrack. I don’t get bogged down in the screen as much with the OT, spend my time getting groovy instead of playing with deep settings on effects etc. I was hoping perhaps I might experience a similar effect through using a Push, but with the added bonus of being able to operate cool stuff like glitchy granular max devices, izotope iris 2 and v-synth - while still having some of that sequencing ability i find in the octatrack. I hated clicking in notes and beats on a sequencer in ableton when I’ve used it before without a controller. Maybe I will see if i can borrow one and try it. How often do you find yourself glancing at your computer screen when you use it?
Very cool if there is any chance for an Organelle/Push VST thingybob - but obviously only work on what is important to you and anyhow - I don’t even own one… yet.