This package is a wrapper for the fpcalc command-line tool.
First you need to get installed fpcalc on your system.
OS X
brew install chromaprintUbuntu
apt-get install libchromaprint-toolsArch Linux
pacman -Sy chromaprintOr you can get the latest version from AcoustId site
Than you just need to require this package via Composer
$ composer require mrfeathers/php-fpcalcUsage is pretty simple. First you create a FpcalcProcess using factory class.
$factory = new FpcalcFactory();
$fpcalcProcess = $factory->create();Than just call generateFingerPrint with array of file paths (or web stream uri - more info)
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3']);
//or you can generate fingerprints for more than one file
$result = $fpcalcProcess->generateFingerPrint(['myfile.mp3', 'mysecondfile.mp3']);
//using online stream radio
$result = $fpcalcProcess->generateFingerPrint(['http://icecast2.play.cz/radio1.mp3']);As a result you'll get output string with generated fingerprint or fingerprints.
You're able to set some options:
format- input format namealgorithm- algorithm method (default 2). Available since fpcalc version 1.4.3rate- sample rate of the inputchannels- number of channels in the input audiolength- restricts the duration of the processed input audio (default 120, in seconds)chunk- splits the input audio into chunks of given duration (in seconds)overlap- overlap the chunks slightly to make sure audio on the edge id fingeprintedts- output UNIX timestamps for chunked results, useful when fingerprinting real-time audio streamraw- output fingerprints in the uncompressed formatoutputFormat- format of result output. Available: json, text, plain
Sometimes fingerprint generation can be a long process, sou you can set the process timeout using
setTimeoutmethod (default is 60 seconds).
Feel free to open an issue in case of bugs or improvement requests!