Find Jobs
Hire Freelancers

C++ audio utility (BPM detection and MP3 tagging).

$100-250 USD

In Progress
Posted almost 18 years ago

$100-250 USD

Paid on delivery
I need to develop a command line tool which will take incoming WAV or MP3 sound files, perform average BPM detection, and average amplitude classification (from verySoft to veryLoud), and tag that data to the sound files in ID3 tags. I have started writing it in C++ but I'm open to ideas in Python, TCL, and Ruby. I have looked at using sound libraries such as FMOD (C++), Snack (TCL, Ptyhon) and Sox, but my C++ isn't good enough to get it done in time. I need a barebones implementation, nothing fancy, command-line driven or even as a header and implementation files that I can use to write my own program. The hard bit is tempo (BPM) detection. An example of it using FMOD can be found here: [login to view URL] This example can be used as the starting point for the the tool, since FMOD does ID3 tagging also. Using the library above, you would probably do the following: First you create a bpm detection object using bpm_create: void *bpmDetect = BPM_Create(); Then you have to add a dsp to fmod so that you can get the separate samples from the stream you are playing. (Some examples are included with fmod on how to do this) Then for each sample, you add it to the bpm detect object: BPM_AddSample(bpmDetect, sample); Since you will usually have stereo input, you can either just pass either the left or the right sample, or you could take the average (l+r)/2 To get the bpm, you can use BPM_getParameter(bpmDetect, BPMFOUNDBPM) To see how accurate the detection is, you can use the BPMNROFBEATS parameter. Finally, at the end of your program, you can destroy the object using BPM_Destroy(bpmDetect); What I need is a command-line tool which will wrap something like the above, and amplitude classification into ID3 tags in a batch process. Approximate start date of the project after selecting a bid Immediate (within 1-2 days) Budget: Less than $250 ## Deliverables 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Deliverables must be in ready-to-run condition, as follows? (depending on the nature? of the deliverables): a)? For web sites or? other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment. b) For all others including desktop software or software the buyer intends to distribute: A software? installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request. 3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement). ## Platform If code is written using FMOD, as exaplained in the project description, it will benefit from cross-platform code anyway. But on the whole, it needs to run on Windows first, then OSX, then Linux (order of priority).
Project ID: 3515554

About the project

1 proposal
Remote project
Active 18 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
1 freelancer is bidding on average $170 USD for this job
User Avatar
See private message.
$170 USD in 16 days
5.0 (8 reviews)
2.9
2.9

About the client

Flag of UNITED KINGDOM
Norwich, United Kingdom
5.0
1
Member since May 22, 2006

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759) & Freelancer Online India Private Limited (CIN U93000HR2011FTC043854)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.