Analog Synthesizer using PIC

This project presents an audio synthesizer but not only that, it gives some ideas on how to interface other synths to a keyboard. The keyboard decoder uses the 74HC154 IC and the PIC18F1220. The 4 bits binary input of the 74HC154 is connected to the PIC which will cycle from 0 to 11, representing the twelve semitones. This in turn will cycle the outputs but with low logic level.
The octave is determined directly by the PIC. When a key is pressed it will make theĀ corresponding octave line connect with the corresponding semitone output of the 74HC154 and thus turning the octave line from high to low level. When this is sensed by the PIC, it will check at which semitone the cycle was and output the musical note and the envelope trigger.
After that the PIC oscillators output are sent into separate wave shapers where you can select three types of waveforms. The waveforms are then summed and go into the VCF which can be controlled manually, by the envelope generator or modulated by oscillator 1. After VCF comes the VCA formed with a differential pair, with the control voltage modifying the emitter current.
Newer software has features like arpeggiator or portamento. With this way of interfacing the keyboard there will be some limitations to its usage. For example only the high note will be played if two notes are pressed the same time. All the instructions needed to build this are given however the code for the microcontroller is not but there is enough information to write it yourself.


June 20th, 2009 at 1:47 am
Thanks for the great writeup. Just want to correct you on one point
“With this way of interfacing the keyboard there will be some limitations to its usage. For example only the high note will be played if two notes are pressed the same time”
This is not true – the top key priority is set only by the way I have chosen to programme the PIC. For example the arpeggiator “collects” all keypresses in one pass down the keyboard – then plays them in order not top key. You could even develop a polyphonic version of this with exactly the same configuration of 74hc154 and PIC because the PIC tests each key one at a time very fast and can keey track of which oscillator is assigned to which key. There is some detail of the algorithm in the PDF and in the BLOG – or you can by the PIC preprogrammed and save months of work !
Kevin
PICSYNTH
June 20th, 2009 at 9:08 am
Hello Kevin, yes you are right. I was talking about the way it was used in your cool project, including software. I realize now the misunderstanding of saying “interfacing” but im sure that people who decide to write their own code know it’s just a matter how they scan for keys. Thank you for your comment and if there is any other misunderstanding please let me know.