# WavetablePi
WavetablePi is a wavetable module based on the Raspberry Pi Zero 2 W running [mt32-pi](https://github.com/dwhinham/mt32-pi).
It is capable of emulating several midi synthesizers, including mt32, sc55 and general midi with custom sound fonts.
For a complete feature list please refer to the [mt32-pi](https://github.com/dwhinham/mt32-pi) project.
For controlling the mt32-pi from DOS, please use [mt32-pi-control](https://github.com/gmcn42/mt32-pi-control).
- For the "Horizontal" version of this board please check out [WavetablePiHoriz](https://github.com/scrapcomputing/WavetablePiHoriz).
# Features
- It currently supports two modes of audio: using the raspberry pi's PWM audio out (which is noisy and sounds pretty bad), and an external Hi-Fi PCM5102A based DAC.
- You can also attach a 0.91 OLED SSD1306 I2C 128x32 display.
- Starting from rev 0.3 PWM audio is filtered by a simple low-pass filter (R3-C3 and R4-C4).
# I want to build one myself!
- Please note that the current version of the WavetablePi board is quite tall (76mm x 40mm) so please check if it fits your sound card, especially if it needs to be placed perpendicularly to the ISA slots.
- Also please make sure that there is enough clearance between the WavetablePi and the sound card. Some cards have large components that may touch the raspberry pi a
- A WavetablePi with the DAC or the OLED display takes quite a bit of vertical space, so you will end up wasting one ISA slot! There is just no room for a card right next to the sound card, as the OLED display and the DAC will be in the way.
- Finally please check that the PCM5102A HiFi DAC is in the form factor that fits the board. The one I am using is approximately 32mm x 17mm. Also please check that the pinout matches.
- For ordering the PCB, you usually just need to upload the zipped [gerber files](https://github.com/scrapcomputing/WavetablePi/releases/download/rev0.3/WavetablePi_gerbers_rev0.3.zip) to the fab's website.
# Assembly Tips / Troubleshooting
- For attaching the Pi flush against the board, it may be better to cut the 40-pin header into short sections (like 2x3) before soldering them. This should make it easier to solder and to remove the plastic spacers after soldering.
- DAC Board: Before soldering, check if the address solder bridges on the back are set: https://github.com/dwhinham/mt32-pi/wiki/GY-PCM5102-DAC-module
- If the music sounds weird, or slow check `mt32-pi.cfg`. You may need to set `gpio_baud_rate = 31250`.
- Please check out the detailed documentation of the mt32-pi project: https://github.com/dwhinham/mt32-pi
These tips are based on feedback from [ThatRed](https://github.com/ThatRed) (many thanks!). Feel free to check out the full text: https://github.com/scrapcomputing/WavetablePi/issues/1
# Videos
- [Original Wavetable-Pi video](https://www.youtube.com/watch?v=xC-qhcPUeRs)
- [PWM audio improvements](https://www.youtube.com/watch?v=HqzHcLejGF4)
- [Awesome video by Bits und Bolts](https://www.youtube.com/watch?v=s2xgwXyD_c8)
# Bill of materials
Item | # | Description
-----------------------------------------|-----|-----------------------------------------
Raspberry Pi Zero 2 W | 1 | The older RPi Zero is not fast enough
40-pin 2x20 male header 2.54mm pitch | 1 | For attaching the RPi to the board.
26-pin 2x13 female header 2.54mm pitch | 1 | For attaching the board to the wavetable header
6-pin 2x3 pin male header 2.54mm pitch | 1 | For the audio select jumpers
Jumper 2.54mm pitch | 2 | Jumpers for the audio selection header
Capacitor 10uF through-hole ceramic | 2 |
Capacitor 100nF through-hole ceramic | 2 | C3 and C4 which form the PWM audio low-pass filter along with R3 and R4. 100nF is for a 1.6KHz cutoff frequency. Use lower values for higher cutoff
Resistor 22K Ohm | 1 |
Resistor 10K Ohm | 1 |
Resistor 1K Ohm | 2 | R3 and R4, which along with C3 and C4 form a low-pass filter of the PWM audio
0.91 OLED SSD1306 I2C 128x32 module | 1 | (Optional)
PCM5102A I2S DAC Module (aka GY PCM5120) | 1 | (Optional but highly recommended) Please check the PCB for the supported dimensions and form factor!