Csound Csound-dev Csound-tekno Search About

[Csnd] rank similarity of two soundfiles

Date2019-12-04 16:27
FromDa'ud Vyd
Subject[Csnd] rank similarity of two soundfiles
Does anyone know a Csound, Python, or Windows commandline tool that will rank the similarity of two soundfiles? I'm interested in timbre comparison. I'll play the same short MIDI file to render single track audio files with different virtual instruments. Some tools detect notes and then compare the musical structure. Those tools might see all the audio files as identical. I need something that will rank an electric piano as closer to a piano than to a violin. 

Date2019-12-04 18:14
FromRichard Knight
SubjectRe: [Csnd] rank similarity of two soundfiles

This is an area that really interests me - I'm not aware of anything for Csound natively at the moment, but I'm (somewhat slowly) working towards writing/porting some of these to Csound.
In short at the moment lots of options but most will require a bit of work.

For python these may be useful:

Essentia (feature extraction) and Gaia (similarity) with python bindings, quite heavy weight.
https://github.com/MTG/essentia
https://github.com/MTG/gaia
eg https://essentia.upf.edu/documentation/gaia/fingerprint_tutorial.html

pyAudioAnalysis
https://github.com/tyiannak/pyAudioAnalysis

librosa in python/other
eg https://github.com/d4r3topk/comparing-audio-files-python/blob/master/mfcc.py

 

Aubio with python bindings (maybe only handles feature extraction, similarity may need to be handled with something else)
https://aubio.org/

 

Musly is a c/c++ lib and has some command line examples
https://www.musly.org/



Audioguide is pretty interesting but is strictly Mac as it uses an IRCAM binary for feature extraction as far as I recall.
It uses a strange combination of python/Csound but the latter is just used for sound playback basically. It's uses sound similarly for concatenative resynthesis so would have to be taken apart a little bit for just the similarity ranking.
http://www.benhackbarth.com/audioGuide/docs_v1.35.html


Going more off-topic timbreID for puredata is quite well established as is Catart for max/msp , also the reanimator~ object in FFTease for pd/max is quite interesting but is more just for concatenative resynthesis and the ranking output might not be so clear.

 

On Wed, 4 Dec 2019 16:27:49 +0000, Da'ud Vyd wrote:

Does anyone know a Csound, Python, or Windows commandline tool that will rank the similarity of two soundfiles? I'm interested in timbre comparison. I'll play the same short MIDI file to render single track audio files with different virtual instruments. Some tools detect notes and then compare the musical structure. Those tools might see all the audio files as identical. I need something that will rank an electric piano as closer to a piano than to a violin. 

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here



Date2019-12-04 18:17
FromDa'ud Vyd
SubjectRe: [Csnd] rank similarity of two soundfiles
Thanks Richard. I looked at Essentia, but the Python bindings don't work on Windows. I think using MFCC in librosa might be my best bet. I'm going to start with the instructions in this jupyter notebook:



From: A discussion list for users of Csound <CSOUND@LISTSERV.HEANET.IE> on behalf of Richard Knight <richard@1BPM.NET>
Sent: Wednesday, December 4, 2019 6:14 PM
To: CSOUND@LISTSERV.HEANET.IE <CSOUND@LISTSERV.HEANET.IE>
Subject: Re: [Csnd] rank similarity of two soundfiles
 

This is an area that really interests me - I'm not aware of anything for Csound natively at the moment, but I'm (somewhat slowly) working towards writing/porting some of these to Csound.
In short at the moment lots of options but most will require a bit of work.

For python these may be useful:

Essentia (feature extraction) and Gaia (similarity) with python bindings, quite heavy weight.
https://github.com/MTG/essentia
https://github.com/MTG/gaia
eg https://essentia.upf.edu/documentation/gaia/fingerprint_tutorial.html

pyAudioAnalysis
https://github.com/tyiannak/pyAudioAnalysis

librosa in python/other
eg https://github.com/d4r3topk/comparing-audio-files-python/blob/master/mfcc.py

 

Aubio with python bindings (maybe only handles feature extraction, similarity may need to be handled with something else)
https://aubio.org/

 

Musly is a c/c++ lib and has some command line examples
https://www.musly.org/



Audioguide is pretty interesting but is strictly Mac as it uses an IRCAM binary for feature extraction as far as I recall.
It uses a strange combination of python/Csound but the latter is just used for sound playback basically. It's uses sound similarly for concatenative resynthesis so would have to be taken apart a little bit for just the similarity ranking.
http://www.benhackbarth.com/audioGuide/docs_v1.35.html


Going more off-topic timbreID for puredata is quite well established as is Catart for max/msp , also the reanimator~ object in FFTease for pd/max is quite interesting but is more just for concatenative resynthesis and the ranking output might not be so clear.

 

On Wed, 4 Dec 2019 16:27:49 +0000, Da'ud Vyd wrote:

Does anyone know a Csound, Python, or Windows commandline tool that will rank the similarity of two soundfiles? I'm interested in timbre comparison. I'll play the same short MIDI file to render single track audio files with different virtual instruments. Some tools detect notes and then compare the musical structure. Those tools might see all the audio files as identical. I need something that will rank an electric piano as closer to a piano than to a violin. 

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-12-04 18:26
FromRichard Knight
SubjectRe: [Csnd] rank similarity of two soundfiles

That's a shame about the Essentia bindings. I've not actually tried librosa but it does look quite straightforwards - would be interested to hear how it goes.

 

On Wed, 4 Dec 2019 18:17:57 +0000, Da'ud Vyd wrote:

Thanks Richard. I looked at Essentia, but the Python bindings don't work on Windows. I think using MFCC in librosa might be my best bet. I'm going to start with the instructions in this jupyter notebook:

From: A discussion list for users of Csound on behalf of Richard Knight
Sent: Wednesday, December 4, 2019 6:14 PM
To: CSOUND@LISTSERV.HEANET.IE
Subject: Re: [Csnd] rank similarity of two soundfiles
 

This is an area that really interests me - I'm not aware of anything for Csound natively at the moment, but I'm (somewhat slowly) working towards writing/porting some of these to Csound.
In short at the moment lots of options but most will require a bit of work.

For python these may be useful:

Essentia (feature extraction) and Gaia (similarity) with python bindings, quite heavy weight.
https://github.com/MTG/essentia
https://github.com/MTG/gaia
eg https://essentia.upf.edu/documentation/gaia/fingerprint_tutorial.html

pyAudioAnalysis
https://github.com/tyiannak/pyAudioAnalysis

librosa in python/other
eg https://github.com/d4r3topk/comparing-audio-files-python/blob/master/mfcc.py

 

Aubio with python bindings (maybe only handles feature extraction, similarity may need to be handled with something else)
https://aubio.org/

 

Musly is a c/c++ lib and has some command line examples
https://www.musly.org/



Audioguide is pretty interesting but is strictly Mac as it uses an IRCAM binary for feature extraction as far as I recall.
It uses a strange combination of python/Csound but the latter is just used for sound playback basically. It's uses sound similarly for concatenative resynthesis so would have to be taken apart a little bit for just the similarity ranking.
http://www.benhackbarth.com/audioGuide/docs_v1.35.html


Going more off-topic timbreID for puredata is quite well established as is Catart for max/msp , also the reanimator~ object in FFTease for pd/max is quite interesting but is more just for concatenative resynthesis and the ranking output might not be so clear.

 

On Wed, 4 Dec 2019 16:27:49 +0000, Da'ud Vyd wrote:

Does anyone know a Csound, Python, or Windows commandline tool that will rank the similarity of two soundfiles? I'm interested in timbre comparison. I'll play the same short MIDI file to render single track audio files with different virtual instruments. Some tools detect notes and then compare the musical structure. Those tools might see all the audio files as identical. I need something that will rank an electric piano as closer to a piano than to a violin. 

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here


Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

-- 


http://rk.1bpm.net/