Er301 on ssp - intereresting?

an interesting proposition ? :laughing:

I’ve always wanted to try out an er301, and now they are discontinued, Im reluctant to get one…
so with with ssp magic, Ive managed to get the emulator ‘kind of’ working on the SSP.

I say kind of, as you need a keyboard to use it currently :laughing:
looking kind of cool, I can see all the core modules and load them in, get the scopes working.
I just need to go watch some videos on how the er301 patching works.

whats the future? how might this work? could it come to the xmx?

well. yes, maybe to all the above :slight_smile:

lets clear some things up…
first, this is early days for reasons that will become clear below…

  • is this going to be a module for the SSP? or standalone?
    Initially my plan is standalone, Ive already have developed a framework that allows you to launch different apps at startup on the SSP… so I can start Synthor, Trax or now this er301.
    I’ll see how it goes from there, but Im not keen on a hugely complex module like this within Synthor.

  • xmx, possibly… technically, I’ve all the bits in place, its about the UI.

  • this looks kinda crap - yeah, I know :wink:
    lets get to that… this is just the emulator’s desktop interface, it obviously makes no sense on SSP/XMX, we dont need virtual jacks etc.

so the idea is not to use this emulator like this at all, rather to have a custom UI.

Its likely Id keep the two windows, and even reuse, as I do like the er301 ‘style’
what Im thinking currently is…

  • 2 windows , as is - so it feels like the er301
  • buttons, jacks and knob goes.
  • not sure, about leds, I need to get a better understanding of er301 for this.
  • new hardware mapping for using SSP encoders and buttons

the challenge is the button/encoder mapping… even if we had enough buttons for a 1-1 mapping, they’d not make any ‘positional’ sense - it be a crap UX.
we also have 4 encoders not 1, so leveraging those are important…

ive already some ideas on how I might go about this, some of it depends on the ‘flexibility’ of the er301 code base, and some how it ‘feels’ when I try it out.
certainly there are plenty of options…

good news is Ive coded the encoder and button handling before in Trax, so really its just wiring it up, and trying things out.

all that said, I really need to do some ‘serious patching’ on the emulator to get more familiar with the workflow, as that’ll help guide me to a decent UX

(this is why the XMX is a ?.. just depends how I end up coding the UI, and if I can find a fit for the xmx smaller screen, and less buttons - we will see)

overall, its been surprisingly promising for what started out as just messing about this afternoon, procrastinating about something else.
(also to get this far also yielded some other interesting possibilities ;))

anyway, back to the project I should have been working on, before I got distracted by “i wonder if…”

2 Likes

That’s interesting.
I used to own an ER-301, and I remember feeling that its UI was incredibly well designed on an intuitive level.
If it runs on the SSP, I might finally find out whether that feeling came from the physical buttons and layout of the ER-301, or if the software itself is what made it feel so good.
But now that I’m so used to the SSP, I might actually feel a bit of weirdness using a different style of operation. :laughing:

2 Likes

yeah, I’m interested to learn this too, as I know many liked the er301 ui.

from playing a bit today, already I think its a bit of both.

ofc, the form factor (hardware) matches the UI very well.
the er301 is not quite as ‘generic’ as, say, the SSP or 4ms MM, its got a particular ‘shape’.
that will help musical memory. i.e. its easier to find a button if they are not laid out in a uniform grid. also the buttons tend to have a more ‘fixed’ meaning.
(though, they do get reused a lot in different contexts, so take that with a pinch of salt!)

on the software, from what Ive seen so far, I think the key is consistency !
rather than each module being different, they have a similar form, and you use in similar ways (e.g. modulation etc)

its kind of a ‘layered’ approach…
this creates the flexibility, and can make it a bit complicated, but its simple once you understand it, as its building blocks.
(contrast that to something like vst plugins or vcv modules, where each work differently, so you have to learn them individually)

But, also, Ive already found there are a lot of QoL features, things like being able to save presets for chains, or how you can fine tune values.

finally, its ‘model’ is a little simpler than something like the SSP.
e.g. its really ‘fixed’ to 4 tracks, so that shapes the whole experience, helps define it.

thats not a bad thing to do, when you have a limited form factor (as you will in any eurorack module)

its an area Ive been exploring recently, this idea of how to get a good UX when you have a limited form factor - and if too much flexiblity, actually starts to be a really bad thing.

odd, though, I didnt expect to see this with the er301, as when I originally looked at it, I put it in the ‘very complex’ basket - but now im viewing it more similar to something like the Disting-NT.

anyway, looking forward to digging some more…
… and Ive only just started looking at 3rd party modules, and how they might be ported :wink:

1 Like

chain a few of these for 20 tracks
(i see you only use halve of screen estate)
-what kinda of keyboard?

as I said in OP, this is not the UI that will be released… its ‘phase 0’

phase 0 - proof of concept/tech build

the desktop emulator running on the SSP, this uses a computer keyboard/mouse to drive it - and is a skeuomorphic UI.
I’ve used this to test that I can drive the display, create patches, get sound etc etc.
a tech proof of concept only.

phase 1 - integration and ux test

in this phase the SSP gets its code base, its own HAL.
which means its gets its own UI (thats not skeuomorphic), so can lean into the SSP form factor.
so the jacks/buttons/encoders all go, the main window/sub window become the main focus, and likely a couple of led mode selectors etc.
the encoders and hardware buttons are all wired up.
this will allow me to test the UX, get a feeling for how the flow works, and tweak it.
also, I’ll remove a few of the restrictions of the emulator.

this is likely the MVP (minimal viable product), but testing will determine this.

(this is kind of similar to what 4ms did with vcv and mm, though there is also a mix of phase 2 as well)

phase 2 - deeper integration

not sure this will happen, I will see how it goes…as its a lot of work.
basically, Id remove the HAL, and produce a specialised firmware only for the SSP/XMX.
this would means its form and function could be different to the er301, e.g. multi core, more ‘tracks’ etc.
it would be compatible with the er301 only at the ‘unit’ (aka modules) level, as it’d be a custom firmware.
really, this depends on how ‘into it’ I get, partly, do I think the er301 model is something Id like to really build upon.

anyways… phase 1 is for now.

(there are other variations, I’l be looking at, but the above is a reasonable overview)


this is not my initial plan, I actually, like the idea of it being a more focused experience, tied to the original er301 UX. sometimes ‘more’ is not better.

I don’t think simple chaining will make a lot of sense, at least from a UX, having multiple instances would not be much fun for a user to manage. (as each instance is quite complex)

so, as for extending, theres two options.
a) phase 2.
as I said, deeper integration, means I could remove restrictions placed by hardware, and allow more tracks etc. all within the same UI. but its depends on bit on the malleability of the existing firmware.

b) make it a synthor plugin.

in synthor can load as many instances as it wants,

we will see, he plugin, is a possibility, and once I’ve got phase 1 done, I can see if its something that makes sense
I could go a similar route as I did with Trax, where Trax plugin is the main code, and then use TraxHost to create a standalone form.

overall, as I said, Id prefer a more focused experience as a starting point.

we already have so much power / flexibility in Synthor (often not fully utilised)
my focus recently, has been more about, accessibility, this is a bit of an using the er301 in this field.
hell, often within art, limitations are a useful tool.

2 Likes

ok this is proving fun :slight_smile:

I’ve started phase1, where Ive got rid of a lot of unnecessary emulator code, so created a new ssp sub project for that.
it turns out to do this, Iv need to dig pretty hard into the er301 hardware.
the er301 is very ‘optimised’ for the hardware, so the emulator in many way has to reflect the hardware very closely.

for phase 1, it looks like the workflow will have to be very similar, e.g. using one primary encoder.
that said, I think ive got a reasonable design for the UI with button/encoder mapping
so now ready to bring in the encoders/buttons for ssp, the code is kind of ready for this now

one thing, I don’t like, is the displays are really ‘hardcoded’ in the er301 firmware in dimensions, even in the emulator they keep the dimensions. as they do a direct framebuffer write.
Im not sure if these will ‘scale’ nicely, or look a bit blocky… no ttf used here, these are bitmap fonts.
we will see… not a big issue.

the bigger tasks has been looking at the inputs, as these are NOT working in the emulator!
(in fairness it does mention this is a limitation in the docs)
so alot of digging in the er301 code, and I now know a lot about the er301 adcs (3 of them!), and how they are integrated… more than I wanted to know probably :wink:
BUT does mean I have a direction which is looking very promising.
may need some tweaking on scaling and stuff.

there a couple of mismatches…
SSP is much higher resolution on inputs,
er301 has different voltage ranges for inputs, this is to compensate for the lower resolution.
not really an issue, internally units all assume its +/-10v (needed for v/oct scaling!), so can mimic that.

still quite a bit to do, but looks to be taking shape nicely.

3 Likes

I wish you tons of luck on this project. I love the idea that the SSP can become a different machine - sort of like loading instruments into a Qu-Bit Nebulae. I would love to be able to just pop a different MicroSD card into the SSP, and boot it up into being a totally different machine using the same I/O etc…

2 Likes

glad your interested :slight_smile:

It shouldn’t be too long now…

I ended up having to rewrite a whole load of stuff, due to some tech limitations that the emulator had.

but thats all done now,
I’ve got the UI in place, audio in and out is all working and mapped correctly, the encoders and buttons mapped, its fully functional :slight_smile:

It was funny, running it up today and seeing how its transformed.

really, its just ‘polish’ now, really a few UI things, just to make it better.

also some other exciting bells n’ whistles.

e.g.

  • Id like to have a stab at getting the XMX going,
    there is something enticing about offering er301 capabilities on a $500 unit !
    Ive an idea on the UI side on how to make it work, but I do need to see how the er301 will look on the smaller display.

  • I’d like to make it have the usb audio interface capabilities (on both ssp/xmx)

also I need to check Ive ‘packaged’ proccmd for the SSP, its already running on my SSP, just not sure if I finished the prep to ship it.
(this is my tool that you’ll use to ‘multi boot’ between different apps on SSP at boot time - already in place for XMX)

ofc, then its testing, currently, Ive just created a few patches, but Id want to test in anger before letting it loose :slight_smile:

2 Likes

little update, its really looking good now (imho ;))

… the more I did, the more I thought, “I wonder if…”


I ended up watching a load of er301 videos last night, as I was excited to start building patches.
wow, the more I watched, the more powerful I realised the er301 is…

its a funny thing, you look at the form factor, the buttons, the UI, the IO, and you get an impression of what it can do… then you dig in an realise you are completely wrong, its SO much more.

e.g.
you look at the 4 out and the ‘chains’, and you think oh… 4 chains, thats limiting.
then you realise, that is literally the ‘tip of the iceberg’ , yes you have to ‘mixdown’ to 4 outputs , but to get to that mix, you could have huge amounts of chains and complexity.

you look at how few buttons it has, but do see the huge number of contextual options.
one example… you can take a huge bunch of modules, and then quickly convert them into a custom module, or abstract them into a mixer.

you can modulate from anywhere to anywhere, its just crazy !

I also love its alternative view of modular, its different to the ‘eurorack’ and also different to matrix patching, it is a pretty novel approach :slight_smile:


so yeah I got pretty excited…

back to the delivery…

  • as above, Ive largely got the SSP done, though I need to do more testing/patching.
  • I found and fixed a couple of bugs in the er301 firmware ( in fairness, I picked up the ‘dev branch’),
  • Ive fixed a small issue in PercCmd, due to linux not always sync’ing filesystem on small files

BUT, always a but…
as it was looking so good, I decided…more…
I NEED to see it on the XMX, i NEED to see if I can get the UI adapted… its just too cool to not try :slight_smile:
I really, want to see if I can hook up the usb audio interface in some way, again to cool not too.

basically, I just think it deserves a bit more … I cant seem to put it down.

however, that means (not uncommon for me ;)), Ive decided I need to refactor all the code…
I could have patched up the XMX code, but it would have been really untidy, it was time to really abstract the codebase… abstractions on abstractions.
its not a huge thing, mostly moving code around, but it’ll make the code base much better

(I’ll also admit these days with AI tools refactoring is not as labour intensive, its pretty good at just moving my code around, and renaming etc ;))

ALSO…the redesign includes the abstraction necessary for it to be a plugin.

thats not to say it WILL be a plugin, theres a couple of technical hurdles that might prevent it, but it means I can test and see if I can overcome.
Im obviously ‘kind of’ hopeful on this, otherwise, Id not be trying - but theres some bits that could throw a spanner in the works, so its far from 100% sure.

3 Likes

That is by far the best thing to read.

2 Likes

ok, refactor is basically done…
so I was able to get my xmx toolchain working, and do an initial test…
… and Ive been looking at small lunchbox eurorack cases ever since :laughing:

it was only a partial UI, the main display, but had that ,and all encoders/buttons and audio all working.
and I have to say, first impressions, I really liked it.

I think the er301 screen really suits the small display,
ofc, we are also limited to 8 in and 2 out, but we do have a headphone jack on the xmx,
so this could be really fun for a ‘couch’ er301 in 28hp for $500… which is why I started surfing for lunch box racks.

back to reality, I now need to form the full UI, but th refactoring included creating a UI framework, so this would be easier
so its mostly just finding a nice layout, and perhaps tweeking things a bit to allow for smaller fonts etc.

it does look like I can get main and sub window on one page,
my main concern is, if there’d be space for other ancillary things like the toggles and leds…
it might be, if I ‘compress’ them, and Im a little ‘sparse’ on labelling.

i also need to make a decision, on button assignment… as we are going from 14 down to 10, but Ive ideas on that :wink:

overall, Im pleasd, I thought the XMX display might be a bit too small to be viable.
and whilst theres no denying is small (glasses may be required), its looking quite sharp, so readabilty is surprisingly good.

2 Likes

shaping up really nicely… was testing xmx version last night on the sofa…
today, fixing some edge cases.

amusingly, not in my code…

  • fixed a race condition audio bug in the er301 firmware.
  • worked around an issue in the xmx button matrix (hardware? or kernel)
    basically tri chord buttons are problematic, it may also be true on SSP?
    in fairness, tri-chords are not a great ux anyway, so not a real loss.

also reviewed the er301 code and specs, interesting stuff…
one big takeaway is its using a single core, with preemptive multi-tasking.
this is how I stumbled on the race condition, as on the xmx/ssp its true mutli core, so our dsp and ui are completely independent. unlike the er301 - so ‘exercises’ the code a bit more :wink:

performance will be interesting to compare, though unfortunately I dont have a real 301 to test against…

  • xmx,
    has quite a bit stronger cpu, (we are only using 2 cores)- less ram, less IO. loving the headphone jack!
    so not great for big samples, but I think could be interesting for more complex cpu intensive patches/processin.
    display is actually pretty decent.
  • ssp,
    lacks 4 inputs, and we don’t use the extra 4 outputs (at this time)
    cpu much faster, more cores (again limited to 2 in use currently) a lot more ram.
    display is :man_cook: :kiss: … even just upscaling, makes it a joy to use.

voltage range is interesting er301 is ±10v, xmx/ssp ±5v
what Ive done for xms/ssp is map IN1-IN4 / OUT1-4 to full range,
A1-D3 Ive mapped to +/-5v i.e. so v/oct works
(need to just double check my calibration)

oh, xmx/ssp outputs are DC coupled, er301 are AC…
so xmx/ssp can be cv processors. really, more useful for ssp IF I can add the extra outputs later.
(and / or when using usb audio interface)

lots of other possibilities are occurring…

I think close to getting to demo stage, probably a few more hours to see if there are any other hidden quirks. e.g I found new key combos last night that I didnt know existed (er301 manual is ‘bare bones’) which is how I found the xmx matrix issue

on to more testing, looking for oddities and quirks.

perhaps this evening I’ll chuck the 4ms MM in the same 104hp skiff with xmx, that’ll help me test calibration audio in/out etc.
its a bit easier testing xmx on the sofa, as ssp, Id need too skiffs due to size… but still a 1st world ‘problem’ :wink:

2 Likes

Is the ER 301 still in production? If not, there’s enough users out there that you might be able to sell them a version of your fixed software for their units. I don’t know how that is legal or not. I would imagine they would be more than happy to have an update to their Software if it is no longer in production.

tl;dr; - No and legally possible, going to happen no/unlikley

last production, was (aug / oct) 2021, and store close then.

the only ‘official’ news, I can find is on twitter.

basically, the last tweet was on Aug 22 and said,

only 2 tweet after than in '23,'24 to say wiki and forum were being shutdown.
last firmware release was also oct 2021.

so unfortunately, it appears, it never got going again and likely never will :frowning:

again, this is a very niche boutique market, so its bound to have a lot of one man operations, and so its not that uncommon … look at Mutable, who were one of the largest names in eurorack!.


anyways, yeah, I feel all of this is ‘open’ for all to explore

as for legality, pretty much anything goes…
the entire software stack is published under the MIT License, one of the most ‘liberal’.
( as far as I can tell from git, seem this was done in 2021, perhaps foreshadowing?)

that said, no, I would not sell bug fixes for an open source project.
generally, Id not sell stuff, unless Id put a considerable effort into the project.
(or I perhaps, if Id come to some arrangement with original dev to take over support!?)

what’s the options?

  • I could push changes to original repo,
    but thats basically a dead end, and little indication that a few firmware would ever be build from it i.e. few users would benefit, only devs.
  • release my own version / build
    Ive done this with other projects which are no longer support, its a good model - basically ‘take it over’. The issue is, I can’t do this unless I own an original er-301, as I never release software, Ive not personally tested (properly) .
    frankly er301 prices are still to high for me to consider this, im not paying 1000+ euros for a used unsupported product :frowning:

however, I will say ‘its not the bad’.
I think the errors Ive seen so far, are likely due to me pushing the er-301 harder due to being multi-core. so it may be er-301 users have not seen the issue at all.

whats the future?
not sure, above getting this out on the ssp/xmx
but, my current plan is, when Im ready to ‘demo’ this, Im also going to try to establish some links to the er-301 community (if I can find it, if it exists still?), and so that might open up some opportunities.

its a bitter sweet thing,
playing with the er-301 on the xmx last night, really made appreciate the speed of the workflow, even with a more limited form factor… its must be really awesome on the er301 hardware (and ssp ;))
also the factory units, are pretty fantastic the variety of granulars and samplers in particuar are tremendous, and so flexible, tied with the workflow its a dizzy combo.

so yeah, this is turning this project into a bit of a belated love letter to the er-301 and what might have been…
but i do want to make some positive come of it too, including (whats left of) the wider er-301 community.

2 Likes

Really stoked to see you working on this! I own an ER-301 and use it in my live case together with nerdseq, SSP and a dedicated convolution reverb. Currently it holds two grain stretch players with 128-slice sample chains that I play with a dualsense controller. Really fun! :smiley:

SCs UI is an absolute blast and extremely well designed. To see it being ported to the SSP and combined with its computing power seems crazy. Especially since from my experience, the only thing where the ER-301 lacks is its computing power. I quickly reach limitations especially with CPU-intensive effects (like reverbs and delay networks especially).

Apart from a local friend who also has the machine, I have not really gotten into contact with users of the sound computer. I have seen @NeilParfitt showing a lot of stuff online with the machine (thanks a bunch for these videos btw. it really got me started with the sound computer :slight_smile: ). Then there is a lot of material by @mudlogger online (especially the autogen custom units) that I know of. More recently I found these super interesting use cases by @userfriendlysounds (also in combination with the nerdseq tracker).

If I can help with testing stuff, let me know. Maybe there are also others here in the forums that have a unit flying around. I would unfortunately never sell this machine. Its too much fun playing with :smiley:

1 Like

ok, a bit of a tease …

2 Likes

looks really cool! thanks for diving into this!!! :star_struck:

1 Like

its actually way better irl, looks better, and flows better.
you can see, Im hesitating quite a bit, theres a real lack of flow…

two reasons…
a) Im still learning the er301,
I think, Ive a good grasp on it functionally, but not really fluid with it.

b) no muscle memory.
I keep changing the UI layout, and switching between SSP and XMX versions.
so theres no muscle memory, Im even reaching for functions where they used to be, a day or two ago :wink:

so whilst the workflow I think is now really fast, and fluid, I just can’t demo that yet…

that said, I think the UI/UX is now done/frozen, so I can now start to build the fluency in both the er301 and the ssp/xmx versions - that’ll really make it sing.
so, need to start thinking of a musical idea for the ‘real’ demo :slight_smile:


I guess, what does show is how much I managed to get onto the XMX display…

Im genuinely surprised, I didn’t have to resort to page switching.and its so much better for it.

also, (though not clear on the video ,due to scanning) , the XMX display is much sharper than Ive seen it before - I think its the amber/black colour scheme, it really punches thru.

funny, I love the SSP version, its really hands on, has more IO etc…
but theres something about the XMX version, that I really like, its cute, its compact.
or perhaps, its just, I knew the SSP would work, whereas the XMX was exceed expectation.

1 Like

I myself had a Eurorack module company for over 10 years (Synthwerks, LLC) and I folded in 2022. I was making niche products (controllers and utilities) in a niche market, so the cards were stacked against me from the beginning!

I was always interested in the ER-301 but couldn’t afford one. I only got the SSP I have because of a trade. I would LOVE to run a more friendlier bit of kit on the SSP’s hardware. For what I use it for now (which I have to admit barely touches its power) it does beautifully.

3 Likes

yeah, its funny, Ive been looking on and off at the er301 for years… I was always intrigued by its workflow, but yeah, the price always put me off…

this all started, because an er301 video popped onto my YT feed, and it re-ignited my curiosity.
why this time, I went beyond that > I dont know, Ive looked at and considered porting, multiple times over the years (to various platforms)…
perhaps, the er301 looks ‘dead’, and I felt that was a shame?

yeah, its funny, I actually like synthor, and Im quick patching it etc.
But, theres a side that makes me feel, its a bit too methodical, that patching is feels a bit ‘goal driven’, not as ‘spontaneous’ as it might be.
(note: I do think there are changes that could improve this, its inherent in the design)

and, don’t get me wrong, with a limited form factor, its very hard for this not to be the case.
i feel exactly the same about the 4ms MM, if anything more so…

frankly, I think this is why a lot of modular folks, don’t gel with virtual modulars,
many come to eurorack for immediacy, a tactile experience, I know i did.
its not about flexibility, synth functions per hp… if you want that buy a premade synth, use vsts and a laptop - you will never beat that (in both cost and function)

BUT that brings me back to the er301…
whilst its not going to convert anyone, as its still has a ‘level of complexity’.
I do think it has a really immediate workflow, compare to all others Ive used.

i suspect (as I dont own) disting-nt MAY be similar, for similar reasons, not using a skeuomorphic interface, limiting functions…

the other one (I also dont own) I feel was like this was the Zoia, again non skeuomorphic.
though, its achilles heel was, it was write once/read never… as it was impossible to get an ‘overview’.
(I suspect this is why OD added the scope mode to er301, to help this)

sorry, for the ted talk, but its an area im fascinated in… (probably since I built Orac?)

it comes down to, many of us love the flexibility of modular, but the form factor , UI and UX, is a major turn off for many musicians…

and I fully recognise, that perhaps my love/appreciation, likely stems from my engineering side, rather than my musical

… and Ive spent so many years tryng to reconcile those 2 sides :laughing:

1 Like