Psysound3

PsySound3 is a Matlab-based environment for the analysis of sound recordings.

Download PsySound3 (updated January 2014)

The current version incorporates parallel processing (if run with Matlab’s Parallel Processing toolbox) and a MIRpitch analyser.

Publications about PsySound

Code repository

The code repository for PsySound3 can be accessed via svn – see:
http://code.google.com/p/psysound3/source/checkout

Authors of and contributors to PsySound3

PsySound was originally written as a set of stand-alone programs (written in Pascal for Macintosh Classic operating system) by Densil Cabrera. These included one for spectrum analysis, one for loudness analysis, one for pitch analysis, and some others. For PsySound2, Densil combined these individual programs into a single program, making integrated analysis easier.

PsySound3 revived the project several years later, by porting the concept and most of the analysis algorithms of PsySound2 to Matlab. More analysis techniques were added, and the software framework was designed to provide extensibility. Major contributors to writing PsySound3 include Sam Ferguson, Farhan Rizwi, Densil Cabrera and Matt Flax. Emery Schubert also contributed a great deal to the overall development of PsySound3. In 2013, some revisions to PsySound3 were implemented by Felix Gendre and Manuj Yadav.

Many people have contributed analysis code to PsySound3, either by providing code for us to port, or by writing analysers directly. These include Jens Brosbol, Arturo Camacho, Josef Chalupper, Peter Daniel, Dik Hermes, Shin-Ichi Sato, Alex Tarnopolsky, and Ernst Terhardt.

PsySound3 was initially funded by the Australian Government through the Australian Research Council’s LIEF scheme.

10 thoughts on “Psysound3

  1. PerMagnus Lindborg

    Dear Psysound,

    thanks for making all your coding work open source, it’s very appreciated.

    i’ve just installed the January version (and updated MIRtoolbox to v1.5). MIRtoolbox runs without problems separately, and I’ve only it, Psysound3, and default files in the Matlab path (v2009b..).

    However I get errors when following manual instructions for install & testrun:

    >> psysound3
    Starting PsySound3.
    Please read README File distributed with Software.
    PsySound is BETA Software. Use at your own risk.
    Signal Processing Toolbox OK.
    Parallel Computing ToolBox Toolbox OK.
    ??? Error using ==> class
    Cannot change the number of fields of class ‘mirdata’ without first typing ‘clear classes’.

    Error in ==> mirdata.mirdata at 24
    obj = class(obj, ‘mirdata’, base);

    Error in ==> mirscalar.mirscalar at 20
    base=mirdata(orig);

    Error in ==> MIRPITCH.MIRPITCH at 10
    base = mirscalar();

    etc a couple of hundred more lines.

    I was successfully using an earlier version of Psysound more than a year ago, but I am not very familiar with the way the program works under the hod. I’ve subscribed to the email group at that point but can’t find it right now. I will much appreciate your assistance since I think the integration of Psysound and MIRtoolbox is very promising!

    thanks,
    permagnus

  2. PerMagnus Lindborg

    Hi,

    by trial and error, I found the Psysound3 GUI loads OK but only when MIRtoolbox 1.5 is *not* in the path… haeh.

    Next:
    Running the “Calibration Details” produces an error: it seems the function
    setuniformtime() is not defined anywhere?!?
    it is called in
    psysnd3AudioTSeries.m
    constructDataObjects.m
    but I can’t see that is defined anywhere – it’s not a standard Matlab function.

    Attempting to run Analyzers produces similar error, and

    >> RoughnessTest()
    Warning: Data clipped during write to file:sound.wav
    > In wavwrite>PCM_Quantize at 293
    In wavwrite>write_wavedat at 309
    In wavwrite at 138
    In RoughnessTest at 16
    ??? Undefined function or method ‘setuniformtime’ for input arguments of type ‘timeseries’.

    Error in ==> SLM.constructDataObjects at 88
    out1{i}=setuniformtime(out{i}.tsObj,’Interval’, 1/get(obj, ‘outputDataRate’));

    Error in ==> Analyser.process at 538
    obj = constructDataObjects(obj, dataBuffer, tVector);

    Error in ==> RoughnessTest at 23
    obj = process(obj,fh,[]); % process the object

    hope someone can hint a solution,

    thanks
    /permagnus

  3. Claudia

    Hi,
    I’ve just discovered Psysound3: it’s amazing! Thank you so much for sharing it freely! 🙂
    The manual describres how to use it, but doesn’t seem to provide a full description of all the audio analysers, unless I’m mistaken?
    Being interested in what particular loudness models were implemented, I finally got the answer by looking in the getDescription.m files in each folder. Not the most convenient way, but it worked! So I was wondering whether there was a file somewhere that I missed which describes in detail (with the references) the different audio analysers.
    Thank you very much for your great work!

    1. admin Post author

      Hi Claudia, generally we don’t describe the analysers in the documentation (but instead cite relevant literature in cases like the loudness analysers). Thanks for your feedback – I know some people have had quite a lot of frustration getting it to work (most of my feedback comes from problems), but it is good to hear it works ok.
      densil

      1. Claudia

        Well, I should have been a bit more specific: it LOOKS amazing, as for the moment, I haven’t tried it yet! Indeed, I wanted to check first which loudness model was implemented before trying to make it work! And that’s why, just having the content of each getDescription.m file in one text document would be useful in order to know, at a glance, what analysers are available.
        Thanks again!

        1. admin Post author

          If you have running issues, and you are mainly interested in loudness, I should mention that I have ported the Glasberg & Moore time-varying loudness model to AARAE, which is a project under very active development at present. I have not done that to the C&F dynamic loudness model because I need to check some things first (but it would not take long to do). We have found that these models yield reasonably similar results (so did Rennies in his published comparison). AARAE is likely to be updated in early June (the current version has problems with sound recording, but that and many other issues have been solved in the forthcoming update). But PsySound is more focussed on non-audio data, while AARAE is primarily focussed on the audio itself, so the emphases of the projects are quite different. Of course in either case, the functions can be run from the command line to suit particular need where a GUI would just get in the way.

Leave a Reply