Tom’s status report for 2/20/2022

This week unfortunately was mostly a return to planning to make sure we nailed down the design. I had initially intended to dive into FPGA-land and start bringing up the zynq and the video pipeline. While i was able to synthesize a design for a video framebuffer on the zynq, I haven’t been able to test if it actually works on hardware yet.

Mostly, I ended up focusing with Sam on “knob selection” which meant dialing in exactly what the interface to the synth is, and consequently exactly what features we need to implement on a technical level. We settled on descoping 6 hardware voices in favor of creating a “paraphonic synthesizer” where the gating for all filter envelopes is identical. This is discussed more in the team status update.

I’m currently working closely with Sam to find a way to interface with the many rotary encoders that we use to change synthesizer settings. Due to the chip shortages, the open-source MCU-based designs for this are all unavailable so we’ll have to switch to analog pots or make something custom, since we don’t have enough io to interface all of the rotary encoders with the fpga directly.

My job personally was coming up with this spreadsheet: https://docs.google.com/spreadsheets/d/1Dr5_RnABUDoyzo6D7ym3ToypcFMyjv6tvbP-L7gBcFY/edit?usp=sharing
which details exactly which modulatable features we’re implementing on the synth. This gives us a framework to define requirements precisely for the analog system and how the software needs to be implemented.

Team Status Report for 2/12/22

The project is going smoothly overall and we’ve been working on system level planning like I/O allocation, block diagrams, and front panel layout. Right now it seems like the largest risk that may jeopardize the project is the complexity and number of features that we want to add. A fully featured synthesizer has so many individual features, effects, and subtitles. We have not made any changes to our schedule or planes yet, but may need to slightly reduce scope and define more stretch goals to work on later given extra time.

Initial system block diagram:

Front panel knob planning:

Sam’s Status Report for 2/12/22

Recently I’ve been focusing on two main tasks: programmable analog filter design and FPGA I/O allocation. The hybrid synth requires six analog filter paths with programmable highpass and lowpass cutoff frequencies that are controlled by the FPGA. We chose a switched capacitor architecture in which two MOSFETs are driven with non-overlapping clocks. to emulate a programmable resistor. The topology was selected, components were sized, and a simulation was run to verify the results across the audio frequency range. We will build 12 of these circuits (6 voices x 2 types (high, low pass))

The large number of front panel interfaces combined with six DACs and other various peripherals means that our FPGA board (PYNQ Z2) will basically have 100% I/O allocation. We thought it would be smart to plan ahead and start mapping out which I/O will be used for analog, digital, serial, etc to ensure that our board is sufficient. As per the Gantt chart, we are almost exactly on-time.

Tom’s status report for 2/12/22

This week I worked on the toolchain for the Zynq. I downloaded vivado and started working on the hdmi pipeline as a good test of the toolchain. We started knob allocation and a creating a list of modulatable signals. I personally got the zynq to boot and finished a detailed block diagram for the system. Coming up, I want to actually test the hdmi pipeline and start working on the software including voice allocation, pseudo code for wavetables, and envelope code.

Graham’s Status Report for 2/12/22

This week I presented a proposal for our project to the D teams in 18-500! (Team_D2_Scherlis_Zeloof_MacFarquhar_proposal) I look forward to reading the feedback. I believe that preparing for this presentation has helped me to further my understanding of the many facets of our project. I am now preparing to install vivado on my laptop so we may work on the project in the lab space. We have a previous MIDI-out keyboard that Tom has provided. I researched the encoding of MIDI data. There is a clear standard and it should not be difficult to write our own interpreter or modify another one. I will begin working on that this week and also do some CAD for the enclosure in SOLIDWORKS.

Project Summary

The PROGNOSTICATOR-6 is our vision for a 6-voiced, digital-analog hybrid synthesizer. The synthesizer will make use of digital wavetable oscillators and analog filters and amplifiers. It may feature multiple effects digitally such as chorus, pitch shifting, chords, and arpeggiators. The analog path will include tunable high and low pass filters and an amplifier, which can be modulated by digital envelopes. Notes will be provided separately with an external midi controller, and the whole PROGNOSTICATOR-6 will be built into a sturdy mechanical housing with a strong focus on user experience.