Commit History
-
refactor: Migrate MIDI correction tools to use PrettyMIDI library Running
Reworks the entire MIDI correction suite to operate on `PrettyMIDI` objects instead of the internal `escore` format.e34b89d
-
feat: Implement advanced MIDI experimental correction tools
Adds a new suite of post-processing tools to allow for advanced refinement of transcribed MIDI files. New features include: - Spurious (noise) note filtering based on duration and velocity - Rhythm Stabilization with silence-based segmentation - Rhythmic Quantization for both straight and swing/triplet feels - Velocity processing with Smoothing and Compression modes820e77f -
feat(separation): Integrate BS-RoFormer & Mel-RoFormer models
This commit introduces support for two additional audio separation models, BS-RoFormer and Mel-RoFormer, providing users with more specialized options for vocal and instrumental separation.d050f96
-
refine(synth): Make Bass Boost frequency-dependent to prevent muddiness
Upgrades the 8-bit synthesizer's Bass Boost feature to be "intelligent." The effect is now dynamically scaled based on the note's pitch, so it is strongest on mid/high-frequency notes and automatically fades out on low-frequency notes. This prevents the muddiness and clipping that previously occurred when boosting an already deep bassline. A new UI slider allows users to control the cutoff frequency for this behavior.7a65465 -
feat(synth): Add advanced frequency management for 8-bit synth MIDI and effects
This commit introduces a suite of new tools specifically for the **8-bit synthesizer**, providing fine-grained control over the frequency spectrum to address issues with both excessive harshness in the high-end and muddiness in the low-end. These features empower users to create cleaner, more balanced, and professional-sounding mixes directly within the synthesizer. **1. MIDI Pre-processing (For 8-bit Synth): Low-Pitch Management** Complements the existing high-pitch taming by adding a new "Low-Pitch Attenuation" rule. Users can now define a low pitch threshold (e.g., C2) and a velocity scale. The pre-processor will automatically reduce the velocity of any notes falling below this threshold before they are sent to the **8-bit synthesizer**. This is a preventative measure to control excessive sub-bass energy, reduce muddiness, and prevent clipping. **2. Delay/Echo Effect (For 8-bit Synth): Full Frequency Spectrum Control** The Delay/Echo effect has been upgraded with a comprehensive …0676790
-
feat(synth): Upgrade Delay/Echo effect to be tempo-synced
This commit refactors the MIDI Delay/Echo effect, transforming it from a static, time-based processor into a dynamic, musical tool that synchronizes with the song's rhythm.8adc333 -
refine(synth): Improve arpeggio velocity control with exponential scaling
Changes the `Arpeggio Velocity Scale` from a linear to an exponential curve (`scale ** 2.5`). This provides much finer control at lower volume levels, making it easier for users to mix the arpeggiated layer subtly into the background. The new scaling better reflects the human perception of loudness.22c681c -
fix(metadata): Correctly log auto-analyzed transcription parameters
Resolves an issue where parameters generated by the "Auto-Analyze Audio" mode were not being saved in the output file's metadata.2a4c238 -
feat(transcription): Implement adaptive parameters for basic-pitch
Adds a new "Auto-Analyze Audio" mode for the "General Purpose" transcription. When this mode is enabled, the system analyzes the input audio's tempo, spectral content, and dynamics to automatically determine optimal parameters for `basic-pitch`.5700ed3
-
feat(synth): Add creative MIDI effects engine with Delay and targeted Arpeggiator
This commit introduces a new "Creative MIDI Effects" module and refactors the processing pipeline to support advanced, non-destructive MIDI transformations. This marks a shift from simple synthesis to a more powerful sound design workflow. Delay/Echo Effect: Adds configurable, decaying echoes to notes (e.g., melody only) to create space and depth. Echoes are generated on a separate track. Target-Aware Arpeggiator: The arpeggiator can now target the "Accompaniment Only" (classic chiptune style) or "Melody Only" (modern synth-lead style), giving users far greater creative control over its musical role.487757b
-
feat(output): Add parameter metadata to final audio files
Saves the complete set of `AppParameters` used for each render into the metadata of the output FLAC file. This makes each render self-documenting and allows users to easily track the settings used for any given result. The parameters are stored as a JSON string in the file's `comment` tag.1db4ef0 -
feat(synth): Add rhythmic arpeggiator effect
Introduces a new arpeggiator to transform chords into lively, rhythmic patterns, a key technique for reducing stiffness in 8-bit music. The feature operates as a parallel audio layer, mixing the arpeggiated sound with the original synthesis. Capabilities: - Automatically syncs to the MIDI's tempo with selectable rhythmic patterns (e.g., "16ths," "Upbeat"). - Intelligently protects the lead melody, only arpeggiating the harmony parts. - "Humanizes" the output with micro-randomization of timing and velocity. - Includes full user control over pattern direction, octave range, velocity, and stereo panning.69f25b5 -
feat(synth): Add intelligent MIDI pre-processing to reduce harshness
This commit introduces a new, optional MIDI pre-processing stage for the 8-bit synthesizer. Its purpose is to proactively "tame" MIDI characteristics that are known to cause sonic harshness and aliasing before the audio synthesis process begins. The new pre-processor implements two main rules: 1. **High-Pitch Attenuation:** Automatically reduces the velocity of notes that exceed a user-defined pitch threshold (e.g., C6). This mitigates the severe aliasing that occurs when rich-harmonic waveforms (like square and saw) are synthesized at very high frequencies. 2. **Chord Compression:** Detects loud, dense chords based on user-defined thresholds for note count and average velocity. Reduces the velocity of all notes within such chords. This prevents the excessive harmonic buildup that leads to a harsh, saturated, and often clipped sound when multiple loud notes are played simultaneously.d88d1e3
-
feat(synth): Enhance 8-bit synthesizer with anti-aliasing and progress tracking
This commit introduces a major overhaul of the 8-bit synthesizer to significantly improve its audio quality and provide better user feedback during rendering. The primary motivations were to reduce sonic harshness caused by digital aliasing and to offer real-time progress updates for a better user experience, especially on long tracks. 1. Advanced Anti-Aliasing and Audio Quality Engine: Implemented a suite of optional, high-quality DSP features to produce a cleaner, less harsh sound. These are controlled by a new "Audio Quality & Anti-Aliasing" section in the UI. **Additive Synthesis:** Added a high-quality (but CPU-intensive) band-limited waveform generator to eliminate aliasing at its source. **Waveform Edge Smoothing:** A low-cost alternative that applies a configurable sub-millisecond smoothing filter to the edges of standard waveforms. **Dynamic Harmonic Filtering:** A new frequency-dependent lowpass filter is applied to each note, intelligently removing excessive high-frequency…8229bc2 -
feat(ui): Implement interactive preview for sound sources
This commit introduces a live audio preview system, allowing users to instantly audition their selected SoundFont or 8-bit Synthesizer settings without running a full render. This significantly improves the sound design workflow.44e9039 -
feat(separation): Implement advanced multi-stem separation and processing
This commit significantly enhances the audio separation capabilities by exposing the full 4-stem power of the Demucs model (vocals, drums, bass, other), providing users with granular control over the transcription and audio merging pipeline. Users can now: - Choose between a simple 'Accompaniment' mode or an advanced mode to control each instrumental stem. - Select multiple stems to be transcribed and automatically merged into a single MIDI file. - Re-merge any of the original audio stems into the final rendered track. - The UI dynamically adapts to the selected mode for a cleaner user experience.2dbdd2e
-
feat(synth): Implement Echo Sustain for plucky envelopes
Adds an "Echo Sustain" effect to the 8-bit synthesizer. This feature fills the silent tail of long notes with decaying pulses when using a plucky envelope, preventing them from sounding choppy or empty.0f9efaa
-
refactor(batch): Isolate params state for each file processing
b22ce2a -
feat(synth): Add adaptive decay and hybrid note smoothing
This commit introduces two major enhancements to the 8-bit synthesizer to resolve significant volume loss issues on short, staccato notes. The original implementation used fixed-time parameters for note decay and smoothing. This caused the perceived volume of fast notes to be drastically lower than that of sustained notes, as their envelopes were prematurely cut off before reaching their peak. 1. **Adaptive Decay:** - A new, default-on feature that ensures a consistent initial decay rate for all notes, regardless of their duration. - It works by applying the initial segment of a pre-calculated "ideal" decay curve to each note, rather than scaling the entire curve down. - This preserves the attack and power of staccato passages, creating a much more balanced and musical output. - A UI checkbox has been added to control this feature. 2. **Hybrid Note Smoothing:** - The note smoothing logic has been refactored from a fixed-time fade to a hybrid proportional/capped…2a00d06 -
Fix: Convert numpy types to prevent Gradio slider error
A `TypeError` occurred when running the synthesizer a second time after using the "Auto-Recommend (Analyze MIDI)" feature.4178195
-
This commit delivers three key improvements focused on user experience and bug fixing.
1. **Add Rich Info Text to 8-bit Synthesizer UI** 2. **Detect and Log Stereo MIDI Information** 3. **Fix Stereo Loss in "Convert to Solo Piano":** - Resolved a critical bug where enabling "Convert to Solo Piano" would collapse stereo MIDI files into mono.5cb75be -
feat: Add detailed progress bars for single and batch jobs
7339550
-
feat: Implement batch processing workflow with shared global settings
This commit introduces a major new feature: a batch processing workflow. Users can now process multiple audio or MIDI files in a single run using a consistent set of configurations.d80a2c7
-
fix(rendering): prevent index error on empty midi processing
The `Render_MIDI` function would crash with an `IndexError` if it received a MIDI with no notes, typically from a failed transcription.b101711 -
feat: Add dual-stem MIDI transcription and `basic-pitch` profiles
**1. Dual-Stem MIDI Transcription:** - When using vocal separation, a new option allows for transcribing **both** the vocal and accompaniment stems independently. - The two resulting MIDI files are then automatically merged into a single, more complete MIDI file for rendering. This improves transcription quality on complex tracks. **2. `basic-pitch` Profile Presets:** - A "Transcription Profile Preset" dropdown has been added to the UI for the general-purpose transcription method. - Includes a library of presets optimized for different instruments (Vocals, Piano, Drums) and genres (Rock, Jazz, Classical). - Selecting a profile automatically configures all `basic-pitch` parameters for better results on specific audio types.2923df9
-
Add experimental vocal separation and selective transcription features
- Added **Separate Vocals** option (experimental): Splits input audio into vocals and music stems before processing. - Added **Transcription Target** setting: Allows choosing which stem (vocals or music) to transcribe to MIDI. - Added option to **Re-merge Other Part with Rendered Audio**: After rendering, merges the non-transcribed stem (e.g., original vocals) back with the new music.22dd15a -
feat(synth): Add auto-recommendation for 8-bit synthesizer parameters
This commit introduces a new "Auto-Recommend" feature for the 8-bit synthesizer, designed to help users quickly generate a suitable sound profile for their MIDI files without manual tweaking. - A new `"Auto-Recommend (Analyze MIDI)"` option has been added to the "Style Preset" dropdown. - When selected, the main processing function (`process_and_render_file`) now triggers the analysis and recommendation engine. - The recommended parameters are then used for rendering and are also reflected back onto the UI sliders, allowing users to see and further adjust the generated settings.58195d3
-
feat(synth): Enhance 8-bit synthesizer and expand presets
This major update significantly enhances the capabilities of the 8-bit style synthesizer and expands the preset library with a wide range of iconic and experimental sounds. **Synthesizer Engine Enhancements:** The `synthesize_8bit_style` function has been upgraded with four new parameters to allow for more complex and authentic sound design, moving beyond basic subtractive synthesis: - **Noise Channel (`noise_level`):** Adds a layer of white noise, essential for creating percussive sounds, atmospheric textures, and adding grit. - **Waveform Distortion (`distortion_level`):** Introduces a wave-shaping algorithm to simulate the hardware clipping and saturation found in vintage consoles, enabling harsher and more aggressive tones. - **Frequency Modulation (`fm_modulation_depth`, `fm_modulation_rate`):** Implements a basic FM synthesis capability, allowing for the creation of complex, metallic, and bell-like timbres reminiscent of sound chips like the Yamaha YM2612. ___ The `S8BIT_PRES…e835c5f -
feat: Implement stereo audio to MIDI transcription
This commit introduces a new stereo processing workflow for audio-to-MIDI transcription, allowing the preservation of spatial information from stereo recordings. The previous implementation was limited to mono processing. Scale MIDI velocities by 0.8 in Stereo Transcription to avoid loudness/clipping after merge Applied `scale_instrument_velocity(scale=0.8)` during Stereo Transcription to prevent excessive loudness caused by summing left and right channel MIDI tracks. This helps maintain a more natural dynamic range, avoiding clipping and ensuring more consistent perceived volume after rendering to WAV/FLAC.b114cd4
-
feat(synth): Add adjustable bass boost to 8-bit synthesizer
This commit introduces a bass enhancement feature to the 8-bit synthesizer, allowing users to add more weight and depth to the sound.80ab93c
-
Integrated and Enhanced: Audio-to-MIDI and Advanced MIDI Renderer
- **Integration of asigalov61's Projects:** Merges the `ByteDance-Solo-Piano-Audio-to-MIDI-Transcription` and `Advanced-MIDI-Renderer` projects into a single, cohesive application. This forms the foundational workflow for MIDI processing and rendering. - **Addition of General-Purpose Transcription:** Implements Spotify's `basic-pitch` library as a new transcription option. This allows for the effective transcription of non-piano music, including songs with vocals and multiple instruments. - **Dynamic UI for Method Selection:** A new UI control allows users to choose between the "General Purpose" (basic-pitch) and "Piano-Specific" (ByteDance) transcription models, with the UI dynamically showing relevant settings for the selected method. - **Refactor: Extract shared MIDI module to reduce duplication:** The `midi_to_colab_audio.py` and `TMIDIX.py` scripts both contained a large, duplicated block of code for MIDI processing. - **Improve FluidSynth rendering speed in midi_to_colab_audi…adcbc9f
-
Update app.py
Verified signatured371a2d -
Update README.md
Verified signature540053a -
Upload 2 files
Verified signature36ec2c2
-
Upload TMIDIX.py
Verified signatureb62d385
-
Upload TMIDIX.py
Verified signature7c8b992
-
Update app.py
Verified signaturef03f117 -
Update app.py
Verified signatureac7623b -
Update app.py
Verified signaturec0f9cf2 -
Upload TMIDIX.py
Verified signature6a8ce36 -
Update README.md
Verified signature57e1c25
-
Upload TMIDIX.py
Verified signature2128334 -
Update README.md
Verified signature2bd4166
-
Update README.md
Verified signatured9f951d
-
Update app.py
Verified signature2529f3d -
Update app.py
Verified signature68f1714 -
Update app.py
Verified signaturef23e6bc -
Upload TMIDIX.py
Verified signatured18afce -
Upload TMIDIX.py
Verified signaturea317d05
-
Update app.py
Verified signature9705956