Re: Extracting the tempo track from a MIDI file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 25, 2007 at 10:08:57AM -0700, Ken Restivo wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On Tue, Sep 25, 2007 at 09:21:06AM +0200, Alexandre Ratchov wrote:
> > On Mon, Sep 24, 2007 at 07:00:38PM -0700, Ken Restivo wrote:
> > > 
> > > Is there any command-line tool to extract and print the tempo of
> > > a MIDI file?
> > > 
> > 
> > hi, 
> > 
> > you could use midish for that: import the .mid file, and use the
> > songtimeinfo function; example:
> > 
> > $ rmidish  
> > send EOF character (control-D) to quit
> > 1> songimportsmf "sample.mid"
> > 2> songtimeinfo
> > {
> >         timesig 4 24
> >         tempo 400000
> > }
> > 3> 
> > 
> 
> Thanks! However, I haven't found any explanation of what those numbers mean. I need the tempo in BPM.
> 
> I found this formula in the Rosegarden source:
> 	qpm = (60.0 * beatTime) / (beatSec * quarter)
> 
> But of the three numbers that songtimeinfo spits out, I haven't been able to figure out which one is beatTime, beatSec, and quarter.
> 

oops, forgot to say what units are; 400000 is the diration of a
MIDI tic in 24th of microseconds. To get the BPM:

	bpm = 60 * 24000000 / (tempo * ticks_per_beat)
	    = 60 * 24000000 / (400000 * 24)
	    = 150

(ticks_per_beat is the second parameter of the time signature).

[...]

However, in this case it's simpler to use "songgettempo" function,
example:

	$ rmidish
	send EOF character (control-D) to quit
	1> songimportsmf "sample.mid"
	2> print [songgettempo -1]
	150

songgettempo returns the tempo (in BPM) at the given measure
number, -1 means the end of the song. This function is not in 0.3.1
release, its only in the last snapshot:

	 http://caoua.org/midish/midish.tar.gz 

cheers,

-- Alexandre
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@xxxxxxxxxxxxxxxxxxxx
http://lists.linuxaudio.org/mailman/listinfo.cgi/linux-audio-user

[Index of Archives]     [Linux Sound]     [ALSA Users]     [Pulse Audio]     [ALSA Devel]     [Sox Users]     [Linux Media]     [Kernel]     [Photo Sharing]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux