Shayaan’s Update 02/07

This week we started flushing out our design more. We presented our proposal in class and now are finding parts that fit our specific needs. I am currently doing some research to find what FPGA is best for our application. The ECE capstone inventory has DE0-nano, Ultra 96-V2, Radiano CS-ULX3S-01, and DE10-Standard. I am still figuring out what specs are required for our use case, but we would like to have 1 USB port, one port to connect to external DAC, enough processing components to handle 4 voices, and enough memory to handle delay effect bottleneck. Preliminary calculations suggest we will need 50-100 DSP slices, 200 Mhz clock, and 500kb internal memory.

Daniel’s Status Report for 02/07

This week, with the finalized proposal in hand, each group member focused on completing specific details of the projected system implementation. After a group meeting, we divided responsibility for the next set of design decisions to be made in parallel.

I spent time researching both the MIDI and USB protocols to address the following question:

Suppose we want to interleave standard MIDI note events with specialized, device-specific serial commands over a single USB connection (e.g. requests for auxiliary data, control commands for sound synthesis parameters, and FX tuning). What is the best method to achieve this?

While it would be feasible to draw the protocol directly from prior MIDI instrument designs, our anticipated data throughput is likely to present a more intense requirement. In particular, we expect to transmit multibyte sequences that may need to be information-dense enough to define complex effects.

The MIDI 1.0 specification provides a System Exclusive (SysEx) message format that allows arbitrary, “manufacturer”-defined data. As a result, it appears advantageous to “flatten” the interface by embedding our own messaging protocol and custom commands within these SysEx messages, thereby maximizing compatibility with existing MIDI devices and software. It would be much easier to find conformant MIDI streams than have to test and integrate a custom protocol that wraps around the MIDI layer.

While the project is thus far in a draft stage, I believe the emphasis on design decisions and FPGA architecture are paving a clear road ahead. That said, to put rubber to the road, I would like to ensure that skeleton drivers for what is to be the user-facing desktop software are ready by this time next week or (at least near completed).