From the original SynthMaker forum (2004–2014), with its members’ names and dates.
Nu Audio Science ·
OSM+VST+EXE available here
I'm going to try and convert some of the source code from Creakbox into code components, If anyone wants to help they are more than welcome 😉
I think this would be a great kick in the teeth to anyone who trys disrespect SM.
A multitude of C++ heads have tried to get that badboy going and failed dismally, The only person who came close was Jackle&Hyde and he never bothered finishing it.
Then again i may crash and burn yet 🙂 🙂
Tom7777 ·
what is Creakbox?
Nu Audio Science ·
http://www.kvraudio.com/get/733.html
Let me know if you want the source code, It comes with the source for turnablist and drumbox aswell.
Creakbox is one of the better sounding 303 emulators and i love crappy little synths with built in sequencers, In fact i absolutly love step sequencers 🙂
unkargherth ·
I want it and will try to help
Nu Audio Science ·
Unk you the Man
http://www.bioroid.com/bmd_source.zip
Theres the Source dude
This i supposedly the messiest sourcecode in the history of programming
Hopefully it isn't that bad though 🙂
Nu Audio Science ·
I'm gonna have a flyer at some of this code now see if understand any of it 🙂 lol
Nu Audio Science ·
Unkargherth have you looked at that code at all, I'm not too sure what all these doubles are ?
Would i be right in thinking that we just need to utilise the mathematics stuff that is at the bottom of most of these pages ? , For instance in the IIR.cpp
It looks like its going through a 3 pole first IIR_IIRlp3pole
Then i think it may be processed again to get a cleaner sound IIR_doIIRCycle2 ?
Then it goes through a high pass filter to brighten the sound IIR_doIIRhigh
But i haven't got a clue what those Wwelti hacks are at the bottom, Its something to do with reading tables but tha means nothing to me ?
Is this a virtual function table ?
If so is it relevant to us at all ?
unkargherth ·
After A first sight, here hare my inital appreciation
.- Distorsion is as easy as it can be. Can be implemented in a few lines in code component. Beta done, includeing the mini HP at end. On testing
.- Filter ( in fact i dicovered at leats 2 diferent filters) is a bit tricky. A 3pole low pass with a very strange non-linear function to calculate the resonance. to make it more complex, the resonance depends on a kind of crude keyboard tracking modulation. The non linear function is dificult to optimize ( 5 nested sin calls)
.- Oscillator: still didn't find it, but remembering original TB-303, shouldn't be so hard. Accents should be fairly easy. Still to find how to implement slides correctly
.- Envelope: A simple AD envelope should suffice ( perhaps with exponential response)
.- Patterns: This need a completely rethinking One Pattern is easy ( think in graphic LFO of exaple.osm), but having more than one isn't clear. And a song mode is beyond my imagination in current SM status
.- Monophony. At this moment, no idea on how to implement it in SM. I think it isn't posible by now
unkargherth ·
Nu Audio Science wrote: Unkargherth have you looked at that code at all, I'm not too sure what all these doubles are ?
Think in doubles simply as a "more precise floats"
Nu Audio Science wrote: It looks like its going through a 3 pole first IIR_IIRlp3pole
Then i think it may be processed again to get a cleaner sound IIR_doIIRCycle2 ?
Then it goes through a high pass filter to brighten the sound IIR_doIIRhigh
No.No. diferent filters are called in diferent situations. For example Distorsion calls a HP filter at end
Nu Audio Science wrote: But i haven't got a clue what those Wwelti hacks are at the bottom, Its something to do with reading tables but tha means nothing to me ?
Is this a virtual function table ?
If so is it relevant to us at all ?
Wwelti Hacks are optimizations of the above noted non-linear functions. instead of calulating it , he construct a small float table and read the results using linear interpolation. Outside of our scope since no Tables in SM by now
Nu Audio Science ·
So this is all there and just called on when needed AAAAAAH
Can we do that ?
Do we need to ?
Ah of course we do to brighten the sound at the end of distortion and to add nuances to the filter and so on yes ?
Yeah i noticed the distortion looked simple but wasn't sure 😉
I found some Osc stuff in the freq files but surely we can just use a standard saw and square (Perhaps add more shapes)
On the song issue i think it would be a lot more useful if we could have a switch to switch between trigger MIDI notes and a host synced sequencer that can be triggered on a single MIDI key something like a sampled loop, With these two ways of playing a song sequencing isn't needed, At a later date we could try to update the sequencer so multiple patterns could be assigned to different keys perhaps ? (Awesome live groove box 🙂 )
Im guessing here but can we disregard
main.cpp
silverboxeditor.cpp+.h
silverboxgui.cpp+.h
knobs.cpp+.h
core.h ?
cpitchslider.cpp+.h
This would leave us
freq
IIR
dist
silverbox
Does this sound right ?
Nu Audio Science ·
Should we move this to DSP section or stay here ?
unkargherth ·
Nu Audio Science wrote: So this is all there and just called on when needed AAAAAAH
Can we do that ?
yes . code each filter as an independent module and cut and paste where needed
Nu Audio Science wrote: Do we need to ?
Ah of course we do to brighten the sound at the end of distortion and to add nuances to the filter and so on yes ?
Dist + HP already done
Nu Audio Science wrote: I found some Osc stuff in the freq files but surely we can just use a standard saw and square (Perhaps add more shapes)
No need. Really the oscs area basic to the limit of absurd. Example.
// Pulse osc
if (phase <0.5)
out=0.5
else
out=-0.5;
out=lowpass(out);
this is slightly simplified from original code
Standard SM are better by far,and we could forget the lowpass
I think we can forget pattersn and songs until we get some decent sounding monobass
Nu Audio Science wrote: This would leave us
freq
IIR
dist
silverbox
Exact. nothing more needed
Nu Audio Science wrote: Should we move this to DSP section or stay here ?
I requested Malc to create a "Comunity projects forums. There should be the perfect place for this
Nu Audio Science ·
Cool
Community projects sounds great 🙂
Im stunned you have the Dist HP going already 🙂
Yeah i agree forget the sequencer until we have a bangin synth, The sequencer could actually be a V2 or something.
I'll erm file the rest of the source then 🙂
Shall i model the dials and buttons in 3D or shall we just give it a stonking draw GUI (Possibly a good test bed for the ultimate knob design)
Once i get hold of KLF (NAS Coder) i'll send him the code thats left and see what parts he can convert (He's getting married this month though and has just taken on a huge programming contract, So we may not get him till after his wedding)
I'm sitting here with my copy of Sams C++ in 21 days and it has been quite useful so far, Can you reccomend any books that i could learn C syntax ?
Small sidebar aswell, What text editor do you reccomend ?
unkargherth ·
Dist: second approximation
I've been testing the 1st approx to dist on creakbox
IT ALIASES LIKE HELL !!!!
That could be expected, in fact it's a very non-linear,non continuous function. Also the distorrion produced is very ugly (kind of negative clamp and near no effect in positive part). and, At the end, it isn't level configurable
as testing purpose, i added a slight lp at the end and reduced aliasing to -30 db ( not much but better than nothing )
On the other side, the HP filter seems to work OK ( at least in freq analisys) but introduces a very heavy DC offset. Posibly a DC Blocker at end could help. The question is. Should i have to add it or leave it without ?
I never analysed/seen original TB-303 waveforms so no idea on waht they should be
Nu Audio Science ·
Shall i have a look around for some dry 303 samples ?
Also did you DL the compiled Creakbox ?
I guess everyone was right then, Creakbox sounds loverly but the programmin is shite 🙂
I haven't had chance to do anything, I'm still going through this C++ book 🙂
Nu Audio Science ·
Unk i just found the original schematics for the TB, Would they be any use here ?
edit* Whyterabbyt just put me onto a Csound 303, Would this be any use to us here ?
edit* looking at the components available is a sequencer even possible at this point, This may be the SE speaking but i cant find a counter ?
Possibly the wind chimer (Sorry my nick for wnd timer)
rl ·
i found a sync modular ensemble in the depths of my harddisk. From a 1st look, it seams translatable without too much effort.
Nu Audio Science ·
303 Emulator ?
I reckon we should call this the SMee0SMee project lol
stefan ·
Nu Audio Science wrote: 303 Emulator ?
I reckon we should call this the SMee0SMee project lol
I'd prefer a majken spelling a'la "Smeeh'oh!'smeeh!" 🙂
Nu Audio Science ·
Teehee SMeeh Oh SMee 😀
unkargherth ·
Nu Audio Science wrote: Unk i just found the original schematics for the TB, Would they be any use here ?
Electronmic schematics are more or less ancient cuneiform language for me...
Nu Audio Science wrote: edit* Whyterabbyt just put me onto a Csound 303, Would this be any use to us here ?
Well. I'm not much into csound but it's posible that helps to clarify some things, as the code itself it's a bit "knots over knots"
Nu Audio Science wrote: edit* looking at the components available is a sequencer even possible at this point, This may be the SE speaking but i cant find a counter ?
Possibly the wind chimer (Sorry my nick for wnd timer)
A one pattern sequencer is already posible ( and done). Take the LFo From Example osm, add a couple of knob rows for cuttoss, rez, decay and accent and you have it. It don't looks like a tb-303 but, hey people, we are in the 21th century !!!
unkargherth ·
Soory. I forgot.
This is for stefancrs:
Could you give a look to the 3pole lowpass in the original sorce code (link at starting of topic). Ive found it very confusing and unreliable, and also full of strange math compensations. Waiting you opinion
For All:
I made a first try on the 3pole lowpass. It worked but it's very unstable, causing a lot of nasty clicks. Also, not tested, but i supect a bit cpu heavy now, although i've seen some ways for optimizing it
It seems that all the magic for that filter comes for the nonlineraity of resonance and also from the fact that resonance is dependent on the freq of note played, so it can be used easily as standalone filter
Also i made some test with the Dist+high pass already developed , using the standard Saw/Pulse Osc. Pulse is near perfect as it is while i suspect Saw will need abit of tweaking to get a non-linear saw ( something like exponentially deacy aw, more or less) Other than that, i think no need to develop a new osc for this project
I tried to build a basic Pattern sequencer as soon as posible
Nu Audio Science ·
A few links if they are useful to anyone
http://machines.hyperreal.org/manufacturers/Roland/TB-303/schematics/
The original TB303 schematics.
http://www.csounds.com/jmc/main.htm
Csound page with a few implementations, Also a sync modular conversion.
http://csounds.com/manual/html/lpf18.html
The manual for the above opcode.
Thanx go to Kriminal and Whyterabbyt for giving me the links in the thread below.
I did what Unkargherth suggested and pulled one of the LFOs out of the example synth, I have missed bringing something with it because i cant adjust the sliders anymore ?
I've changed the resolution to 16 but the sliders stopped working before that, I think it may be something to do with the mouse area but im not sure what to change to fix it ?.
rl ·
BTW: I'm half way thru converting the sync modular ensemble to synthmaker (I think it's originally from the csound link NAS posted). Days are too short... Will post it when I'm ready.
stefan ·
unkargherth wrote: Soory. I forgot.
This is for stefancrs:
Could you give a look to the 3pole lowpass in the original sorce code (link at starting of topic). Ive found it very confusing and unreliable, and also full of strange math compensations. Waiting you opinion
Hey man 🙂
I'm at work now, so I can't try to implement it right away. Anyway, I looked briefly at the filter source code. The actual filter code looks really simple (apart from those nice nested sin calls, but that's not the issue) and there was only one thing that concerns me. Why are they using long doubles instead of floats? Is it needed to keep the filter stable? I've noticed that some filters needs doubles to remain stable, so if we're unlucky, that is the case. (the formant filter on musicdsp is like that 🙂)
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMee.zip
This is how i would have built the synth engine in SE but it sounds absolute crap 🙂 , I dunno what i've done wrong but it just whistles lol
Nu Audio Science ·
http://uk.geocities.com/nas_sound/saw.zip
http://uk.geocities.com/nas_sound/sqr.zip
Two audio samples of the Creakbox, One is the sqr one is the saw.
unkargherth ·
stefancrs wrote: Hey man 🙂
I'm at work now, so I can't try to implement it right away. Anyway, I looked briefly at the filter source code. The actual filter code looks really simple (apart from those nice nested sin calls, but that's not the issue) and there was only one thing that concerns me. Why are they using long doubles instead of floats? Is it needed to keep the filter stable? I've noticed that some filters needs doubles to remain stable, so if we're unlucky, that is the case. (the formant filter on musicdsp is like that 🙂)
Forget the nested sin calls. I've plotted this function for the whole input interval ( cuooff [0.0..0,7] ) and basically look like an tanh function multiplied by a constant. Also i read out there that there are people implementing this filter exactly this way, so posibly i sustitute, as a decent approximation is by far more efficient than sine calls
What's bugging me is theose all math playing with the resonance. Is really needed. or is only one set of corrections over another ( seems that there area an original version and Patches from at least two people in the code)
The truth is that i made a preliminary version in code, and it works, but has lots of instabilities, creeks, and so on, and not only in the extreme high or low combinations of cuttoff and rez values as usual in filters. Also on the middle. and i get lost here. Need the fresh air of another one's ideas to continue
No idea on the doubles issue, Anyway there's a comment in the code stating the same question as you 🙂
Nu Audio Science ·
First GUI concept.
skOre ·
To be honest with your knobs, the gradient make it look lika a cheapo SE synth 😮
Nu Audio Science ·
Oh OK 🙁
Shifrin ·
I kinda like the knobs! The LATK version is nicer though 🙂 I'll most probably still render bitmap strips TBH then I can get my knobs to look exactly how I want 😉
Shif.
skOre ·
Shifrin wrote: The LATK version is nicer though
I second that! 🙂
rl ·
skOre wrote: I second that! 🙂
I third that: butt ugly design 😉
---> If anybody is interested: I finished my translation of the lpf18.sme into synthmaker: get the schematic here
It still needs some scaling and finishing touches.
NB: maybe someone (jorge?) can explain me why I'm hearing nothing when replacing the impulse with a saw wave and connecting the filter out through a PolyToMono with a DS out, while the analyzer displays a nice graph.
unkargherth ·
rl wrote: ---> If anybody is interested: I finished my translation of the lpf18.sme into synthmaker: get the schematic here
It still needs some scaling and finishing touches.
Wow !!! It sounds cool !!! nice work
Anyway, i made a POly version of yours and integrated in Nas VSTi. It seems a totaly new instrument. A bit high Rezy sweeps but sure somebody can retune it ( maybe yourself ?)
get it here
Shifrin ·
Just getting this lpf now, I'm interested to hear it 🙂
Thanks!
Shif.
Nu Audio Science ·
Holy cow rl, You promise to keep making filters that good and i promise not to make any more butt ugly designs 😉
Unk i will try to find out how to get the tuning working and also try working out the mins and maxs for the controls 😉
edit*
Should have asked how your filter and dist was coming on Unk ?
Also the res seems to do nothing and a lot of the sound seems to be making it through unfiltered ?
Whats the thinking on putting another static filter in before the main filter to leave only the reactive frequencies, If that makes sense ?
Nu Audio Science ·
Putting another dist in front of the filters seems to be pleasing to my ears, Strange really when i was trying a filter to remove some of the sound the dist adds but sounds better ?
I need to go search around and find out how to set up the tune properly still and i will repost.
Oh i also messed around a little (Still dont know what i did 🙂 ) in the code component for the dist and got a slightly different sound (Seems to be rounder but that could be my ears)
I need to try and add a few controls into that code comonent for slightly more control of the dist.
unkargherth ·
Nu Audio Science wrote: Should have asked how your filter and dist was coming on Unk ?
Filter is a direct code translation from LPF18 by rl
Nu Audio Science wrote: Also the res seems to do nothing and a lot of the sound seems to be making it through unfiltered ?
The diference betwen your and mine is that i applied envelope depth to cutoff and rezzy, and changed the moog by the lpf18
Nu Audio Science wrote: Whats the thinking on putting another static filter in before the main filter to leave only the reactive frequencies, If that makes sense ?
????
I really don't know waht youre refering to here
unkargherth ·
Nu Audio Science wrote: I need to go search around and find out how to set up the tune properly still and i will repost.
.
Why the Tunning ? I think original tb303 didn't have it
Nu Audio Science ·
Should have said forget about the xtra filter i was speaking of it sounded crud 🙂
I put another dist in before the filter and that sounded OK
Are you using any of the code you ported from Creakbox ?
Nu Audio Science ·
No i've just checked again and in SMee2 i haven't got any controlover the res ? , If i connect the moog back in its there but with the 18 its gone ?
I wonder if its my SM, I have had a couple of crashs when exporting as VSTi.
unkargherth ·
Nu Audio Science wrote: Are you using any of the code you ported from Creakbox ?
Not in the example i post. I have my own version of the filter ported from creakbox, seems a little strange. Still needs work
Nu Audio Science wrote: No i've just checked again and in SMee2 i haven't got any controlover the res ? , If i connect the moog back in its there but with the 18 its gone ?
I wonder if its my SM, I have had a couple of crashs when exporting as VSTi.
Mmm . I should check carefully. didn't noticed when i post but checked one min ago and its true,
All seems correctly conected inside the filter. If i found the solution , i'll post it
unkargherth ·
Shit !!!! Stupid mistake. forunately easy to correct. Follow the steps
1.- Open SMee2 in SM
2.- go deep in modules following this path
Top>>FM3x>>Synth>>VCF>>lp18 distorted ( the one is connected not the other)
3.- look for a code component with two inputs atgged "kp" and "rez"
4.- add the following line
q=q*rez;
( don't forget the semicolon )
Done. Now you can control Rez
Nu Audio Science ·
Cheers dude, Also anychance mailin me some of what you have ported, I just want to compare to the original to see what is getting used
I dont want the full thing just a couple of lines and the same lines in the original (I understand totally if you cant 😉 )
unkargherth ·
Here it is . The port of 3pole filter and the Dist+ highpass module, plus a test environment
Generally speaking , sound worst in every sense compared to the implementation of lp18db you've seen before. Anyway this a port as direct as posible of the original creakbox code
Get the Creakbox Port
Nu Audio Science ·
Dude that sounds absolutely spot on, I've only tried it quickly but it seems to have all the bite 😉
U the man
edit* Shouldn't the decay and release be connected to replicate the 303 env ?
And how do you make something mono as in monobass ?
Nu Audio Science ·
Probably me being an idiot but the dist doesn't seem to do anything ?
unkargherth ·
Nu Audio Science wrote: Probably me being an idiot but the dist doesn't seem to do anything ?
You are true. I'ts very, very slight. But that what the original seemed to do (you could check the source code. it's completely ridiculous in a serius VST use this distorsion ). its easy to modify it to get a configurable clamp leveland add a small makeup gain after it and before the highpass
Anyway. Basically is posible with anything we want. Asymetric parabolic saturation, hardclipping,.. anyhting
Nu Audio Science ·
I will look for some code for a phatter dist and see if i can convert it Gulp
I've made it into a vst using Stefs overdrive and it sounds rude 😉
edit* You probably know this but on that pole lab file when you turn down the env the filter controls stop working 🙂
Nu Audio Science ·
http://uk.geocities.com/nas_sound/creaktest.mp3
A quick blast up of your filter in Tracktion (160k)
Sounds excellent this has a little of Stefans overdrive on it, I think allthough there isn't one in the original we should put an overdrive in this 🙂
I could't do filter sweeps and so on because this is just your 3pole lab and the controls need there min max sorted out 😉
Sounds real nice though when you catch the filters just right 🙂 🙂
unkargherth ·
Nu Audio Science wrote: I will look for some code for a phatter dist and see if i can convert it Gulp
I've made it into a vst using Stefs overdrive and it sounds rude
Stefan's overdrive is, as it says himself, very basic. Try this one
polyin in;
polyin depth;
polyout out;
float a;
float sgn;
float res;
float absin,over;
//Clamp here to -0.5..0.5
absin=(in>0)&in+(in<0)&(-1*in); // absoulte value
over=in*((absin>0.5)&0.5+(absin<=0.5)&1);
// drive to top ( we cut in half, multiply by two )
over=2*over;
Don't know if it has errors. Written online in 3 minutes. never tested
Nu Audio Science wrote: edit* You probably know this but on that pole lab file when you turn down the env the filter controls stop working 🙂
Yes, i know. It's osomething that tried to solve but found no way. I should conected something in a very stupid way, for sure
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMee.zip
Updated SMee but how do we make it monophonic ?, Also how do i get vst automation to work so i can do some filter sweep test and post the mp3s ?
Thanx for the overdrive code i will try it now 🙂 🙂
Oh this whole thing is about 3-5 % CPU on this very very old and slow net laptop 🙂 🙂 , That is inside tracktion
EDIT* Just reuploaded SMee with your OD in it sounds nice 🙂 Very nice 🙂
infuzion ·
Very nice stuff!
It seems that on some of the knobs if they are all the way to the left, I can't hear anything. Perhaps have some of the values not start at 0?
cheers
Nu Audio Science ·
Yeah we still have to find the knobs sweetspots yet 😉
Tom7777 ·
This project looks great so far 🙂
Nu Audio Science ·
Wecant build a sequencer till we have mono, And mono isn't available yet so ?
malc ·
NAS wrote: I did what Unkargherth suggested and pulled one of the LFOs out of the example synth, I have missed bringing something with it because i cant adjust the sliders anymore ?
I loaded this up and it seems fine to me. Is it working for you now?
Nu Audio Science ·
Ahem
OK OK i should check things in newer versions DOH
Guest ·
Nu Audio Science wrote: Wecant build a sequencer till we have mono, And mono isn't available yet so ?
Mono is nearly possible:
[old link]
This implementation of mono has one flaw, if you play Note1 then Note2, when release Note2 the sound just stops, it should go back to Note1.
I think with one more component it will be possible to do a propper mono, the new component would keep an array of values and let one value be added to an array on one Add trigger input and the last value remove on a Remove trigger input, it would be like a buffer of values.
Nu Audio Science ·
Wow cheers erm "Guest" 🙂
jorge ·
Nu Audio Science wrote: Wow cheers erm "Guest" 🙂
🙂 guest is me, somehow it is now possible to post as a guest. Must be because this is a new forum, something in the forum settings must be wrong.
Nu Audio Science ·
Teehee
I guessed from the link it was you or Malc lol
Tom7777 ·
Thanks jorge 🙂
Shifrin ·
This 'mono' schematic looks interesting, cheers Jorge 🙂
Shif.
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMee.zip
I put one of the LFOs in from example.osm, I haven't worked out how to change the lfo from 8 to 16 yet but it gives an idea of how its going to sound, I'll put this mono schematic in next and then update the file 🙂
EDIT*Its actually rather strange but the envelope stays open and actually makes this sound nice, Holding the key down actually filters out, Wrong but maybe a worthy option ?
rl ·
go into the LFO Module - into the smooth module (lower right).
There are 2 Ramp modules. their output is multiplied by 8
change 8 to 16 in both places
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMee.zip
OK smallupdate with rl's mods cheers dude, One of em was under cables and i couldn't see it nice one 🙂
Stillnomono mod yet though (Was trying to get the tempo delay done)
Cheers
Nu Audio Science ·
http://uk.geocities.com/nas_sound/test2.mp3
From the look of this audio file we may need some DC correction ?
Shifrin ·
Nu Audio Science wrote: http://uk.geocities.com/nas_sound/test2.mp3
From the look of this audio file we may need some DC correction ?
Check this out :- http://ccrma.stanford.edu/~jos/filters/DC_Blocker.html
Very easy to implement, you can do it without the code component even 😉
Any problems with it and I'll post a schematic.
Shif.
Nu Audio Science ·
I'm probably a mile off here but here i go
x is the input ?
y is the output ?
r is controlled by some math that is connected to the sample rate ?
n n-1 is i haven't got a clue but would guess the extremes that the signal has to be between ?
Dont hit me with a schematic quite yet though, Maybe just acouple of hints 😉
Shifrin ·
Nu Audio Science wrote: Dont hit me with a schematic quite yet though, Maybe just acouple of hints 😉
Ok, how about if I write it like this (you had some parts right!) :-
You're right about R having something to do with Sample Rate (if I understand it right that is!).
Oh yeah, if you still can't guess what (n) and (n-1) are I'll give another hint!
Shif.
Nu Audio Science ·
Recursive = a data which contains itself, So would it be the input and itself ?
jorge ·
Here's another Mono schematic that might come handy with this project:
[old link]
For this schematic you need the latest version of SM:
[old link]
Nu Audio Science ·
Cheers Jorge 🙂
You guys are on fire with these releases.
That MIDI Mono is excellent, Was that mono 2 float there before and i was just being blind ?
Tom7777 ·
Wow great stuff, new releases all the time 🙂
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMeemono.zip
I'm sure i've done something wrong here but i tried to put the MonoMIDI in and now i get nothing atall, I removed the tune and lfo and still nothing, I cant see anything wrong with it though ?
EDIT* Actually its rather strange, If i load up the MonoMIDI OSM it works fine, If i copy and paste the whole MonoMIDI over to SMee including the Osc it stops working ? , The way i have packed MonoMIDI into a module works because if i try it in a blank OSM its fine ?
Shifrin ·
Nu Audio Science wrote: Recursive = a data which contains itself, So would it be the input and itself ?
You're right about recursive, not sure exactly what you mean though! It's like this :-
If you had a sequence 1,2,3,4,5 with 1 being the oldest value and 5 the newest. Then 'n' = 5, 'n-1' = 4, 'n-2' = 3 etc... 🙂
Shif.
Nu Audio Science ·
So n is the original signal and n-1 is the signal that is left after the DC block ?
y and x are the difference equation to decide how much adjustment ?
Actually i'm still looking at that algo now and i dont think i'm right yet
lol
I'ts all this (n) business thats losing me, That just means do first to me hahahahah
What does ( ) denote in an equation i cant find anything and im that old i cant remember school 🙂
Shifrin ·
Nu Audio Science wrote: So n is the original signal and n-1 is the signal that is left after the DC block ?
I'll put it like this y(n-1) is the previous output of the DC Blocker, and x(n-1) is the previous input to the DC Blocker. The y(n-1) value can be obtained by feeding the output of the DC Blocker back to it's input (multiplying by the 0.995). The x(n-1) value can be obtained using the 'One Sample' delay 😉
Nu Audio Science wrote: What does ( ) denote in an equation i cant find anything and im that old i cant remember school 🙂
Well, in an equation it would usually be written something like :-
f(x) = 2x
i.e. 'f' is a function who, when we input a value 'x' it is mapped to '2x'. So then for the function above :-
f(1) = 2
f(12) = 24
Or you can simply use them '(' and ')' to signify the order in which to evaluate an expression, i.e. :-
(x + 3) * 5
So we'd first add 3 to 'x' then multiply by 5. Nothing complicated 🙂
Shif.
Nu Audio Science ·
Right im gonna go and do some reading and get back to this after that, I'm completly lost 🙂
Nu Audio Science ·
Did anybody actually get that second MonoMIDI schematic working in anything ?
unkargherth ·
No sound for me on on SMeeMono, with SM 0.9.3j. All seems ok, ut no sound
jorge ·
Nu Audio Science wrote: Did anybody actually get that second MonoMIDI schematic working in anything ?
Because it's a mono synth, you shouldnt use the PolyToMono component, I changed it as follows:
[old link]
It should be fine now.
jorge ·
There is some problem with the ADSR too, it is meant to be used for poly so it keeps decaying until you cant hear anything and currently there is no way of triggering it. I think it should be possible to create a Mono envelope with the code component like I did with the original MidiMono schematic by using two smooth modules.
unkargherth ·
checked. problem is in MIDI2Mono module. If you delete it and use standard MIDI to POLY, all works ok
Nu Audio Science ·
Cheers guys, I will look into a mono env in the code component but my code skills are still limited to basic maths 🙁 (Still struglin trying to make a DC blocker DOH)
Cheers for the updated schematic and it makes sense now you have said it 😉
stefan ·
Nu Audio Science wrote: Cheers guys, I will look into a mono env in the code component but my code skills are still limited to basic maths 🙁 (Still struglin trying to make a DC blocker DOH)
Cheers for the updated schematic and it makes sense now you have said it 😉
From that page that someone (I'm too lazy to look it up atm! 🙂) posted, the corresponding SM code would be (mono version, you might want a poly version, dunno)
monoin in;
monoout out;
float r;
float lastIn;
r = 0.995;
out = in - lastIn + r * out;
lastIn = in;
lalo ·
yes there's some problem in midimono...
..mhh..
how does the midimono works??
are legato playing styles (with note priorities like LAST or HIGHER or LOWER note) possible?
lalo
jorge ·
lalo wrote: yes there's some problem in midimono...
..mhh..
how does the midimono works??
are legato playing styles (with note priorities like LAST or HIGHER or LOWER note) possible?
lalo
At the moment if you play Note1 and hold, Note2 and hold, Note3 and hold then release Note3 it goes back to Note2. I can easily create other versions of it if you tell me how important they are and how they should work.
Nu Audio Science ·
Cheers Stef, I wasn't as far away as i thought 🙂
But shouldn't R be worked out from the samplerate of the host.
lalo ·
jorge wrote:
lalo wrote: yes there's some problem in midimono...
..mhh..
how does the midimono works??
are legato playing styles (with note priorities like LAST or HIGHER or LOWER note) possible?
lalo
At the moment if you play Note1 and hold, Note2 and hold, Note3 and hold then release Note3 it goes back to Note2. I can easily create other versions of it if you tell me how important they are and how they should work.
well ..in the synthesizer history the LAST mode seems to be the winner..and i use it when i play mono leads...
and if you repress note 3 while keeping down note 2 ..does the note 3 be retriggered?
great work jorge tho 🙂
lalo
Nu Audio Science ·
For this particular project what you have done is perfect Jorge and thanx to you and Malc for the time you have spent on this so far 🙂
jorge ·
lalo wrote: and if you repress note 3 while keeping down note 2 ..does the note 3 be retriggered?
If you repress note 3 you have to release it first which makes it momentarily go to note 2 and then back to note 3.
stefan ·
Nu Audio Science wrote: Cheers Stef, I wasn't as far away as i thought 🙂
But shouldn't R be worked out from the samplerate of the host.
Yes it should. or. well. it will always block dc as long as R is below 1.0. Basicly it's just a highpass filter really, and if you want it to sound the same independant of samplerate, you need to calculate R with regard to the samplerate.
Nu Audio Science ·
Sorry to be dumb here but
Do you mean do different versions for different samplerates ?
I was going to put the samplerate in as a polyin and do the math in the code component, Is this wrong ?
stefan ·
Nu Audio Science wrote: Sorry to be dumb here but
Do you mean do different versions for different samplerates ?
I was going to put the samplerate in as a polyin and do the math in the code component, Is this wrong ?
No, that's correct. But I don't atm have the formula you need to calculate R, so I can't help you out there right now 🙂
Nu Audio Science ·
Cheers Stef
I was looking all last night to find that formula 🙂
I'm gonna try again now DOH
unkargherth ·
.. from music dsp code archive
R should be something in the form
R = 1 - (pi*2 * frequency /samplerate)
beign frequency very low ( between 20 and 40 hz).
Sadly it could produce abit of own dc, but using floats this should'nt be noticeable
Nu Audio Science ·
Dumbness again
Can pi be used in the code comoponent ? Or do you use the numeric version ?
I saw this at musicDSP but wasn't sure how to calculate the frequency or if it was calculated by the key being played ?
unkargherth ·
Nu Audio Science wrote: Dumbness again
Can pi be used in the code comoponent ? Or do you use the numeric version ?
I saw this at musicDSP but wasn't sure how to calculate the frequency or if it was calculated by the key being played ?
Use the numeric value for pi: 3.141592....
or better than that, sue 2*pi value and save a mult ( 2*pi=6.283185307)
On the freq, i probably set fixed to 40 Hz, so this is a kind of crude highpass and not much real sounds are down 40 HZ. And no. it don't depends on the note played:
Sorry for the silly questions
Is a mult a line of code ?
So i just us the value of 2*pi instead of an extra calculation in the code component ?
unkargherth ·
yes. you coudl do
2* 3141592652 * freq
or
6.283185307*freq
saving one multiplication
Nu Audio Science ·
monoin in;
monoin sr;
monoout out;
float r;
float lastIn;
r = 1 - (6.283185307 * 40000 /sr)
out = in - lastIn + r * out;
lastIn = in;
This look right ?
OT Can polyins and outs be used in the same code component, I haven't a use i just wondered ?
unkargherth ·
no. use 40 instead of 40000
unkargherth ·
In fact, the better optimization you could get here is to calculate R outside the Code and pass it ass a poly in to the code module. This way it don't gets caculated on EVERY sample
Nu Audio Science ·
Actually if i am not going to change the freq hz, Shouldn't i pre calculate this 6.283185307 * 40000 = 251327.41228 ?
OK posting at the same time
251.32741228
lol
So do i use components to calculate r or do the r calculation in a seperate code component ?
EDIT* Seems to work fine 🙂
Nu Audio Science ·
Whats the best type of env to go for ?
I'm looking on musicDSP but theyre a load of different types.
Also seems in Creakbox there is one for accent and one for non accented ?
// CALCULATE MAIN ENVELOPE
if (boxAccent)
{
boxMEG = boxMEG+ (-1.75f - boxMEG)*0.00009f; // One volume envelope for accented notes
}
else
{
boxMEG = boxMEG+ (-1.f - boxMEG)*0.0000082f; // ...and another for NOT accented notes
}
Total guess here is boxMEG the decay control ?
Or am i totally wrong and this is just for the sequencer ?
EDIT* Also on the sqr wave they seem to have used a lo pass filter to round the edges and then a hi pass to brighten ?
unkargherth ·
Nu Audio Science wrote: Whats the best type of env to go for ?
I'm looking on musicDSP but theyre a load of different types.
Well, if i remeber ok, original TB-303 has an D-only envelo. Attak was instantaneous and no sutain nor release
Also seems in Creakbox there is one for accent and one for non accented ?
// CALCULATE MAIN ENVELOPE
if (boxAccent)
{
boxMEG = boxMEG+ (-1.75f - boxMEG)*0.00009f; // One volume envelope for accented notes
}
else
{
boxMEG = boxMEG+ (-1.f - boxMEG)*0.0000082f; // ...and another for NOT accented notes
}
Total guess here is boxMEG the decay control ?
Or am i totally wrong and this is just for the sequencer ?
BoxMEG seems to be the Main Envelope Generator ( the equivalent of the ADSR Module Output.
[/quote]
In fact what this code SEEMS to do is to calculate an exponential decaying value. If note is ACCENT'ed , the decay will be slower, so the Envelope duration will be larger
Anyway i should check the original to be sure
Nu Audio Science ·
I cant find any reference to a simple decay only env anywhere ?
unkargherth ·
Weell. Simple way to get an exponential delay is at follow
Take standard adrs Module. Feed 0 to attack, , The desired samples to delcay, and zero to sustain and release. after that multiply the output by itself. Done. you get a nice exponential decaying envelope
Another option is a new module is a simple multiplication of the signal by
1-(1/numsamples) that also gives an exponentially decaying envelope
Nu Audio Science ·
OK
Cheers Unk
I will look at writing a little CC for the job 😉
So what is the difference between this and a drum envelope which is just decay but acts like this but with the release also tied to the same value as the decay ?
Nu Audio Science ·
http://uk.geocities.com/nas_sound/SMee.zip
A tidier version but i'm not sure i have the drive setup right yet
Also i haven't worked out how to code a retriggerable envelope yet 😉
This version also has the DC blocker inside.
And the MONO mod but it doesn't work well with the current envelope.
Tom7777 ·
This project keeps on getting better 🙂 The drive does not seem to work right though like you say.
unkargherth ·
Nice NAS !!!!
What we start to need urgently here is an aDSR that gets fired with every Note comming from de sequencer.
... though i have no idea by now on how to do it......
Nu Audio Science ·
I was messing around with this from your earlier post
Does this look right ?
d is decay
sr is samplerate
Jorge mentions doing it like he did with a code component and the two smooth modules as in his original MIDImono ?
Nu Audio Science ·
I was thinking maybe instead of having the waveshapes on a switch putting them on a knob so halfway would be cross modulated.
Anybody have any thoughts on this, I used to like it in Rubber Duck all them years ago:)
unkargherth ·
Well. Two thing s on thsi code
1.- when d is 1 result is negative ( very bad bad thing)
I think correct way whoud be
out=1-d/sr
EDIT: Sorry, i was mean
out=out*(1-d/sr);
beign sr in range 0..0.999999999
2.- Stiil we have no way to trigger it per note basis
unkargherth ·
Nu Audio Science wrote: I was thinking maybe instead of having the waveshapes on a switch putting them on a knob so halfway would be cross modulated.
Anybody have any thoughts on this, I used to like it in Rubber Duck all them years ago:)
Usually crosffading/morphing waves this way generates lots of aliasing. Anyway, this wasn't provided on original TB-303, so we could leave out for firts release
Nu Audio Science ·
OK i'll leave that one for now 🙂
I think Stef has made the LFOs in Nildon host sinced so i will start looking at those but we are being held up by that retriggered env DOH
PS Theres no drive in the 303 either but that baby stays 😀
JMH ·
Hello ppl 🙂
Finally a topic that got me into registering to this forum 🙂
I started working on a "303 emulator" a while ago, after getting my hands on a Devilfish. I based my work loosely on Creakbox sources and fiddled around, figured out ways to make a simple 16 step sequencer etc... from my experience, here's a few comments regarding Creakbox:
The oscillators are nothing like the real thing. Not bad in itself, but... there was once a good description on how a 303 generates the waveforms, sadly I can't find it with Google anymore. Simple stuff though (basically), as it was just generating the other waveform (square quite likely) from the other one (that'd be saw then 😉 - some phase magic should be all you need. But they're not really square and saw, there's some good analysis on these on some of those 303 fanatic sites.
The filter is... useable until someone with good ears and skills gets it done better. It was surprising to hear how far the emulations still are from the real thing. Especially with all that accent brings into the equation.
Accent still seems to be off in all emulations. However, a 'good enough' approximation is more than enough for me, and this is rather easy in SM. Of course once you get down to all the details (such as the way accent affects the amount of resonance with repeated accented notes) there's a lot of painful little additions you have to make.
Anyways... what I've been working on isn't supposed to be an accurate emulation. Instead I'm basing it on Devilfish and the features it offers compared to the original one. I'm also adding some extra things, such as controls that extend it a little further, a sort of second oscillator (I'm not using it in a traditional way, and without going into details I'll mention it will always be synced to the main osc), and faking a self-oscillating filter in order to do what Devilfish does (as it contains modifications to the filter that make it oscillate, and in certain modes, using just the oscillating filter as the only sound source, sounds really freaky!)... oh, and "emulating" the way Devilfish snaps and pops every now and then (because of mods done to the envelopes), except mine will be a fully controllable feature and not just a byproduct of too fast envelopes...
I have to say that it will take a long time and some major additions to SM before I get it all done... thank god the code component is getting better. For me, dealing with stuff that's simple to 'real coders' such as scaling knob values to a certain range etc has been the hard stuff, as I've figured all the structures of the different components a long time ago, with the magic of these ancient devices called pen and paper :P Also, being the anal person that is me, I'll try to get all the nonlinearities and idiosyncracies of the envelopes etc. nailed down at some point. Hopefully I'll also own a Devilfish in the near future, but that's another story.
Without SM this would have never been possible to me, and for that I'm grateful to the people behind it. And to everybody who have been posting stuff on this forum, all the examples and so on are what got me hooked on SM 🙂
Nice to see that the first collaborative project is something that I myself have been working on. If I have anything of any use to this project, I'll make sure I contribute it to the project.
Keep up the good work, ppl 🙂
Regards,
JMH
Ps. Yes, I'm that 303 fanatic from KVR forums :P
Tom7777 ·
Hi JMH, welcome to the forum 🙂
Nu Audio Science ·
Hi JMH
Any help you can give with this is more than welcome
🙂
unkargherth ·
To all Involved/Interested In this Project
I've been asking myself if what we are doing have any worth
I mean. Emulating old equipement is nice, but emulating it to today quality standards of "I want the same glitch on ( put your favorite component here: osc/adsr/filter) that the original produced by discharging the resistance......". all of you know what i mean. I feel trying to this last way is near IMPOSIBLE,and , more important, very boring.
What i say this? Because before continue on, it's important to clarify what are we doing
This started as a 303 emulator, but i think that, living in 21 century, we can do something better. I was thinking in something like 303 part of "PropellerHeads Rebirth". ie a full midi, sequentiable, 303-ish monobass
I mean: Pulse and saw is ok, but i don't agree with having to emulate teh errors ( called non-linearities) of it. All of us know what a saw or pulse osc should do to do it well
Same for filter. I'm not completely happy with the current filter. Yes it has some resemblence to the 303 style sound, but nothing more. I'ts crappy
(I prefer the 18lpf SynC port over my own implementation), dificult to maintain, full of mystic mathematics and a bit unstable
Accent it's another one that i never agreed on how it's implemented. Accent is not only Higher volume/velocity,deeper/softer rezy decay,etc
it should be a combination of all of them and posibly something more
I like to be added the distorsion ( another one to take into account when Accenting notes), but for now it's to rude. It's nice it could be rude sometimes , but not always. It needs to be streamlined
Sequencer is one of the importatt part. A implemented by now ( akind of a dawable lFO ) seems not better way, form my POV. I've been busy working on a total new approximation that allows:
.- Be completely independent of MIDI Input if we want
.- Be able to sequence More things than freq ( in alpha version i'm sequencing now accents, but nothing prevent to sequence cutoff, rezo, decay, envmod and dist too)
.-To working modes: Fixed or relative: Fixed has it's own note ( reqd fequency) definition, while relative should out notes relative to MIDI Note Input
Still some problems to solve so expect a few days ETA
Share you thoughts on this please
infuzion ·
unkargherth wrote: Emulating old equipement is nice, but emulating it to today quality standards of "I want the same glitch on ( put your favorite component here: osc/adsr/filter) that the original produced by discharging the resistance......". all of you know what i mean. I feel trying to this last way is near IMPOSIBLE,and , more important, very boring.
Point well taken; copying may not be the most creative way to spend time.
But I would like to have a free clone of a TB303; it will be years before I can budget in a real used one. Plus it seems a slightly broken/quirky equipment/VST(i) makes tracks more funky. The Kinks invented the fuzz gutair by slashing a speaker in the early 60's, & rock was never the same again.
It would be neat to have 2 modes; relistic clone mode & new funk mode. On the other hand, when free projects like this grow too big, they take years to finsh, if at all...
skOre ·
Remember that this is not SE - you could do both, the original 303 and an enhanced version without worrying about CPU !
Nu Audio Science ·
As long as it sounds good (Acidic) i dont care 🙂
unkargherth ·
Well. I'm not too much interested in the "soudn of tb-303". I'm interested in how it was used, 303 is the mother of near all rolling basses of eighties
and most of middle nineties ( when it gets rediscovered). So it ' isn't important for me that Sounds as 303, is much important it make me able to do "the kind of things that 303 did"
Anywya a "circuit level" emulation is far beyond we can do, so i think a good sounding 303-ish monobass is a good taget for us ( at leats for firts release)
And personally, infuzion, I will never put 1 dollar in for an original tb-303 (for using it - as a collectible or as speculator inversion could be nice - ). Believe me. I've had same idea on a original YAMAHA DX7 and now i'm using it only as a controller keyboard
Nu Audio Science ·
I think the only person after a TB emu is JMH and he's building his own anyway 😉
I've been doingother stuff because i couldn't learn stuff withoutdoing so 🙁
I did get the knob finished for this baby last night though (I will post pics in a mo)
infuzion ·
unkargherth wrote: Anywya a "circuit level" emulation is far beyond we can do, so i think a good sounding 303-ish monobass is a good taget for us ( at leats for firts release)
for a first release, I think that's a good idea. I know some of the old synths (Moogs) started to sound different as the unit warmed up, etc.
One thing I would like to have a return from the origional is the warmer sound the TB303 had, that the emulators don't... perhaps an altered tube emu is in order?
Nu Audio Science ·
The bottom ones are full colorable and only use draw components, The top ones are exactly the same except for a single frame gradient PNG added to create metal.
They have a couple of bugs i'm going to ask about in the GFX section 🙂
This knob is along Unks thinking, I like the 303 knobs but they are 303 knobs this isn't because its not a 303 (I did model the 303 knob in 3D but prefer this)
Nu Audio Science ·
OK i have changed the name of the thread, We need a name ?
Come on somebody must have a name, Creakbox is no good because its nothing like Creakbox, No 303 style names because thats all been done.
I'm in this for the Acid not the Authenticity 🙂
Shifrin ·
Ah, looking good (the knobs!). I'm interested in seeing how this project comes along! If I can help out at some point I will 🙂
Shif.
Nu Audio Science ·
@ Unk
What does the freq polyin do in this code, I can't see anything ?
Im guessing that the f float is suppost to represent it, and maybe the following should be edited -
f=f*0.5;
to
f=freq*0.5;
But im still learning so i might be wrong
Nu Audio Science ·
I'm still trying to understand, I haven't even started learning yet but this one lost me totally 🙂
unkargherth ·
Nu Audio Science wrote: @ Unk
What does the freq polyin do in this code, I can't see anything ?
Aaaargh !!!! Big Typo here. Tom, you're truth that line should say:
f=freq*0.5;
Nu Audio Science ·
Cheers guys 😉
For now i'm gonna have to go back to poly and get rid of the MIDI2Mono because it keeps eating my system 🙁.
Once i have worked out sincing the example LFO to the host i will get on with a sequencer and then come back to this Mono env problem.
I have to go and rebuild it now so i can check what that filter fix sounds like 🙂
PS can't wait to see and hear Unks new version 🙂
edit* Fixing that syntax has stopped it working entirely here ?
unkargherth ·
Nu Audio Science wrote: edit* Fixing that syntax has stopped it working entirely here ?
it works for me
Nu Audio Science ·
My is all messed up its nothing to do with the filter, I'm gonna ditch it and start from scratch 🙁
edit* OK all fixed 🙂
http://uk.geocities.com/nas_sound/SMee.zip
OK small update with the filter fix and a small mod to get the overdrive working so that the volume doesn't change when used, I will try to make this mod up as a code component 🙂
Nu Audio Science ·
Anyone had any joy making a mono env yet ?
unkargherth ·
In another post NAS wrote: We need mono envs to get the project originally known as Creakbox
Hmmm. Good Name for project : POKAC
Project Originally Known As Creakbox
🙂 🙂
unkargherth ·
Nu Audio Science wrote: Anyone had any joy making a mono env yet ?
It's a bit nosense to try to build any kind of alternative ADSR's until we get some way of triggering it
Shifrin ·
Yeah unk is right, without a method to trigger the adsr, hold the sustain etc it's not really worth doing. I'm sure we'll have wht we need soon 🙂
Shif.
Nu Audio Science ·
Yeah ifigured that, Thats why i started the Juno project 🙂
Shifrin ·
I saw the Joono thread, looks like an interesting project 🙂
I'm away from my machine today (shopping with the woman, fun eh...) but will take a look when I get the chance!
Shif.
JMH ·
Hello again people 🙂
Haven't had much time with my "303" thing but thought I'd post something now that I have a net connection at home again :P
I see that you've been puzzling with getting the adsr triggered again as a solution for the sequencer. That's, how shall I put it, one of the bigger issues I've had in my project.
I've been trying to figure out a feature suggestion that would solve this easily, and about the only one I've come up with so far is... it would be nice if we had some sort of a system for modifying the data coming from the MIDI input, specifically if we could delay it - in my little head it would then be a piece of cake to just take delayed copies that trigger the envelope again. Of course all the logic involved with slides and so on would be something not for the faint of heart, at least for me dealing with any kind of conditions and similar things in a graphical environment as this makes the hair in the back of my neck stand up 😀 Anyways, if in the near future we get something like this, doing MIDI manipulations in this manner would allow us to do everything related to it such as arpeggiators. (Too bad the suggestions part of the forum seems to be for registered users only now)
Another solution, far from ideal though would be doing it all with the code component... use the note from the host app to trigger an envelope that has sustain on full and everything else on zero, and calculate the actual envelopes and everything else. But that of course means that those of us that are more mathematically / codewise challenged would have some serious headscratching to do - I'm not sure at all if this is possible, perhaps some of the gurus out there could give this a thought? 🙂
I thought I should also clarify what I said in my earlier post. Personally I'm not after an accurate emulation, that's highly unrealistic of me to think I could come up with something like it (at least until there's software that is as easy to use as Lego blocks :P), instead the aim for my own little synth is to provide something that generally provides me similar controls that 303 and especially Devilfish have - not so many knobs and pots to fiddle with and yet there's so much expression you can coax out of those things. (Ok, this is just my personal feeling... but as simple as that accent appears to most people, it's one of those characteristic things that have no equivalent or nothing even close to it on any other synth I know of)
Anyways... I hope I see you guys go on with this 🙂 Once I get around the initial excitement of having a net connection again, I'll put some of my feature ideas into text and post it here. Hopefully it'll give you a glimpse of what I have in mind and provides something for this project. I've been designing this "ideal 303 style synth" for a long time, thinking about what it should have, how controls might interact, what features could be considered extending the original idea (meaning generally a synth that has 303 style limited controls) and what would be 'going overboard' (supersaw oscillators, multimode filters, full ADSRs for everything, let's throw in a couple of mod matrices while we're at it and a multieffects section, oh and of course a random pattern generator and a wizard that creates acid patterns at the push of button, I think you get the hint =). On paper, my 'design' is superficially simple though there's more controls than say in Devilfish, but I've tried to keep the featureset at least somewhat sensible. I've of course figured out all the necessities so that it resembles a 303 - accent does what it does on 303 although there are some new controls added to it, and so on...
I guess I like reading text written by myself, hence the long post with relatively little content 😉 But like I said earlier, it's exciting to see a group of people having a goal similar to mine 🙂 And to be honest, I am somewhat frustrated because I have most of things worked out in my head and it's a pain for the old dog to learn new tricks - in other words, to learn to make these ideas a reality in a new piece of software 😀
I checked out some of the examples you have been posting and listened to at least one demo clip. All I can say is that you are going in the right direction 🙂 I wouldn't worry at all about getting it to "sound like the real thing", I prefer seeing these - both the collaborative effort and my very-slowly-progressing project as "inspired by the real thing". As we all know, purists will never be pleased =) And it'll save everybody from degrading comments from the public if the public even accidentally thinks we are working on 'accurate 303 emulation' 🙂
Final thought... where do Jorge, Malc etc. get all this energy?-) It's frightening, like every time I check out the site there's a new version available, and if I go on and read some new posts there's an unofficial version few versions ahead already in a link posted by someone 😀 Amazing, pure and simple.
Oh, and the Joono project sounds interesting. The waveform stuff alone gave me some ideas I have to try out in SM soon 🙂
Regards,
JMH
Nu Audio Science ·
I thought you had dissappeared dude 🙂
This has slowed down a bit because of the env issue but will pick up again as soon as note management and gating is available, Jorge has mentioned these a fair bit lately so it wont be long 🙂
Nu Audio Science ·
No comments on the new name ?
Tom7777 ·
SM303 sounds better i think 🙂
unkargherth ·
Not bad. But could become "unthruthfull" depending how the project develops. Anyway, ok by now at least
Nu Audio Science ·
🙂
Tom7777 ·
IMO Creakbox sounds like something that would be used to make sounds like and old door opening. SM303 sounds much better becuase with the 303 part you directly think of heavy basses. 🙂
Shifrin ·
Tom7777 wrote: SM303 sounds much better becuase with the 303 part you directly think of heavy basses. 🙂
And put yourself at risk of flaming from sad people who will continuely say 'but this doesn't sound like my 303'...'blah blah blah'...etc 😉
Hehe, good way to get peoples attention though! How about 'SM Virus303' - bet there'd be a multi-page thread at KvR with that name 😉
Hehe,
Shif.
Nu Audio Science ·
Nah Wusikstation 303 , It would be every other thread 😀
Shifrin ·
How true!
Shif.
JMH ·
😀
Time to start the rumours that someone is building an authentic Virus clone in SM... and then just see the cash flowing in as people register SM 😉
Or perhaps not =)
Regards,
JMH
Tom7777 ·
Well i don't think that tricking people into registering is a good idea IMO 🙂
Nu Audio Science ·
Tom sorry mate
i'm having a bad week but haven't you got a sense of humour 🙂
He was just kidding and that sounds like a very serious reply 🙁
Tom7777 ·
Yeah i guess, sorry 🙂 My reply was not really serious though 😉
Nu Audio Science ·
Sorry Tom i must be in murder death kill forum mode still 😉
Sorry about that 🙁 🙁
Tom7777 ·
No problem, everythings cool NAS 😀 I basically just said that just in case anyone was thinking about actaully doing that 🙂
Nu Audio Science ·
I may have to now just to set up more super phsychos at KVR teehee
I'm only kiddin
Nu Audio Science ·
Could this Trigger thread fella trigger an envelope ?
unkargherth ·
Nu Audio Science wrote: Could this Trigger thread fella trigger an envelope ?
I (still) don't know exactly what it's suposed to be used for , But i feel that triggering adsr isn't its function
We must wait jorge explains a bit
PS: I'm not forgot SM 303. Trying to solve some problems with sequencer by now....
Nu Audio Science ·
Yeah don't worry Unk i think we've all been busy but we will get it done one day 🙂
Nu Audio Science ·
You know i'm thinking the saw shapes from Joono should go in this ?
Unk thoughts on this ?
I think if we pull away a little from the restrictions of the 303 design we can create an even better monobass, What is everyone elses take on this ?
If we do pull away from the 303 we need to decide wich features will be kept.
My votes
1 18db filter
2 Sequencer
3 Simple decay only envelope
Beyond keeping those i'm not too fussed, Maybe even multiple filter types ?
unkargherth ·
Nu Audio Science wrote: You know i'm thinking the saw shapes from Joono should go in this ?
Unk thoughts on this ?
I think in working out some better waves than standard pulse and saw, but not exactly the Joonoo ones. A kind of "analogueque" Pulse/Saw. Maybe add a slave subosc, and duplicate teh main osc with fixed, very soft detunning.
Nu Audio Science wrote: I think if we pull away a little from the restrictions of the 303 design we can create an even better monobass, What is everyone elses take on this ?
If we do pull away from the 303 we need to decide wich features will be kept.
My votes
1 18db filter
Count on mee for this
Nu Audio Science wrote: 2 Sequencer
Absolutely, althought i'm locked on it by now
Nu Audio Science wrote: 3 Simple decay only envelope
Mmm Simple "decay controlable ADSR". I think internally it should hav a small, near -non noticeable attack, to avoid clicks
Also, maintaining the DEcay-only concept, i think a Curve type param (Plain/exponential/logarithmic) would also be nice
Nu Audio Science wrote: Beyond keeping those i'm not too fussed, Maybe even multiple filter types ?
It's hard to imagine any filter for a monobass diferent than an LPF. Anyway, we can offer diferent LPF's ( original 18 dB, biquad stacked ofr 12/24, stacked svf ( ala joonoo), Tarrabia Filter)
For other goodies I probably vote for maintaining Accent, Note Slide, and maybe adding an a simple , analog-style arpegiator ( which is diferent from the sequencer). But all of this are not important as previous ones
Nu Audio Science ·
Ooooooooooooooooooooooh yeeeeeeeeeeeeeeaaaaaaaaaaah a bassline with an arp, How about if the sequencer patterns could be triggered by keys over MIDI aswell (Even possible ? )
I agree with the rest of your post, Keep accent and slide and have a choice of LPFs and so on 🙂
Nu Audio Science ·
Creakbox 2 Bottom of the page
J+H has actually put his website back up with his version of Creakbox, It's supposed to be a lot better than the original and isn't in demomode either 🙂
EDiT* Yep this rocks check out the Badboy extension 🙂
Nu Audio Science ·
OK J+H has done his usual rubbish and now (Within one day) that site is no longer available, He has already deleted all his posts at KVR so it's unlikely to be back soon 🙁
infuzion ·
Nu Audio Science wrote: OK J+H has done his usual rubbish and now (Within one day) that site is no longer available
Good think I saved everything to my HD... check your cache; might be there too. Thanks for the tip-off.
A similar thing seemed to happen to the author of Buzz; the dude's HD with all the source (& only copy) crashed out, & he more or less disapeared. Once everty 1.5 years he pops up with a demo of something else, but that's all.
Which reminds me... time to do some backups 😉
Nu Audio Science ·
I check for J+Hs site everyday (I still harbour a small hope that Devils Whisper will get released even though he sold it to another company)
JMH ·
Sold it to another company? Care to go into details?
If you're an oldtimer on KVR, you might know my stormy relationship with him... as much as I respect his coding skills, I've never managed to understand his 180 degree turns on things on a daily basis...
And I've been waiting for his magical "coded from scratch" bassmachine to appear some day... and will probably continue until I'm senile enough.
I don't know if anyone has noticed but everything he has released with his J&H handle are projects based on other peoples' code. Whereas the 'coded from scratch' projects aren't available to public... makes one wonder 🙂
But thank dog we don't have to rely on unstable german developers, we can build our own now 🙂
My project will go through some serious redesign once again. I've had access to a DevilFish (and if everything goes fine it'll be mine!) and I've gone through my current featurelist (most of what is at to-do stage) and changed a lot.
Little birds told me btw that one certain company with experience in 303 emulation will work on extended, somewhat DevilFish-based bigger model... Happy days for us 303-oriented people 🙂
Regards,
JMH
PS The new smileys =) Great ones 😀
mindplay ·
is there a downloadable version of your work so far available?
I'm mega curious - Frank (the original author) is an old friend of mine, we both doodled with 303-emulation in our teens ... Frank kept going, and apparently the results he reached are better than most 303 emulations I've seen.
If you guys have unresolved issues with his source code, I may be able to lure him onto this forum and provide some help ... let me know.
I think porting it to SM is an awesome initiative, I'd be happy to help in any way I can ... perhaps with GUI graphics or something? (I made most of the GUI graphics in Synapse's audio products)
🙂
mindplay ·
any development on this topic? 🙂
Nu Audio Science ·
Yeah this will be picked again SOON, I just have some other work stuff to sort out first, We have actually decided to pull away from the emulation and just create a good bass synth with parts of the Creakbox code like the filter and so on, But we wanted to add stuff in and take some stuff out so we decided against a full Emulation 😉
Anything you can help out with is always appreciated here in the projects section, And anybody else you can bring along is always more than welcome here 🙂
There is an OSM a few posts back that you can load into SM but it hasnt been updated for quite a few versions so it may have problems.
Nu Audio Science ·
I'm about to restart this entirely so if anyone has any ideas or schematics i should look at point em out now, Hopefully we can get something worth releasing to promote SM.
Oh if anybody knows of any low CPU nice sounding filter code that has already been posted in the forums let me know 😉
Shifrin ·
It'd be cool to see this project ressurected! I've been unable to spend the time I'd have liked to with SM recently, I'd intended on having a nice little demo synth done by now but alas it hasn't happened - yet!
Shif.
Nu Audio Science ·
Hopefully you can find five minutes here and there o work on it again Shif, I think we should kill the sequencer for now though (Although it can be done now in SM i believe)
Shifrin ·
Nu Audio Science wrote: Hopefully you can find five minutes here and there o work on it again Shif, I think we should kill the sequencer for now though (Although it can be done now in SM i believe)
I'll help out if/when I can 😉
I think it's a good idea to drop the sequencer for now too. How would you see the feature set, same as before : Simple 'decay-only' envelope (perhaps with ability to alter the slope), 18db filter, Some sort of soft/hard saturation/distortion, Saw/Pulse osc's - any more - with PWM?
Shif.
infuzion ·
Shifrin wrote:
Nu Audio Science wrote: I think it's a good idea to drop the sequencer for now too.
The sequnecer should be last; most hosts come with a sequencer already 🙂. You can get rabbit-trailed with the sequencer while trying to get the right sound.
Shifrin ·
Yeah, I agree! It'd make more sense to me to try to get the oscillators/filters sounding just right - I am sure between us we can come up with something good-sounding 🙂
Shif.
Nu Audio Science ·
I'd also like a Sample based Osc if possible, Just single cycles but it sounds real nice 😉
(I have 128 single cycles from the WS stuff and making more is no prob)
Basic as anything no multisamples or anything.
I agree otherwise with Shifs specs above 😉
I think we need to look at that Creakbox filter code again that Unk left us with before he had no time spare, I'm also thinking it should start moving away from the restraints of 303dom.
AngularMomentum ·
I had a little go at it...it's almost the same build as the TB-30X , I left the filter and drive intact, but think the drive could sound still just a little harsher/stronger or maybe I should throw in a EQ.
http://www.amvst.com/osm/SMTB.osm
Had a fast go in FL:
http://www.amvst.com/osm/smtb.mp3
AngularMomentum ·
I notice that the exported dll does not handle the DS correct...in SM everything is just fine. Updated OSM...does have some presets now.
AngularMomentum ·
Also I noticed that the sustain and decay only update after a note on message, where it normally should update immediatly, is there a way to force this or is it something that is not implemented into the ADSR module?
skOre ·
hmm, doesn't work at all for me (DirectSound).
Tom7777 ·
AngularMomentum, i noticed that the code in the 3Pole filter is broken this is due to the way floats now work as they have to be before the code, so to fix it copy then delete
float a; then paste it under float c,r,u,f;
That should fix the code, i haven't had the chance to look at it some more but may be something to do with the other problem you were having maybe 🙂
skOre ·
makes it work, yet still no sound O_o
Tom7777 ·
Hmm DS works ok for me...
AngularMomentum ·
I been working on a different version, see below, in the "other" TB-30X I use a moog filter and a clipper to make the drive...I just do not like the filter cutoff interaction...I might just use a 2 + 1 pole filter or might build a slope for the knob to cutoff.
Indeed your suggestion fixed the code...now have to see if it solved my DS problems. (Nope it does not)
which goes some way to explaining why a 303 has that certain unique quality...
might be of some use 🙂
Nu Audio Science ·
Coolstuff 🙂
MyCo ·
I just played a little bit with the one from AngularMomentum:
http://music-drive.com/101vs303.osm
I changed a lot...don't remember everything but:
- added Accent knob which allows to control how accented (or note with higher Velocity) been played
- Envelope Modulation knob implemented in an other way (as it works on a 303)
- Added 2 Wave forms: Saw303 and Square303, both are wavetables which are calculated with exponentional function for saw and sin(x) for square
- removed Sustain knob... a 303 hasn't that 🙂
- put the osm in a modular structure
If you sequence a lot with different velocity it sounds realy good... but I don't get a good 303 pattern... may be I'm not that creative...
Nu Audio Science ·
3.3meg mp3 Test tune
I've been useless at helping out on the projects lately so i did a small demo tune of MyCos version
As you will hear it's not quite 303 but it's easily as good as most soft synths that try
That said it is a cracking bass synth anyway and the CPU load is quite low
This is two of the 303s with a microtonic and the CPU was hardly touched on my laptop
The only FX i have added are delays which would be nice if they where built in because it's not very often you do an acid line without delay 🙂
If you listen to the filter there are hints of 303 everynow and again but it still lacks a little in that department
Also the cutoff goes too low and starts clicking if turned fully counter clockwise
I've got a DJ gig this week and i'm gonna knock some tunes together to play using this plug and see how good it sounds on a big rig
skOre ·
luv the tune.
Just decrease the release and add some rez and drive and make it arpeggiate a little more, should do 😀
Nu Audio Science ·
Well the sound was exactly what i wanted really
Horses for courses i suppose 😉
skOre ·
Well, as i said, I do really like it. Yet as you were talking about it not being like the 303...
I especially enjoy when it goes "off track" now and then. The whole setup and the sound reminds me of a remix I really enjoy now and then, which is the 'not so sad remix' of the song Stay Another Day by East17. No pun intended here, while the original was adequate pop at best, that remix really was techno 🙂
Wrote something here? To have a post removed or your name hidden, write to [email protected].