SlideShare a Scribd company logo
1 of 46
Download to read offline
An open source platform for
                    multimedia processing
                              http://marsyas.sourceforge.net




                                        Nov 2010




Saturday, 20 November, 2010
Notice



         This work is licensed under the Creative Commons Attribution-Share Alike
                    2.5 Portugal License. To view a copy of this license, visit
                       http://creativecommons.org/licenses/by-sa/2.5/pt/
                                       or send a letter to
              Creative Commons, 171 Second Street, Suite 300, San Francisco,
                                  California, 94105, USA.




Saturday, 20 November, 2010
Summary
           Marsyas Overview
           Users & Applications
           Usage Scenarios
           Architecture
           Interoperability
                                  http://marsyas.sourceforge.net
           MarsyasX
           Future Work




Saturday, 20 November, 2010
Marsyas Overview
        Software framework for media analysis, synthesis and retrieval
            Open source (GPL license)                        http://www.fsf.org


            Efficient and extensible framework design
               original emphasis on Music Information Retrieval (MIR) ; now Multimedia!
               C++, OOP
               Multiplatform (Linux, MacOSX®, MS Windows®, …)

            Provides a variety of building blocks for performing common audio tasks:
               sound/video file IO, audio/video IO, signal processing and machine learning modules

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

      GM
          M
       WAV
                                        WAV
      source                                       Hanning           FFT
         FFT                           source

      KNN
               LPC


Saturday, 20 November, 2010
Marsyas Overview
        Marsyas Brief 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://marsyas.sourceforge.net/
                                                http://www.cs.princeton.edu/~gtzan

Saturday, 20 November, 2010
Marsyas Overview
        Marsyas Core Developers (Present and past...)            http://marsyas.info/community/people


           George Tzanetakis
               Main culprit (also main designer and developer)

           Luís Gustavo Martins
               Refactoring freak

           Graham Percieval
               Documentation overlord

           Luís Filipe Teixeira
               Marsyas X motor-head

           Mathieu Lagrange
               Biggest network award

           Steven Ness
               Ruby and Web guy

           Check updated list at the website!




Saturday, 20 November, 2010
Marsyas Community




                                  https://sourceforge.net/project/stats/graph/detail-graph.php?
                        group_id=84982&ugn=marsyas&type=prdownload&mode=alltime&file_id=0&graph=1

Saturday, 20 November, 2010
Marsyas Community
                              Google Analytics




Saturday, 20 November, 2010
Marsyas Community

           Google Analytics
                       (Nov 2010)




Saturday, 20 November, 2010
Marsyas Community
        Mailing lists
           Developer
               https://lists.sourceforge.net/lists/listinfo/marsyas-developers
           User
               https://lists.sourceforge.net/lists/listinfo/marsyas-users


        Tracker


        Feature Requests




Saturday, 20 November, 2010
Marsyas Community

        SourceForge Community Choice Awards 2009 Finalist
           http://community.sourceforge.net/cca_winners/bestacademia.html




Saturday, 20 November, 2010
Marsyas Project Analysis
        Marsyas value?
           Ohloh Analysis
               http://www.ohloh.net/p/marsyas




Saturday, 20 November, 2010
Users & Applications
        Musicream (Masataka Goto)             http://staff.aist.go.jp/m.goto/Musicream/



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




Saturday, 20 November, 2010
Users & Applications
        SndPeek (Princeton)                 http://www.cs.princeton.edu/sound/software/sndpeek/



           Uses Marsyas 0.1 for:
               FFT magnitude spectrum
               real-time spectral feature
               extraction
                 centroid
                 rms
                 flux
                 rolloff




Saturday, 20 November, 2010
Users & Applications
        Marsyas @ INESC Porto                   http://www.inescporto.pt


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

           Video Analysis Software prototypes:
               Background modeling and subtraction
               Local feature extraction for object matching




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


Saturday, 20 November, 2010
Users & Applications
        Desert Island
           Undergraduate work at the Univ. Missouri
               Kansas Jared Hoberock
               Dan Kelly Ben Tietgen




Saturday, 20 November, 2010
Related Work
        Open Source frameworks
           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/)

           EyesWeb (http://www.infomus.dist.unige.it/EywMain.html)

           ...

        Commercial toolkits
           MAX/MSP® (http://www.cycling74.com/)

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

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

           DirectShow® GraphEdit (http://www.microsoft.com)

           ...




Saturday, 20 November, 2010
Usage Scenarios
        Marsyas command 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
                   MP3 reading/writing (libMad)

           Tools and examples:
               sfplay
               bextract
               phasevocoder
               sfplugin

               …




Saturday, 20 November, 2010
Usage Scenarios
        Playing audio files
             sfplay
         >   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
         >


             -s : start time for playback

             -l : length of playback

             -r : repeat times

             -g : volume (gain) value

             -p : playback.mpl (save playback network as a .mpl plugin file)




Saturday, 20 November, 2010
Usage Scenarios
        Machine Learning: feature extraction and training of classifiers
           bextract

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


               -e STFTMFCC
                 extracts spectral and MFCC features
               music.mf, speech.mf
                 lists of sound files (collections)
               -w myWeka.arff
                 WEKA file with extracted features
               -p ms.mpl
                 “trained” Marsyas plug-in for realtime music/speech classification




Saturday, 20 November, 2010
Usage Scenarios
        Marsyas plugins (.mpl files)
           Allow to dynamically recreate a processing network in runtime
               sfplugin
                 e.g. Audio playback
              > sfplugin –p playback.mpl foo.wav
              >

                 e.g. Realtime audio classification

              > sfplugin –p ms.mpl unknownAudioSignal.wav
              >




Saturday, 20 November, 2010
Usage Scenarios
        Digital Signal Processing
           e.g. phasevocoder

                    > phasevocoder –p 1.4 -s 100
                    >
                    http://eceserv0.ece.wisc.edu/~sethares/vocoders/phasevocoder.html


           e.g. onset detector

                    > mudbox -t onsets myMusic.wav
                    >




Saturday, 20 November, 2010
Architecture
        Marsyas 0.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




Saturday, 20 November, 2010
Architecture
        MarSystem Slices
           Separating things that happen at the same time from things that
           happen in different times




   Correct semantics
           for
  spectral processing




Saturday, 20 November, 2010
Architecture
        Implicit Patching VS Explicit Patching

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




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




Saturday, 20 November, 2010
Architecture
        MarSystem Composites
           Series
           Fanout
           Fanin
           Parallel
           Accumulator
           …




Saturday, 20 November, 2010
Architecture
        Implicit VS Explicit Patching :: Neural Network




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




Saturday, 20 November, 2010
Architecture
        Typical feature extraction
           Time-frequency representation
           Frequency summarization (MFCC)
           Time summarization (Texture features)




Saturday, 20 November, 2010
Architecture
        Feature Extraction using Implicit Patching
      MarSystemManager 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”));




Saturday, 20 November, 2010
Interoperability
        Marsyas Audio and MIDI I/0                    http://www.music.mcgill.ca/~gary/rtaudio/
                                                       http://www.music.mcgill.ca/~gary/rtmidi/

           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®



Saturday, 20 November, 2010
Interoperability
        Marsyas & WEKA                  http://www.cs.waikato.ac.nz/ml/weka/



           WEKA: 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




Saturday, 20 November, 2010
Interoperability
        Calling MATLAB® from C++ Marsyas code:
           MATLAB® engine API               http://www.mathworks.com


               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




Saturday, 20 November, 2010
Interoperability
        Calling MATLAB® from C++
        Marsyas code:
           Marsyas::MATLABengine           class     // create a std::vector of real numbers

               Utility class                         std::vector<double> vector_real(4);
                                                     vector_real[0] = 1.123456789;
               Wraps MATLAB® engine calls for most   vector_real[1] = 2.123456789;
               POD types and Marsyas data types      vector_real[2] = 3.123456789;
                                                     vector_real[3] = 4.123456789;
               Easy to send/receive data to/from
               MATLAB® from anywhere in the code     // send a std::vector<double> to MATLAB
                                                     PUTVAR(vector_real, "vector_real");

                                                     // do some dummy math in MATLAB
                                                     EVALUATE("mu = mean(vector_real);");
                                                     EVALUATE("sigma = std(vector_real);");
                                                     EVALUATE("vector_real = vector_real/max(vector_real);");

                                                     // get values from MATLAB
                                                     double m, s;
                                                     GETVAR(m, "mu");
                                                     GETVAR(s, "sigma");
                                                     GETVAR(vector_real, "vector_real");




Saturday, 20 November, 2010
Interoperability
        Python™ Bindings                http://www.python.org




           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 for many other
               purposes (“batteries included”)
               less licensing headaches




Saturday, 20 November, 2010
Interoperability
        Marsyas and Trolltech Qt4®                          http://www.trolltech.com



           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



                                                   Qt4® is available as GPL open source code for all platforms




Saturday, 20 November, 2010
MarsyasX
        What is MarsyasX?
           Next step for Marsyas
           Evolution rather than an alternative implementation
           Generalization of the framework to support processing different media
        Key points:
           crossmodal processing
           expandable support
           interoperability

            GM                        AV                MPEG
               M                             Contour
                                    source               Sink
          AV
                MP                   WAV
         source S EG                         Hanning     FFT
                 ink                source
         Motion         ur
                      to
                  Con


Saturday, 20 November, 2010
MarsyasX
        MarsyasX brief history:
           MarsyasX started as a patch to Marsyas...
               ...add visual processing support
           However, the previous architecture has some restrictions:
               Some design options are audio-oriented
               No in-place processing - for visual processing this can be too much of a burden
               Representing complex data in a single buffer requires inefficient hacks
               The slice-based processing paradigm is an elegant solution, but can be very
               difficult to adapt to a more generic framework




Saturday, 20 November, 2010
MarsyasX - architecture
        First step was the creation of a generic data handling
        between modules:
           Data carried in payloads
           Flows define a coherent stream of data and are identified by
           type and name
           Modules are explicitly associated to flows and can handle
           multiple flows with different behaviours (in, inout, out)


              source          source   filter   filter   sink   sink




Saturday, 20 November, 2010
MarsyasX - architecture
        Payload Mechanism:
           Payloads are created in factories, associated to a source;
           Payloads are carried between modules through channels
           (created automatically by implicit patching);
           When payloads are no longer necessary, they are sent back to
           its source to be reutilized -> memory is allocated only once.




Saturday, 20 November, 2010
MarsyasX - architecture
        Controls are formally related to the flows and
        changes are propagated automatically
           e.g. visual flow is characterized by width, height and colour
           space




Saturday, 20 November, 2010
MarsyasX - architecture
        Timing?
           each “tick” corresponds to an elapsed time interval
           synchronization is assured by the timing information
           associated to each payload
        How is a module created?
           define how many and what type of flows it supports
               factories for outputs and flow-related controls are added implicitly

           add specific controls, if needed
           create a process function
               input and output data structures are automatically passed as arguments




Saturday, 20 November, 2010
MarsyasX - architecture
        Modules are now loaded from extensions
           implemented separately
           dynamically loaded


                                      application
                                       marsyas
                                                          other
                    visual    audio     learning    av   specific

                                         core




Saturday, 20 November, 2010
MarsyasX - interoperability
        Python
           Scripting language plays a more central role
           Complete bindings to create networks and use core
           functionalities
        Marsyas 0.2
           Legacy layer was created to support modules from Marsyas 0.2
           transparently
           A network can be an hybrid, containing MarsyasX and Marsyas
           0.2 modules
        MATLAB




Saturday, 20 November, 2010
MarsyasX - status
        Status of development:
           pre-alpha
           release 0.1 in mid-2011 (tentative)
           feature status:
               payload mechanism [done]
               flow management [done]
               definition of API [partly done]
               python bindings [partly done]
               legacy layer [partly done]
               processing modules [needs a lot more]
               event management (expressions, GUI) [not fully defined]


Saturday, 20 November, 2010
MarsyasX - future
        Main development trunk of the Marsyas project
        Larger community:
           associating the current users and developers of Marsyas with
           many others coming from different areas
        Distributed MarsyasX
           Data and events exchanged transparently




Saturday, 20 November, 2010
Thank you!
        (Lifetime) Future work…




                              http://marsyas.sourceforge.net




Saturday, 20 November, 2010

More Related Content

Viewers also liked

Extended case studies
Extended case studiesExtended case studies
Extended case studiesSapna2410
 
A Computational Framework for Sound Segregation in Music Signals using Marsyas
A Computational Framework for Sound Segregation in Music Signals using MarsyasA Computational Framework for Sound Segregation in Music Signals using Marsyas
A Computational Framework for Sound Segregation in Music Signals using MarsyasLuís Gustavo Martins
 
Controversial product
Controversial productControversial product
Controversial productSapna2410
 
Falsification of data
Falsification of dataFalsification of data
Falsification of dataSapna2410
 
Justifying price rise
Justifying price riseJustifying price rise
Justifying price riseSapna2410
 
Episode 51 : Integrated Process Simulation
Episode 51 : Integrated Process Simulation Episode 51 : Integrated Process Simulation
Episode 51 : Integrated Process Simulation SAJJAD KHUDHUR ABBAS
 
Episode 44 : 4 Stages Of Solid Liquid Separations
Episode 44 :  4 Stages Of Solid Liquid SeparationsEpisode 44 :  4 Stages Of Solid Liquid Separations
Episode 44 : 4 Stages Of Solid Liquid SeparationsSAJJAD KHUDHUR ABBAS
 
Episode 36 : What is Powder Technology?
Episode 36 :  What is Powder Technology?Episode 36 :  What is Powder Technology?
Episode 36 : What is Powder Technology?SAJJAD KHUDHUR ABBAS
 
Technology Trends in Creativity and Business
Technology Trends in Creativity and BusinessTechnology Trends in Creativity and Business
Technology Trends in Creativity and BusinessLuís Gustavo Martins
 
Episode 35 : Design Approach to Dilute Phase Pneumatic Conveying
Episode 35 :  Design Approach to Dilute Phase Pneumatic ConveyingEpisode 35 :  Design Approach to Dilute Phase Pneumatic Conveying
Episode 35 : Design Approach to Dilute Phase Pneumatic ConveyingSAJJAD KHUDHUR ABBAS
 
Episode 47 : CONCEPTUAL DESIGN OF CHEMICAL PROCESSES
Episode 47 :  CONCEPTUAL DESIGN OF CHEMICAL PROCESSESEpisode 47 :  CONCEPTUAL DESIGN OF CHEMICAL PROCESSES
Episode 47 : CONCEPTUAL DESIGN OF CHEMICAL PROCESSESSAJJAD KHUDHUR ABBAS
 
Episode 48 : Computer Aided Process Engineering Simulation Problem
Episode 48 :  Computer Aided Process Engineering Simulation Problem Episode 48 :  Computer Aided Process Engineering Simulation Problem
Episode 48 : Computer Aided Process Engineering Simulation Problem SAJJAD KHUDHUR ABBAS
 
Episode 52 : Flow sheeting Case Study
Episode 52 :  Flow sheeting Case StudyEpisode 52 :  Flow sheeting Case Study
Episode 52 : Flow sheeting Case StudySAJJAD KHUDHUR ABBAS
 
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)SAJJAD KHUDHUR ABBAS
 
Episode 53 : Computer Aided Process Engineering
Episode 53 :  Computer Aided Process EngineeringEpisode 53 :  Computer Aided Process Engineering
Episode 53 : Computer Aided Process EngineeringSAJJAD KHUDHUR ABBAS
 
The t Test for Two Related Samples
The t Test for Two Related SamplesThe t Test for Two Related Samples
The t Test for Two Related Samplesjasondroesch
 

Viewers also liked (17)

Extended case studies
Extended case studiesExtended case studies
Extended case studies
 
A Computational Framework for Sound Segregation in Music Signals using Marsyas
A Computational Framework for Sound Segregation in Music Signals using MarsyasA Computational Framework for Sound Segregation in Music Signals using Marsyas
A Computational Framework for Sound Segregation in Music Signals using Marsyas
 
Controversial product
Controversial productControversial product
Controversial product
 
Falsification of data
Falsification of dataFalsification of data
Falsification of data
 
Justifying price rise
Justifying price riseJustifying price rise
Justifying price rise
 
Speaker Segmentation (2006)
Speaker Segmentation (2006)Speaker Segmentation (2006)
Speaker Segmentation (2006)
 
Episode 51 : Integrated Process Simulation
Episode 51 : Integrated Process Simulation Episode 51 : Integrated Process Simulation
Episode 51 : Integrated Process Simulation
 
Episode 44 : 4 Stages Of Solid Liquid Separations
Episode 44 :  4 Stages Of Solid Liquid SeparationsEpisode 44 :  4 Stages Of Solid Liquid Separations
Episode 44 : 4 Stages Of Solid Liquid Separations
 
Episode 36 : What is Powder Technology?
Episode 36 :  What is Powder Technology?Episode 36 :  What is Powder Technology?
Episode 36 : What is Powder Technology?
 
Technology Trends in Creativity and Business
Technology Trends in Creativity and BusinessTechnology Trends in Creativity and Business
Technology Trends in Creativity and Business
 
Episode 35 : Design Approach to Dilute Phase Pneumatic Conveying
Episode 35 :  Design Approach to Dilute Phase Pneumatic ConveyingEpisode 35 :  Design Approach to Dilute Phase Pneumatic Conveying
Episode 35 : Design Approach to Dilute Phase Pneumatic Conveying
 
Episode 47 : CONCEPTUAL DESIGN OF CHEMICAL PROCESSES
Episode 47 :  CONCEPTUAL DESIGN OF CHEMICAL PROCESSESEpisode 47 :  CONCEPTUAL DESIGN OF CHEMICAL PROCESSES
Episode 47 : CONCEPTUAL DESIGN OF CHEMICAL PROCESSES
 
Episode 48 : Computer Aided Process Engineering Simulation Problem
Episode 48 :  Computer Aided Process Engineering Simulation Problem Episode 48 :  Computer Aided Process Engineering Simulation Problem
Episode 48 : Computer Aided Process Engineering Simulation Problem
 
Episode 52 : Flow sheeting Case Study
Episode 52 :  Flow sheeting Case StudyEpisode 52 :  Flow sheeting Case Study
Episode 52 : Flow sheeting Case Study
 
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)
Episode 40 : DESIGN EXAMPLE – DILUTE PHASE PNEUMATIC CONVEYING (Part 2)
 
Episode 53 : Computer Aided Process Engineering
Episode 53 :  Computer Aided Process EngineeringEpisode 53 :  Computer Aided Process Engineering
Episode 53 : Computer Aided Process Engineering
 
The t Test for Two Related Samples
The t Test for Two Related SamplesThe t Test for Two Related Samples
The t Test for Two Related Samples
 

Similar to Marsyas

Ostinato FOSS.IN 2010
Ostinato FOSS.IN 2010Ostinato FOSS.IN 2010
Ostinato FOSS.IN 2010pstavirs
 
(120107) #fitalk anonymizing activities
(120107) #fitalk   anonymizing activities(120107) #fitalk   anonymizing activities
(120107) #fitalk anonymizing activitiesINSIGHT FORENSIC
 
สาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศสาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศAe Naiong
 
Automatic speech recognition system using deep learning
Automatic speech recognition system using deep learningAutomatic speech recognition system using deep learning
Automatic speech recognition system using deep learningAnkan Dutta
 
20211026 taicca 3 music analysis sota
20211026 taicca 3 music analysis sota20211026 taicca 3 music analysis sota
20211026 taicca 3 music analysis sotaYi-Hsuan Yang
 
Mastering Media with AV Foundation
Mastering Media with AV FoundationMastering Media with AV Foundation
Mastering Media with AV FoundationChris Adamson
 
FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitStefano Sabatini
 
Scratchpads: A standard implementation using Drupal
Scratchpads: A standard implementation using DrupalScratchpads: A standard implementation using Drupal
Scratchpads: A standard implementation using DrupalVince Smith
 
A (Mis-) Guided Tour of the Web Audio API
A (Mis-) Guided Tour of the Web Audio APIA (Mis-) Guided Tour of the Web Audio API
A (Mis-) Guided Tour of the Web Audio APIEdward B. Rockower
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareSebastiano Merlino (eTr)
 
Symfony e micro (non così tanto) services
Symfony e micro (non così tanto) servicesSymfony e micro (non così tanto) services
Symfony e micro (non così tanto) servicesMichele Orselli
 
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...sebastianewert
 
Mining Software Repositories
Mining Software RepositoriesMining Software Repositories
Mining Software RepositoriesIsrael Herraiz
 
DTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldDTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldAngelo Rajadurai
 
Why do *you* need a strong open-source Smalltalk!
Why do *you* need a strong open-source Smalltalk!Why do *you* need a strong open-source Smalltalk!
Why do *you* need a strong open-source Smalltalk!ESUG
 
UpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligneUpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligneFoobarlab
 
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.Pharo
 

Similar to Marsyas (20)

Ostinato FOSS.IN 2010
Ostinato FOSS.IN 2010Ostinato FOSS.IN 2010
Ostinato FOSS.IN 2010
 
(120107) #fitalk anonymizing activities
(120107) #fitalk   anonymizing activities(120107) #fitalk   anonymizing activities
(120107) #fitalk anonymizing activities
 
Tpdl2015 kochw
Tpdl2015 kochwTpdl2015 kochw
Tpdl2015 kochw
 
สาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศสาระน่ารู้เทคโนโลยีสารสนเทศ
สาระน่ารู้เทคโนโลยีสารสนเทศ
 
Automatic speech recognition system using deep learning
Automatic speech recognition system using deep learningAutomatic speech recognition system using deep learning
Automatic speech recognition system using deep learning
 
20211026 taicca 3 music analysis sota
20211026 taicca 3 music analysis sota20211026 taicca 3 music analysis sota
20211026 taicca 3 music analysis sota
 
Mastering Media with AV Foundation
Mastering Media with AV FoundationMastering Media with AV Foundation
Mastering Media with AV Foundation
 
FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkit
 
Scratchpads: A standard implementation using Drupal
Scratchpads: A standard implementation using DrupalScratchpads: A standard implementation using Drupal
Scratchpads: A standard implementation using Drupal
 
Sipana Opensourcejam
Sipana OpensourcejamSipana Opensourcejam
Sipana Opensourcejam
 
A (Mis-) Guided Tour of the Web Audio API
A (Mis-) Guided Tour of the Web Audio APIA (Mis-) Guided Tour of the Web Audio API
A (Mis-) Guided Tour of the Web Audio API
 
Linux & Open Source - Alternative Software
Linux & Open Source - Alternative SoftwareLinux & Open Source - Alternative Software
Linux & Open Source - Alternative Software
 
Symfony e micro (non così tanto) services
Symfony e micro (non così tanto) servicesSymfony e micro (non così tanto) services
Symfony e micro (non così tanto) services
 
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...
Large-Scale Capture of Producer-Defined Musical Semantics - Ryan Stables (Sem...
 
Mining Software Repositories
Mining Software RepositoriesMining Software Repositories
Mining Software Repositories
 
DTrace talk at Oracle Open World
DTrace talk at Oracle Open WorldDTrace talk at Oracle Open World
DTrace talk at Oracle Open World
 
Why do *you* need a strong open-source Smalltalk!
Why do *you* need a strong open-source Smalltalk!Why do *you* need a strong open-source Smalltalk!
Why do *you* need a strong open-source Smalltalk!
 
UpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligneUpStage: scène virtuelle & performance participative en ligne
UpStage: scène virtuelle & performance participative en ligne
 
6202942
62029426202942
6202942
 
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
2013 pharo is yours revisited. Santiago DCC University of Chile Presentation.
 

More from Luís Gustavo Martins

Creativity and Design Thinking - 2024.pdf
Creativity and Design Thinking  - 2024.pdfCreativity and Design Thinking  - 2024.pdf
Creativity and Design Thinking - 2024.pdfLuís Gustavo Martins
 
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...Luís Gustavo Martins
 
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
 ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI... ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...Luís Gustavo Martins
 
Smart research? A retórica da Excelência.
Smart research? A retórica da Excelência.Smart research? A retórica da Excelência.
Smart research? A retórica da Excelência.Luís Gustavo Martins
 
Artificial intelligence and Creativity
Artificial intelligence and CreativityArtificial intelligence and Creativity
Artificial intelligence and CreativityLuís Gustavo Martins
 
The impact of Cultural Context on the Perception of Sound and Musical Languag...
The impact of Cultural Context on the Perception of Sound and Musical Languag...The impact of Cultural Context on the Perception of Sound and Musical Languag...
The impact of Cultural Context on the Perception of Sound and Musical Languag...Luís Gustavo Martins
 
Introdução à programação em Android e iOS - iOS
Introdução à programação em Android e iOS - iOSIntrodução à programação em Android e iOS - iOS
Introdução à programação em Android e iOS - iOSLuís Gustavo Martins
 
Introdução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaIntrodução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaLuís Gustavo Martins
 
Introdução à programação em Android e iOS - OOP em ObjC
Introdução à programação em Android e iOS - OOP em ObjCIntrodução à programação em Android e iOS - OOP em ObjC
Introdução à programação em Android e iOS - OOP em ObjCLuís Gustavo Martins
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Luís Gustavo Martins
 
Research methodology - What is a PhD?
Research methodology - What is a PhD?Research methodology - What is a PhD?
Research methodology - What is a PhD?Luís Gustavo Martins
 

More from Luís Gustavo Martins (13)

Creativity and Design Thinking - 2024.pdf
Creativity and Design Thinking  - 2024.pdfCreativity and Design Thinking  - 2024.pdf
Creativity and Design Thinking - 2024.pdf
 
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
 
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
 ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI... ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
 
Smart research? A retórica da Excelência.
Smart research? A retórica da Excelência.Smart research? A retórica da Excelência.
Smart research? A retórica da Excelência.
 
Artificial intelligence and Creativity
Artificial intelligence and CreativityArtificial intelligence and Creativity
Artificial intelligence and Creativity
 
Creativity and Design Thinking
Creativity and Design ThinkingCreativity and Design Thinking
Creativity and Design Thinking
 
The impact of Cultural Context on the Perception of Sound and Musical Languag...
The impact of Cultural Context on the Perception of Sound and Musical Languag...The impact of Cultural Context on the Perception of Sound and Musical Languag...
The impact of Cultural Context on the Perception of Sound and Musical Languag...
 
Introdução à programação em Android e iOS - iOS
Introdução à programação em Android e iOS - iOSIntrodução à programação em Android e iOS - iOS
Introdução à programação em Android e iOS - iOS
 
Introdução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP JavaIntrodução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP Java
 
Introdução à programação em Android e iOS - OOP em ObjC
Introdução à programação em Android e iOS - OOP em ObjCIntrodução à programação em Android e iOS - OOP em ObjC
Introdução à programação em Android e iOS - OOP em ObjC
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
 
Research methodology - What is a PhD?
Research methodology - What is a PhD?Research methodology - What is a PhD?
Research methodology - What is a PhD?
 
Introduction to pattern recognition
Introduction to pattern recognitionIntroduction to pattern recognition
Introduction to pattern recognition
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

Marsyas

  • 1. An open source platform for multimedia processing http://marsyas.sourceforge.net Nov 2010 Saturday, 20 November, 2010
  • 2. Notice This work is licensed under the Creative Commons Attribution-Share Alike 2.5 Portugal License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.5/pt/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Saturday, 20 November, 2010
  • 3. Summary Marsyas Overview Users & Applications Usage Scenarios Architecture Interoperability http://marsyas.sourceforge.net MarsyasX Future Work Saturday, 20 November, 2010
  • 4. Marsyas Overview Software framework for media analysis, synthesis and retrieval Open source (GPL license) http://www.fsf.org Efficient and extensible framework design original emphasis on Music Information Retrieval (MIR) ; now Multimedia! C++, OOP Multiplatform (Linux, MacOSX®, MS Windows®, …) Provides a variety of building blocks for performing common audio tasks: sound/video file IO, audio/video IO, signal processing and machine learning modules blocks can be combined into data flow networks that can be modified and controlled dynamically while they process data in soft real-time. GM M WAV WAV source Hanning FFT FFT source KNN LPC Saturday, 20 November, 2010
  • 5. Marsyas Overview Marsyas Brief 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://marsyas.sourceforge.net/ http://www.cs.princeton.edu/~gtzan Saturday, 20 November, 2010
  • 6. Marsyas Overview Marsyas Core Developers (Present and past...) http://marsyas.info/community/people George Tzanetakis Main culprit (also main designer and developer) Luís Gustavo Martins Refactoring freak Graham Percieval Documentation overlord Luís Filipe Teixeira Marsyas X motor-head Mathieu Lagrange Biggest network award Steven Ness Ruby and Web guy Check updated list at the website! Saturday, 20 November, 2010
  • 7. Marsyas Community https://sourceforge.net/project/stats/graph/detail-graph.php? group_id=84982&ugn=marsyas&type=prdownload&mode=alltime&file_id=0&graph=1 Saturday, 20 November, 2010
  • 8. Marsyas Community Google Analytics Saturday, 20 November, 2010
  • 9. Marsyas Community Google Analytics (Nov 2010) Saturday, 20 November, 2010
  • 10. Marsyas Community Mailing lists Developer https://lists.sourceforge.net/lists/listinfo/marsyas-developers User https://lists.sourceforge.net/lists/listinfo/marsyas-users Tracker Feature Requests Saturday, 20 November, 2010
  • 11. Marsyas Community SourceForge Community Choice Awards 2009 Finalist http://community.sourceforge.net/cca_winners/bestacademia.html Saturday, 20 November, 2010
  • 12. Marsyas Project Analysis Marsyas value? Ohloh Analysis http://www.ohloh.net/p/marsyas Saturday, 20 November, 2010
  • 13. Users & Applications Musicream (Masataka Goto) http://staff.aist.go.jp/m.goto/Musicream/ Music playback system with similarity capabilities Uses Marsyas as its music similarity engine Saturday, 20 November, 2010
  • 14. Users & Applications SndPeek (Princeton) http://www.cs.princeton.edu/sound/software/sndpeek/ Uses Marsyas 0.1 for: FFT magnitude spectrum real-time spectral feature extraction centroid rms flux rolloff Saturday, 20 November, 2010
  • 15. Users & Applications Marsyas @ INESC Porto http://www.inescporto.pt Audio Analysis Software prototypes: Feature Extraction Audio segmentation/classification Audio fingerprinting Speaker Segmentation Music and Auditory Scene Analysis Video Analysis Software prototypes: Background modeling and subtraction Local feature extraction for object matching http://www.inescporto.pt/~lfpt http://www.inescporto.pt/~lmartins Saturday, 20 November, 2010
  • 16. Users & Applications Desert Island Undergraduate work at the Univ. Missouri Kansas Jared Hoberock Dan Kelly Ben Tietgen Saturday, 20 November, 2010
  • 17. Related Work Open Source frameworks 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/) EyesWeb (http://www.infomus.dist.unige.it/EywMain.html) ... Commercial toolkits MAX/MSP® (http://www.cycling74.com/) MATLAB® Simulink® (http://www.mathworks.com/products/simulink/) LabView® (http://www.ni.com/labview/) DirectShow® GraphEdit (http://www.microsoft.com) ... Saturday, 20 November, 2010
  • 18. Usage Scenarios Marsyas command 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 MP3 reading/writing (libMad) Tools and examples: sfplay bextract phasevocoder sfplugin … Saturday, 20 November, 2010
  • 19. Usage Scenarios Playing audio files sfplay > 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 > -s : start time for playback -l : length of playback -r : repeat times -g : volume (gain) value -p : playback.mpl (save playback network as a .mpl plugin file) Saturday, 20 November, 2010
  • 20. Usage Scenarios Machine Learning: feature extraction and training of classifiers bextract > bextract -e STFTMFCC music.mf speech.mf -p ms.mpl -w myweka.arff > -e STFTMFCC extracts spectral and MFCC features music.mf, speech.mf lists of sound files (collections) -w myWeka.arff WEKA file with extracted features -p ms.mpl “trained” Marsyas plug-in for realtime music/speech classification Saturday, 20 November, 2010
  • 21. Usage Scenarios Marsyas plugins (.mpl files) Allow to dynamically recreate a processing network in runtime sfplugin e.g. Audio playback > sfplugin –p playback.mpl foo.wav > e.g. Realtime audio classification > sfplugin –p ms.mpl unknownAudioSignal.wav > Saturday, 20 November, 2010
  • 22. Usage Scenarios Digital Signal Processing e.g. phasevocoder > phasevocoder –p 1.4 -s 100 > http://eceserv0.ece.wisc.edu/~sethares/vocoders/phasevocoder.html e.g. onset detector > mudbox -t onsets myMusic.wav > Saturday, 20 November, 2010
  • 23. Architecture Marsyas 0.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 Saturday, 20 November, 2010
  • 24. Architecture MarSystem Slices Separating things that happen at the same time from things that happen in different times Correct semantics for spectral processing Saturday, 20 November, 2010
  • 25. Architecture Implicit Patching VS Explicit Patching # EXPLICIT PATCHING source, F1, F2, F3, destination # connect the appropriate in/out ports connect(source, F1); connect(source, F2); connect(source, F3); connect(F1, destination); connect(F2, destination); connect(F3, destination); # IMPLICIT PATCHING source, F1, F2, F3, destination Fanout(F1, F2, F3) Series(source, Fanout, destination); Saturday, 20 November, 2010
  • 26. Architecture MarSystem Composites Series Fanout Fanin Parallel Accumulator … Saturday, 20 November, 2010
  • 27. Architecture Implicit VS Explicit Patching :: Neural Network #IMPLICIT PATCHING fanoutLayer1(ANN_Node11, …, ANN_Node1N) … fanoutLayerM(ANN_NodeM1, …,ANN_NodeMN) ANN_Series(fanoutLayer1, …, fanoutLayerM) Saturday, 20 November, 2010
  • 28. Architecture Typical feature extraction Time-frequency representation Frequency summarization (MFCC) Time summarization (Texture features) Saturday, 20 November, 2010
  • 29. Architecture Feature Extraction using Implicit Patching MarSystemManager 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”)); Saturday, 20 November, 2010
  • 30. Interoperability Marsyas Audio and MIDI I/0 http://www.music.mcgill.ca/~gary/rtaudio/ http://www.music.mcgill.ca/~gary/rtmidi/ 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® Saturday, 20 November, 2010
  • 31. Interoperability Marsyas & WEKA http://www.cs.waikato.ac.nz/ml/weka/ WEKA: 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 Saturday, 20 November, 2010
  • 32. Interoperability Calling MATLAB® from C++ Marsyas code: MATLAB® engine API http://www.mathworks.com 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 Saturday, 20 November, 2010
  • 33. Interoperability Calling MATLAB® from C++ Marsyas code: Marsyas::MATLABengine class // create a std::vector of real numbers Utility class std::vector<double> vector_real(4); vector_real[0] = 1.123456789; Wraps MATLAB® engine calls for most vector_real[1] = 2.123456789; POD types and Marsyas data types vector_real[2] = 3.123456789; vector_real[3] = 4.123456789; Easy to send/receive data to/from MATLAB® from anywhere in the code // send a std::vector<double> to MATLAB PUTVAR(vector_real, "vector_real"); // do some dummy math in MATLAB EVALUATE("mu = mean(vector_real);"); EVALUATE("sigma = std(vector_real);"); EVALUATE("vector_real = vector_real/max(vector_real);"); // get values from MATLAB double m, s; GETVAR(m, "mu"); GETVAR(s, "sigma"); GETVAR(vector_real, "vector_real"); Saturday, 20 November, 2010
  • 34. Interoperability Python™ Bindings http://www.python.org 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 for many other purposes (“batteries included”) less licensing headaches Saturday, 20 November, 2010
  • 35. Interoperability Marsyas and Trolltech Qt4® http://www.trolltech.com 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 Qt4® is available as GPL open source code for all platforms Saturday, 20 November, 2010
  • 36. MarsyasX What is MarsyasX? Next step for Marsyas Evolution rather than an alternative implementation Generalization of the framework to support processing different media Key points: crossmodal processing expandable support interoperability GM AV MPEG M Contour source Sink AV MP WAV source S EG Hanning FFT ink source Motion ur to Con Saturday, 20 November, 2010
  • 37. MarsyasX MarsyasX brief history: MarsyasX started as a patch to Marsyas... ...add visual processing support However, the previous architecture has some restrictions: Some design options are audio-oriented No in-place processing - for visual processing this can be too much of a burden Representing complex data in a single buffer requires inefficient hacks The slice-based processing paradigm is an elegant solution, but can be very difficult to adapt to a more generic framework Saturday, 20 November, 2010
  • 38. MarsyasX - architecture First step was the creation of a generic data handling between modules: Data carried in payloads Flows define a coherent stream of data and are identified by type and name Modules are explicitly associated to flows and can handle multiple flows with different behaviours (in, inout, out) source source filter filter sink sink Saturday, 20 November, 2010
  • 39. MarsyasX - architecture Payload Mechanism: Payloads are created in factories, associated to a source; Payloads are carried between modules through channels (created automatically by implicit patching); When payloads are no longer necessary, they are sent back to its source to be reutilized -> memory is allocated only once. Saturday, 20 November, 2010
  • 40. MarsyasX - architecture Controls are formally related to the flows and changes are propagated automatically e.g. visual flow is characterized by width, height and colour space Saturday, 20 November, 2010
  • 41. MarsyasX - architecture Timing? each “tick” corresponds to an elapsed time interval synchronization is assured by the timing information associated to each payload How is a module created? define how many and what type of flows it supports factories for outputs and flow-related controls are added implicitly add specific controls, if needed create a process function input and output data structures are automatically passed as arguments Saturday, 20 November, 2010
  • 42. MarsyasX - architecture Modules are now loaded from extensions implemented separately dynamically loaded application marsyas other visual audio learning av specific core Saturday, 20 November, 2010
  • 43. MarsyasX - interoperability Python Scripting language plays a more central role Complete bindings to create networks and use core functionalities Marsyas 0.2 Legacy layer was created to support modules from Marsyas 0.2 transparently A network can be an hybrid, containing MarsyasX and Marsyas 0.2 modules MATLAB Saturday, 20 November, 2010
  • 44. MarsyasX - status Status of development: pre-alpha release 0.1 in mid-2011 (tentative) feature status: payload mechanism [done] flow management [done] definition of API [partly done] python bindings [partly done] legacy layer [partly done] processing modules [needs a lot more] event management (expressions, GUI) [not fully defined] Saturday, 20 November, 2010
  • 45. MarsyasX - future Main development trunk of the Marsyas project Larger community: associating the current users and developers of Marsyas with many others coming from different areas Distributed MarsyasX Data and events exchanged transparently Saturday, 20 November, 2010
  • 46. Thank you! (Lifetime) Future work… http://marsyas.sourceforge.net Saturday, 20 November, 2010