This article from ETI sticks in my mind, the way a single IC could be adapted to create all the various blocks of a synthesizer. CA3080 was quite well known and used at the time, but I think now no longer manufactured. “From 3080 Circuits by Tim Orr, Electronics Today International, Electronics Circuit Design No.1… Continue reading CA3080 Circuits
Category: Notes
A detuned saw pad in a few lines of CSound
Three vco2 saws a few cents apart, through moogladder with an envelope on the cutoff, gives a pad that’s warm without any effects: instr Pad kenv madsr 1.5, 0.5, 0.7, 2 asig = vco2(0.2, p4) + vco2(0.2, p4 * 1.004) + vco2(0.2, p4 * 0.996) aflt moogladder asig, 400 + kenv * 2400, 0.3 outs… Continue reading A detuned saw pad in a few lines of CSound
Four identical OLEDs on one I2C bus
SSD1306 boards usually only offer two addresses (0x3C and 0x3D), so four of them can’t share a bus directly. A TCA9548A mux at 0x70 fixes it: write a single byte with the channel bit set, then talk to the display at 0x3C as normal. bus.write_byte(0x70, 1 << channel) # select channel 0–7 Remember to deselect… Continue reading Four identical OLEDs on one I2C bus
Keeping CSound out of the UI’s way with OSC
Running CSound as its own service and talking to it over OSC on loopback means a crash or redeploy of the .NET app never glitches the audio. OSClisten in the orchestra plus a tiny UDP client on the app side is all it takes. A /ping → /pong pair doubles as a health check.
Sketching a voice in the Teensy Audio design tool
The PJRC Audio System Design Tool lets you wire oscillators, mixers and filters in the browser and then export the C++ declarations. Wire the modulation (LFO into the waveform’s FM input, envelope into the filter’s frequency control) there first; it’s much quicker than finding a missing AudioConnection by ear.