+ All Categories
Home > Documents > MIR for audio signals using Marsyas-0 - University of...

MIR for audio signals using Marsyas-0 - University of...

Date post: 20-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
50
ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio signals using Marsyas-0.2 George Tzanetakis ([email protected]) Luís Gustavo Martins ([email protected])
Transcript
Page 1: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

ISMIR 2006 TutorialVictoria, Canada

08.10.2006

MIR for audio signals using Marsyas-0.2

George Tzanetakis ([email protected])Luís Gustavo Martins ([email protected])

Page 2: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 2

Summary

– Marsyas Overview

– Users & Applications

– Basic Mechanics

– Usage Scenarios

• BREAK (15 min)

– Architecture

– Hands-on

– Interoperability

– Work in Progress

– Future Work

Page 3: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 3

Marsyas Overview

•• Software framework for audio analysis, synthesis Software framework for audio analysis, synthesis and retrieval and retrieval

• Efficient and extensible framework design – specific emphasis on Music Information Retrieval (MIR)

– C++, OOP– Multiplatform (Linux, MS Windows®, MacOSX®, …)

• Provides a variety of building blocks for performing common audio tasks:

– soundfile IO, audio IO, signal processing and machine learningmodules

– blocks can be combined into data flow networks that can be modified and controlled dynamically while they process data in soft real-time.

WAV sourceWAV source

FFTFFT

GMMGMM

KNNKNNLPCLPC

WAV sourceWAV source HanningHanning FFT FFT

Page 4: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 4

Marsyas Overview

•• MarsyasMarsyas Brief HistoryBrief History– 1998 ~2000

• Created by George Tzanetakis during his PhD activities at Princeton

– 2000 ~2002• Marsyas 0.1

– First stable revisions of the toolkit– Distributions hosted at SourceForge– Creation of a developer community

» User and Developer Mailing lists

– 2002 ~ …• Marsyas 0.2

– Major framework revision– SourceForge SubVersion

http://www.cs.princeton.edu/~gtzan

http://sourceforge.net/projects/marsyas/

http://svn.sourceforge.net/viewvc/marsyas/?sortby=rev&sortdir=down

Page 5: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 5

Users & Applications

http://sourceforge.net/project/stats/detail.php?group_id=84982&ugn=marsyas&type=prdownload&mode=12months&package_id=96585

Page 6: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 6

Users & Applications

•• MusicreamMusicream ((MasatakaMasataka Goto)Goto)

– Music playback system with similarity capabilities• Uses Marsyas as its music similarity engine

http://staff.aist.go.jp/m.goto/Musicream/

Page 7: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 7

Users & Applications

•• SndPeekSndPeek ((PrincetonPrinceton))

– Uses Marsyas 0.1 for:

• FFT magnitude spectrum

• real-time spectralfeature extraction

– centroid– rms– flux

– rolloff

http://www.cs.princeton.edu/sound/software/sndpeek/

Page 8: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 8

Users & Applications

•• MarsyasMarsyas has been used at has been used at INESC PortoINESC Porto for the last 4 yearsfor the last 4 years……

– Audio Analysis Software prototypes:• Feature Extraction• Audio segmentation/classification• Audio fingerprinting• Speaker Segmentation• Music and Auditory Scene Analysis

http://www.inescporto.pthttp://www.inescporto.pt/~lmartins

Page 9: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 9

Users and Applications

•• DesertDesert IslandIsland– Undergraduate at the Univ. Missouri

• Kansas Jared Hoberock• Dan Kelly Ben Tietgen

Page 10: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 10

Related Work Context

•• OpenOpen SourceSource frameworksframeworks– CLAM (http://clam.iua.upf.edu/)

– STK (http://ccrma.stanford.edu/software/stk/)

– Chuck (http://chuck.cs.princeton.edu/)

– PureData (Pd) (http://crca.ucsd.edu/~msp/software.html)

– Open Sound Control (OSC) (http://cnmat.berkeley.edu/OpenSoundControl/)

– FAUST (http://faudiostream.sourceforge.net/)

•• CommercialCommercial toolkitstoolkits– MAX/MSP® (http://www.cycling74.com/)

– MATLAB® Simulink® (http://www.mathworks.com/products/simulink/)

– LabView® (http://www.ni.com/labview/)

– DirectShow® GraphEdit(http://windowssdk.msdn.microsoft.com/en-us/library/ms787460.aspx)

Page 11: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 11

Audience Background?

•• C++ ?C++ ?•• MATLABMATLAB®® ??•• PythonPython™™ ??•• WEKA ?WEKA ?•• Pd, MAX/MSPPd, MAX/MSP®® ??

•• DSP ?DSP ?•• Symbolic Processing ?Symbolic Processing ?•• Machine Learning ?Machine Learning ?

•• Linux ?Linux ?•• MacOSXMacOSX®® ??•• WindowsWindows®® ??

•• Cooking Cooking ☺☺ ??

Page 12: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 12

Basic Mechanics

•• Downloading Downloading MarsyasMarsyas– SourceForge.net

• Stable releases– http://sourceforge.net/project/showfiles.php?group_id=84982

• SubVersion (SVN) development code– http://svn.sourceforge.net/viewvc/marsyas/?sortby=rev&sortdir=down

Page 13: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 13

Basic Mechanics

•• Structure of the Structure of the MarsyasMarsyas DistributionDistribution

– Main files:

• INSTALL, COPYING, THANKS, README, AUTHORS, TODO– Text files with some important info

• ChangeLog– Provides usefull info about the evolution of the software

• configure.in, Makefile.am– Main files edited by the user/programmer required for autotools. Only

these files are needed to be changed when adding new subdirs or config options to the distribution

Page 14: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 14

Basic Mechanics

•• Structure of the Structure of the MarsyasMarsyas DistributionDistribution– Main Subdirectories:

• ./config– Configuration files used by autotools

• ./distributed– Marsyas (experimental) classes for distributed processing

• ./doc– Assorted documentation about the Marsyas framework and applications

• ./marsyas– Main dir where all the important Marsyas code is. The source files inhere are compiled into a

static lib that other programs can use to access Marsyas functionalities• ./marsyasMATLAB

– User MATLAB scripts (mfiles)• ./marsyasVisualStudio2003

– Project and Solution files for Visual Studio 2003• ./marsyasVisualStudio2005

– Project and Solution files for Visual Studio 2005• ./qt4GUIs

– Qt4® GUI application projects (.pro) that use Marsyas as its audio engine. README files are supplied with instructions on how to compile and run each project

• ./src– Sample executables main code that do some interesting things using the Marsyas software

framework. Some are in fact intended to be used as actual research tools

Page 15: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 15

Basic Mechanics

•• Linux InstallationLinux Installation– System requirements

• gcc compiler (included in Linux distributions)

– Building

> ./configure> make> make install (as root user)>

> ./configure –prefix=/home/username> make> make install>

As a root user

No rootprevileges

Page 16: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 16

Basic Mechanics

•• MacOSXMacOSX®® InstallationInstallation– System requirements

• gcc compiler• XCode®

– Building

> ./configure> make> make install (as root user)>

> ./configure –prefix=/home/username> make> make install>

As a root user

No rootprevileges

http://www.apple.com/macosx/features/xcode/

Page 17: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 17

Basic Mechanics

•• WindowsWindows®® ((CygwinCygwin) Installation) Installation– System requirements

• Cygwin

– Building

> ./configure> make> make install (as root user)>

> ./configure –prefix=/home/username> make> make install>

As a root user

No rootprevileges

http://www.cygwin.com/

Page 18: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 18

Basic Mechanics

•• WindowsWindows®® Visual StudioVisual Studio®® InstallationInstallation

– System requirements• Visual Studio® 2003/2005/Express2005(free version)

• Microsoft DirectX SDK® (free)

• Microsoft Platform SDK® (free)

– Building• Go to MarsyasVisualStudio2003/2005 folders on Marsyas dist.• Open a .sln or .vcproj file on Visual Studio®

• Go to the “Build” menu…– … and select “Build Solution” (or just press F7)

http://msdn.microsoft.com/vstudio/http://msdn.microsoft.com/directx/sdk/http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en

Page 19: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 19

Basic Mechanics

•• Configure OptionsConfigure Options– Autoconf systems (Linux, MacOSX®, Cygwin)

– Allows building Marsyas with:• assertions enabled (-enable-assert)• debug support (-enable-debug)• MP3 support (libmad) (-enable-mad) • distributed suport (-enable-distributed)• MATLAB® support (-enable-matlab)• Qt® support (-enable-qt)

> ./configure –enable–assert –enable-mad> make> make install (as root user)>

> ./configure –help (see list of options)

Page 20: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 20

Basic Mechanics

•• Configure OptionsConfigure Options– Visual Studio® (Windows®)

• just use the defined Project Configurations– e.g. Debug, Release, Debug_MATLABengine, …

Page 21: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 21

Usage Scenarios

•• MarsyasMarsyas command line toolscommand line tools– Demonstrate key capabilities of the framework

• Some are actually research tools

– Efficient and can execute in real-time– ANSI C++ only core

• several optional libraries

– Tools and examples:

• sfplay• bextract• phasevocoder• sfplugin• …

Page 22: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 22

Usage Scenarios

•• Playing audio filesPlaying audio files

– E.g.: sfplay

– s start time for playback

– l length of playback

– r repeat times

– g volume (gain) value

– p playback.mplsave playback network as a .mpl plugin file

> sfplay foo.wav> sfplay –s 10.0 –l 3.2 –r 2.5 –g 0.5 foo1.wav foo2.au –f output.wav> sfplay –l 3.0 foo.wav> sfplay foo.wav –p playback.mpl>

Page 23: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 23

Usage Scenarios

•• Extracting features from audio signals and training Extracting features from audio signals and training classifiersclassifiers

– E.g.: bextract

– STFTMFCC • extracts spectral and MFCC features

– music.mf, speech.mf• lists of sound files (collections)

– ms.mpl• “trained” Marsyas plug-in for realtime music/speech classification

– myWeka.arff• WEKA file with extracted features

> bextract -e STFTMFCC music.mf speech.mf -p ms.mpl -w myweka.arff>

Page 24: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 24

Usage Scenarios

•• MarsyasMarsyas pluginsplugins ((..mplmpl files)files)– Allow to dynamically recreate a processing network in runtime

• Audio playback

• Realtime audio classification

> sfplugin –p ms.mpl unknownAudioSignal.wav>

> sfplugin –p playback.mpl foo.wav>

Page 25: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 25

Usage Scenarios

•• Digital Digital SignalSignal ProcessingProcessing

> phasevocoder –p 1.4 -s 100

–E.g.: phasevocoder

Page 26: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 26

BREAK TIME! ☺

15 Minutes Break…

Page 27: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 27

Architecture

•• MarsyasMarsyas 0.20.2– New dataflow model of audio computation

– hierarchical messaging system used to control the dataflow network(inspired on Open Sound Control (OSC) )

– general matrices instead of 1-D arrays as data

Marsyas::IMAGE PROCESSING?!?

Page 28: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 28

Architecture

•• MarSystemMarSystem SlicesSlices– Separating things that happen at the same time from

things that happen in different times

512 values 512 values

Marsyas 0.1

Correct semanticsfor

spectral processing

Page 29: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 29

Architecture

•• Implicit Patching VS Explicit PatchingImplicit Patching VS Explicit Patching

# IMPLICIT PATCHINGsource, F1, F2, F3, destinationFanout(F1, F2, F3)Series(source, Fanout, destination);

# EXPLICIT PATCHINGsource, F1, F2, F3, destination# connect the appropriate in/out portsconnect(source, F1);connect(source, F2);connect(source, F3);connect(F1, destination);connect(F2, destination);connect(F3, destination);

Page 30: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 30

Architecture

•• MarSystemMarSystem CompositesComposites– Series

– Fanout

– Fanin

– Parallel

– Accumulator

– …

FanoutF1

F2

F3

INPUT

OUTPUT

Page 31: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 31

Architecture

•• Implicit VS Explicit Patching Implicit VS Explicit Patching Neural NetworkNeural Network

#IMPLICIT PATCHINGfanoutLayer1(ANN_Node11, …, ANN_Node1N)…fanoutLayerM(ANN_NodeM1, …,ANN_NodeMN)ANN_Series(fanoutLayer1, …, fanoutLayerM)

Page 32: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 32

Architecture

•• Typical feature extractionTypical feature extraction– Time-frequency representation– Frequency summarization (MFCC)– Time summarization (Texture features)

Page 33: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 33

Architecture

•• Feature Extraction using Implicit PatchingFeature Extraction using Implicit Patching

Source

Series1Fanout1

Zero Crossings

TextureMemory

Fanout3

Mean

Variance

Classifier

Spectrum

Fanout2

Centroid

Rolloff

Flux

Series2

Page 34: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 34

Architecture

•• Feature Extraction using Implicit PatchingFeature Extraction using Implicit PatchingMarSystemManager mng;

MarSystem* Series1 = mng.create("Series", “Series1");

MarSystem* Fanout1 = mng.create(“Fanout", “Fanout1");

MarSystem* Series2 = mng.create("Series", “Series2");

MarSystem* Fanout2 = mng.create(“Fanout”, “Fanout2”);

MarSystem* Fanout3 = mng.create(“Fanout”, “Fanout3”);

Fanout3->addMarSystem(mng.create(“Mean”, “Mean”));

Fanout3->addMarSystem(mng.create(“Variance”, “Variance”));

Fanout2->addMarSystem(mng.create(“Centroid”, “Centroid”));

Fanout2->addMarSystem(mng.create(“RollOff”, “Rolloff”));

Fanout2->addMarSystem(mng.create(“Flux”, “Flux”);

Series2->addMarSystem(mng.create(“Spectrum”, “Spectrum”);

Series2->addMarSystem(Fanout2);

Fanout1->addMarSystem(mng.create(“ZeroCrossings”, “ZeroCrossings”);

Fanout1->addMarSystem(Series2);

Series1->addMarSystem(mng.create("SoundFileSource",“Source"));

Series1->addMarSystem(Fanout1);

Series1->addMarSystem(mng.create(“Memory”, “TextureMemory”));

Series1->addMarSystem(Fanout3);

Series1->addMarSystem(mng.create(“classifier”, “Classifier”));

Source

Series1Fanout1

Zero Crossings

TextureMemory

Fanout3

Mean

Variance

Classifier

Spectrum

Fanout2

Centroid

Rolloff

Flux

Series2

Page 35: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 35

Architecture

•• ImplicitImplicit PatchingPatching andand FilterFilter BanksBanks– Number of bands can be changed on-the-fly without any

code recomplitation or user memory reallocation

Adapts automatically to any new number of filter bands

Page 36: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 36

Hands-on

•• Writing a new Writing a new MarSystemMarSystem– “Reverse” MarSystem

•• Assembling a networkAssembling a network– Sources & Sinks let data pass from input to output

– Source Gain Reverse SoundFileSink AudioSink

Page 37: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 37

Interoperability

•• MarsyasMarsyas Audio and MIDI I/0Audio and MIDI I/0

– RtAudio• Multiplatform C++ API for realtime audio input/output

– Linux (native ALSA, JACK, and OSS)– MacOSX®– Windows® (DirectSound® and ASIO®)– SGI®

– RtMIDI• Multiplatform C++ API for realtime MIDI input/output

– Linux (ALSA)– MacOSX®– Windows® (Multimedia Library)– SGI®

http://www.music.mcgill.ca/~gary/rtaudio/http://www.music.mcgill.ca/~gary/rtmidi/

Page 38: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 38

Interoperability

•• MarsyasMarsyas (( )) WEKA WEKA (Data Mining Software in Java)(Data Mining Software in Java)

– Marsyas already includes some machine learning blocks– Marsyas outputs extracted features as .arff files (WEKA)

• features can be opened in WEKA for further evaluation and data modeling

Page 39: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 39

Interoperability

•• Calling MATLABCalling MATLAB®® from C++ from C++ MarsyasMarsyas code:code:– MATLAB® engine API

• exchange data (i.e. matrices) in run-time between C++ and MATLAB®

• remotely execute commands in MATLAB® from a C++ routine– Access to all MATLAB® toolboxes, algorithms and available routines– Algorithmic validation of C++ routines– Quick and easy evaluation of proof of concepts – May not allow real-time operation…

» Not such a big problem when evaluating or developing algorithms

– Marsyas::MATLABengine class• Utility class

– Wraps MATLAB® engine calls for most POD types and Marsyas data types

– Easy to send/receive data to/from MATLAB® from anywhere in the code

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/index.html?/access/helpdesk/help/techdoc/matlab_external/f38569.html

Page 40: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 40

Interoperability

•• PythonPython™™ BindingsBindings

– easily create scripts for rapid testing and prototyping of data flow networks

• would require much more development effort in C++• bonus: no compiling overheads

– can also be embedded in C++ code, similarly to MATLAB®(TBD)

• less tools for signal processing in general, but can be used formany other purposes (“batteries included”)

• less licensing headaches

http://www.python.org

Page 41: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 41

Interoperability

•• MarsyasMarsyas and Trolltech Qt4and Trolltech Qt4®®

– Qt® Core features optionally used by Marsyas• Multi-platform signal/slot architecture

• Multi-platform threads multithreaded processing

• Multi-platform database access• Multi-platform XML I/O

– Qt® GUI Features optionally used by Marsyas

• Multi-platform Widgets

• Multi-platform OpenGL

http://www.trolltech.com

Qt4® is available as GPL open source codefor all platforms

Page 42: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 42

Work in Progress

•• MarsyasMarsyas GUIGUI

– Allows rapid algorithm development and debugging

– GUIs for realtime interaction with processing blocks

– Visualization tools• Data plots, controls, …

– MATLAB® scripts• create, load, save mfiles• run scripts

– Deployment• Developed algorithms can be saved as a .mpl file

and run as a console app

Page 43: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 43

Work in Progress

•• Data Plotting GUIsData Plotting GUIs– For efficient and easy data inspection and manipulation

•• Machine Learning algorithmsMachine Learning algorithms– Marsyas 0.1 Marsyas 0.2

– Implementation/integration of new C++ algorithms

•• Auditory Scene AnalysisAuditory Scene Analysis– New analysis front ends

• Sinusoidal modeling• Auditory models

Page 44: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 44

Work in Progress

•• MarsyasMarsyas::– Software framework for audio analysis, synthesis and retrieval

visual

Page 45: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 45

Work in Progress

•• Image, Video and Multimodal AnalysisImage, Video and Multimodal Analysis

– Core modifications are being made to allow seamless processing of both visual and audio signals in a same data flow network

• Marsyas general matrices are used to store and deliver image data

– No modules are available so a lot of effort needs to be invested in order to create or port visual processing algorithms

• Implementation will be made in a “as-needed” basis

– Combined analysis and processing of audio and video streams

Page 46: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 46

Work in Progress

•• Distributed ProcessingDistributed Processing– Marsyas 0.2 already includes some (experimental) routines

for distributing processing blocks over remote machines

Distributed audio feature extraction Realtime distributed harmonizer

Page 47: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 47

Work in Progress

•• Flexible scheduling for dataflow audio processingFlexible scheduling for dataflow audio processing– Multiple timers

• realtime, beat-time, virtual-time

– Multiple events• updateControl, patch(control1, control2,…), expression

Page 48: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 48

Future Work

•• Distributed ProcessingDistributed Processing– Current implementation

• Only tested on LinuxPort and test on MS Windows®/MacOSX® platforms

• Uses static machine addressing – i.e. must define IP address of remote machine

» Not very flexible» …

• Dynamic Ad-Hoc approach?– Marsyas would be able to automatically (re-)distribute processing

blocks over remote machines as they appear/disappear from the network…

Page 49: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 49

Future Work (we need your Help!)

•• SDIF output I/OSDIF output I/O

•• XML XML MarsyasMarsyas schemas schemas

•• Visual Network BuilderVisual Network Builder

•• Tool specific GUIsTool specific GUIs

•• MarsyasMarsyas VSTVST®® pluginplugin

•• MarsyasMarsyas Pd and MAX/MSPPd and MAX/MSP®® externalexternal

•• Control performance capturing and playbackControl performance capturing and playback

•• More sound synthesis blocks (port from STK)More sound synthesis blocks (port from STK)

•• Implement every algorithm for Audio MIR published Implement every algorithm for Audio MIR published in ISMIR! in ISMIR! ☺☺

Page 50: MIR for audio signals using Marsyas-0 - University of Victoriaopihi.cs.uvic.ca/NormCutAudio/pdf/ISMIR2006_Tutorial.pdf · ISMIR 2006 Tutorial Victoria, Canada 08.10.2006 MIR for audio

08.10.2006 Open Source Software Framework for Multimedia 50

Thank you!

((LifetimeLifetime) ) FutureFuture workwork……

[email protected]@inescporto.pt

With the kind support of:


Recommended