Greyscale spectrograms from MIRToolbox

I am using the excellent MIRToolbox for Matlab for a lot of sound analysis applications these days. It meets a lot of my needs, but there are a few things that I miss. Perhaps the most important one is the ability to make clean greyscale spectrograms. The regular mirspectrum function returns a colour spectrogram with lots of garnish, like this:

Such a spectrogram may be useful in some contexts, but not always. Often I just want a plain, greyscale spectrogram, like this:

Here is my trick to do this, based on mirspectrum:

a=miraudio('myfile.wav');
as=mirspectrum(a, 'Frame', 'Max', 3000);
asm=mirgetdata(as);
figure;
imagesc(asm);
axis xy;
lgrays=zeros(100,3);
for i=1:100
   lgrays(i,:) = 1-i/100;
end
colormap(lgrays);
set(gca,'XTick',[]);
set(gca,'YTick',[]);

Let me know if you have a better solution for doing this.

 

AudioVideoAnalysis

To allow everyone to watch their own synchronised spectrograms and motiongrams, I have made a small application called AudioVideoAnalysis.

It currently has the following features:

  • Draws a spectrogram from any connected microphone
  • Draws a motiongram/videogram from any connected camera
  • Press the escape button to toggle fullscreen mode

Built with Max/MSP by Cycling ’74 on OS X.5. I will probably make a Windows version at some point, but haven’t gotten that far yet.

A snapshot of the main interface:

The main window of the AudioVideoAnalysis application

The fullscreen can be toggled with the escape button:

Fullscreen mode in the AudioVideoAnalysis application

The are, obviously, lots of things that can and will be improved in future versions. Please let me know of any problems you experience with the application, and if there is anything in particular you think should be included.