Essentia 2.1 beta3
Pre-release
Pre-release
This pre-release includes the following changes:
- Build script updates:
- Cross-compilation for iOS and Android
- Support for javascript using Emscripten
- Updated dependencies in static extractors (LibAv 11.2, Taglib 1.10)
- Fixed cross-compilation for Windows
- Homebrew formula for easy installation on OSX
- Updated Debian packaging
- All dependencies are now optional. Algorithms and examples relying on missing dependencies will be ignored.
- New flags for building lightweight versions of Essentia
--lightweight=LIBS
to specify dependencies to be included--include-algos=ALGOS
and--ignore-algos=ALGOS
to specify algorithms to be included
- New algorithms:
- SuperFlux algorithm for real-time onset detection (SuperFluxExtractor, SuperFluxNovelty)
- Algorithms for sound modeling
- Overlap-add (OverlapAdd)
- Sine model analysis/synthesis (SineModelAnal, SineModelSynth)
- Sine subtraction (SineSubtraction)
- Sinusoidal plus Residual model analysis/synthesis (SprModelAnal, SprModelSynth)
- Melody Analysis (monophonic/predominant)
- HarmonicMask
- Signal resampling (ResampleFFT)
- New pitch-related algorithms
- Multi-pitch estimation in polyphonic music (MultiPitchKlapuri, MultiPitchMelodia)
- Adaptation of Melodia algorithm for monophonic signals (PitchMelodia)
- Yin pitch detection algorithm (PitchYin)
- Pitch contour segmentation into notes (PitchContourSegmentation)
- Vibrato detection (Vibrato)
- BPM estimation on loops (PercivalEnhanceHarmonics, PercivalEvaluatePulseTrains, LoopBpmConfidence, LoopBpmEstimator, PercivalBpmEstimator)
- STFT on complex inputs ( FFTC)
- ConstantQ and Chromagram (still in experimental stage)
- TriangularBands
- Lightweight spectral centroid implementation (SpectralCentroidTime)
- Chords detection on beat segments (ChordsDetectionBeats)
- VectorRealAccumulator
- Improved algorithms:
- LoudnessEBUR128 algorithms are now finalized (includes bug-fixes)
- FFT now supports KissFFT and Accelerate FFT libraries as an alternative to FFTW
- New profiles for Key estimation (including profiles for electronic music)
- New 'generalized' parameter in Autocorrelation algorithm
- New 'scale' and 'shift' parameters in UnaryOperator algorithm
- New 'normalized' parameter in Windowing algorithm
- New 'inputSize' parameter in GFCC algorithm
- Added support for 8kHz for EqualLoudness algorithm
- LogAttackTime now outputs attack times
- BpmHistogramDescriptors now outputs a complete histogram
- ChordsDescriptors now throws exception on incorrect chords
- Refactored AudioLoader and AudioWriter algorithms. Use libavresample, remove support for libswresample
- Rename PitchFilterMakam to PitchFilter. Allow filtering negative energy values. Remove optional 'octaveFilter' parameter
- Rename PredominantMelody algorithm to PredominantPitchMelodia
- Bug-fixes:
- Fix wrong behavior of HarmonicPeaks that was indirectly affecting results in HPCP, Key, Tristimulus and OddToEvenHarmonicEnergy
- Fixed filter coefficients in BandReject and BandPass
- Fixed weightings in NoveltyCurve
- Different key profiles in Key streaming algorithm now work correctly
- Bug fixes in Envelope, TonicIndianArtMusic, RhythmExtractor2013, PitchYinFFT, BpmHistogramDescriptors, ReplayGain streaming
- Updated extractors (including Freesound extractor)
- Improved documentation
- Fresh new design
- Algorithms are now organized by categories.
- Improved and rewritten algorithm descriptions
- New python examples and tutorials
- More minor fixes, improvements and code cleanup
- Updated unit tests. Audio files for tests are now hosted in a separate repository
Known issues:
- Some unit tests fail (#316)