Friday, June 21, 2024
TrebleSynth single chip modular synthesizer
video upload by profdc9
"This video presents the TrebleSynth modular synthesizer based on the Raspberry Pi Pico. It is a six voice polyphonic subtractive and FM synthesizer with MIDI USB and serial support. One can create instruments by connecting together modules and adjusting analog controls. All processing occurs on the Pico. It is open source software and hardware. You can find the project at https://www.github.com/profdc9/Treble..."
"The TrebleSynth is a "Modular Synth on a Chip" based on the Raspberry Pi Pico. It is a through-hole design that is easy to assemble yourself and uses only inexpensive generic parts that are widely available to minimize costs. One can create various modules on the chip and interconnect them by specifying which unit takes input from another input, assign the controls of these modules to potentiometers, and then adjust the potentiometers to achieve your desired sound. It also has a fully capable effects module on the chip as well. The modular synth supports six note polyphony.
The synth has a 25 key, two-octave keyboard (though external MIDI controllers are highly recommended, as the built-in synth keys are rudimentary and more suitable for testing). The TrebleSynth accepts notes over serial MIDI input and outputs the synth keyboard presses over the serial MIDI output. There is also a USB MIDI input/output, and notes can be played from a computer to the TrebleSynth over USB and similarly the synth keyboard presses are sent over the USB MIDI output. The are two jacks available for expression and selection pedals.
When plugged into a USB port, the TrebleSynth enumerates both as a MIDI device and a COM port. The COM port interface has a text-based interface that may be used to read and set configuration data from a PC. Type "HELP" for a list of the commands. For example, typing "ECONF 0 0" lists all of the current effects configuration data, and "SCONF 0 0" lists all of the current synth configuration data. The data is output in the form of the commands used to reprogram the same state back into the device, so these may be directly copied into a text file and pasted back into a terminal to recreate the configuration. At some point I (or some volunteer...) could write a graphical user interface that allows external configuration of the modules.
A peculiarity of the device is that, because it uses potentiometers, when loading a saved configuration, the potentiometers may not be at the same positions when the configuration was saved. When adjusting a potentiometer, the unit number and type of control is displayed. In addition, initially after the configuration is loaded, the control does not adjust its corresponding parameter until the control is turned back to the original position it was at when the configuration was saved. A symbol "*" is shown when the control is adjusted to the point where the parameter is being adjusted again. The symbols "<" and ">" show that the control is either at a lower or higher value than the previous control set point, and so if "<" is shown, the control should be turned up until "*" is displayed, and likewise if ">" is shown, the control should be turned down until "*" is displayed.
Each module has a 'SourceUnit' and 'ControlUnit.' The source unit is the unit that the module receives audio input from, and the control unit is the unit that the module receives parameter data farom (for example, to adjust pitch for the VCO or amplitude for the VCA). The unit number of 1 corresponds a zero-valued source (zero voltage signal source). A unit number of 2 or above corresponds to the input received from the previous module. So for example, a SourceUnit for 4 would be the output of unit 3 (which normally is input to unit 4, unless unit 4's SourceUnit is otherwise changed). For example, the mixer has two SourceUnits, one of which defaults to its own unit number (so that it receives the input from the previous unit), and another that can be set to another previous unit, so that the output of these units can be combined.
The code is all licensed under the zlib license (no warranty, yes commercial and non-commercial use). The PCB is licensed under CC-BY-SA 4.0. A new, highly efficient, 15-bit fixed-point precision synthesizer engine, specifically suited for Cortex M0+ processors with no floating point or 64-bit integer multiply or divide, was written for this project. Because the samples are processed in real time, the lag due to processing is about 100 microseconds. In order to achieve this, the Pi Pico is overclocked to 250 MHz with no seemingly bad effects.
The type of modules that one can create are:
VCO (Voltage Controlled Oscillator). Eight waveforms are included: sine, half-sine, triangle, sawtooth, 1/2 duty cycle square wave, 1/4 duty cycle square wave, 1/8 duty cycle square wave. The pitch can be modulated by other modules so that FM synthesis can be performed, or vibrato effects can be created.
ADSR (Attack Decay Sustain Release). A envelope module that can be used to modulate the amplitude of a signal, or output the envelope directly so that, for example, an envelope may be used to modulate the pitch of the signal.
Lowpass filter. This is a up to four-pole lowpass filter modeled loosely on the 24 dB/decade Moog ladder filter. It has an adjustable frequency cutoff.
LFO (Low Frequency Oscillator). An oscillator with a frequency that does not depend on the note frequency. This can be used, for example, to implement vibrato and tremolo effects when used to modulate other units.
VCA (Voltage Controlled Amplifier). A voltage controlled amplifier that uses the output of another module to modulate the gain. Additional gain may be applied with a VCA as well.
Mixer. Can be used to combine the output signals of two modules. For example, two separate VCO FM synthesis chains can be combined together.
Ring. A ring modulator where the signal from one module four-quadrant multiplies another module.
Noise. A noise source that can be used to create percussive effects.
Up to 10 modules can be used at a time. Subtractive and FM synthesis is possible with various configurations of the modules. It also includes these effect taken from the GuitarPico ( https://www.github.com/profdc9/GuitarPico ) project:
Noise Gate
Delay
Room / Reverb (set up specific echoes at particular delays)
Combine (mix together the signals from several effects)
2nd order Bandpass filter
2nd order Lowpass filter
2nd order Highpass filter
2nd order Allpass filter
Tremolo (amplitude modulated by a low frequency oscillator)
Vibrato (pitch modulated by a low frequency oscillator)
Wah (bandpass filter with center frequency controlled by an external control like a pedal)
AutoWah (bandpass filter with center frequency modulated by a low frequency oscillator)
Envelope (bandpass filter with center frequency modulated by signal amplitude)
Distortion (amplification resulting in saturation of the signal)
Overdrive (selectable threshold for low signal / high signal amplitude gain)
Compressor (amplifies weak signals to equal out overall amplitude of signal)
Ring (ring modulator using low frequency oscillator)
Flanger (pitch modulated by a low frequency oscillator, with feedback and combined with unmodulated signal)
Chorus (pitch modulated by a low frequency oscillator, no feedback and combined with unmodulated signal)
Phaser (signal run through multiple stages of all pass filters, combined with unmodulated signal)
Backwards (plays the last samples backwards for weird swooping effect)
PitchShift (allows shifting the pitch by variable amounts, useful for harmony-like effect)
Whammy (pitch shift based on external control like a pedal)
Octave (rectification and amplification of the signal with extreme distortion)
Sinusoidal Oscillator (built in test signal source)
The effects may be cascaded, to up to 16 in a sequence. Since the synthesizer has an audio input, at some point I will likely implement audio pass-through so the TrebleSynth can act as a guitar pedal as well like the GuitarPico."
2 comments:
Note: comments that insult people will be removed. Critique on gear is allowed. Do not ask if listings are still available. Click through auction links to check yourself. Posts and pics remain for historical purposes. To reduce spam, comments for posts older than one week are not displayed until approved (usually same day).
PREVIOUS PAGE
NEXT PAGE
HOME
© Matrixsynth - All posts are presented here for informative, historical and educative purposes as applicable within fair use.
MATRIXSYNTH is supported by affiliate links that use cookies to track clickthroughs and sales. See the privacy policy for details.
MATRIXSYNTH - EVERYTHING SYNTH













© Matrixsynth - All posts are presented here for informative, historical and educative purposes as applicable within fair use.
MATRIXSYNTH is supported by affiliate links that use cookies to track clickthroughs and sales. See the privacy policy for details.
MATRIXSYNTH - EVERYTHING SYNTH
Subscribe to:
Post Comments (Atom)
So, the future of the synthesizer is... the elimination of the case? I'm seeing a lot of bare circuit boards being offered as finished product these days. Kind of an allegory for the US education system. Well, the US anything, really. Just barely enough to get by and be happy with it. Circuit boards are fragile. They are not meant to be the outside of the product. If it implies one is supposed to supply one's own case, well, that has been a booming cottage industry for decades, no? No, actually not. Most people would not know how to acquire or make a case if their life depended on it. They would probably punch some holes in a corrugated box and duck tape the circuit board into it. This is another trend that will end in tears.
ReplyDeleteYes, it is a hobby board for hands on sort of people. It just makes it more puzzling as to why it is publicized along with all the pret a porter. And the design seems completely like an Arturia Origin. Will it succeed this time?
ReplyDelete