- Type
- Instrument
- Author
- guitarguy93
- Version
- 3051.4.1
- License
- None
- Live version
- 9.0.2
- Max version
- 6.1.2
- Downloads
- 1,910
- Updated
- 2015-01-19
Description
After 2 years, I'm back!
Anyone is more than welcome to use parts of the device in their own. All I ask is that you let me know and give credit where credit is due.
Thinking about making a 303-style sequencer with it. Probably as a separate device.
*IF YOU NOTICE ANY BUGS/UNWANTED SOUNDS, PLEASE LET ME KNOW IN THE COMMENTS HOW I CAN RECREATE IT*
-KNOWN BUGS-
-Despite my efforts, the envelope does NOT model an analog envelope.
-CHANGE LOG-
v 1.4.1 Tweaked the UI a bit more and added an option to select the old (Before 1.4) version of the square wave and the current version.
v 1.4.0 The decay dial no longer has an effect on amplitude. Amplitude is now at a set envelope following what I've heard in clips. I've also added an envelope amount dial to adjust how much the velocity sweeps the filter. I decided I'd get rid of the limiter, as it simply served no purpose after a volume slider was added. I reduced the maximum cutoff of the filter to help with some "hairy" high-end from aliasing. Finally, I changed the square wave to better match an oscilloscope view of it I found on Google. You'll be able to see it in the oscilloscope that I threw into the presentation of the device. I'm pretty sure that covers it all. If I missed something, you'll probably figure it out. ;) I'm insanely tired, so forgive me!
v 1.3.1 I adjusted the "Sustain" phase so that the amplitude envelope will now sustain at 3% of the maximum amplitude. The filter envelope will sustain at 1% of the maximum amplitude, multiplied by the filter frequency, plus 200. Doing this makes the filter cutoff sustain at about 440hz with the "Freq" knob turned up all the way. Both of these adjustments to my last update replicate the original even better, as the envelope on an un-modded TB-303 never goes to absolute 0, I think, until a new note with a new envelope is triggered.
v 1.3 I've changed the envelope to model an analog envelope. I've also added in two additive oscillators that consist of 4 [cycle~]s at different octaves. One oscillator involves odd harmonics, the other is even. The main oscillators and the two additive oscillators have separate volume controls for blending in more harmonics with the main wave. Also, the envelope will now never retrigger if it receives a note-on before a note-off. This means that the volume will NOT go back to maximum if you send a note-on before releasing the previous note. The decay phase will continue, rather than restart, also. Doing this seems to emulate the original better. Along with that, I've replaced the oscilloscope with a spectrogram.
v 1.2 I believe I've gotten rid of that "thump" that used to occur on the release phase. Let me know if I need to adjust it more.
v 1.1 The filter's "Freq" control is now adjustable in real-time, rather than only before note-ons.
--NOTE: I was, unfortunately, unable to figure out how to get rid of that "thump" or implement an envelope amount control. I will think long and hard about this, and I hope to have it figured out within the week.
v 1.0 When the glide is turned up, it will now NOT retrigger either envelope. In the previous version, the Filter Envelope would retrigger regardless.
v 0.9 First Uploaded
------------------------------------------------------------
*ORIGINAL DESCRIPTION*
The last one I uploaded didn't work, because I forgot to freeze the device. This gave me the chance to change some little, visual things that I found annoying after I uploaded the last one.
This is my take on emulating the TB-303. I know this has been uploaded before, but I haven't seen anyone use the same type of "square" wave that is used in the original. I've done some research, and decided that the wave they call a square can be reproduced in the way that I've done it in this device.
Much thanks to dude837 for writing a tutorial about this. I didn't follow it step-by-step, but he gave me the overall idea and outline of it. I didn't even know what a TB-303 was until I watched his tutorial. The URL i'm posting is a link to his YouTube channel. I strongly recommend it to anyone looking to get the most out of Max/MSP or Max for Live.
Please, feel free to let me know what you guys think, what I should add, etc. I plan on making this a very versatile synth, but I want to know what you guys think should be done to it first!
Comments (16)
And the frequency control doesn't work in real-time, only before a note-on.
The filter cutoff should set a base level, that can be adjusted at will, and the envelope should add to that, and the filter envelope amount should be adjustable.
Its much more realistic. The 303 is good cause its actually bad:)
Some odds and ends:
Analog synths often use RC envelopes rather than linear, and you may get a better sound with these. (YMMV, but slide~ is a great starting point for building these; RC envelopes are essentially log attack and exponential decay)
I'd also take a look at the exponent setting for some of your controls. For instance, with your portamento control, most of the useful values are less than 50 ms. You can use a strong exponent setting (>= 3) to accomplish this. You'll get more responsive controls.
You might also look at a different filter. Biquad~ is fine for filters that don't move a lot, but it's a bit slow to update for really fast filter sweeps. (I'd recommend lores~, a ladder filter, or, better still, the diode ladder filter that Oli Larkin posted to the C'74 forums a few months back)
Preface your send/receives with --- so that multiple copies of your patch don't interfere with each other. (e.g. send ---cutoff)
You can generate anti-aliased offset waves with saw~, though it's a bit trickier. The right inlet is the "sync" inlet. Saw~ will reset its phase when it receives a value over 0.5 in the right inlet, so you could do a little math on the output of one saw~ and use it to sync the other. (same goes for rect~)
By the way, I want to implement a control to select between the two theories behind the way the 303 creates it's square wave. I'm no good at understanding hardware, so all I can go by is what people say, and they say two different things. One idea is the way it's implemented now, but there's another idea that seems to make more sense to me, considering the features of this synth. It's simply that there is only one oscillator and the square wave is generated by a waveshaper of some sort. I have no idea where to begin with waveshaping other than using [buffer~] and [lookup~]. If anyone could point me in the direction of more versatile waveshaping, that would be great.
Sounds good, and it is still synthesis :D
All I tweaked was to have the delay knob react from 0:500 with an exponent of 3 as it gave more precision between 0 and 100ms.
I also stuck a standard overdrive unit in-line (Distort.adv) at 1.21 kHz with Q of 9, set drive to 100% and mapped dry/wet to a macro for "distortion amount" and then tone and the inverse of dynamics ('preserve dynamics') to a second macro for "distortion texture" - this is what people would do with a TB-303 and a guitar pedal - maybe this could be done in max too...
Thanks for your hard work :)
UPDATE:
I haven't been using Max lately, but I'm trying to get back into it. (Yet again) I generally use Max in spurts, but I want to make it a regular practice to help the versatility and creativity of my AL9 experience. Hopefully, I can get back to work on perfecting this device and making some others. Thanks for the support, guys!