A web-based editor for creating, editing, managing, and playing Polyend Tracker Instrument (.pti) files.
Powered by tracker-lib (along with other frameworks).
Live Demo: https://polyend.sandroid.xyz/instrumented/
For a quickish overview, check out this youtube video:
-
Sampler & Sample Editor:
- Sample audio directly from within the editor
- Edit the recordings before committing as an instrument
- Offers functions like Cut, Fade In, Fade Out, Normalize, Compress, and Equalize
-
Instrument Creation Helpers: create sliced instruments with ease.
-
Instrument Parameters: Manage filters (cutoff, resonance, type), tuning, envelopes, LFOs, volume, panning, overdrive, bit-depth reduction, and FX sends.
-
Waveform Visualizer: Interact with the waveform using custom zooming, scrolling, and marker placements.
-
Play your instruments: Oh you thought this was just a simple sample playback? Oh no, my friend... this player uses the Web Audio API to play your instruments as they would sound.. well mostly.
-
Playback Modes: Support for OneShot, Forward/Backward/Pingpong loops as well as advanced Wavetable and Granular engines.
-
Play via MIDI or Keyboard: hook up your MIDI Keyboard or play the sounds directly on the keyboard.
tracker-lib(handles read/write of.ptifiles)- Framework: Vue 3 (Composition API,
<script setup>) - Audio Framework: Built with Elementary
- Waveform Renderer: WaveSurfer.js v7 + Regions Plugin
-
Install all dependencies:
npm install
-
Run the development server locally:
npm run dev
-
Open your browser and navigate to
http://localhost:5173(or the port specified by Vite).
npm run dev: Starts the local development server.npm run build: Compiles and bundles the application for production.npm run test: Runs formatting checks, ESLint, and type checks.npm run lint: Runs ESLint on source files.npm run typecheck: Validates TypeScript without compiling.
- Unfinished parts of the Audio-Engine
- The granular engine is an approximation of the actual engine on the device and may not behave as the hardware does
- The wavetable engine could require some love as well
- The reverb is an approximation and requires some more finetuning
- The delay is an approximation and requires some more finetuning
- Do another sweep through the entire audio engine to sound closer to the hardware
- Audio volumes are still a bit all over the place
- Auto-Sampling
- Some work had started on enabling auto-samping but never concluded
I doubt i'll have time to meaningfully continue development on this going forward. It was meant as an example of what can be done with the tracker-lib. If anyone wants to continue development, I will happily accept PRs or add you as a contributor to this repository.
tracker-lib is licensed under the MIT License.
However, this example repository is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) license.
- Attribution: You are free to use, copy, modify, and build upon this code, but you must give appropriate credit to the original creator.
- Non-Commercial: You cannot use this example repository, or projects derived from it, to generate revenue, make money, or use it for commercial purposes.
What does this means in plain english? Feel free to use this for anything you want but keep it open source so the community can benefit from it. 😊
For full details, please see the LICENSE file included in this repository. If your business needs to use this architecture or boilerplate commercially, please contact me to discuss a commercial licensing agreement.
