NoiceSynth/simulator/SIMULATOR.md

1.4 KiB

NoiceSynth Linux Emulator

This folder contains a Linux-based prototype for the NoiceSynth engine. It allows you to develop and visualize the DSP code on a desktop computer before deploying it to the RP2040 hardware.

Architecture

  • Engine (synth_engine.cpp): The exact same C++ code used on the microcontroller. It uses fixed-point math (or integer-based phase accumulation) to generate audio.
  • Host (main.cpp): A Linux wrapper that uses:
    • Miniaudio: For cross-platform audio output.
    • SDL2: For real-time oscilloscope visualization.

Quick Start (Distrobox)

If you don't want to install dependencies manually, use the included script. It creates a lightweight container, installs the tools, and compiles the project.

  1. Ensure you have distrobox and a container engine (Docker or Podman) installed.
  2. Run the build script:
    ./compile_with_distrobox.sh
    
  3. Run the synthesizer:
    ./noicesynth_linux
    

Manual Build

If you prefer to build directly on your host machine:

  1. Install Dependencies:

    • Debian/Ubuntu: sudo apt install build-essential libsdl2-dev wget
    • Fedora: sudo dnf install gcc-c++ SDL2-devel wget
    • Arch: sudo pacman -S base-devel sdl2 wget
  2. Download Miniaudio:

    wget https://raw.githubusercontent.com/mackron/miniaudio/master/miniaudio.h
    
  3. Compile:

    make