GetACoder.com

 
 

Home | My Account | Post Job | Browse Jobs | RSS Feeds | Careers New!

 

Audio Player With EQ OpenAL

 
 
     
Job Summary:
 
Job Type: Project
Budget: $ 20-100
Required Skills: Audio, C++ / C, Digital, Other (Programming)
Attached Files: (None)
 
Status: Closed for bidding
 
Buyer Summary:
 
Username:
freeballs  
Feedback Score: Rating: (No Feedback Yet)
Award Reliability: 1 posted 0 paid
 
Location: Pullman, WA, United States
Member Since: November 14, 2008
 
Invited Users: There are no invited users


Description
I need a C++ class written. The project should be a very simple one for someone with the right knowledge. I'm guessing it could be as simple as a single day project. There is a lot of example code out there that does what I want (see links below), but I just don't know how to put it together.

I need a fairly simple OpenAL 1.1 based audio player class with a real-time EQ filter built in. It should take streaming samples of data from a stereo OpenAL source (i.e. a wav file) and apply up to 100 bands of active "bandpass" equalization in real-time. Then it should feed the new "filtered" samples into alSourceQueueBuffer().

The EQ is essentially a 100 band parametric EQ, yet there are no graphics to it.

The player should play a stereo wave file, thus disabling the 3D spatialization effects of OpenAL.


SoundSource.cpp

I want to be able to make a call to play the sound and just pass the following parameters:

1. wave file path

2. volume level

example call:

SoundSource1.playSound("c:\test.wav", 0.95);



I also need a function within the class that I can call to continuously update the frequency values. I will pass this function a 3D array of values representing the required EQ parameters for playback

- 100 frequency values in Hz- i.e. 100, 300, 500, 700 ...

- 100 db Gain setpoints that correspond to the desired volume level of each
frequency band - i.e.: -3.00, 4.50, 0.76, 12.81 ...

- 100 "Q" values for the width of each individual filter

example call:

freqValues[100][100][100];

SoundSource1.EqUpdate(freqValues);



_________________________

Internally the class should do the following:

- instantiate an openAL sound source and start streaming playback immediately

- Apply real-time EQ to the buffered audio samples just before they are being queued for playback (i.e. just prior to the alSourceQueueBuffer() call)

- The function that applies the EQ will take the freqValues[100][100][100] array and manipulate the buffer of sampled audio data (I'm guessing through convolution) such that up to 100 narrow bands of EQ are applied.

- handle memory management properly



__________________________

The winning bidder will be someone who has a good understanding of the following:

- C and C++
- OpenAL
- digital signal processing
- digital filtering

I need extensive code commenting that explains exactly what the code is doing, in case I need to modify anything.

Misc. notes:
Due to the number of filters applied, I'm concerned about the processor burden, so some of the specs might have to be adjusted to balance functionality with the processor (i.e. less frequency values). I don't think it's possible or efficient to do real-time FFTs to the signal, so the winning bidder should know how to avoid that approach. I'm assuming that convolution will be the solution.


Here are some links to example code:

http://www.devmaster.net/articles/openal-tutorials/lesson5.php

http://www.musicdsp.org/files/biquad.c

http://musicdsp.org/archive.php?classid=3




Reminder
You may not start working in this and any request before your bid is accepted. Users who violate this policy may have their accounts permanently suspended.



 Bids Received (1)   Shortlist (0)   Declined Bids (0)   
Average bid amount:   $150.00   Average delivery time:   1 Day(s)
Place Bid | Post Similar Job | Send Request | Contact freeballs

Order by:

 

Remember that contacting the other party outside the site (by email, phone, etc.) on all business jobs (before the request is awarded) is a violation of our terms of use. We supervise all site activity for such infringements and can immediately expel transgressors on the spot, so we thank you in advance for your cooperation. If you notice a violation please help out the site and report it. Thank you for your help.
 

 
send private message
Shortlist
Decline Bid
victorbd  
NOIDA, IN
location
US$150
bid amount

(No Feedback Yet)
feedback
1 day(s)
delivery time

 
 
Dear Mr.Freeballs , We are ready to start up with your Project with our excellent team of programmers, Designers & Project Managers. We are 100% confident for a successful delivery of your Project. We are providing our Services to many Big Client Across Globe & are looking for an Excellent Long term Business Relationship with your Esteemed Organization. Please Check your PMB for our company Profile & Our Portfolio. Warm regards
Bid Time: 11-18-2008 12:13
 
 
What is GetACoder?

GetACoder.comGetACoder is a leading Global Services Marketplace doing business in more than 234 countries & regions. Our unique system accelerates your time to market and provides your business with key competitive advantages. When you use GetACoder you are stretching your budget and saving as much as 60% over traditional outsourcing. GetACoder is changing business, now it's no longer about what you own or build but which resources and talent you can access. With GetACoder you reduce expenses, increase efficiencies, aggressively grow your business, and create a sustainable competitive advantage. GetACoder makes outsourcing to any part of the world an easy task! With GetACoder it's simple to outsource any type of work, gain access to global talent and manage jobs online.

One of the main advantages of GetACoder is the low labor cost. The typically rates are about seven times lower than the ones in the US or Europe. Posting a request at GetACoder allows the right professional or company to find you and to bid for your work. We are building a reputation for exceeding our customers' expectations and for becoming an extremely cost effective way to outsource work. Use GetACoder when you want to save money, increase efficiency or accelerate the development of your request. With GetACoder you focus on growing your business and let others do the tedious work. Post your request on GetACoder for free. Find out why people outsource jobs with us day after day.

Thousands of Satisfied Customers - Submit/View Quotes


-Its great to interact with new clients and earn money. Thanks GAC - mccoyin
-Nice Design and layout system this website has. It's truly different from other freelance sites. - deepblue
-Down to the point: I like getacoder. - vertextech
Report Violation    Privacy Policy     Affiliate Program    Terms of Use    Contact Us    Help      GetACoder.com on Facebook      Follow GetACoder on Twitter      GetACoder.com Latest Requests RSS Feed
© 2004-2014 All rights reserved.