ESP32-SIDView icon indicating copy to clipboard operation
ESP32-SIDView copied to clipboard

SidWiz viewer for ESP32 [WORK IN PROGRESS]

ESP32-SIDView

This project is an attempt to provide a visual dimension to chiptune music while browsing the High Voltage SID Collection using an C64-themed UI.

The Waveform viewer is heavily inspired by SIDWizPlus.

Features:

  • HVSC compliant SID music player: can play SID Files / subsongs in SID files / playlists.
  • File browser: with dircache and playlist cache generation on first access.
  • Waveform viewer: using SID information (this is not analog capture!).
  • HVSC Archive downloader: because dowloading and unzipping manually is so 2020.
  • SD-Updatable: so the SD Card can host other loadable binaries (e.g. WiFi configurator, MIDI relay, etc).

Demos:

  • https://www.youtube.com/watch?v=vK3MDsCDaJo
  • https://www.youtube.com/watch?v=0w8IsVCzwHA

Bill of materials:

Library Requirements:

  • https://github.com/hpwit/SID6581
  • https://github.com/Lovyan03/LovyanGFX
  • https://github.com/GOB52/gob_json
  • https://github.com/PaulStoffregen/Time
  • https://github.com/tzapu/WiFiManager
  • https://github.com/tobozo/M5Stack-SD-Updater
  • https://github.com/tobozo/ESP32-Chimera-Core
  • https://github.com/tobozo/ESP32-targz
  • https://github.com/tobozo/WiFiManagerTz
  • (optional/experimental) https://github.com/tobozo/ESP32-USB-Soft-Host

Usage:

  • Build yourself a SID6581 to ESP32 PCB (see the /pcb folder or hwpit's stereo implementation
  • Flash your ESP32 with the sketch
  • Deploy the HVSC archive on the SD Card by either:
    • Letting the ESP32-SIDViewer download and unzip it (this can take up to 4 hours and may require to setup the WiFi SSID/PASS in config.h)
    • Manually copying the MUSICIANS, GAMES and DEMO folders from the HVSC archive into the /sid folder and the Songlengths.md5 file into the /md5 folder.
  • Let the ESP32 do the indexing of the MD5 file, this is only a one time operation.

Credits:

  • @hpwit
  • http://www.earlevel.com/main/2013/06/01/envelope-generators/
  • https://github.com/fdeste/ADSR
  • https://github.com/JonArintok/ResonantLowPassFilterExample
  • http://archive.6502.org/datasheets/mos_6581_sid.pdf
  • https://hvsc.c64.org