I'm in the process of creating a classwide project for an introduction to op-amp and transistors. My goal is to create a 49 keys synth that every students can contribute a small part, run test plan and follow standard layout procedure.
I want to implement a simple attack release envelope right after the oscillator output to give more depth of sound and create a variety of circuits.
From a mathematical perspective, it is easy to understand. You multiply the normalized enveloppe (0-100%) to the actual oscillator signal.
For now, it was easy to get a RC circuits generating the AR signal required. However, I'm currently stuck in the combination of the AR and the oscillator.
Bellow is my high level bloc diagram of one key
I came across different solutions and they mostly played around voltage controlled amplifiers and voltage controlled resistors. The few circuits that I came accross were too complicated for the students (given that the circuit will be repeated 49 times and that even for do once it was rather complex) or simply created the AR waveform, but didn't show how to combine it with the input signal.
I therefore seek help in finding a quick and dirty solution to merge an AR enveloppe with my oscillator. It might be really rough, really imperfect, but keep in mind that it is a mean to get students interested and to tackle a large scale project and learn various techniques along the way.
Edit: rough schematic base on Jonk comment
I didn't calculate any of the values yet. The idea: detect the envelope of the square wave and compare it to 1v if the square wave is present the comparator will trigger...otherwise the line will read 0v (the key button will not let the oscillating signal through). I feed this to a RC network that is different depending on charge or discharge. Finally I get to my VCA.
The problem is: the VCA can't go bellow Av=1 (non inverting configuration in the application note) and I would probably need a range of Av = 0 to 1. I could scale it down afterward (example Av is 1 to 100) and then I put it into a 1/100 divider so that the range become 0.01 to 1. If you have further ideas, don't hesitate to comment bellow.