Open303 - open source 303 emulation project - collaborators wanted

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

whiskas71 wrote: Mon Jan 24, 2022 9:16 pm If you want to hear how Open303 written by Robin Schmidt sounds like. You can try the my web version called BassMatrix.

https://olawistedt.github.io/BassMatrix/

Press "Start web audio!" button to begin. Reload page if you want a new random sequence.

I have not my self run a real TB-303 so any input is welcome.
Hah! Very cool as well! Thanks for making it! :tu: I would say, it would benefit from some facilities to load some proper patterns. Just completely randomly creating a pattern without any constraints does not tend to produce useful results
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Great to see the code getting some more use! Let there be acid! :hyper: And thanks for making your project also open source and for the kind words of endorsement! That's very flattering! :love:
No, thank you for release it under MIT! Credit for hard work should always go to those who invested their time in it. I aim to release everything under the MIT license whenever possible. However, in the case of this Juce port and VST3, the only option was to release it under GPLv3. The advantage of using MIT in this case is that it is compatible with GPLv3.

Looks like you have some other interesting projects going on there as well!
As an acid enthusiast, I've begun working on some projects involving opensource DIY hardware, such as a 303 and 808 step sequencer clone. I also have plans to port the open303 engine to ESP32 and Teensy platforms for integration with this project called Aciduino.

https://www.youtube.com/watch?v=7D5RpPdX0to

Hah! Very cool as well! Thanks for making it! :tu: I would say, it would benefit from some facilities to load some proper patterns. Just completely randomly creating a pattern without any constraints does not tend to produce useful results
In your opinion, what kinds of constraints would be useful for generating compelling acid patterns? For instance, your Toolchain generator would be greatly appreciated for insights on this!

Post

Notes/melody aren't so important in acid, rhythm and most of all the placement of accents and glide seem to be crucial. The same pattern can be trash, and if you shift an accent or glide over by one step it can become amazing. For that reason I'd allow for "rotate" functions and similar transformations. I implemented these sorts of things in my tracker way back in the day and they're amazingly useful. Mouse select copy/paste and selection rotate/shift can achieve amazing results very quickly.

If for example you allow the accent column (?) to be selected for 8 or some arbitrary number of steps, then "rotate forward" or similar. The last entry is stored, the whole section is shifted forward one step and the stored value is placed in the beginning. Applying these types of techniques can also be automated via a "randomize" function. It's almost never useful to generate 100% random input, but if you apply a random "transformation" to the pattern such as shifting/rotating a group of notes forward or backward that can again produce amazing results.

Likewise, not just shifting/rotating and copy/paste selection, but allowing transpose in semi-tones and octaves is also tremendously useful. You might want to transpose only six specific notes, holding shift and clicking each one, or dragging to select a "window" of steps in specific columns are very important features to support. It's frustrating when the only option is to transpose the whole pattern, as you're then forced to go in and do more work manually adjusting the notes or the position of other elements. Similarly, quantizing to specific scales or transpositions of those scales can be incredibly useful. And the last thing you want is to have these transformation features available in a situation with the data size of a pattern being under 1k, and have NO UNDO! Having a rewind/repeat undo/redo feature in such a case is as simple as memcpy().
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Thank you for the insights! I've implemented a rotation function for everything on Aciduino, but this per-parameter rotation looks very promising!

Post

Bassmatrix is quite good. Singy in the lower end, and ripply in the upper.

Probably due to saturated (shaped) oscillators?

Post

Nevermind I figured my question out...

Post

midilab wrote: Thu Sep 21, 2023 8:30 am
...Just completely randomly creating a pattern without any constraints does not tend to produce useful results
In your opinion, what kinds of constraints would be useful for generating compelling acid patterns? For instance, your Toolchain generator would be greatly appreciated for insights on this!
Well, I mean the most naive thing one could possibly do, is to just create a random pattern where every note has equal probability. Of course, that strategy is very unlikely to produce anything that makes any sense musically. We need some musical constraints.

At the very least, we should restrict the notes that can be produced to be in our desired scale. If we assume C-minor, that would be C,D,Eb,F,G,Ab,Bb. I actually usually prefer to use A-minor for the sake of tuning the bassdrum to a nice low 55Hz, though (I like tonal bassdrums) - or maybe even G minor for an even lower boom - but let's go with C anyway. For 303 patterns and according to my personal experience and my acquired bad taste as a late 90s / early 00s raver, I tend to go with just C,Eb,G,Bb - maybe with an occasional Ab as replacement for G as a variation. If I would add such a random pattern generator to AcidDevil (I'm considering it), I would perhaps allow the user to pick a set of notes and for every note in the list, let the user pick a probability such that they all add up to 1. The root note should perhaps get the highest probability by far.

But the pattern randomization features that I have currently integrated into the sequencer of AcidDevil are actually of an entirely different nature. They don't actually produce a brand new random pattern but rather produce a "random" variation of the current pattern. ...and it's not actually random at all, what variation is produced. It's just that the actions that you can do have some similarities to algorithmic steps that you may find in pseudo-random number generators: xoring some state variable with some other state-variable and writing the result back into one of the states, doing circular shifts, reversals, etc. I explain that in some detail in this video:

https://www.youtube.com/watch?v=ZJBlx-lGvKU

But I don't actually touch the selection of notes being played - the existing notes (or their modifiers like accents and slides) may just get re-arranged or permuted somehow. Currently, I have circular shifts and reversals but one could perhaps come up with more some creative ways of permuting them...I have some ideas in the back of my head. Maybe swap first and last half...and/or swap quarters somehow. Here is some more of me having some fun noodling around with pattern (pseudo) randomization

https://www.youtube.com/watch?v=QZuphuyXLTA

I think, it's the same idea that aciddose has mentioned. ...and yeah - I aggree - at some point I'd really like to have an "Undo" button. ...and pattern "Export" to midi files. ....and the "Distortion" section needs moar parameters. It's just a stub at the moment.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Gave it a try and tbh , Robin Schmidt's toolchain emulation sounds a lot better .
Did you modify anything in the code , the accent sounds really weak .
Eyeball exchanging
Soul calibrating ..frequencies

Post

I have just tried midilab's new JC303 0.10.1. A-W-E-S-O-M-E! <-- first 5 minutes of playing with it. :D If you like 303 sound, try this. Sooooo flexible! 303 can be fun and sound great in its weird way after all. 8) This is a special kind of synth instrument now with all these mods. :party:
It is no measure of health to be well adjusted to a profoundly sick society. - Jiddu Krishnamurti

Post

DuX wrote: Tue Jan 23, 2024 10:23 am I have just tried midilab's new JC303 0.10.1. A-W-E-S-O-M-E! <-- first 5 minutes of playing with it. :D If you like 303 sound, try this. Sooooo flexible! 303 can be fun and sound great in its weird way after all. 8) This is a special kind of synth instrument now with all these mods. :party:
But does it have the sequencer? A big part of the sound is the way the built in sequencer glides through the notes. Just Curious....
C/R, dongles & other intrusive copy protection equals less-control & more-hassle for consumers. Company gone-can’t authorize. Limit to # of auths. Instability-ie PACE. Forced internet auths. THE HONEST ARE HASSLED, NOT THE PIRATES.

Post

audiojunkie wrote: Tue Jan 23, 2024 4:28 pm But does it have the sequencer? A big part of the sound is the way the built in sequencer glides through the notes. Just Curious....
On their website:

https://midilab.co/jc303/

they say "the JC303 project aspires to deliver a faithful clone emulation of the TB-303 step sequencer" but apparently (according to the screenshot), there is none yet. So I assume, a 303 sequencer emulation is a feature that is still in the making. The sequencer of the original 303 is a thing that I didn't try to emulate, so a sequencer is not part of my Open303 code - it has just the DSP part.


I do have a sequencer for the 303 in my codebase though:

https://github.com/RobinSchmidt/RS-MET/ ... sequencing

which I use in my own AcidDevil (which, of course, also uses the Open303 code for the DSP part). But that sequencer has nothing to do with the original 303 sequencer but rather embodies the way, I personally like to create and edit my 303 patterns. If anyone wants to use that code within an open source 303 emulation project, then that's totally welcome, too. But it is no attempt to emulate the 303 sequencer - in fact, I don't even have any idea how that thing works nor do I care to find out. I never even tried to figure out how to use it on my own TD-3 that I bought recently - it's just too tedious to use, in my humble opinion. I'm in the "ignore the 303 sequencer, just use the synth" camp. With regard to the sequencer, I prefer to do my own thing - but other people may have a different opinion on this and that's fine and if midilab also wants to emulate the original 303 sequencer, then that's great, too - go ahead! :tu: That's one of the great things about open source software - it's possible for others to do "remixes" and "extended versions".
Last edited by Music Engineer on Wed Jan 24, 2024 4:08 pm, edited 5 times in total.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Very cool, Robin! And also, thank you for open sourcing so that we can (hopefully) have Linux versions of your plugins! :)
C/R, dongles & other intrusive copy protection equals less-control & more-hassle for consumers. Company gone-can’t authorize. Limit to # of auths. Instability-ie PACE. Forced internet auths. THE HONEST ARE HASSLED, NOT THE PIRATES.

Post

audiojunkie wrote: Tue Jan 23, 2024 8:46 pm Very cool, Robin! And also, thank you for open sourcing so that we can (hopefully) have Linux versions of your plugins! :)
Yes - I hope so, too. I just can't do all of that myself - managing the build-systems for all the different operating systems, plugin formats, hardware platforms, etc. - I'm actually mainly a math and algorithms guy and not so well versed with all this infrastructural stuff and doing all of this alone is a bit overwhelming. So I have reached out to the Surge Synth Team to maybe integrate ToolChain into their product line and/or collaborate in some other ways. We'll see how that goes...but I certainly hope that some time this year or the next, I'll finally get a proper "official" update of ToolChain out of the door.......but I currently have some other things going on that I have to take care of and there are still quite a lot of newly appeared bugs to fix though. I have no idea where they come from. They haven't been there before. It's almost as if bugs just appear out of nowhere after the code was just sitting there for a certain amount of time :hihi:
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Totally understandable! The Surge Synth guys are a great team! I think you would be an awesome addition to that group! Best wishes! :)
C/R, dongles & other intrusive copy protection equals less-control & more-hassle for consumers. Company gone-can’t authorize. Limit to # of auths. Instability-ie PACE. Forced internet auths. THE HONEST ARE HASSLED, NOT THE PIRATES.

Post

Open303 Pretty Cool nice it is GUI-Less work well in H8 Tracker did a comparison with TB4005 using same pattern & copy-paste automation curves from one to the other, pan Open303 to hard left & TB4005 to hard right... Wildly different for sure, Open is more authentic whilst TB4005 is nicely overt & musical & has chord function as well-

Image

Image


TB4005 is here-

https://www.robotplanet.dk/audio/tb4005/

What previous person said about sequencer being necessary is correct as for the 'money shot' of the sound is based on what the sequencer can do with the synth portion...

While not the best 303 Noisetrekker 2 & Protrekkr 2.6 got Dual 303's that have sequencers so they do as the original & make big difference in sound via ties & accents & slides or combined in strange ways...

Here in unfinished tune in Protrekkr I use both 303s in Jazz-Rock fashion one riffing most the time the other dedicated bassline. But when chorus arrive I 'tie' the notes massively on bassline to get 'wavy' bass without retrigger-

https://soundcloud.com/waxing-and-wanin ... -iteration


Image

One should also check out Ultrano Dreamer's Musashi Synth very capable of 303 & beyond has sequencer as much goodness there-

Image

I got thread on here-

viewtopic.php?t=603954


IoNeo Aero Studio has 'Raw Power Bass' Internal Synth very good 303 sound automating it but alas no sequencer for it...

Post Reply

Return to “DSP and Plugin Development”