Sedang Disiapkan

Microphone Input Monitoring Delays Problem

I am experiencing a problem with a project that monitors the microphone input. In this project the reaction time to the sound input is critical. The base for the code came from a project found on Code Project web site "Sound Activated Recorder with Spectrogram in C#" ([url removed, login to view]). The original C# waveIn API wrapper was written by Ianier Munoz. "A full-duplex audio player in C# using the waveIn/waveOut APIs" ([url removed, login to view]).

The problem with both the example project and my code is that "delays" are creeping into the application when systems experience demand overload. On faster computers this is not a problem and the delays do not appear, but for slower systems this is a problem.

If you look into the code, changing the num of buffers used does not seem to affect the delays once they are introduced. I am using a small buffer size to acheive a small delay time.

Public Const m_BUFFER_SIZE As Integer = 256

Public Const m_SAMPLING_RATE_HZ As Single = 44100 / 8

If the recorder is stopped and then started, the delays dissappear, but automating this is not an option for several reasons including the fact that there can not be any pauses in the monitoring of the signal.

This application needs to always read the most current data available from the sound card (i.e. If more than one frame exists to be processed, drop the older frame(s) and process the most recent).

This is a strange delay error. I have been trying to understand it for a while. The delays remain in the microphone input (waveIn) signal even if the system is stressed monentarily and then has time to recover. The test for delays I usually use an older computer, start the sound catcher program, then start a virus scan. If the system is stressed enough delays appear, and they do not disappear when the stress on the system is removed ([url removed, login to view] is stopped). After the delays have been introduced you should be able to tap the microphone and observe the delayed response from the software.

The amount of delay typically experienced (around 900ms) can not be explained by the num of buffers used (3) and the length of each buffer (approx. 46 ms : 3*46 ms = 138 ms max data stored in buffers).

I am not sure where this extra delay data is being buffered or how to detect if the signal being monitored is delayed. This understanding is at the heart of this project. Again, starting and stopping a recorder (freeing buffers and re-allocating them) removes the delays until they are introduced again but I cannot even tell when the delays are present!

The deliverable will be a VS 2005 project with a VB.Net GUI (multiple projects in other languages in a single solution ok) that implements a version of the Sound Catcher program that handles system overload well and is immune to delays once the system is not stressed (recovers nicely). I understand that delays are unavoidable some times at peak stress levels but the deilvirable needs to always be delay free if the systen is not stressed. Display smoothness and minimum use of system resources are desired to accomplish the smooth handling of system overloads.

Before bidding on this project please download and run the code listed above and confirm that you have the necessary (slow) hardware to experience the problems described here. Make sure you are positive you have a solution as well. After accepting the project I am looking for someone who can finish it in one weeks time. Thanks for bidding!

Kemahiran: .NET, Pengaturcaraan C, Terjemahan, Visual Basic, Destop Windows

Lihat lebih lanjut: wavein api, microphone input, soundcatcher, microphone monitoring delay, wavein recorder, full duplex audio player, full duplex audio net, full duplex audio player using wavein waveout apis, detect mic visual basic, wavein, detect microphone levels vbnet, delay mic input, microphone monitoring software, monitoring input vb6, detect microphone, microphone input visual basic, microphone input monitoring, mic input delay, ianier munoz waveout, microphone input monitoring delays problem, wrapper application, time card example, stored program computer, starting with visual basic, starting with vb.net

Tentang Majikan:
( 8 ulasan ) Atlanta, United States

ID Projek: #276131

Dianugerahkan kepada:

manikm

please check out the PM.

$650 USD dalam 6 hari
(3 Ulasan)
4.5

6 pekerja bebas membida secara purata $625 untuk pekerjaan ini

mswiczar

I will rewrite it to use directsound. no more dll, just directsound implementation. This is the best way to do it. The reason of my budget time is because i have too much work. so i could do it in 15 days

$750 USD dalam 15 hari
(6 Ulasan)
5.9
lexican

Combine this unsafe method (this is not directly access to memory, but unmanaged code technique for increasing speed of process) with multi-thread method (using Invoke or BeginInvoke method),so it will be quick process Lagi

$500 USD dalam 0 hari
(5 Ulasan)
3.6
devcenter

Hello, I have gone through your requirements and I am very much interested to working with you. I am sure about your project to be fulfilled keeping your desires satisfactorily and quickly. we are ready to start anyt Lagi

$450 USD dalam 5 hari
(0 Ulasan)
0.0
semosoft123

We want to execute your assignment and assure you complete satisfaction. We have the required technical and managerial expertise to execute and deliver the work. Please check PMB.

$700 USD dalam 25 hari
(0 Ulasan)
0.0
santhoshoo2

We are team of experts in webtechnologies like PHP,.NET. All we have more than 3 years of experience in PHP and 5 years of experience in .NET. In our team two are ZEND certified PHP professional

$700 USD dalam 25 hari
(0 Ulasan)
0.0