Find Jobs
Hire Freelancers

Optimize code and fix bugs in existing audio library (C++)

$100-500 USD

Cancelled
Posted over 16 years ago

$100-500 USD

Paid on delivery
Optimise and fix bugs in a C++ audio library intended for Windows games which is using DirectSound, Ogg Vorbis and AES Rijndael. ## Deliverables I have an audio library intended for games, which is about 95 % complete. It allows you to play encrypted Ogg Vorbis files using DirectSound, both streaming and static buffers. It also has support for 3d audio. The library uses public domain components, put together to form a library which will make it easy to add advanced audio functionality into games and other applications that require small and protected audio files. It uses an optimized C++ implementation of the AES Rijndael encryption algorithm, and an excellent Ogg Vorbis decoder which also is in the public domain together with the Microsoft DirectSound API (Direct X version 8.1 or above). Here's what needs to be done: 1. Fix a bug with static sounds which causes them to lose content after the first playback round. As most of you reading this will know, you set a flag to tell DirectSound whether or not to loop the audio when the play function is called. I wanted to be able to set looping (true or false) at any time and not have to worry about whether the sound is playing or not. The coder implemented this by making the sound loop by default and, if the user has looping set to false, replace the beginning of the sound with silence and then stop it as soon as the timer signals that the sound has gone back to 0. This way it would be possible to stop the sound without the risk of hearing a few milliseconds from the beginning of the audio again. Currently however, the data that was silenced is never put back. This needs to be fixed, or altered in any way you see fit to give optimal performance. 2. Upgrade the Ogg Vorbis decoding. The library uses a public domain Ogg Vorbis decoder, which avoids all the licensing issues associated with the standard implementation by the Vorbis team. The version that the coder used is now outdated, and I would like to upgrade it to the latest version. At the time of coding it was not possible to retrieve the length of the stream, so the coder modified the decoder to include a function to get this information. This has now been added into the standard distribution so the modifications are no longer necessary, and thus the code in the main library needs to be changed to reflect this. I want it set up so that whenever a new version is released of the decoder I can just copy and paste in the new files provided that the API is backward compatible. I believe that the coder made some additional changes to the decoder to make his job easier but I'm not sure exactly what. 3. Fix the 3d initialization. All the 3d functions are added to the API, but it does not work to initialize a sound with 3d enabled. I don't know why, but this needs to be corrected. 4. Seeking in streams (optional). Originally the coder was going to make it possible to seek in streaming sounds, and this is half working but due to a lot of errors and mysterious results we decided to leave it out for the present. However, if you think you can correct this and make it seek accurately in streams then it would be excellent. Seeking works fine for static sounds. 5. General optimizations. It is always good to have another programmer go through the code before release. I would like you to go through the library and optimize it as much as you can, in whatever ways you see fit. Please do not change any of the public API function names, only optimize the internal functionality. Speed and accuracy are two very important factors and if you can modify anything to improve the general performance, feel free to do so. It is absolutely imperative that you have a lot of experience with both DirectSound and audio programming in general in order to be chosen for this job. You should also have a basic understanding of how Ogg Vorbis works to enable you to go in and upgrade the decoder and make sure everything works as expected. 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 Windows 98 and above
Project ID: 3456705

About the project

3 proposals
Remote project
Active 16 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
3 freelancers are bidding on average $453 USD for this job
User Avatar
See private message.
$1,020 USD in 30 days
5.0 (86 reviews)
7.7
7.7
User Avatar
See private message.
$255 USD in 30 days
5.0 (58 reviews)
6.1
6.1
User Avatar
See private message.
$85 USD in 30 days
4.7 (13 reviews)
2.9
2.9

About the client

Flag of SWEDEN
Sweden
5.0
22
Payment method verified
Member since Feb 10, 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)
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.