Open303 - open source 303 emulation project - collaborators wanted

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

Post

Mike Janney wrote:
Muon Software Ltd wrote: I've never subscribed, or propagated, any of those myths - and you have to remember that Roland themselves referred to the 303 as having an 18db/octave filter because they didn't want to get sued by Moog :-)
It *does* indeed have an 18db/octave response, though it is a 4-pole filter.
Actually the filter slope varies between 18 and 24dB depending on the cutoff frequency and is also slightly different from unit to unit.
Is this so even if one ignores the high-pass filtering in input/output and feedback loop, which can make the whole thing into a clever band-pass (as sticking more than 2 poles worth high-pass into the loop will boost bass response where the phase-shift from the high-pass crosses 180 degrees; three poles are even sufficient to cause the low-frequencies to self-oscillate before the main resonance peak if desired, though this would be stupid thing to do in practice; anyone can try it to see what I mean)?

I admit ignoring the coupling caps on the output which are not buffered from the last stage; maybe that'll indeed interact with the open-loop. I will apologize if this is the case.

edit: my main point though was that "one pole an octave higher" is definitely not the correct way to analyse the circuit. :)

Post

Sorry for the double up if this has already been posted but Tim Stinchombe has done a small signal analysis (ie linear) of the transistor and diode ladder filters http://www.timstinchcombe.co.uk/synth/M ... der_tf.pdf
The Glue, The Drop, The Scream - www.cytomic.com

Post

andy_cytomic wrote:Sorry for the double up if this has already been posted but Tim Stinchombe has done a small signal analysis (ie linear) of the transistor and diode ladder filters http://www.timstinchcombe.co.uk/synth/M ... der_tf.pdf
3 or 4 times but no worries. :)

Post

Muon Software Ltd wrote:
now, Dave: i think you can't simply make a "model" or something, by which you can emulate an analog synth (what you were interested in)
since, most synths are different, even that most of them use similar tricks, and the same cheap parts
also, in one synth, the important thing might be the modulation, in other - some fat unison, in a third - some wierd sequencer

and i think the "tools" should be detirmined on the run ;]
Although I cannot really understand how such misunderstandings occur (I guess we're going to have to blame language difficulties) but there clearly has been a misunderstanding of huge proportions.

I am interested in a *metholodolgy* and a set of *tools* that can be used to examine an analogue synth - preferably without taking it apart like I did with my 303 - and derive useful information about its structure that can then be emulated.

An example - you said that you had a tool/script that took a spectrogram as input, worked out the X-Y of the brightest pixel and translated that into something you could use to work out the envelope shape. That is the kind of tool and methodology I am talking about.

I have several of these kind of tools - and I'm interested to share them on an open-source basis, but only if contributions make them better. Are you understanding me better yet?

only rv0 has a real TB-303 here, and he's doing whatever he can
No that isn't true - I have one right in front of me.

as for Dave (from Muon) and any other guy who said that (or spoke like) he knows some *secrets/facts* about the 303 that we haven't yet figured out
Now that we know that it is clear that you haven't read or understood a large amount of what I posted, then I'm not going to take offense at yet another misunderstanding.

What I said is that with some simple modifications, you can get access to the raw oscillator output of the 303 and the raw filter input. That in turn gives you very valuable information about the properties of the oscillator and the filter which might not immediately be apparent from samples because of the limitations inherent in the tools that I referred to before.

Thing is, although I can modify a 303, I'm not confident I would want to take apart, say a Juno 60. So it would be better if there was a set of good tools that could be used to derive information about filter envelopes, filter responses, oscillator harmonics etc. *without* having to take the target synth apart. Sitting here on my own though I don't see a way of doing that - and that is why I'm interested in collaborating with other people to solve this particular problem.

Do you understand what I am talking about now? or do you prefer your biased interpretation which puts me in a bad light for no reason?

i think one of the goals of this thread was to discuss various aspects of the TB-303 synth, and put stuff to the test, you know.. like myth-busters
3ms "attack" - busted
square "flipping every other cycle of the sawtooth.. bullcrap" - busted
resonance being modulated (increased) on accented notes - busted
3 pole filter - wtf?
I've never subscribed, or propagated, any of those myths - and you have to remember that Roland themselves referred to the 303 as having an 18db/octave filter because they didn't want to get sued by Moog :-)

i'll look into sourceforge - i already created an account for this project even before posting here, but did not yet upload it there. ...mmm...not yet sure about it, but maybe i'll also include my JUCE based GUI stuff at some stage - which would imply GPL.
Robin - that's good news. I think it will encourage contributions to your code.
ok, i got it.. language barrier is a bad thing indeed..

tools? well, i have been messing around in all kinds of other things besides music, 2D, 3D graphics, modeling, game developement (a little) .. mIRC scripting (before diving into C++)
so i got all kinds of tools, and i pretty much use them in wierd ways ;]
for the filter envelope curve, i used a linear Sonogram (SoundForge) and MS Paint, then, i just wrote myself a little macro, to calculate the XY position on the image into time/amplitude
so, there is no magical tool, i did everything by hand

tho, when i was doing my beta version, i used a 4 pole filter with a sort of band-pass feedback, and i wrote myself a C++ "tool" which tuned the maximum resonance level accross the spectrum
that tool sucked, and it was specificaly built for that filter, but i think there might be a way to write a similar program to take any resonant filter and *find* the coefficients, probably with a little help from the developer..

i understand that taking a synth apart is an extreme method, like brute-force..
the method depends on the synth itself
TB-303 is simple enough to go only with samples and a little circuit knowlage (that's what i think) tho.. having the chance of looking into the osc output filter input would speed up the approximitation process a hole lot
also, the TB-303 doesn't have a lot features
1 oscillator, can be either saw or (shaped) to square, always runing
1 LP filter
2 decaying envelopes, only one of them is a bit tricky
the synth does not behave differently depending on tempo, which also makes things simpler

another synth might have more filters, or unison, sub-oscs, built in effects probably?

i look at the TB-303 like a modular synth, with "non-standart" modules
in this case it has quite a few modules
other synths have lots more

btw, not sure about the Juno you mentioned, i pretty much don't know analog synths, i haven't had any, and haven't been looking around "museums"
what is so special about the juno?
what does it have that you can't emulate easily?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

what is so special about the juno? what does it have that you can't emulate easily?
The Juno 60 is a very simple synth. What I said was that I wouldn't want to take one apart in order to say, tap into the raw oscillator output or the raw filter input. I'd probably mess it up, or blow myself up.

With the 303, you can do that because people like Robin Whittle and Analog Solutions sell kits that you can very easily deploy without too much knowledge.

I too have a whole bunch of tools for investigating samples from a synth and drawing envelope graphs etc. I became pretty frustrated with them recently just before this topic got started, hence I'm so focussed on the tools side of things.

Anyway, I'm going to be extremely busy soon (wife is having a baby!) so I won't be around so much. Good luck everybody.

Post

hehe..
i also own a juno60, anyone wanna try? ;)

actually, the 303 is a really tricky machine to work with sometimes, I'd rather probe inside the juno-60.. everything is less dense packed and easier to service -> less chance to ruin it with the slip of a probe..
You risk breaking stuff even by opening a 303: the flatcables could break that connect the 2 pcb, wires can come loose, components can fall off the back of the pcb (yes, loads of series have components on the solder side of the pcb, even to an extend that the case doesn't close well because of them), one of my 303's has only one screw-hole left i can use.. all the other ones are worn out..
oh and if you ruin the cpu with the slip of a probe, the only way you'll be able to use it afterwards would be a midi or cv-gate mod.

but i get your point ;) good luck with the baby

Post

i actually had a hardware synth, it was a CASIO SA-3 (don't laugh) :oops:
oh well, it was actually sample-based in most cases
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

i also own a juno60, anyone wanna try?

actually, the 303 is a really tricky machine to work with sometimes, I'd rather probe inside the juno-60.. everything is less dense packed and easier to service -> less chance to ruin it with the slip of a probe
:-o are there not AC voltages in there though? IIRC the Juno 60 doesn't have a wall wart power supply.

I always regret having sold mine - now I only have an Alpha Juno 2 and I really don't like it so much.

If you have a suitable MIDI->CV convertor somewhere (I used to use a Novation Basstation rack for this), try sending gate pulses to the Juno 60's arpeggiator clock input. With a carefully set up loop of gate pulses you can get the arpeggiator to do all kinds of nice rythmns and stay in sync with the song :D

OK - now I am going off topic too :D

Post

ok last offtopic
Muon Software Ltd wrote: :-o are there not AC voltages in there though? IIRC the Juno 60 doesn't have a wall wart power supply.
they dont bite you know? hehe. PSU is almost always on a seperate pcb, well hidden from the audio circuits to reduce interference
Muon Software Ltd wrote: I always regret having sold mine - now I only have an Alpha Juno 2 and I really don't like it so much.
i also have one (well, the rack version).. It's cool when you have the programmer PG-300.. i also have ;)
My favorite is the jx3p / mks30 though, also w/ PG-200 programmer
To stay ontopic, here's a 303 emulation with the mks30: link
Muon Software Ltd wrote: try sending gate pulses to the Juno 60's arpeggiator clock input. With a carefully set up loop of gate pulses you can get the arpeggiator to do all kinds of nice rythmns and stay in sync with the song :D
hehe i always trig it from the 606..
and sometimes with my CHD dcb<->midi interface, allows you to choose between all kinds of arp patterns and scales.



sorry.. i really apologize for the offtopic

Say something 303, quick!

Post

mystran wrote:
andy_cytomic wrote:Sorry for the double up if this has already been posted but Tim Stinchombe has done a small signal analysis (ie linear) of the transistor and diode ladder filters http://www.timstinchcombe.co.uk/synth/M ... der_tf.pdf
3 or 4 times but no worries. :)
The why are people going on about -18dB slopes when it's clear from the paper it's a saggy near cutoff -24 dB filter?
The Glue, The Drop, The Scream - www.cytomic.com

Post

i'm still wondering how the hell is the square done
i figured the HP filter before the tanh() shaper is actually about ~15Hz (was looking carefuly now)
i can match both the looks and the harmonics very close, but without the bump (so, a very small difference in the harmonics for low notes, very small)

note: 15Hz this probably varies between different units, and the smallest variation would change the sound of the square very much..

EDIT: about the "bump" .. maybe i was wrong from the begining, now, when i think a little more, maybe the hard-clipper which cuts-off the negative edge is after the DC-Killer
this makes a little sense, on low notes, the DC-Killer would change the phases of the square pretty much, and the edges will appear to have bigger amplitude (compared to the same square at a higher frequency)
and the clipper would clip when phases are changet too much (low notes)

have to test it :?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Post

O.K., i think i will look now into the various licensing options...
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:O.K., i think i will look now into the various licensing options...
I must apologize for getting so emotional about GPL. It's just that I kinda used to believe it was the best thing ever invented. How naive of me. Fortunately I don't have to touch it with a 10 foot pole if you decide to go GPL anyway, as I only have to touch my keyboard to write patches against something, so don't worry, I'll almost certainly eat my words and contribute anyway (hopefully I get a chance to write some significant enough contribution that I can put a MIT-style license on it and you are forced to reproduce it in your GPL codebase, haha).

Do consider using something other than CVS for repository though (CVS can't track projects, only files, so one effectively one has to diff by timestamps to merge changes to local repository, which is messy).

Post

mystran wrote:
Robin from www.rs-met.com wrote:O.K., i think i will look now into the various licensing options...
I must apologize for getting so emotional about GPL. It's just that I kinda used to believe it was the best thing ever invented. How naive of me. Fortunately I don't have to touch it with a 10 foot pole if you decide to go GPL anyway, as I only have to touch my keyboard to write patches against something, so don't worry, I'll almost certainly eat my words and contribute anyway (hopefully I get a chance to write some significant enough contribution that I can put a MIT-style license on it and you are forced to reproduce it in your GPL codebase, haha).
having seen your strong math skills and attention to detail on various occasions, i would certainly appreciate if you chime in. and guess what? you already did contribute: if you look at TeeBeeFilter::setMode, you will probably see something familiar. not that this stuff is something 303 specific, though. mmm...sooo...currently under consideration: either the pure dsp-part with the gui-less vst plugin under MIT or the whole thing with the GUI under GPL....i'm also wondering a bit if and how GPL would affect my own further rights to use the code. i mean, the stuff that is initially there and originally written by me would probably be unaffected - but if third party contributions get merged in, it's probably a different story. ...damn, have to eventually read the full-blown lawyer-lingo text
Do consider using something other than CVS for repository though (CVS can't track projects, only files, so one effectively one has to diff by timestamps to merge changes to local repository, which is messy).
i think, svn is the way to go these days, no?
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:i think, svn is the way to go these days, no?
Again, just speaking as a general software developer rather than a DSP developer, I'd say SVN is the bare minimum you'd want. Hmmm, actually that sounds like damning with faint praise. I'm more trying to say that something like CVS just doesn't cut it any more, as Mystran wrote. I found branching and merging in SVN not quite as good as certain commercial SCMs, but recent versions have certainly improved that.

My main hesitance is that I get the impression that SCMs like Mercurial and git are more state-of-the-art than SVN for massively distributed development, but on the other hand the learning curve for getting beyond the basics in these could be formidable. I'm a bit of a fan of Mercurial, FWIW. But as I'm not a DSP guy I'm unlikely to actually be contributing to this at the moment, so you'll need to pick something the likely contributors will be comfortable with.

Post Reply

Return to “DSP and Plugin Development”