All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.3.2 - 2026-04-21
- Fixed
retrieve_enhanced_trackusing wrong response keyrevived_track_tasks_results(snake_case) — now correctly readsrevivedTrackTaskResults(camelCase) from the server response - Rewrote inaccurate docstrings across all retrieval methods to reflect actual server response shapes
- Typed response dataclasses for all retrieval endpoints, replacing raw
dictreturns:EnhancedTrackResult— fields:download_url_preview_revived,download_url_revived,stems,preview_start_timePreviewMixResult— fields:download_url_preview_mixed,stems,mix_output_settings,statusFinalMixResult— fields:download_url_mixed,stems,mix_output_settingsPreviewMasterResult— fields:download_url_mastered_preview,preview_start_timeFinalMasterResult— fields:download_url_masteredAnalysisResult— fields:payload,error,info,completion_time
- All new response types are exported from
roex_python.models
retrieve_enhanced_tracknow returnsEnhancedTrackResultinstead ofdictretrieve_preview_mixnow returnsPreviewMixResultinstead ofDictretrieve_final_mixandretrieve_final_mix_advancednow returnFinalMixResultinstead ofDictretrieve_preview_masternow returnsPreviewMasterResultinstead ofDictretrieve_final_masternow returnsFinalMasterResultinstead ofDictanalyze_mixnow returnsAnalysisResultinstead ofDict
1.3.1 - 2026-04-21
- Aligned
EnhanceMusicalStyleenum with server — replaced incorrect values with 18 correct styles (e.g.ROCK_INDIE,GRITTY_CRUNCHY,BALANCED) - Aligned
AnalysisMusicalStyleenum with server — removedDANCE, added 9 mood-based styles (AIRY_EXPANSIVE,AGGRESSIVE,BRIGHT, etc.) - Renamed
SoundSource.BACKING_VOCALS_GROUPtoBACKING_VOX_GROUPto match server - Added missing
SoundSource.BRASS_GROUPenum member - Added missing
LoudnessPreference.NO_CHANGEenum member - Changed
MixEnhanceRequest.loudness_preferencedefault fromSTREAMING_LOUDNESStoNO_CHANGEto match server default - Removed
MixEnhanceRequest.fix_drc_issuesfield (not supported by server) webhookURLis now only included in payloads when explicitly provided, preventing server errors from empty strings- Added
tenacitytoinstall_requires/dependencies— was imported but missing from package metadata, causingModuleNotFoundErrorat import time
MixEnhanceRequest.get_processed_stemsfield for requesting separated stems from enhancementMixEnhanceRequest.apply_drum_enhancementandapply_vocal_enhancementfields (required by server)
- Updated examples, docstrings, and README to reflect all model and enum changes
1.3.0 - 2025-10-30
- Advanced Audio Effects Processing: New comprehensive audio effects system for final mix retrieval
- 6-Band Parametric EQ: Full parametric EQ with per-band gain (-20 to +20 dB), Q factor (0.1 to 10.0), and centre frequency (20 Hz to 20 kHz) control
- Dynamic Range Compression: Professional compression with threshold, ratio, attack, and release controls
- Stereo Panning: Precise stereo positioning with -60? to +60? range
- Effect Presets: Built-in professional presets for common use cases:
- EQ Presets:
preset_bass_boost(),preset_vocal_clarity(),preset_kick_punch(),preset_snare_crack(),preset_high_pass(),preset_brightness() - Compression Presets:
preset_vocal(),preset_bass(),preset_drum_bus(),preset_gentle(),preset_aggressive() - Panning Presets:
center(),hard_left(),hard_right(),slight_left(),slight_right()
- EQ Presets:
- New Models:
EQBandSettings: Individual EQ band configurationEQSettings: 6-band parametric EQ containerCompressionSettings: Dynamic range compression configurationPanningSettings: Stereo panning controlTrackEffectsData: Advanced track data with all effectsFinalMixRequestAdvanced: Enhanced final mix request with audio effects
- New Controller Method:
retrieve_final_mix_advanced()for applying advanced audio effects to final mixes - Track Count Validation: Client-side validation enforcing 2-32 track limit for mix preview requests (API requirement)
- Comprehensive Example:
examples/advanced_mix_example.pydemonstrating full advanced audio effects workflow with preset showcase mode (--show-examples)
- Updated
RoExClientdocstring to document advanced mixing features - Enhanced error handling in mix controller with proper
HTTPErrorattribute checking - Improved test coverage to 95% with 119 unit tests and 13 integration tests
- Fixed test assertion in
test_mix_controller.pyto match actual error message format - Corrected webhook URL documentation in examples to clarify test URL usage
- Fixed pre-existing test failures related to error message matching
- Added comprehensive docstrings for all new audio effects classes and methods
- Updated
examples/README.mdwith advanced audio effects usage - Added parameter range documentation and validation rules
- Included workflow examples for preset-based and custom effects configuration
1.2.1 - 2024-XX-XX
- Various bug fixes and improvements
- Documentation enhancements
1.2.0 - 2024-XX-XX
- Sphinx documentation
- Comprehensive test suite with pytest
- Retry logic for API requests
- Enhanced documentation throughout codebase
- Improved error handling
1.1.1 - 2024-XX-XX
- Minor bug fixes
1.1.0 - 2024-XX-XX
- Additional features and improvements
1.0.0 - 2024-XX-XX
- Initial release
- Core RoEx Tonn API client functionality
- Multitrack mixing support
- Audio mastering capabilities
- Mix analysis features
- Mix enhancement tools
- Audio cleanup functionality
- Asynchronous task polling
- Secure file upload/download