A browser-based tool to convert multisamples to OP-XY format with automatic silence trimming.
π Live Demo: https://cfurrow7.github.io/opxy-converter
Built to convert patches created with Tyler Neely's TV-7 sampler - a browser-based sampling tool that outputs .elmulti and .wav files. This converter breaks them into individual sample hits for the OP-XY.
- 100% Client-Side Processing - All conversion happens in your browser, no server needed, no uploads
- No Installation Required - Just open the HTML file in any modern browser
- Two Input Modes:
- Elektron Mode: Convert
.elmulti+.wavfiles from Elektron devices - Folder Mode: Process individual WAV files with note names in filenames
- Elektron Mode: Convert
- Automatic Silence Trimming - Removes silence from beginning and end (-60dB threshold)
- Format Support:
- PCM audio (16-bit, 24-bit, 32-bit)
- IEEE Float audio (32-bit float)
- Mono and stereo samples
- Download as ZIP - Get a ready-to-use
.presetfolder - Privacy First - No data leaves your computer
Visit the live demo URL above and start converting immediately.
- Download index.html, styles.css, and converter.js
- Double-click
index.htmlto open in your browser - Start converting!
- Select "Elektron Mode"
- Upload your
.elmultifile - Upload the corresponding
.wavfile - Click "Convert to OP-XY Format"
- Download the ZIP file
- Extract the ZIP to get the
.presetfolder - Copy the
.presetfolder to thepresets/directory on your OP-XY- Connect OP-XY via USB
- Enter disk mode: Press com button and select mtp
- Navigate to the
presets/folder - You can create subfolders for organization (e.g.,
presets/elektron/) - Paste your
.presetfolder - Safely eject the OP-XY disk
- Select "Folder Mode"
- Enter a preset name
- Select multiple WAV files with note names in filenames
- Click "Convert to OP-XY Format"
- Download the ZIP file
- Extract the ZIP to get the
.presetfolder - Copy the
.presetfolder to thepresets/directory on your OP-XY- Connect OP-XY via USB
- Enter disk mode: Press com button and select mtp
- Navigate to the
presets/folder - You can create subfolders for organization (e.g.,
presets/elektron/) - Paste your
.presetfolder - Safely eject the OP-XY disk
WAV files should include note information in their filenames:
Supported formats:
Piano C3.wav
C3.wav
piano_C#3.wav
Bass_Db3.wav
SampleName D-1.wav (negative octaves supported)
Strings_F#4.wav
The converter will:
- Scan all WAV files
- Extract note names from filenames
- Trim silence from each sample
- Create proper MIDI key mappings
- Generate OP-XY compatible preset
After conversion, install your preset on the OP-XY:
- Connect OP-XY via USB cable to your computer
- Enter Disk Mode on the OP-XY:
- Press the com button and select mtp
- The OP-XY will mount as a disk drive
- Navigate to the
presets/folder on the OP-XY disk - Organize (optional): Create subfolders like
presets/elektron/orpresets/custom/ - Copy the entire
.presetfolder into your chosen location - Eject the OP-XY disk safely
- Browse presets on your OP-XY - your new preset will appear!
- The
.presetfolder contains both thepatch.jsonand all WAV files - You can create subfolders inside
presets/to organize your sounds - Folder/file names may only contain:
a-z A-Z 0-9 space # - ( ) - OP-XY supports both
.wavand.aiffiles (mono and stereo)
- Silence Detection: -60dB threshold
- Frame-by-frame Analysis: Checks all channels
- Format Support: 16/24/32-bit PCM and 32-bit IEEE Float
- Output Format: Converts to 16-bit PCM for optimal OP-XY performance
- File Size Reduction: 50-75% smaller than original (32-bit β 16-bit)
- Automatically calculates key ranges between samples
- Each sample's range is split between neighboring notes
- First sample covers MIDI 0 to its lower bound
- Last sample covers its upper bound to MIDI 127
- Creates proper
patch.jsonwith all required fields - Platform: OP-XY
- Type: multisampler
- Version: 4
- Includes engine, envelope, FX, and LFO settings
- Configures loop points (loops before end to avoid clicks)
- Sets velocity sensitivity and playback mode
- Chrome: 51+ (Recommended)
- Firefox: 54+
- Safari: 10+
- Edge: 15+
- JavaScript enabled
- Modern File API support
All processing happens 100% locally in your browser:
- No files are uploaded to any server
- No data is collected or tracked
- No internet connection required after initial page load
- Your samples stay private on your device
- Fork this repository
- Go to Settings β Pages
- Set Source to "main branch"
- Your tool will be live at
https://yourusername.github.io/repo-name
- Upload
index.html,styles.css,converter.jsto any web server - No server-side processing required - just static file hosting
- Works with any hosting: GitHub Pages, Netlify, Vercel, etc.
Simply open index.html in your browser - no server needed!
Conversion fails:
- Ensure WAV files are valid (not corrupted)
- Check that .elmulti file matches the WAV file
- Try using Chrome if having issues in other browsers
"Could not extract note from filename":
- Filenames must include note names like C3, D#4, Gb2
- Use one of the supported formats listed above
- Remove special characters except # and b
"No valid samples found":
- Ensure WAV files have note names in filenames
- Check that files are actual WAV audio files
- Verify files aren't empty or corrupted
ZIP file is empty:
- This was an early bug, now fixed
- Make sure you're using the latest version
- Clear browser cache and try again
Audio sounds distorted:
- Early versions had issues with IEEE Float format
- Current version properly handles all audio formats
- Re-download the latest version if experiencing issues
web/
βββ index.html # Main interface
βββ styles.css # Beautiful gradient UI
βββ converter.js # All conversion logic
βββ README.md # This file
βββ test.html # Test page
parseElmulti()- Parse Elektron TOML formatreadWavFile()- Read and parse WAV headerstrimSilence()- Detect and remove silencecreateWavFile()- Generate output WAV filescreatePreset()- Build OP-XY patch.jsondownloadPreset()- Package and download ZIP
- JSZip (CDN): For creating ZIP files
- No other dependencies!
Contributions welcome! This tool is free and open source.
Ideas for improvements:
- Drag & drop file upload
- Batch conversion support
- Custom silence threshold settings
- Sample preview player
- Advanced key mapping options
Created for the OP-XY community. Based on the original Python CLI tool.
Related Tools:
- Python CLI Version - Command-line converter with GUI
Free to use and modify. Created for the OP-XY community.
Made with β€οΈ for OP-XY users
Having issues? Open an issue on GitHub.