Forum Rule: Always post complete source code & details to reproduce any issue!
-
C1 Chameleon Project
Hi, I would like to present my small project, a monophonic subtractive synthesizer called the C1 Chameleon.
Front panel PSD
https://app.box.com/s/a04zmme5n4t1t4tpo9okgtdjylhw3n6o
Prototype with cardboard front panel
https://app.box.com/s/8x2bz7sgqntbrg7ny1bbim3h1n885jp9
PCB without front panel
https://app.box.com/s/q2howjp505ku0a1lcx8vo6fz8ru81kpx
It's based around a Teensy 3.2 and an Audio Adaptor. The synth is controlled by two illuminated rotary encoders and data is displayed on a 0.96" OLED.
It has three oscillator with six waveforms, white noise generator, glide, resonant low-, band- and highpass filter, a mixer section, four LFO's and four envelope generators and 100 preprogrammed presets. Each section (pitch, pulsewidth, filter frequency and amplifier) can be modulated by an envelope or an LFO.
THE BACKGROUND
The initial idea of the C1 was to make a modern day Casio VL-1, called VL-X, thus the basic user interface.
Since the number of parameters has increased since I first started the project, I will have to rethink the design and the user interface. My main focus is however to keep the size as small as possible, the size is now 11x4 cm.
MODULATION LIBRARIES
I couldn't find a way of using the envelopes and the LFO's from the audio library as I wanted, so I wrote three libraries, chameleonDAHDSR, chameleonLFO and chameleonGlide.
CHAMELEONDAHDSR
The DAHDSR has a maximum of 2540ms in each stage (10160ms per envelope). This limitation is to prepare the machine to be easily controlled by MIDI, so each step (0-127) is 20ms. This object outputs 0-1.
CHAMELEONLFO
The LFO is based on 200-step wavetables and currently has triangle, sawtooth and square wave waveforms and S&H. Maximum cycle rate is 2540ms. This object outputs -0.5 to 0.5.
CHAMELEONGLIDE
This library has four member functions; speed(), the time (0-635ms) it takes to go between two frequencies,*from(), the start frequency, to(), the target frequency, getLevel() returns level of the glide.
THE FUTURE OF THE C1
Now that I have all the above up and running I will focus on user interface, saving presets, polyphonic mode and a step-sequencer.
ISSUES
When I connect the unit to my PC I get a lot of noise, which seems to decrease if I place my hand underneath the PCB, so some kind of ground issue. When I connect it to a USB powerbank or a laptop the noise is almost gone.
If anyone has any suggestions how I can fix this noise, I'd be thankful.
I will post audio-samples as soon as I find a way to record them without noise.
Regards
Johan Bilén
-
Senior Member
Nice project!
There are USB isolators you can get. Boxes that go between your gadget and the pc USB port. Using one of these could reduce the noise. A former coworker who develops low nose amplifiers does this. Alas, I don't recall the brand or model.
-

Originally Posted by
johanbilen
MODULATION LIBRARIES
I couldn't find a way of using the envelopes and the LFO's from the audio library as I wanted, so I wrote three libraries, chameleonDAHDSR, chameleonLFO and chameleonGlide.
Super useful. Not being able to route an LFO or envelope as a modulation source for oscillators and filters (like you would on a modular synth, or indeed pretty much any hardware or software synth) was a major limitation of the Audio library last time I looked at it (which was a couple of years ago, I admit).
Is that code on GitHub? Do you plan to contribute it back to the Audio library?

Originally Posted by
johanbilen
ISSUES
When I connect the unit to my PC I get a lot of noise, which seems to decrease if I place my hand underneath the PCB, so some kind of ground issue. When I connect it to a USB powerbank or a laptop the noise is almost gone.
If anyone has any suggestions how I can fix this noise, I'd be thankful.
Maybe this sort of USB isolator?
https://www.adafruit.com/product/2107
Interesting that the PC is noisy but the laptop is quiet. Is the laptop on batteries or connected to a mains charger?
-

Originally Posted by
Nantonos
Super useful. Not being able to route an LFO or envelope as a modulation source for oscillators and filters (like you would on a modular synth, or indeed pretty much any hardware or software synth) was a major limitation of the Audio library last time I looked at it (which was a couple of years ago, I admit).
Is that code on GitHub? Do you plan to contribute it back to the Audio library?
Maybe this sort of USB isolator?
https://www.adafruit.com/product/2107
Interesting that the PC is noisy but the laptop is quiet. Is the laptop on batteries or connected to a mains charger?
I don't know how GitHub works but I will educate myself on the matter and upload my libraries there for anyone to use.
The USB isolator looks fine but comes with quite a hefty pricetag...
The laptop is connected to a mains charger.
/Johan
-
Hi Johan,
I am very interested in your modulation libraries. Could you post it here or pm?
Thanks,
gregory
-
Great project. I look forward to seeing your source code.
Your noise problem may be a ground loop. Old 5 pin MIDI has opto isolators to eliminate ground connections. USB MIDI has ground connections. I try to stick with 5 pin midi for my projects. Partly so I won't need a PC.
It may also be your ground connections on the PC board. Use a poured ground plane wherever possible. Narrow ground traces don't work well at all, particularly in mixed analog / digital systems. For hand wiring, use thick 22AWG or larger ground wires.
Good luck,
Dave
-
C1 Chameleon Demo
I made a demo, showing some of the C1's functions.
https://youtu.be/mMU0hU-sZo8
/Johan
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules