# 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: ```bash ./compile_with_distrobox.sh ``` 3. Run the synthesizer: ```bash ./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:** ```bash wget https://raw.githubusercontent.com/mackron/miniaudio/master/miniaudio.h ``` 3. **Compile:** ```bash make ```