# Chiptune Module Remixer — Audio → .xm Generator (Experimental)
This repository contains a GitHub Pages website describing an experimental pipeline to convert arbitrary audio into tracker-style modules (XM). It includes a long-form writeup and a lightweight in-browser prototype that demonstrates segmentation, pitch estimation and a prototype "module descriptor" export.
Note: The client-side prototype demonstrates concepts and produces a JSON-style descriptor saved with a `.xm` extension for convenience and experimentation. It is not a full binary XM exporter yet.
## Files in this repo
- `index.html` — The site: background, pipeline, algorithms, and the prototype UI.
- `assets/style.css` — Styles for the site.
- `assets/script.js` — Prototype script that decodes audio, performs simple segmentation and pitch estimation, and builds a prototype module descriptor for download.
- `README.md` — This file.
## How to use (local)
1. Open `index.html` in a modern browser (prefer Chromium or Firefox for best Web Audio support).
2. Select an audio file (wav/mp3/ogg).
3. Press "Analyze" to let the prototype inspect the file.
4. Press "Generate .xm (prototype descriptor)" to download a JSON descriptor file (named `<original>-prototype.xm`).
## Deploy to GitHub Pages
1. Create a repository named `your-username.github.io` (or any repo and enable Pages from the `main` branch).
2. Push these files to `main`.
3. GitHub Pages will serve the site — visit `https://your-username.github.io/`.
## Roadmap / Next steps
- Implement a full XM binary exporter (writing correct XM headers, patterns, instrument and sample blocks).
- Add better pitch and transient detection and polyphonic separation heuristics.
- Provide presets for different chiptune flavors (8-bit, lo-fi, SID-like).
- Allow manual editing of slices and pattern mapping before export.
## Contributing
Contributions welcome. Please open an issue or a PR. If you want to implement the binary XM exporter, let's discuss the expected feature set in an issue first.
## License
MITFolders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|