Project

# Title Team Members TA Documents Sponsor
32 Reroutasynth: Digital/Analog Synthesizer with Rerouting Grid and Computer Interface
Adam Wills
Connor Jones
Ishaan Datta
Dean Biskup design_document1.pdf
design_document2.pdf
design_document3.pdf
final_paper1.pdf
other1.pdf
proposal1.pdf
proposal2.pdf
**Adam Wills, Connor Jones, Ishaan Datta [awills6, caj2, ishaand2]**


# Reroutasynth: Digital/Analog Synthesizer with Rerouting Grid and Computer Interface


# Problem/Motivation:
While the introduction of the purely digital Yamaha DX7 synthesizer effectively ended the era of the analog synthesizer for all but the boutique companies, top-of-the-line synthesizers in the years directly preceding the DX7 employed hybrid digital/analog architecture, using digital signals for routing and control applications while keeping the signal chain (almost) entirely analog. Recently, there’s been increasingly widespread interest in analog synthesis; demand mounted over time, culminating in the recent release of several digital/analog hybrid offerings by top companies like Korg and Roland. However, these are largely prohibitively expensive, very limited in their offerings, or restricted by a single routing configuration (synthesizer architecture), or any combination of all three of these. There is a void yet to be filled by comparatively cheap, highly reconfigurable synthesizers, and additionally very few analog/semi-analog designs seem capable of interfacing with a computer, neglecting the multitude of benefits such a pairing might provide.


# Solution Overview:
The project is a synthesizer employing analog voltage-controlled amplifiers (VCAs) and voltage-controlled filters (VCFs) with a variety of oscillators and envelopes generated through a GUI and delivered to DACs providing the audio input. The configuration of the VCAs and VCFs, rather than being fixed as in virtually all current offerings, will be reroutable through a routing grid, allowing the output of, e.g. one VCF to modulate the level of a VCA through which a second signal is sent, resulting in AM synthesis. A set of dedicated outputs and corresponding controls allowing VCF and VCA parameters to be set to static, non-time-varying levels will also be included and controllable through the GUI. We believe this will open up new avenues for synthesis while remaining competitively affordable.
The various subsystems are then the GUI/underlying program to deliver oscillator waveforms and constant control values to the relevant circuitry, the digital-to-analog interface through which static control voltages will be generated/waveforms sent to the DACs and converted to analog signals, the VCF/VCA chips, and the routing grid which controls the synthesizer architecture and sends signals to analog outputs.


# Solution Components:

## GUI and Oscillator Program:
This serves as the access point for the user in their interaction with the synthesizer.
Sources will have two possible configurations: Oscillator or Envelope.
1) In the first configuration, a source oscillator can be selected from a pulldown menu of traditional oscillator waveforms (Sinusoid, Triangle, Sawtooth, Pulse, Noise), and the frequency source of the oscillator can be selected:
MIDI keyboard input
Fixed/user configurable frequency (if, for instance, a user wanted to use the oscillator output at a sub-audio frequency for modulation/control purposes but wished to change this frequency over time using a MIDI CC message controlled via a knob)
(ideally and if permitted by time/implementation) frequency input from another/other selectable oscillator(s), allowing for FM synthesis before the signal ever becomes analog.
2) In the 2nd configuration, a window will be available where the user can create an envelope by adding points (using a mouse or touch screen) to create a piecewise linear curve and select a designated time period over which the envelope unfolds. This will have two modes:
1) A control voltage (CV) mode, where the bottom of the window represents 0V while the top of the window represents a maximum voltage (as limited by the operational restrictions of the VCA/VCF chips), which will be used for applications such as providing ADSR-like envelopes to control the volume/level of a voice or other control.
2) An oscillator mode, where the bottom and top of the window will represent the (positive and negative) peak voltage of the output. In this configuration, the points the user has drawn will be cycled like an oscillator and the selectable time period will be replaced by a selectable frequency. In this way, the user can employ hand-drawn waveforms to drive the
DACs.
The rerouting grid for the DAC outputs and analog inputs/outputs will also be controllable from here, as will any static control levels the user wishes to set.

## Digital-to-Analog Interface:
This will pass the waveforms/envelopes/static control signals to the DACs and will also handle the control signals for routing output to/from VCF/VCA chips.
Currently, the idea is that the waveforms the user has selected, drawn, or otherwise engineered will be sampled and sent to temporary memory storage using either EEPROM or (most likely) flash memory. These samples will be walked through at a rate determined by the desired frequency. The clock frequency needed to achieve this can be calculated by taking the number of samples per waveform (4096 in the case of this example) multiplied by the desired frequency of the output; As the highest note producible on a MIDI keyboard is 12543.854 Hz, this could be achieved with a clock frequency of (4096 samplescycle)*12543.854 cyclessecond51.4 MHz which is easily achievable by most modern standards. In a worst case scenario, the highest pitch which might reasonably need to be synthesized for audio purposes (assuming a human audience) is 20kHz, resulting in a clock frequency of 81.92 MHz, again well within the realm of feasibility. The flash memory and clock will be provided by the microcontroller (pending further review); Currently the plan is to use the STM32F7 series, although the number of these which will be necessary for our purposes remains to be determined and this selection may change in the future. Counters will likely be used to step through the samples at a given rate, but again the underlying logic here may change (a phase/wavetable oscillator configuration is most likely).
This output will be sent to DACs, rendering them analog waveforms capable of interfacing with the VCF/VCA chips. 16 DACs can be implemented using two PCM 1690 chips by TI for a total cost of $4.14, although this selection may vary depending on the control unit used.
Static control signals will likely be implemented as 6-8 bit binary values which will be multiplied by a small voltage and sent to the corresponding point in the control grid. For instance, if we wanted to set the cutoff frequency of one VCF to half of its full range and were using a 6-bit control value, we would set the grid to route a constant value to the pin in question, and set that value in the GUI to half (this would likely be visually represented as some kind of slider or knob). This value would be sent through our microcontroller to a circuit which multiplies it by a reference voltage equal to 1/64th of the voltage corresponding to the maximum cutoff of the VCF (VVCF, Max Cutoff = 7.65 volts on a +12V/-5V supply for the chips selected, making VVCF, Ref = 0.1195V, approximately).

## VCF/VCA Chips:
I’ll be using obsolete synthesizer chips here as the technology which was available for these in 1985 simply isn’t made anymore. This is sufficient for a working prototype, while mass production would require other considerations. There are several “synth-on-a-chip”-style “music voicing systems” to choose from, which include utilities such as a VCF and several VCAs on a single IC. Among these, the standouts are the CEM3389, the SSM2045, and the NJM2069. The latter happens to be the chip we will use for this project, both because the filter and main VCA are independently accessible on the same chip and because I happen to possess 10 of them, with an additional 8 available if we need them enough to ruin a rather nice synthesizer. Each NJM2069 Boasts:
- 4 signal inputs: 2 inputs to the VCF whose input levels can be controlled by another voltage source (one VCA per voice is included on the chip to facilitate this) as well as a direct input to the VCF and a direct input to the main (separate/independent) VCA
- 3 outputs: one producing a 2-pole VCF and one for a 4-pole VCF (could be reduced to one output and made switchable) as well as a VCA output
- 5 CV inputs which allow for control of the parameters of the VCAs and VCF: VCF Resonance, VCF Cutoff, Signal 1 Level, Signal 2 Level and VCA Level (technically there are two more, but these will be used in the temperature stabilization circuits)

We estimate that we will use between 4 and 8 of these chips in the final product; this will depend on the feasibility of the routing system as well as other considerations (they’re likely to be the most expensive part of the circuit, and we have a limited number of them given that the budget probably won’t allow for the purchase of many replacements). Each of these will require temperature stabilization through the use of 2 thermistors per chip.

## Routing Grid:
This will (in all likelihood) consist of a network of muxes controlled by our microprocessors with buffered inputs and outputs for each. The specific details here have yet to be worked out, though outputs of the DACs should be made available to multiple simultaneous inputs (for advantages such as using a single envelope to control all available VCAs for a polysynth-type configuration, etc).


# Criteria For Success:
- A GUI/Program through which selected or drawn waveforms can be delivered to temporary storage, constant values sent to control pins if desired, and a routing configuration for the VCF/VCA chips selected
- A means by which waveforms in memory can be read and delivered to DACs
- A functional array of temperature-stabilized VCF/VCA chips which can accept signals from those DACs as well as from one another
- A controllable routing grid which can safely deliver these signals between DACs and chips in a user-configurable pattern

Bone Conduction Lock

Alexander Lee, Brandon Powers, Ramon Zarate

Featured Project

A lock that is unlocked using vibrations conducted through the bones in the user’s hand. The user wears a wristband containing a haptic motor. The haptic motor generates a vibration signal that acts as the "key" to the lock. When the user touches their finger to the lock, the signal is transmitted through the user’s hand and is received at the lock. If the lock receives the correct "key", then it unlocks.

Project Videos