Find Jobs
Hire Freelancers

Win32 Multi-Channel wav file player

$100-500 USD

Closed
Posted over 20 years ago

$100-500 USD

Paid on delivery
**Win32 Multi-Channel Audio Playback Application Statement of Work:** Software as described as follows with source code in C++,C#, or Visual Basic that will compile in Visual Studio .NET (2002 or 2003): A simple Windows application that can play a single 16 channel wav file at a time that uses the WAVE_FORMAT_EXTENSIBLE format and play it synchronously on a per sample basis via a 16 channel capable sound card(s) that uses a WDM driver or an ASIO driver only if required. Additionally, stop play and pause play on request. All input can be via either a monitored .cfg file or a dll class interface at your discretion so long as another running program can request, Play “[login to view URL]?, Stop, Pause. All files to be played will be of the Extensible type, 48kHz, 24bit, 16 channels, this will not change. File lengths will vary as typical songs of say a few min up to 10 min. This description and a complete listing of all the requirements along with sample 16 channel wav file and related documentation links can be found at: [login to view URL] ## Deliverables **Updated Information: **Some of the bids have proposed solutions methods that I think would not solve my problem so I thought I would post this updated information. In summary its my opinion that any solution that uses DirectSound would probably not work correctly. If after reviewing the following information you feel your bid would need to be adjusted please let me know. Or if you disagree with my DirectSound assertion I’d like to hear that as well :) As we all know under managed DirectX in both VB.net and C#.net, Managed DirectSound does not support more than 2 channels of output as described here: [login to view URL] This leaves two choices: 1) Make a class/dll that uses non Managed DirectX 2) Do it manually the “Hard Way?? as in the following two examples with .NET VB and C# source code: Mentalis WaveFile Class (C# and VB) - [login to view URL] A low-level audio player in C# - [login to view URL] Note: Neither of the above examples supports multichannel WavFormatEx files or I wouldn’t be here :) The “Hard Way?? is greatly preferable because of one reason that may not be apparent without some knowledge of how various multichannel sounds cards work with respect to the drivers available for them: Under option 1) the sound card driver would need to be a WMD type and must provide an “Interleaved Play?? virtual device that can be enumerated with a single Guid in order to work. At the driver level it handles routing the various output channels. The problem is however, that not all multichannel sounds cards provide this driver choice including my target card, the EWS88 D. If you were to simply open separate DirectSound buffers for each output the sound card has and play/start them separately in quick order there is no guarantee they would be synchronized. They would be very close but off from each other by as much as 0 to 4000 ish samples depending on luck. So this option is out unless someone has some insight into this. This leaves option 2) where one has to setup separate non DirectSound buffers for each output device from the sound card, stereo pairs in my case, and map the interleaved data from the multichannel wavfile to the respective buffers. For example in my case I have a 16 channel sound card, that enumerates its outputs as 8 stereo pairs each with a separate Guid and specifically with device indices of 2,3,4,5,8,9,10,11. Then, and this is the important part, construct a way to synchronize the multiple output buffers on a per sample basis. The individual buffers need to be masked from starting in someway until all the buffers are setup and ready to go then unmasked and started as a group. I also added 4 new test wavfiles, specifically a 4 channel one is included if you need to one to test at: [login to view URL] **Deliverables:** 1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request. 3) NON-Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site). **Intellectual Property Issues:** None. No NDA. No Secrets. No exclusivity required, just a copy the source code that I have the rights to use and include in products I may some day sell but will most likely not. ## Platform **Target System**: OS: Windows XP Professional, .NET, SP1 +, Direct X 9.0b + (Non Managed) Sound Card Hardware: 16 Output Channels via Two synchronized Terratec EWS88 D’s running with a WDM driver CPU: 2GHz + AMD Memory: 1GB + Note: No other sound cards will be present in the system
Project ID: 2991307

About the project

2 proposals
Remote project
Active 21 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
2 freelancers are bidding on average $128 USD for this job
User Avatar
See private message.
$153 USD in 15 days
5.0 (12 reviews)
4.3
4.3
User Avatar
See private message.
$102 USD in 15 days
5.0 (3 reviews)
1.8
1.8

About the client

Flag of UNITED STATES
Milwaukee, United States
0.0
0
Member since Oct 16, 2003

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.