Skip to content

Essentia 2.1 beta3

Pre-release
Pre-release
Compare
Choose a tag to compare
@dbogdanov dbogdanov released this 29 Sep 23:09
· 2308 commits to master since this 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)