Posts Tagged ‘electronic music’

Electronics Design Case Study – ADSR

23 September 2017

ADSR module homemade

This is a technical article and if you have no particular interest in electronics design feel free to skip it. It will get into some terminology that won’t all be explained in the text…

Music Synthesis

My interest in synthesizers goes back to my early days studying electronics. I always wanted to make my own synth.

But by 1983, MIDI had come out, and I was in the Sea Org.

MIDI stands for Musical Instrument Digital Interface. Musical instruments were an early target for embedded controllers (software-controlled electronic circuits) for many reasons. This ended (mostly) the era when synthesizers were controlled by analog (continuous) signals. Voltage sources were terrible when it came to keeping all the electronic instruments in an ensemble in tune with each other. So tuning was an obvious feature to turn over to the digital world, where crystal-controlled oscillators could stabilize pitch to within a few parts in a million.

The advent of digital signal processing meant things like voltage-controlled filters and unusual effects like ring modulation could be implemented with algorithms instead of hardware.

Voltage-controlled amplitude, however, is so straightforward in the hardware realm that it remains somewhat popular. A basic part of synthesizing a real-world note or sound is approximating its amplitude envelope. This envelope has long been analyzed by acoustics engineers into four parts: Attack; Decay; Sustain and Release. If you play a note on a stringed instrument you can easily see each of these parts in action. How hard and fast you hit (or pluck) the string determines the initial attack and to some extent how that attack decays. Then if you don’t damp the string it will continue to ring until it is damped or played over. This is sustain. And when it is damped, the sound will die out, which is the release phase.

There are many many possible ways to imitate this amplitude envelope with electronics. The most common methods use parts that I had run out of (1 Meg-ohm potentiometers) so I decided to try an alternative design of my own creation.

Design Requirements

Most traditional ADSRs take a “gate” signal from a keyboard which tells the electronics how long the key is being held down (“note on” in MIDI). My electronic art projects use sensors, not keyboards, so I couldn’t rely on a gate signal to determine how much sustain the sound would have. I also kind of wanted a circuit that could be adapted so that each part of the envelope could be controlled by a separate sensor. That means it couldn’t just use pots, like the super-simple designs do. I also wanted to try straight-line segments rather than the traditional curved segments you get using just resistors and capacitors, even though this is less “realistic” for decay slopes.

I had a front panel I was reusing from an earlier project, and originally loaded it with just three pots – all that seemed to fit – which is two less than you need to control the five main parameters of the envelope. But I thought I could skip setting a sustain level, and use one pot to control both decay and release slopes. This panel had to fit into a eurorack-style chassis I had put together earlier, with power coming in the front.

The unit was also to include the voltage-controlled amplifiers, using an IC I had never worked with before.

First Try

I decided to use an op amp integrator at the core of the design, as it would give straight-line slopes and could be dependably controlled. However, I wasn’t sure how to set up my 100K pots to imitate a wider range of resistance. I used three comparators and a couple of flip-flops to detect voltage levels and turn the various slopes on and off.

Mounted at the bottom of the front panel was a backplane board that has become standard in most of my designs. Circuit boards then plug into this backplane, which ideally handles all the interconnects. Front panel parts that could not be mounted directly on the backplane board would be wired down to the backplane using jumpers.

I made the envelope generator board first and then the VCA board. The VCA datasheet was confusing at first, but by wiring an actual circuit I was able to figure out what was going on. This VCA could accept a wide range of control voltages (0 to 30 roughly), but they were referenced to the negative voltage rail! So I needed both an amplifier and offset for my envelope, as it would go from 0 to 5V only, my standard range for control voltages. I realized at this point that I would need a sound source to test this with, and it would also be nice to monitor the envelope waveform on an analog meter. I then spent about a day creating an oscillator and a meter for these purposes.

An incomplete design with too many questions about “will it work this way?” resulted in my running out of room on my envelope module. To solve this I piggybacked an extra module onto the main one. I got some sort of envelope out of this design, but the pots worked only over an extremely narrow range of their total rotation. I had to decide whether to stick with these pots and basic design, or start over.

Second Try

I looked around at what my alternatives were. I had a nice set of six quite small 5K pots from an old piece of audio equipment. They would all fit into the panel if I drilled new holes for them. So I decided to go for it. Five of these pots went onto a new backplane board. I modified this board to hold circuitry and figured the majority of my new design would fit on this board, with the rest put on a new plug-in module on the original backplane.

Now that I was beginning to recognize that this was a challenging project, I went to a build a section and test it approach to my work. 5K pots could only yield 1:100 output variations (comparable to using a 1Meg pot in series with a 10K resistor) by using the turn-on “knee” of transistors to stretch out the transfer curve. I have used this before so didn’t bother to work it out in complete detail, or plot the curves graphically, but below gives you a graphical idea of what I’m referring to:

transistor turn-on graph

Using a curve found on the internet, note that a 0.1 change in input voltage produces a ten-fold change in output current. Extend this input range a little more and you can squeeze out a 1:100 input/output ratio, or even more.

I built my current sources and sinks using discrete transistors. This gives worse consistency and stability than using matched pairs or some specialized IC, but usable for my purposes. I built one and tested it. I gave me a range of 50 to roughly 1500 microamps. This was good enough. I put the rest on the board, then added a dual timer (LM556) and some inverters and connected it up to run continuously (astable mode). I powered up and checked with my oscilloscope. This part of the design worked fine. The timers have two comparators and a flip-flop inside each of them, so this decreased my parts count.

I thought that I could get the timers to stop after just one cycle using some sort of edge detection scheme. But it didn’t work. I was using two timers so that the attack-decay and sustain-release cycles were separate and could be put in sequence. But my difficulties in making the circuit cycle just once and stop caused me to rethink this approach.

The next day I rewired the timers for one-shot (monostable mode) operation. Now the timers could be triggered by my sensor, fire – producing the envelope waveforms – and would then stop, waiting for a new trigger. I used two control flip-flops with NAND gates (CD4093B) to lock out new trigger signals until the current envelope had finished. I really needed only one flip-flop, but the package (CD4013B) has two in it, so I used one for each of the timers.

Next I had to get all the analog levels of the envelope right. I put this circuitry on the new module board. I only needed 8 wires to connect the new envelope module to this analog module. It has six opamps and a comparator. The comparator detects when the envelope signal goes to zero, and resets the flip-flops so they can allow in another trigger signal. This circuit wasn’t working at first. What was wrong? The envelope waveforms were only going down to 0.5 volts, not to ground. I had the comparator set below this, so it was never firing. I was powering my envelope generator with only ground and +12V. The current sinks (set up as mirrors for my current sources) could only pull the load capacitors down to 1/2 a volt. I compensated for this by adding some offset to my summing opamp. I set the output to go a little below ground so the comparator would for sure fire. I had to find a missing wire on the envelope board before I got the unit totally working. It’s not perfect, but it now works as it was designed to work, and will serve it purpose in helping me develop electronic art that uses sounds.

Advertisements

MIDI

2 February 2014

MIDI controller

Musical Instrument Digital Interface

Interface: “…a means of interaction between two systems…” (Webster’s)

The term is used broadly and sometimes confusingly in electronics, computers, computer science and programming as well as less technical subjects.

This word – and many of these articles – embrace a topic which I call digital control. A simple form of digital control is when you walk up to a light switch in your house and turn it on or off. One huge use for computing machines is to use this basic action for controlling all sorts of things. Huge electrical machines, power generation and distribution systems, lighting systems in buildings and for entertainment, manufacturing tools, and all sorts of other devices.

Any control system has 3 basic components:

  1. A controller;
  2. the thing to be controlled;
  3. some sort of feedback mechanism to tell the controller if it was successful.

In MIDI and several other simpler digital control systems, the only feedback channel is through the human senses. In other words, when a musician hits a key on a MIDI controller, the only way he knows that doing that worked the way he wanted it to is by listening to what comes out of the speakers.

I will bring out the book I have in my library: The MIDI Companion by Jeffrey Rona (1994) as my resource for this little introductory article.

MIDI was introduced in 1983 by the growing electronic musical instrument industry as a standard way for controllers to talk to synthesizers. As the name implies, is was digital. In fact, it totally depends on microcontrollers to work at all.

I define a microcontroller as any electronic control device built into a piece of equipment that requires software (or firmware – embedded software) to make it work. The actual technical definition is maybe a little narrower than this.

Thus, MIDI has two main technical aspects to it:

  1. The technology of making musical sounds using electronics, which heavily uses the terminologies of acoustics, the science of sound.
  2. The technology of digital communications, which uses the terminologies of computer systems and computer science.

Advanced users of MIDI must learn both technologies and the various terminologies involved. A “casual” user of MIDI only needs to learn the basic acoustical terminologies, along with having some knowledge of music, of course.

The controller

The photo at the top of this article is my controller. It has an ordinary musical keyboard to play notes, and quite a few control knobs, sliders and switches that tell the synthesizer more about the acoustical properties of each note.

Controller hardware can have a wide variety of capabilities built into it. But what it must do is send instructions to the synthesizer that will result in musical sounds coming out.

The synthesizer

The synthesizer is the device being controlled. It’s job is to make sounds by responding correctly to the control messages sent to it over its MIDI connection from the controller. Most synths also have some stand-alone sound production capability, so they can be tested without a full controller attached.

MIDI synthesizer

I have recently acquired a synth, which is the main reason for this article. Before, I only had “software” synths, which operate on a computer and play through the computer’s sound system. That adds a layer of complexity that I didn’t want to have to address in writing about MIDI. So with the use of this synth, that complexity is eliminated.

Future articles will explore this technology in more depth.