Skip to content

Latest commit

 

History

History
252 lines (197 loc) · 7.72 KB

File metadata and controls

252 lines (197 loc) · 7.72 KB

New Features and Tools

This document outlines all the new tools, functions, and features added to Bitwave.

🗜️ Compression Support

bitwave.compression

  • Lossless Compression: ZLIB, LZMA, FLAC-style compression
  • Lossy Compression: Opus-style and AAC-style compression
  • Compression Analysis: Calculate compression ratios and estimate sizes

Features:

  • Multiple compression algorithms
  • Configurable compression levels
  • Support for both lossless and lossy compression
  • Compression ratio analysis

📊 Audio Analysis Tools

bitwave.analysis

  • BPM Detection: Automatic tempo detection using autocorrelation
  • Spectral Analysis: Frequency spectrum, magnitude, phase, PSD
  • Audio Fingerprinting: Generate unique fingerprints for audio identification
  • Key Detection: Detect musical key using chroma features
  • Dynamic Range Analysis: RMS, peak levels, dynamic range in dB
  • Silence Detection: Identify silent segments in audio
  • Loudness Analysis: LUFS (Loudness Units) and LRA (Loudness Range)

Features:

  • Real-time analysis capabilities
  • Comprehensive spectral metrics
  • Audio identification support
  • Professional loudness standards

🔄 Format Conversion

bitwave.converter

  • Multi-format Support: Convert to/from WAV, FLAC, OGG, AIFF, AU, RAW
  • Batch Conversion: Process entire directories
  • Compression Options: Choose compression when converting to Bitwave
  • Format Detection: Automatic format detection

Supported Formats:

  • Input: WAV, FLAC, OGG, AIFF, AU, RAW, and all Bitwave variants
  • Output: All above formats plus MP3 (via soundfile)

🎛️ Audio Effects & Processing

bitwave.effects

  • Reverb: Room simulation with configurable size and damping
  • Delay/Echo: Multiple delay lines with feedback
  • Distortion: Overdrive and distortion effects
  • Chorus: Modulation-based chorus effect
  • Filters: Lowpass, highpass, bandpass, bandstop filters
  • Compressor: Dynamic range compression with attack/release
  • Parametric EQ: Multi-band equalization
  • Normalization: Peak normalization
  • Fade In/Out: Smooth fade transitions

Features:

  • Professional-quality effects
  • Real-time processing capable
  • Configurable parameters
  • Chainable effects

📦 Batch Processing

bitwave.batch

  • Directory Processing: Process all files in a directory
  • Parallel Processing: Multi-threaded batch operations
  • Batch Conversion: Convert entire directories
  • Batch Analysis: Analyze multiple files
  • Batch Effects: Apply effects to multiple files
  • Batch Normalization: Normalize entire collections

Features:

  • Thread-safe parallel processing
  • Progress tracking
  • Error handling per file
  • Configurable worker threads

📝 Metadata Management

bitwave.metadata

  • Extended Metadata: Title, artist, album, genre, year, etc.
  • Metadata Search: Search files by metadata criteria
  • CSV Export: Export metadata to CSV format
  • Batch Updates: Update metadata for multiple files
  • Sidecar Files: Store extended metadata in separate files

Metadata Fields:

  • Basic: Title, Artist, Album, Genre, Year
  • Advanced: Composer, Producer, Copyright, Comments
  • Audio: BPM, Key, Tags
  • Custom: User-defined fields

🔍 Quality Analysis

bitwave.quality

  • SNR Calculation: Signal-to-Noise Ratio analysis
  • THD Analysis: Total Harmonic Distortion measurement
  • Frequency Response: Analyze frequency characteristics
  • Clipping Detection: Identify clipped samples
  • Phase Coherence: Measure channel phase alignment
  • Comprehensive Reports: Full quality analysis reports

Metrics:

  • SNR in dB
  • THD percentage
  • Frequency flatness
  • Clipping regions
  • Phase coherence scores

✨ Unique Tools

bitwave.unique

  • Tempo Matching: Time-stretch without pitch change
  • Pitch Shifting: Change pitch without tempo change
  • Audio Morphing: Blend between two audio signals
  • Spatial Audio: Create 3D positioned audio (HRTF simulation)
  • Ambisonic Encoding: First-order B-format Ambisonic encoding
  • Audio Reversal: Reverse playback
  • Echo Chains: Multiple echo effects
  • Granular Synthesis: Granular synthesis effects
  • Beat Slicing: Slice audio based on beat patterns

Features:

  • Advanced audio manipulation
  • Spatial audio support
  • Creative effects
  • Professional tools

🛠️ Utility Functions

bitwave.utils

  • Audio Formatting: Mono/stereo conversion
  • Resampling: Sample rate conversion
  • Audio Mixing: Mix multiple tracks
  • Channel Splitting: Split stereo to mono channels
  • File Information: Get file metadata
  • Duration Formatting: Format time strings
  • Unit Conversion: dB/linear conversions
  • Level Calculation: RMS and peak calculations

🖥️ Enhanced CLI

New Commands

  1. bitwave info - Enhanced file information with compression and spatial data
  2. bitwave convert - Full format conversion with compression options
  3. bitwave analyze - Comprehensive audio analysis
  4. bitwave effects - Apply audio effects via command line
  5. bitwave batch - Batch process multiple files
  6. bitwave metadata - Manage file metadata
  7. bitwave quality - Analyze audio quality metrics
  8. bitwave unique - Use unique audio processing tools

CLI Features

  • JSON output support
  • Multiple analysis options
  • Batch processing
  • Effect chaining
  • Metadata management

📚 Updated Core

bitwave.core

  • Compression Support: Read/write compressed audio data
  • Spatial Data: Full spatial audio data support
  • Enhanced Metadata: Extended metadata support
  • Better Error Handling: Improved error messages

🎯 Usage Examples

Compression

from bitwave import BitwaveFile, CompressionType

bw_file = BitwaveFile("output.bwx")
bw_file.write(audio_data, sample_rate=44100, compression=CompressionType.LZMA)

Analysis

from bitwave import AudioAnalyzer

bpm = AudioAnalyzer.detect_bpm(audio_data, sample_rate=44100)
fingerprint = AudioAnalyzer.audio_fingerprint(audio_data, sample_rate=44100)

Effects

from bitwave import AudioEffects

reverb = AudioEffects.apply_reverb(audio_data, sample_rate=44100, room_size=0.7)
distorted = AudioEffects.apply_distortion(audio_data, drive=0.8)

Unique Tools

from bitwave import UniqueTools

# Tempo matching
matched = UniqueTools.tempo_match(audio_data, source_bpm=120, target_bpm=140, sample_rate=44100)

# Spatial audio
spatial = UniqueTools.create_spatial_position(audio_data, x=0.5, y=0.3, z=0.1, sample_rate=44100)

Batch Processing

from bitwave import BatchProcessor

# Convert entire directory
results = BatchProcessor.batch_convert("input_dir", "output_dir", output_format="bwx")

# Analyze all files
analysis = BatchProcessor.batch_analyze("audio_dir", output_file="analysis.json")

🚀 Performance

  • Parallel Processing: Multi-threaded batch operations
  • Efficient Compression: Fast compression algorithms
  • Optimized Analysis: Efficient FFT and signal processing
  • Memory Efficient: Streaming-capable design

📦 Dependencies

New dependencies added:

  • scipy>=1.7.0 - Scientific computing and signal processing

All existing dependencies maintained for backward compatibility.

🎉 Summary

Bitwave now includes:

  • ✅ Compression support (lossless and lossy)
  • ✅ Comprehensive audio analysis tools
  • ✅ Format conversion capabilities
  • ✅ Professional audio effects
  • ✅ Batch processing utilities
  • ✅ Metadata management
  • ✅ Quality analysis tools
  • ✅ Unique audio processing features
  • ✅ Enhanced CLI with new commands
  • ✅ Utility functions for common tasks

Total new modules: 8 Total new functions: 50+ New CLI commands: 8