Last year I bought a KORG volca modular synthesizer to re-ignite a long held interest of mine and to play around with creating interest sound effects for some of my projects. I blogged about it back in October 2021 (/members-area/personalblogs/b/gene-breniman-s-blog/posts/having-fun-with-a-korg-volca-modular-synthesizer). My plan was to construct a simple MIDI file player to produce pitch and gate control signals to drive the synthesizer functions (Mind you, I have absolutely no music talent and I am basically tone-deaf, but I have always thought that a synthesizer was an excellent playground for an engineer) . But, like all engineering plans, the feature set grew to include many additional functions.
As the project grew, it became clear to me that this might be a great project for the the project14 Op-Amp-a-Palooza competition. The design includes five Op-amps (I will be including three of the Microchip Technology - MCP6V31T-E/OT included from the free Op-amp Kit, thank you very much element14!) plus several other analog devices. The Op-amps will be used in power supply section, main Pitch control signal generation and to generate multiple noise sources (White, Pink and Brown).
Here are the design documents for this project:
The functions of this design are broken down into a few core sections:
- Power supply - The Unit accepts 9 volts DC from a wall wart converter. The same 9 volts is passed through to the KORG volca modular synthesizer through a second barrel power connector. The 9 volts is converted into 5V and 3.3V for powering all of the digital circuits. The 5V and 3.3V are also filtered for all of the analog circuits (PI, C/L/C filters), with the 3.3VA also used to generate a 1.65VA signal to bias some of the Op-amp circuits. The 1.65V signal is generated with a simple voltage divider and buffered with a voltage follower circuit, using one of the Microchip Technology - MCP6V31T-E/OT Op-amps. An additional 6V supply is used to power the final stage of the Pitch control voltage circuit, allowing the full range of this function to be achieved.
- Main Controller - The main controller is comprised of a ATMEGA328PB controller, F230XS USB to serial bridge and a serial EEPROM (either 128Kb or 512Kb). The controller's EEPROM will contain the Midi file(s), which will be used to generate all of the control voltages to drive the KORG volca modular synthesizer. The basic Midi decode functions will need to be expanded to insert decode capabilities for the additional control voltages used to drive the various control knobs on the synthesizer. The USB interface will be used to program the controller (firmware and MIDI files) as well as to allow controlling all of the signals for tuning and debugging the control signals.
- Noise Source and filtering - A secondary processor (ATTINY85) is used to generate white noise. The ATTiny85 processor uses a Linear Feedback Shift Register (LFSR) technique, using a 39 bit register length to develop a Pseudo Random bit sequence. The algorithm is processed inside of a timer interrupt process to update the sequence at a 200KHz rate. The upper four bits of the shift register and added together to produce a 16 level output signal, which adds additional harmonics into the output waveform. The ATTINY85 output is a close approximation of White noise and is fed into a series of filters to produce both Pink and Brown noise. A four channel analog switch is used to select one of three noise waveforms to route to the volca modular Synthesizer.
- Pitch and Gate Control voltage generation - A 12-bit (or possibly a 10-bit) DAC is used to produce the control pitch voltages as determined from the MIDI file. The DAC output is multiplied by 2 to create a 0 to 6 volt signal, which is further filtered by a 2 pole low pass filter (using a STMicroelectronics - LMV321ILT Op-amp).
- Knob control voltage overrides - Up to 15 analog outputs are available to be routed to knob control overrides, to route to the various controls on the volca modular synthesizer.
In later blogs I will further describe the above features and also provide test data to show proper operations. For now I am patiently waiting shipment of the remaining parts to complete my assembly. I am like going to incrementally build up the assembly, test subsections as they are completed.
Thanks for reading along. Keep on the lookout for further updates.