Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I create a waveform image of an MP3 in Linux?

Tags:

Given an MP3 I would like to extract the waveform from the file into an image (.png)

Is there a package that can do what I need ?

like image 617
Prakash Raman Avatar asked Dec 17 '10 06:12

Prakash Raman


2 Answers

Using sox and gnuplot you can create basic waveform images:

sox audio.mp3 audio.dat #create plaintext file of amplitude values tail -n+3 audio.dat > audio_only.dat #remove comments  # write script file for gnuplot echo set term png size 320,180 > audio.gpi #set output format echo set output \"audio.png\" >> audio.gpi #set output file echo plot \"audio_only.dat\" with lines >> audio.gpi #plot data  gnuplot audio.gpi #run script 

enter image description here

To create something simpler/prettier, use the following GNU Plot file as a template (save it as audio.gpi):

#set output format and size set term png size 320,180  #set output file set output "audio.png"  # set y range set yr [-1:1]  # we want just the data unset key unset tics unset border set lmargin 0              set rmargin 0 set tmargin 0 set bmargin 0  # draw rectangle to change background color set obj 1 rectangle behind from screen 0,0 to screen 1,1 set obj 1 fillstyle solid 1.0 fillcolor rgbcolor "#222222"  # draw data with foreground color plot "audio_only.dat" with lines lt rgb 'white' 

and just run:

sox audio.mp3 audio.dat #create plaintext file of amplitude values tail -n+3 audio.dat > audio_only.dat #remove comments  gnuplot audio.gpi #run script 

enter image description here

Based on this answer to a similar question that is more general regarding file format but less general in regards to software used.

like image 174
qubodup Avatar answered Sep 23 '22 00:09

qubodup


If you have a GUI environment you can use the audacity audio editor to load the mp3 and then use the print command to generate a pdf of the waveform. Then convert the pdf to png.

like image 45
Lifeguard Avatar answered Sep 24 '22 00:09

Lifeguard