Zynthian as a loop station synth

Want to showcase the last week’s progress with a quick sound check. Managed to make a custom device control driver for zynthian that interacts with sooperlooper, right now the little apc25 gives me high pass, lowpass, reverb, delay and the imfamous ewham which i cant live without

I only started the actual dev work 24 hours ago, Positive results :+1:

2 Likes

I hope you share your driver soon.
BTW, We need a mechanism for loading alternate drivers for the sane device.

yeah I didn’t want to push you for that I know you’re under pressure, but it did become somewhat apparent, I also had to connect to sl directly because I didn’t want to modify the sooperlooper engine file… let me share it real quick

zynthian_ctrldev_akai_apc_key25.py (23.2 KB)

I didn’t want to share it last night because the mute buttons werent showing up as colors yet whent they changed, fixed that this morning real quick before work

So the bottom row of buttons change zs3 and the side row of buttons change the snapshot, I dont have it listening to zynthian for those yet so the light is just an internal state, but it works really well

There’s only 4 loopers set up right now, I’ll probably add a fifth this weekend, the reason why the apc25 is so powerful is because the buttons can be lit to communicate stuff, and the turning knobs are finite and have a good resolution (some cheap controllers are halved), these days in south africa people sell them for like $30 second hand.

Since I have a pair of apc25’s I’m setting up a second one with an upcycled pi4 that I rescued from the electronic cemetary in durban for my band mate, I’m going to send them some quality zynthian footage for them to promote their recycling project to the world organizations and stuff, its a nice mix of hi-tech and african innovation :slight_smile: The pi4 was a little crushed but I pulled apart the metal on the usbs and they work just fine, I even have a nearly infinite supply of pi3’s that might still get some love down the line

I do use an SLB right now but I’ll move those to the driver next… here’s the slb
zynthian.slb (956 Bytes)

the slb would go to /zynthian/config/sooperlooper/zynthian.slb for those picking up the threads from this point

1 Like

This is very interesting. I’m gonna read your code!

I was planning on either creating a SooperLooper device driver for apc key25 mk2 (so not exactly your device, but comparable - just more colors) or extending the driver by @oscaracena, but became frustated coding in Python, so I wrote a generic JavaScript controller which is also usable outside of Zynthian. That way I could easily iterate, play with it, work on it on the train etc. It’s at GitHub - pft/sl-apckey25mk2 by the way.

But now that is nearly done, and having some communication issues, I would again like to also look at doing this as a device driver, either as extension or - probably easier - as an alternative driver.

So yes @jofemodo I think it would be awesome if there could be multiple drivers for the same device.

Some other thoughts:

  1. I see you’re polling SooperLooper to try and connect. Is there also a mechanism in Zynthian that exposes when engines are added and deleted? That would be a nice hook to use for setting up monitoring.

  2. We might indeed be better of using the monitoring already in place, in order to lower the load. But that may indeed prove complex.

  3. For the presets (SL sessions), I currently manually load up a python script to see what is in /zynthian/zynthian-my-data/presets/sooperlooper (and I just use numbers for their names) - so I have 40 presets (no pagination there yet). I could not manage to run this at boot, but probably having an OSC way to list any preset for any engine (and whether it’s custom or built-in) would be more useful.

yeah niels you should be able to get it working on the mk2 with some very slight tweaks

I agree with you I actually started wishing that the whole GUI was just javascript lol

1: you’re right, I made this very naively, and there are still ways to go, this is 24 hours of brutal brute forcing and completely naive coding that made this, however since it is in a working state I can manipulate it to become the same quality as everything else, the notable part is how it connects to SL, a superficial but important update will be coming where I basically fix anything that isn’t done the way zynthian does it, I’d love it if someone like you could maybe help with some improvements, maybe we can make the mk2 and mk1 file use common code

2: You’re also right, my first implementation included expansions to sooperlooper engine so that I can just use what its providing, however I quickly ran out of motivation and understanding, and decided to take a shortcut and connect via OSC and later ask for the sooperlooper changes, I’m quite confident that this can improve, however the benefit will also be superficial probably

3: this sounds interesting, right now it’s set up with 5 presets and 8 zs3’s each, this situation can definitely be improved, it could be 5 banks of 8 zs3’s (basically what my previous c++ setup was) with a shift-held 40-preset bank of snapshots (what I understand you got going)

The real reason why I moved over to zynthian in the first place, and why I moved over to a device driver from highly customized software, is I want reproducability now, my proof of concept work is done so now I need it to be highly reproducable and easy to set up (especially cause I have to maintain two of these, one for me one for my band mate)

A little update…

zynthian_ctrldev_akai_apc_key25.py (26.0 KB)

It now handles 5 loopers, needs no SLB, and has record and play audio implemented, this is now what I consider a minimal usable setup.

1 Like

I set up lights for record and play

zynthian_ctrldev_akai_apc_key25.py (26.4 KB)

So after adding some esp32 wireless sync devices (described in the jack_link thread), and fixing a bug with loops drifiting part (playback sync switch on), I’m now confident to say the zynthian setup is out-performing modern loopers like the boss rc-505 mk2, since you can have many effects, with custom dial mappings, software instruments battery support, puredata and touchosc.

I’ve done a little field test for the battery

not much of a performance but it confirms battery operation, and helped me discover the loop drift bug ( which you can hear in the recording )

3 Likes

I’m not sure I approve of Ravens’ flying free. . . .

Damn shifty birds in truth . . .

How do you do your battery and speakers?

More important: is the youngtimer’s VW Golf in the back yours ? I know some people here (I mean, here, in France), that would be ready to deny their own parents and own children for such a car. <= nothing Zynthian’s related => I’ll go back to work :wink:

battery is a powerbank on the rpi, the speaker is a “bluetooth” speakers aux input, I had to try different one to find a lag-free one

it really is a fantastically practical car, feels a bit like flying a small airplane, super easy to work on

Yeah I know

like this ?

1047 km at 120km/h average speed with pure natural energy

wyleu has a Silver C somewhere from a long time ago …

but still on your chimney or any other remarkable place, I hope ?

Many, many years ago. 50k flight, up for 5 hours, height gain of (1/2?)000m

A singularly interesting view and sound of the world.

just for the pleasure (got to get to work seriously now)

You do, of course, realise the tremendous modulation potentials of making the data available as MIDI cc’s…?

must be easy for skilled coders (of course I’m not really concerned in that manner): it’s just implement a kind of NMEA to MIDI bridge …

… and … you don’t want to get fool again ?

Bit like music, I got to learn enough to know how much more there was to learn, and in the uk you spend a lot of time on cold airfields bouncing round circuits.
It is an interesting moment when you realise where you are when you pull off a winch line solo for the first time.

Scared myself a few times as well.

It teaches real reliance on equipment.

in another style, make music with boats