Open303 - open source 303 emulation project - collaborators wanted

DSP, Plug-in and Host development discussion.
rv0
KVRist
161 posts since 15 Jun, 2009

Post Thu Oct 08, 2009 10:59 pm

a few years ago i did a collab project in Trac

its basicly svn + ticket system + wiki
i just saw sourceforge projects can work on Trac, and they host a lot of other different solutions too http://sourceforge.net/apps/trac/source ... ted%20Apps

i guess we all agree a wiki feature is really needed?

KVRian
1462 posts since 21 Nov, 2000

Post Fri Oct 09, 2009 12:35 am

It's cool when you have the programmer PG-300.. i also have
I *want* one, but haven't seen one on Ebay for ages. Should you ever choose to sell it, you know where to find me :D
Then why are people going on about -18dB slopes when it's clear from the paper it's a saggy near cutoff -24 dB filter?
Andy - nice to see a man of your considerable talents in this thread. I think we're all on the same page regarding the filter...
something like CVS just doesn't cut it any more
I'm getting frustrated with it myself, probably going to move everything over to SVN. Don't want to lose the change history though, so that's going to be a bit of a faff I think.

KVRAF
6371 posts since 12 Feb, 2006 from Helsinki, Finland

Post Fri Oct 09, 2009 7:07 am

Muon Software Ltd wrote: I'm getting frustrated with it myself, probably going to move everything over to SVN. Don't want to lose the change history though, so that's going to be a bit of a faff I think.
SVN at least used to have a conversion tool intelligent enough that it could usually merge commits to individual files together in the recreated history (essentially reconstruct from timestamps what CVS lacks). Just backup the repository, recreate it as SVN and see if it looks reasonable.

SVN can be a bit slow though, doesn't natively support distribution, and needs network for most operations (doesn't cache history locally; reverts and diffs to what you checked out work thought). Personally I've been test-driving git lately (which can supposedly talk to SVN directly if you want to, using something called git-svn). Haven't tried Mercury yet though, but I don't think there's huge differences (other than maybe in the tools).

Personally I don't care much, as long as it tracks full projects. I don't think I'll be ever using a centralized SCM anymore anyway (meaning, if I work with a project using one, whether open-source or in-house commercial or whatever, I'll just keep a separate repository locally, and merge as necessary; yes, distributed is that great).
Preferred pronouns would be "it/it" because according to this country, I'm a piece of human trash.

User avatar
KVRAF

Topic Starter

3930 posts since 8 Mar, 2004 from Berlin, Germany

Post Fri Oct 09, 2009 7:12 am

rv0 wrote:a few years ago i did a collab project in Trac

its basicly svn + ticket system + wiki
i just saw sourceforge projects can work on Trac, and they host a lot of other different solutions too http://sourceforge.net/apps/trac/source ... ted%20Apps
yes, i used trac too for a project with a client a year ago. and if it integrates well on sourceforge, i think, this will be my first choice.
i guess we all agree a wiki feature is really needed?
absolutely. one of my main objectives of this whole thing (besides the actual implementation) is to collect knowledge ...and bust myths

User avatar
KVRAF
2538 posts since 4 Sep, 2006 from 127.0.0.1

Post Fri Oct 09, 2009 7:58 pm

i got a few questions, probably to Tim Stinchcombe
i'm trying to test this http://www.timstinchcombe.co.uk/synth/d ... re_sim.gif circuit in the Circuit Simulator (java tool) http://www.falstad.com/circuit/

1. there is an element which i can't find, it looks like two circles sticked together with an arrow pointing down, what is it?
2. i guess the "audio input" is the AC1 thing?
3. uhm, where is the "output" ?
4. what is that section with the battery 5.3333, it looks like it's not connected to the other stuff?!
5. is that circuit "reduced" or something? i think i don't see something like negative feedback (not that i know how it has to look like)
6. where are the frequency/resonance controls!?

:help:
not sure what i'll learn if it works, at least maybe figure the exact places of the HP filters, and maybe their frequencies? .. or nothing.. :dog:

EDIT: HPF1 in the square shaper (tanh(hpf1(saw)*-amp)) is 14.7Hz
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

KVRist
481 posts since 13 May, 2003 from Sydney, Australia

Post Fri Oct 09, 2009 11:10 pm

rv0 wrote:a few years ago i did a collab project in Trac

its basicly svn + ticket system + wiki
I'd forgotten about Trac. We used it at my previous job, though we didn't use the ticket system part, just the wiki and web browsing through the repository parts. From the sounds of it, SVN might be the best choice for this project: it's a vast improvement over CVS, yet it's similar enough that someone coming from CVS should be able to migrate to it easily. The more distributed systems would be a bigger conceptual leap from CVS.

KVRist
239 posts since 22 Jan, 2007 from Germany

Post Sat Oct 10, 2009 2:56 am

antto wrote:1. there is an element which i can't find, it looks like two circles sticked together with an arrow pointing down, what is it?
This means 'current drain' and is a ciruit which sets the cutoff frequency.
antto wrote:2. i guess the "audio input" is the AC1 thing?
Yes.
antto wrote:3. uhm, where is the "output" ?
The output is taken from left and right lines above the topmost 33n capacitor and below the topmost transistor pair.
antto wrote:4. what is that section with the battery 5.3333, it looks like it's not connected to the other stuff?!
It is connected, look right-down from the AC power source.
antto wrote:5. is that circuit "reduced" or something? i think i don't see something like negative feedback (not that i know how it has to look like)
Yes it is, feedback path is missing.
antto wrote:6. where are the frequency/resonance controls!?
The symbol at the bottom (the two circles) is a current drain circuit, which sets the cutoff point. Feedback path is missing, so no resonance controls.
antto wrote: :help:
not sure what i'll learn if it works, at least maybe figure the exact places of the HP filters, and maybe their frequencies? .. or nothing.. :dog:
You won't find any HP filters in there, sry

Edit: Here is the complete filter (also on Tim's page).
... when time becomes a loop ...
---
Intel i7 3770k @3.5GHz, 16GB RAM, Windows 7 / Ubuntu 16.04, Cubase Artist, Reaktor 6, Superior Drummer 3, M-Audio Audiophile 2496, Akai MPK-249, Roland TD-11KV+

KVRer
8 posts since 19 Jul, 2009 from Cheltenham, Glos, UK

Post Sat Oct 10, 2009 4:46 am

antto wrote:1. there is an element which i can't find, it looks like two circles sticked together with an arrow pointing down, what is it?
That's a DC current source, and is what is controlling the cut-off frequency - it is set to give 25uA = 25 microamps.
2. i guess the "audio input" is the AC1 thing?
Yes. The simulation tool I use is SPICE-based, SPICE being a standard simulation program. As I was interested in frequency responses I was doing 'AC analyses', which is one of the standard SPICE simulation modes - it basically sweeps the frequency of the input signal.
3. uhm, where is the "output" ?
For the purposes of the plots I gave, it was the differential voltage across each of the capacitors as you go up the ladder. The 'real' output is off the top capacitor.
4. what is that section with the battery 5.3333, it looks like it's not connected to the other stuff?!
The little square with the '5V' above it is an 'implicit connection' within the simulation - thus at bottom left the 5.333V is applied to that biasing resistor (just a simple means of not having 'wire' connections clogging up the diagram).
5. is that circuit "reduced" or something? i think i don't see something like negative feedback (not that i know how it has to look like)
Yes. I was just interested in showing the basic response of the 'core' of the filter, and no, I have not included any feedback - to do so would require taking the differential voltage from across the top cap, applying some gain, and feeding it to the base of the right, bottom-most transistor (opposite the input one), probably through another cap to let the DC bias levels sort themselves out...
6. where are the frequency/resonance controls!?
The cut-off frequency is controlled by the value of the DC current source mentioned above (I would have chosen the 25uA to give a nice cut-off around about 1kHz in the final plots on the main page), resonance I've sort of covered in the previous answer.
... at least maybe figure the exact places of the HP filters, and maybe their frequencies?
They are not shown! Again, as this was concentrating on the basic core of the filter, it is a heavily stripped-down representation of the complete circuit, in order to show its basic, salient points. However, I have already produced an annotated version of the TB-303 circuit, roughly indicating which of the various caps and resistors around the circuit have a high-pass effect on the signal, and so I have attached it. But be warned, it gets complicated very quickly!!

Hope this is of some help! I was only alerted to the presence of this (humungous) thread a couple of days ago, and have had no real opportunity to skim it, let alone give it a decent read...!

Tim

Image

User avatar
KVRAF
2538 posts since 4 Sep, 2006 from 127.0.0.1

Post Sat Oct 10, 2009 6:23 am

5 HP filters?! holly cow ;]
i was afraid of that too
:-o

EDIT: "the real output is off the top capacitor" .. uhm.. C28?
if there are any HP filters after that, then i would like to consider the "real output" after these HP filters
thanks for the fast response ;]

and now if someone can tell where in the "digital" model of this should the HP filters go.. ;]

to my untrained eye, looks like there is no HP filter between the filter stages, or is there?
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

KVRist
239 posts since 22 Jan, 2007 from Germany

Post Sat Oct 10, 2009 6:46 am

Hmm, I would say:

1. HP affects input signal
2. HP affects output (and resonance)
3. HP affects output (and resonance)
4. HP affects resonance only
5. HP affects input and resonance

(If I'm totally wrong, please correct me)

So it would look like this:

feedback = HP3(HP2(FILTER(HP5(HP1(input) + HP4(r * feedback)))))

hmmm .... :D
... when time becomes a loop ...
---
Intel i7 3770k @3.5GHz, 16GB RAM, Windows 7 / Ubuntu 16.04, Cubase Artist, Reaktor 6, Superior Drummer 3, M-Audio Audiophile 2496, Akai MPK-249, Roland TD-11KV+

User avatar
KVRAF
2538 posts since 4 Sep, 2006 from 127.0.0.1

Post Sat Oct 10, 2009 7:02 am

:shock:
input and feedback filtered sepparately by 2 different HP filters? i just moved out of this scheme and reported closer results with:
x0 = hpf1(input)
feedback = hpf2(x0 + k * y4)

hm.. could the same thing be achieved with sepparate HP filtering of the input and feedback (y4) ? or could the circuit be different than what is inside rv0's 303?

oh wait, you mention some affect output & resonance, output = y4? ;]
damn, need more coffee
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

KVRist
239 posts since 22 Jan, 2007 from Germany

Post Sat Oct 10, 2009 7:10 am

Yeah, looks like:

Code: Select all

x0 = HPF1(input)
fb = HPF4(r * last_output)

y1 += a * (HPF5(x0 - fb) - y1);
y2 += a * (y1 - y2);
y3 += a * (y2 - y3);
y4 += a * (y3 - y4);

last_output = HPF3(HPF2(y4));

return last_output;
... when time becomes a loop ...
---
Intel i7 3770k @3.5GHz, 16GB RAM, Windows 7 / Ubuntu 16.04, Cubase Artist, Reaktor 6, Superior Drummer 3, M-Audio Audiophile 2496, Akai MPK-249, Roland TD-11KV+

User avatar
KVRAF
2538 posts since 4 Sep, 2006 from 127.0.0.1

Post Sat Oct 10, 2009 7:28 am

ok, this makes sense, but some of them have to be really low, like below 10Hz
hm.. gonna test it

EDIT: btw, any suggestions on what the nonlinearities have to look like?
i use a tanh() shaper, tho, i tested a pure hardclipper (+/-1.0) and it didn't sounded too bad (tho, i was runing it at 88200 Fs (with the internal 4x oversampling))
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

KVRer
8 posts since 19 Jul, 2009 from Cheltenham, Glos, UK

Post Sat Oct 10, 2009 9:34 am

antto wrote:EDIT: "the real output is off the top capacitor" .. uhm.. C28?
By 'real' I was referring to the final output of the core, as opposed to the individual stages, which is what that little circuit was used for. So, 'off the top capacitor' would be my equivalent of C26 on the Roland schemo (you'll see there it feeds a differential amplifier). However in terms of the final output of the whole filter, that is after C14.
if there are any HP filters after that, then i would like to consider the "real output" after these HP filters
You want more!!?? Yes, there are certainly more that might need consideration: at the VCA, the volume control, and before and after the mixer (but I've not checked in any detail). However these should be easily accounted for by merely cascading them after whatever model is used for the filter itself. The difficulty with those around the filter is that most are actually 'in the loop', be it either the forward or backward path, and that makes life difficult...
and now if someone can tell where in the "digital" model of this should the HP filters go..
...and I can't really help there, BUT I've attached the model I finally came up before I put all this down in favour of other projects. Here are links to some more pictures (this bbcode won't display them for shit!): the Laplace block model I came up with; the circuit simulated to give 'component-level' output for comparison against the other model; and a frequency response comparison from both (at one set cut-off frequency) - I was quite pleased to finally get both sets of traces so close.

The big Laplace model, when manipulated into a single transfer function, should give the big one at the top of my diode-ladder page. I've numbered the blocks corresponding to those on the picture I posted earlier (neotec was pretty much right about them); the frequency used appears to be 820; the factor used for resonance is the '0.99' in block 4 (unfortunately it won't take a parameter, it has to be hard-coded). The plots are for this resonance set to 0, 0.2, 0.4,...1 (or 0.99 as you can see).

The really hard part was getting the lower peak in the right place, and that is why the expressions for '1' and '5' are so horrid - I had to account for far more of the caps than I really wanted too! I only took a few readings from my Analogue Solutions TBX-303, but enough to convince me that the lower peak really is there (in fact one of the things that contributed to me putting this down was that my measurement set-up was adding so much loading to the point where the filter would oscillate nicely at around 8Hz!).
to my untrained eye, looks like there is no HP filter between the filter stages, or is there?
Correct.

Tim

User avatar
KVRAF
2538 posts since 4 Sep, 2006 from 127.0.0.1

Post Sat Oct 10, 2009 11:15 am

thanks Tim, i my brain is not compatible with this kind of rocket science, but i'm sure what you did would light a bulb in someone else's head and it'll get going ;]

i just tested kunn's filter (only 1 nonlinearity) with all 5 HP filters, like neotec described
well, i probably did something wrong, even when all of them are 0Hz i still can't get a "normal" sound out of it
hm.. and because of all the HP filtering that messes with the feedback loop - some wierd and nasty low frequency oscillation appears in specific cases, i never would have imagined :-o

1 pole HP filter would make no difference if it's set to 0Hz (assuming it's memory is 0 (otherwise it'll add DC offset)) .. right?
or maybe i did something wrong and my filters add 1 more sample delay or something, not sure why this low oscillation appears
and when i get the whole thing a little bit like stable (so it doesn't go into self-osc-madness) it looses resonance in the mid-range, while it has too much in the lows and highs
seems i can't get this setup to actually work
hm..

EDIT: as kunn said that for self-oscillation, k=17, and this has to be increased with frequency in the digital implementation to work.. actually, with all that HP filters, i managed to roughly compensate this, meaning i ripped the approximitation for resonance tuning and left k=r*17 (which wouldn't work normaly)
so, only with the a0 coefficient and the HP filters, it kind-of looks like it has equal resonance level across the cutoff range, tho, no idea if it's gonna be the same if i change the sampling rate with the same settings

i'll play with this a little more, but it's too complicated, and i already had kind of close results with far simpler setup (maybe not harmonicaly close, but close enough)
It doesn't matter how it sounds..
..as long as it has BASS and it's LOUD!

irc.libera.chat >>> #kvr

Return to “DSP and Plug-in Development”