AxoCube project


#1

When I first saw Axoloti, I got excited (as I still am) about the potential, and quickly this formed into an idea for a project which I now call "AxoCube"

Its a combination of hardware and software, that I thought Id document along the way... its goals, progress and general thoughts. perhaps the community can share some ideas and thoughts.

The basic concept is a stand-alone virtual modular that can be controlled by expressive controllers that are normally tethered to a computer...

You can see some of my early noodling with the Soundplane and Eigenharp and Axoloti here, I love these instruments for their expression, but don't what to be tied to a computer.
The Push, is a fantastic controller, with plenty of controls but also pretty uniquely a great display, I want to use this to control Axoloti in a similar way to the way used in Ableton... my initial attempts can be seen here

Current setup is:

  • 4 x Axoloti cores
  • Raspberry PI2
  • Capacitive touch LCD screen
  • 7 port MTT powered USB hub.

The main 'engines' are of course the Axoloti (plural?) , these will be used for voices, fx and sequencing and also controller integration. the PI2 is currently being used for Eigenharp/Soundplane control, possibly later wireless OSC support. the LCD will be useful for general status and perhaps patch switching type features. (the exact divide between this and the push is 'work in progress') . The USB hub, means there is only small power input (5v 2a), and provides either host control via Mac, or from the PI2.

Note: this is far from the final configuration, consider a development setup... the PI2 in particular is likely to be replaced/removed. more on that later!


MIDI Host vs MIDI device?
#2

so enough words for now... here is the initial prototype from the weekend

Goals :

  • Protect boards from kittens!
  • All components powered and connected
  • All cables/connectors enclosed, one cable exit
  • Easy access for development

(this is not final enclosure design, really a starting point to allow me to concentrate on the software side...
I'm hoping final enclosure will be approx. 20cm x 10cm x 10cm ... or close to that)



#3

I will follow this post with pleasure
maybe the raspberry can hold to run the editor?
to the USB hub, maybe it's better to use a MULTI TT hub


#4

it is an MTT Hub smile

PI2, yup could run editor, and has HDMI output (or remote Xwindows) , but really my idea is to connect up to a computer for easy editing, upload patches to SDCards (each as 4GB SDCard installed) and then use it standalone.
I kind of view patch design as a separate activity to playing, assuming there is enough flexibility in the patch for sound design/sequence editing etc.
but given my curiosity... its likely I will of course try to run the editor on the PI2... just because I can wink


#5

This is super interesting @thetechnobear! One question: how did you manage to use the Soundplane without a Mac? Did you write your own Linux driver?


#6

Soundplane... I didn't write it, but there is now a Linux version of the software, based on libusb... (check github)

However, it doesn't work on the PI2 yet.
I think this is due to the same reason as the Eigenharp driver (which I did write) , an issue with the PI2 UBS kernel module. (it works with the Eigenharp Alpha and Tau but not the Pico)

But... Im getting a BeagleBone Black on Monday, and Im going to try with that.. since it doesn't have the same USB controller, so therefore will, hopefully, not have the same issue (but possibly will have others smile )

Once I've got the low level usb code working, Im going to write a new console app that will do the Soundplane/Eigenharp to MIDI/OSC mapping. as I don't need the fancy UI and its going to be CPU intensive and require XWindows.

Given where I'm at currently in development, I'm hoping this won't take me that long...

longer term, I'm looking to see if I can write the USB driver for both the Soundplane and Eigenharp on the STM32 i.e. directly on one of the Axoloti boards. (complete rewrite as can't use libusb)
Ive done the prep/reseach on this now, so its pretty clear...

(just I may as well do the PI/BBB first as its even closer!)

the big hurdle for the soundplane on the Axoloti, will be implementing a new touch-tracker for the soundplane in a way efficient enough for the STM32.

so thats where I'm at... and my next steps...

that and of course continuing to develop the Ableton Push for Axoloti!


#7

@thetechnobear what a great project, I'm eager to see / hear it evolve !
I really think axoloti is fantastic for these kind of projects, home made modular contraptions. I hope the board will be available to everyone soon, it's such a promising platform (and I wouldn't mind buying myself a few more and create myself a really crazily outrageous setup)

Anyway, big bravo and good luck and patience for the future of your project


#8

project update:
Ive received the beaglebone black (BBB) , and initial tests show it is working with the soundplane (unlike PI2), (and so I'm hopeful it will work with Pico too).
Im now updating the BBB to Debian Jessie, for a newer toolset.

Ive now started work on the controller daemon (called 'MEC: Micro expression controller') that will be a driver for eigenharp/soundplane and will spit out midi to the Axoloti boards. (probably will add T3D OSC over ethernet too).
This app will be have a very small footprint to ensure max resources available for processing USB traffic etc.
(of course I've yet to see if the BBB can sustain the throughput required, but I'm hopeful, with the new app)


#9

Fingers crossed wink (what else do add) hard work...


#10

small update... not had much time on this, been busy with house building and other stuff...

Soundplane and eigenharp code is ported to the beagle board and just doing some work on the pico support, still a way to go.

Push, the push controller code is now stable, and really need to take the next which is implementing the sequencer aspects.. many thoughts on this, but not started it yet.
BUT... then Ableton released the Push 2 ... so I traded in my Push 1 for the Push 2.
this has 'complicated things a bit'.
its got a fantastic display, but will need explicit firmware support for the display which is no longer midi based BUT last night I 'hacked' the low level usb protocol, and its simple to implement in Axoloti...
but it does mean I have to review how I display things as I can now do much interesting things, as Ive got hi-res graphics to play with ... Elektron eat your heart out :wink:
(other downside is it cannot be fully bus powered, so I will need to drive off a USB battery pack)

anyway, so many things on the go at the moment, so might take some time :smile:


#11

You always manage to come on top :wink: hope at not too many eyelashes expense… good luck evolving !!


#12

so a bit of news...

Ive now for the Beaglebone Black (BBB) working with my Eigenharp Pico, for a tiny setup :smile: ... I also have tested the Ableton Push 2 , and can confirm I can not only interact with midi but also drives its beautiful display...
Organelle, eat your heart out... I have full multitouch/dimension expression and a huge colour display!

coincidentally, bela has been launched on kickstarter

so Ive actually backed this, for 2 audio capes and an additional BBB :smile:

of course, I still will be using the Axoloti ,as the main sound generators and FX, but this will provide some additional options, and also given me a good distribution/platform for the Linux/BBB which will act at the 'brain' of the setup.

Im going to concentrate most of my development efforts in the coming weeks, to sorting out this side of the setup, basically the proof of concepts are all there, need to glue it together....

Im also planning on testing PD / Heavy to see if I can use it as a quick patcher for tie-ing together controller data, and setups... something that has to be reasonably low latency, but not really audio rate. hopefully quick and easy, without compromising latency


#13

Nice !
Are you planning on sharing the Pico code ?
If so I will get a BBB so I can start using that Pico again that's been collecting dust...


#14

@thetechnobear

just thought of you while reading this article, even more sleepless nights ahead for you I imagine :
http://createdigitalmusic.com/2016/03/ableton-just-released-every-last-detail-of-how-push-2-works/


#15

thanks @mytas , actually Id already reversed engineered the Push 2 stuff... but its good to hear its now official :smile:

@natcl the Pico should work with the BBB with the EigenD release I made for the Raspberry PI.

the stuff for the "axocube" is kind of a personal project, and is very experimental... at the moment, I have no plans to release the code.


#16

so update....

most work has been on BBB side.. but things are getting closer

Push2, basically this is working (see https://sebiik.github.io/community.axoloti.com.backup/t/ableton-push-controlling-axoloti/248 as to why this in on the BBB) , I need to write the interfacing code with Axoloti. I think this is going to work via the Axoloti 'bulk' interface.

Eigenlabs Eigenharps, working with both Pico and Alpha, broadcasts currently via OSC

Madrona Labs Soundplane, finally got full touch tracking working, also broadcasts via OSC

probably MEC needs a bit of optimisation on the BBB.

after seeing Organelle, Im thinking of doing some of the 'patching logic' e.g. translating touches to notes, menus etc in PD on the BBB, getting the touch data via OSC - this would be really flexible but Im unsure if the BBB really has the power to do this, but will see.
(it may be I also change MEC to be a PD external... not hard, but possible later)

currently a bit concerned over initial PD tests, on the Mac pure data is lagging horribly with heavier loads, whilst Max/MSP works perfectly.

anyone know if Pure Date has some kind of control rate? and can I increase it?
( I need it to be in the region of 3000 events/sec)