Edward Wang

box (OP-1 Clone)

Latest:

Oct 28: good progress

Screenshot 2024-10-28 at 11 15 12 PM

Screenshot 2024-10-17 at 3 44 26 PM

August 27th: progress

The new stack is opengl and tracktion_engine. been making good progress on the audio and graphics. Screenshot 2024-08-27 at 11 04 40 PM I’m starting to really hate c++. I want to rewrite the whole thing in c or zig but I’m worried that it won’t work and I’ll get stuck.

Jun 18th (2024):

Restarting. Gonna use tracktion_engine for the core audio stuff and write an emulator with ncurses.

Also moving from an hdmi display to pure 128x128 SPI. A lot simpler and also more unique.

Lastly, the pi cm4 is back in stock so I think I’m gonna go with that this time. I had a lot of trouble just getting i2c to work on the radxa, and it’s better in both cost and time to use the pis.

August 16th: PCB DONE!!!!!!!!!!!!!!!!!!!!

Screen Shot 2022-08-16 at 3 38 36 AM

August 9th: PCB almost done

Juno 106 Clone

Ever since I heard the tame impala live album, I wanted the Juno 106. The only thing was, it was insanely expensive, and I knew my parents would never let me get it, so I decided to make my own.

Original Synth

juno_106

To start off, I chose the teensy 4.1 for this project because of the high price-performance ratio, and because of the teensy audio library, which makes the programming a lot easier

First, I wrote the software using the Teensy Audio Library. I used PureData to create a virtual midi instrument, which made testing a lot easier synth_interface

Architecture

synth_arch_poly First, there are 4 oscillators, the volume of which are controlled by a mixer. They then go through the high and low pass filters, and are then modulated by the envelope. The signal is then duplicated and sent into the flangers, and ultimately ends is output as a stereo signal that goes to the SGTL5000

There’s more complexity than this, as most of these blocks are modulated in turn by the LFO and envelope.

Hardware

Once I had the software done, I started working on the hardware. In this case, it was pretty simple, I had midi in and out, and then a bunch of sliders buttons, and leds, which you use to change parameters.

Midi Input Circuit

midi_circuit

        .--'''''''''--.    
     .'      .---.      '.  
    /    .-----------.    \  
   /        .-----.        \  
   |       .-.   .-.       |  
   |      /   \ /   \      |  
    \    | .-. | .-. |    /  
     '-._| | | | | | |_.-'  
         | '-' | '-' |  
          \___/ \___/  
       _.-'  /   \  `-._  
     .' _.--|     |--._ '.      Hi I'm Edward  
     ' _...-|     |-..._ '        Computer Science @ uWaterloo
            |     |                   Read the blog !!! its awesome  
            '.___.'  
              | |  
             _| |_  
            /\( )/\  
           /  ` '  \  
          | |     | |  
          '-'     '-'  
          | |     | |  
          | |     | |  
          | |-----| |  
       .`/  |     | |/`.  
       |    |     |    |  
       '._.'| .-. |'._.'  
             \ | /  
             | | |  
             | | |  
             | | |  
            /| | |\  
          .'_| | |_`.  
          `. | | | .'  
       .    /  |  \    .  
      /o`.-'  / \  `-.`o\  
     /o  o\ .'   `. /o  o\  
     `.___.'       `.___.'