About project - shepherdvovkes/idmlatentspace GitHub Wiki
- IDM Latent Space - MediaWiki Documentation
- Main Page
The IDM Latent Space project explores the relationship between synthesizer preset parameters and musical characteristics through dimensionality reduction and machine learning techniques. The project specifically focuses on Access Virus and Osiris synthesizer presets, creating reduced-dimensional representations suitable for AI/ML applications.
- SysEx Analysis: Parse and analyze SysEx preset files
- Dimensionality Reduction: Convert 384-parameter presets into 32D, 64D, and 128D spaces
- Genre Classification: Analyze preset suitability for different electronic music genres
- MIDI CC Mapping: Maintain CC controller relationships for DAW integration
- ML-Ready Outputs: Generate numpy arrays and structured data for machine learning
- updated_preset_analyzer.py - Main SysEx Toolkit-based analyzer
- ModernPresetAnalyzer class - Core analysis functionality
- OsirisPresetAnalyzer class - Specialized Osiris analysis
- osiris_preset.syx - User/target preset for analysis
- osiris_all_presets.syx - Factory presets database
- Generated outputs - Analysis results in multiple formats
- SysEx Toolkit - Primary library for SysEx parsing
- NumPy - Numerical computing and array operations
- JSON - Data serialization and storage
The analysis pipeline follows these stages:
- SysEx Parsing - Decode binary preset data using SysEx Toolkit
- Parameter Extraction - Convert raw bytes to normalized parameter values
- Baseline Comparison - Compare user preset against factory baseline
- Importance Calculation - Weight parameters by musical significance
- Space Reduction - Create dimensionally-reduced feature vectors
- Output Generation - Save results in multiple formats
Parameters are weighted based on their musical significance:
Category | Base Weight | Special Conditions |
---|---|---|
Filter | +2.0 | Cutoff: +3.0, Resonance: +2.5 |
LFO | +1.5 | Rate parameters prioritized |
Oscillator | +1.2 | Wave and semitone parameters |
Effects | +1.0 | Distortion: +2.0, Spatial: +1.5 |
Envelope | +0.8 | Attack and decay prioritized |
The system creates three reduced spaces:
- 32D Space - Minimal representation for fast processing
- 64D Space - Balanced detail/performance ratio
- 128D Space - High-detail representation for complex analysis
- Initialize analyzer
- Analyze presets
- Save results
Analysis generates several output files:
File | Format | Purpose |
---|---|---|
*_complete.json | JSON | Full analysis with metadata |
*_32d.npy | NumPy | 32-dimensional feature vector |
*_64d.npy | NumPy | 64-dimensional feature vector |
*_128d.npy | NumPy | 128-dimensional feature vector |
*_report.txt | Text | Human-readable analysis report |
*_data.csv | CSV | Tabular data for spreadsheet analysis |
- Load feature vector
- Load full analysis
- Access metadata
The system evaluates preset suitability for electronic music genres:
- Dubstep Ready: Filter parameters ≥ 3, LFO parameters ≥ 2
- EDM Ready: Filter parameters ≥ 2, Effects parameters ≥ 1
- Filter Dominance: Ratio of filter parameters in top selections
Preserved CC controller mappings enable DAW automation:
<syntaxhighlight lang="python">- Access CC mappings
- Example: {'CC74': 'filter_cutoff', 'CC71': 'filter_resonance'}
- Use for MIDI automation in DAW
The reduced-dimensional vectors are suitable for:
- Variational Autoencoders (VAE) - Smooth latent space interpolation
- Generative Adversarial Networks (GAN) - Preset generation
- Diffusion Models - High-quality preset synthesis
Feature vectors enable classification of:
- Genre Compatibility - Electronic music subgenre matching
- Timbral Characteristics - Bright/dark, warm/cold, aggressive/smooth
- Musical Context - Lead, bass, pad, percussion roles
Dimensional reduction enables:
- Preset Families - Group similar-sounding presets
- Parameter Relationships - Identify correlated controls
- Evolution Tracking - Analyze preset development over time
<syntaxhighlight lang="bash"> pip install sysex-toolkit numpy </syntaxhighlight>
<syntaxhighlight lang="bash"> git clone https://github.com/shepherdvovkes/idmlatentspace.git cd idmlatentspace python updated_preset_analyzer.py </syntaxhighlight>
- analyze_osiris_presets(user_file, factory_file, baseline_name)
- Main analysis function
-
Parameters:
- user_file (str): Path to user preset SysEx file
- factory_file (str): Path to factory presets SysEx file
- baseline_name (str): Name of baseline preset to compare against
- Returns: Analysis results dictionary
- compare_presets(user_preset, baseline_preset, threshold)
- Compare two presets and identify differences
-
Parameters:
- user_preset (dict): User preset data
- baseline_preset (dict): Baseline preset data
- threshold (float): Minimum difference threshold (default: 0.01)
- Returns: List of significant differences
- create_reduced_spaces(significant_changes, target_dimensions)
- Generate dimensionally-reduced feature spaces
-
Parameters:
- significant_changes (list): Parameter differences
- target_dimensions (list): Target dimensions [32,]
- Returns: Dictionary of reduced spaces
- save_osiris_analysis(results, output_prefix)
- Save analysis results in multiple formats
-
Parameters:
- results (dict): Analysis results
- output_prefix (str): Output filename prefix
- Returns: Dictionary of created file paths
- Fork the repository
- Create feature branch
- Implement changes with tests
- Submit pull request
- Python 3.7+ compatibility
- PEP 8 style guidelines
- Type hints for function signatures
- Docstrings for all public methods
- Unit tests for core functionality
- Latent Space Models for Musical Audio - Analysis of dimensional reduction in audio
- Synthesizer Preset Generation using VAEs - Generative modeling approaches
- MIDI Controller Mapping for Electronic Music - CC parameter relationships
<syntaxhighlight lang="bibtex"> @software{idmlatentspace2025, title={IDM Latent Space: Synthesizer Preset Analysis for Machine Learning}, author={Shepherd Vovkes}, year={2025}, url={https://github.com/shepherdvovkes/idmlatentspace}, note={Electronic music analysis toolkit} } </syntaxhighlight>
This project is released under the MIT License. See LICENSE file for details.
- GitHub Repository
- Access Music - Virus synthesizer manufacturer
- Intelligent Dance Music - Genre background