Hello everyone. Firstly, I’d like to point out that this sort of thing is rather new to me, so if I’m not clear enough or I’ve posted in the wrong section or something else, sorry about that. Also, this isn’t necessarily an Audacity question, but Audacity seems to have come to closest to giving me a solution, and also I figured someone here was likely to know.
What I’m trying to do is create a basic visualisation for an animation, for this I need some way of interpreting the accompanying music. Whether it’s the frequencies, decibels, or something else, I just need some way of getting a textual output of a piece of audio, preferably with a timestamp at each piece of data.
I don’t mind what method or program I need to use to get this data. I hope someone knows what I’m talking about, and credit to them if they do, because I’m not even sure if I do. Either way, a pointing in the right direction at the very least would be very much appreciated.
I’ve never seen such a thing, but it may be possible to automatically generate a text file listing the the amplitude of the envelope at different times, via a custom-made plug-in. Steve’s your man for that nyquist plug-in stuff.
There’s a lot of different things that you could do, but outputting the “amplitude” (dB) is probably the easiest. (outputting frequency data is very much harder).
That looks very “do-able”, particularly if you don’t mind doing a bit of manual “copy and paste”.
I would suggest that you analyse a mono track rather than stereo. Processing mono is easier to do and the output will be easier to interpret.
If you currently have stereo tracks, Audacity 1.3.13 can convert them to mono using “Tracks menu > Stereo track to mono”.
Try running this in the Nyquist Prompt effect.
Open Audacity and import your mono audio file.
If the file is not mono, convert it to mono.
With the track selected, select “Nyquist Prompt” from the Effect menu.
Copy and paste this code into the Nyquist Prompt window.
Click on the “Debug” button to run this effect.
The output will be in the “debug window” which you will then be able to copy and paste into a document of your choice.
As with other Nyquist effects, the calculations are performed in RAM. This means that the selected track must be loaded into the computer memory. If your computer does not have much spare memory then large track selections will be extremely slow and may even crash. Memory usage will normally be about 10 MB for each 1 minute of track selection. To process a 10 minute mono track at CD quality requires that you have at least 100 MB free memory.
(setq rate 2)
;;The first line sets how frequently the amplitude will be measured.
;;The number '2' indicates that there will be two readings per second.
;;For 1 reading per second the line needs to be (setq rate 1)
(setq output "") ; initialise output string
(setq rate (float rate)) ; force rate to float value
(setq *float-format* "%#1.2f") ; output text to 2 decimal places
(let* ((stepsize (round (/ *sound-srate* rate)))
(sdata (snd-avg s stepsize stepsize op-peak))) ; low sample rate sound data
; step through samples and end when no more samples
(do ((count 1 (1+ count)) (val (snd-fetch sdata) (setq val (snd-fetch sdata))))
((not val) output)
(setq val (linear-to-db val))
(setq valstring (format nil "~a sec: ~a dB~%" (/ count rate) val))
(setq output (strcat output valstring))))
(format T "Peak amplitude at intervals of ~a seconds.~%~%~aEnd of selection." (/ rate) output)
(format nil "Click OK for results.nIf no results show, run again and use 'Debug' button.")
Half a second is a long time in animation: there could be a very loud brief sound, say a gunshot, between the half second sample points.
If so there would be no indication of the loud gunshot sound on the list.