Skip to content

antoniaelsen/devilfpga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

devilfpga

A recreation of the Roland TB-303 synthesizer on an FPGA. Why? Because. Targeting the FPGA in the Analogue Pocket (Altera Cyclone V ACM-027-A4?), packaging the build as an OpenFPGA core. Amaranth HDL.

Omitting the sequencer, for now. Accent and glide seem crucial, so hopefully, soon(tm).

Installation

Requirements

  • python 3, pip
  • cython or pypy

Testing

  • gtkwave

TB-303 Design

(Below is my understanding of the TB-303's schematic. I am not an EE. If you know better, I'd love to hear from you :))

Modules

  • VCO
    • Background
      • The VCO supports both a sawtooth and square wave.
      • The sawtooth wave is generated 'directly' (Q28).
      • The square wave is generated by passing the saw through a waveshaper (Q8) (allegedly).
      • The sawtooth wave is passed through an anti-log amplifier (Q26)
    • Inputs
      • Tuning
      • Waveform (sawtooth vs square)
  • VCF
    • The filter consists of a low-pass bjt (as diode) ladder filter, a bjt differential amp.
    • 24dB low-pass 4-pole resonant filter
    • Resonance - TBD
    • Decay - TBD
    • VCF Trim - TBD
    • The envelope generator drives te VCF.
  • VCA
    • The envelope generator drives the VCA as well.
  • Envelope Generator
    • The envelope generator only modulates decay, no attack / sustain / release.
  • Mixer

FPGA Implementation

Waveforms

Waveforms are implemented via direct digital synthesis (DDS); the waveform is stored as discrete amplitude values in a waveform LUT, and a phase accumulator is incremented in such a way as to sample the LUT to produce a waveform of the desired frequency.

Audio Out

The Analogue Pocket provides speakers, headphones through an I2C bus.

Links (Credits)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published