CV Interface and Function Generator: Difference between revisions

From Medien Wiki
No edit summary
No edit summary
Line 63: Line 63:


At this point it's right to mention that the parts we choose for our circuit are not really fitting each other. Because when we receive a incoming signal at 16Bits, process it in any way, and then send it out at 12Bits,  there is an enourmous amount of quality loss because of the resolution drop. So, perspectively it makes much more sense to use the same Resolution for the DAC's and ADC's. Or at least an higher Resolution on the DAC then on the ADC. So in the future we will exchange the current 12Bit DAC by an 16Bit DAC.
At this point it's right to mention that the parts we choose for our circuit are not really fitting each other. Because when we receive a incoming signal at 16Bits, process it in any way, and then send it out at 12Bits,  there is an enourmous amount of quality loss because of the resolution drop. So, perspectively it makes much more sense to use the same Resolution for the DAC's and ADC's. Or at least an higher Resolution on the DAC then on the ADC. So in the future we will exchange the current 12Bit DAC by an 16Bit DAC.
Then, shortly before the final presentation we realized that two of our potentiometers weren't working. On the picture at the top of this page can only 1 still be seen, the free space in the right corner of the circuit was actually holded for the 4. Potentiometer. But as we figured out that the problem was laying inside two of the analog Inputs of the arduino itself, we decided to remove the 4. one for now. As we were having an indifference between the digital functionality and the possibilities our hardware setup gave us at this point, it wasn't a problem. The lack of more sophisticated functions was more connected to the fact that it took us too much time to write the functions. The lack of knowledge in writing code for such purposes was actually the biggest problem that occured in the realization of this project. Because our both amateurish coding knowledge doesn't include bitwise operators at all. And so doesn't our coding approach in this project. That means we used a ton of global variables to provide our functions working. This results in 80% cpu usage with really not that many or complex features yet. That is not practicible for the future at all. So the optimization of the code is really the most important thing for further developing this circuit. 
After that said, we want to name and explain some functionalities we want to add in the future.
- extend existing functions:
      - general
            - higher Range of available Speed for Audio Range Modulation Purposes
            - Modulation of Parameters through CV in
            - simultaneous Modes
      - Sine LFO
            - more Shapes by using Wavetables
      - Sample & Hold
            - Interpolation Function for Smoothed Random
- add new functions:
        "Quantizator"
The, not yet existing "special knob" in the upper right corner of the circuit was intended for that. This function should not be another Mode which has to be selected like the other Modes. It should more be something like a filter at the end of the processing chain. When turned down, the output voltage isn't not affected. When turning up, the output voltage got slowy quantized into semitones. When it's halfway turned, the Output should spit out 12 Values per 1 Voltage, so 120 values or "notes" in the full range. That means it can play analog synthesizers musically over 10 octaves. When this "special knob" got turned above the half, it slowy fades the 12 semitones per 1 Volt into less and specific ones. By this, the device is able to turn any signal, no matter if generated, processed or just incoming into a musical scale. Which scale exactly shall be also choosable by the user over an extra button which switches between different scales.
On the hardware side we want to add, next to the needed improvements described above, an analog offset for the output Voltages. We think that would make sense because then we would be able to fade between the range between 0V to 10V and -5V to 5V, which definetely is useful for the use in modular systems. But as the interface got already pretty packed up with potentiometers and (digital) offset functionalities, we we will implement this feature with a simple switch to change the output range between bipolar and unipolar.
As can be seen in the .ino code below