< Back to IRCAM Forum

Spectral Inversion / Negative Music

Please let me draw your attention to this artistic research question about what a spectral negative of a sound could be. Do you think AudioSculpt could contribute to an answer?

[For non-francophones, Google translate should get the idea across.]

Hi Diemo,

What he’s asking for is just a particular case of image sonification (in this case, the input image would be the negative of a spectrogram), which has been around for quite a while.

Here’s a neat example of image sonification by NASA: https://www.youtube.com/watch?v=H-Ci_YwfH04

All the best,


I think the short answer to Diemo’s question is “NO”!

For further insights a few comments:

The negative of the spectrogram is not an answer for multiple reasons.

If we take the negative of the linear amplitudes then it depends what you do with it. Where do you get the phases from ?

If you keep the original phases and the inverse STFT correctly handles negative amplitudes you will get the original signal multiplied by -1. Not very impressive as effect. It could also be the STFT inversion throws away the sign of the amplitudes (because amplitudes by convention are non-negative) in which case you will get the original signal (even less dramatic as effect).

In fact you would want to use log amplitudes (even then it will not be the answer, but we come to this below). For inverting log amplitudes you may use AS’ filtering with images. You would need to normalize to avoid having extreme output sounds. Given the original log amplitude is 0 at maximum and 120 at minimum, inverting this gives you up to 120dB for all low parts of the sound and 0 dB as smallest amplitude. So you’d better shift this down by some constant value (AudioSculpt norm output flag). So taking a screen shot of the original spectrogram, inverting it and using it as a filter twice on the original sound (once for getting to the amplitude to constant 0 dB and a second time to get into the opposite amplitude) would be the implementation in the image filter setup.

Unfortunately, this cannot be accepted as a valid answer to the given problem: It will always output a whole lot of noise. Two things are the problem.

  1. there is no way to implement the constraint in the original question:

    étant donné un nombre convenu conventionnel de notes de musique n’entendre que le groupe de celles qui ne sont pas jouées

    that asks to receive only the notes not played using as reservoir a conventional note system. All notes not played will be in fact all notes with all possible note frequencies (not restricted to any musical notion of harmony or grid or scale) - so this is noise!

  2. additionally, you don’t get these too many remaining notes with their original spectrum. In fact the spectral slope will be inverted and the high frequency noise will be dominating the harmonic structure - even more noise!

The only way to do this seems to me to get a midi transcription, define the set of conventional notes, and play all notes not played in the total set of notes with your midi synthesizer. Still then the question remains: how do you control the intensity of these remaining notes. With that respect the question is open, so you can see that as compositional question.

Anyway, I am afraid AudioSculpt will not be able to help you.

Hi Diemo and Axel,

What Emmanuel is asking for can be done with AudioSculpt (AS) in a few basic steps. There’s no sense in calling it negative music or anything of the sort, but it can easily be done with AS. For anyone interested, here are the basic steps needed:

  1. Change the Sonogram mode settings in AS Preferences to Black & White.
  2. Make an audio file filled with white noise with exactly the same time length as the audio source you wish to “invert.”
  3. Open the audio source file in AS, do a Sonogram analysis (available in the AS Analysis menu), and export the spectrogram as an image.
  4. Invert the spectrogram with a photo editing app, and then export it.
  5. Open the white noise file in AS, and apply the inverted spectrogram as an Image Filter (available in the AS Treatments menu) to it. You can then export the result as an audio file, and you’re done.

Hope this helps.

All the best,

PS: Steps 1 and 4 above aren’t needed, you only need to change the Sonogram mode settings to Colored brightness and Sonogram base color to white (instead of the default red) in AS Preferences. And I had totally forgotten about it, but you can use Invert from the AS Treatments menu instead of step 4 above.

Hi Antonio, thank you for your remarks!
I think your proposal is not quite what Emmanuel wants. In fact, it corresponds to the channel vocoder approach that was applied in that Max patch he mentioned. In the end you always wind up with filtered noise and have lost all phase information.
Nevertheless, I’m interested how you’d do it directly in AudioSculpt, how you set up an Invert treatment for the whole file.
Best, Diemo

Hi Diemo,

I can only do it in AudioSculpt by filtering noise, or directly by image sonification with apps like Photosounder. And you’re of course right, Emmanuel’s double negative condition (i.e., for any given sound S, ~ ~ S = S) is not satisfied.

In order to mirror phase information (and satisfy Emmanuel’s double negative condition), I can see no other way than going the DSP algorithm route. How? My level of know-how is insufficient to provide any acceptable answer.

All the best,