We need someone to develop an acoustic program that will be integrated into a larger software program. The following is a description of the requirements. If you are interested, my contact information is below. Thank you for your interest.
We are developing a web-based software program (Windows or open source environment) that requires an acoustic section. The specifications for this section are detailed in the attached Requirements file. The basic capabilities are to:
Generate an adjustable sinusoidal tone (from 200 Hz to 20 kHz)
a. Minimum increments (<30 Hz)
b. Adjustable intensity from 10 dB to 80 dB SPL
Generate an adjustable white noise signal
a. Use slides to adjust low-cut and high-cut filters to establish a narrow band
b. Minimum increments (<30 Hz)
c. Adjustable intensity from 10 dB to 80 dB SPL
Special notes:
a. Displays should represent the actual wave forms for the frequencies (Sine and Noise)
i. Ability to adjust the color of the wave display would be nice, but not essential.
ii. Must have SDK with code and instructions.
iii. Guidance and suggestions for best calibration of signals is required.
Please feel free to call me with any questions, or for clarifications.
Audacity is a team of loose-knit volunteers essentially, and only one of our developers regularly takes on contract work (subject to current workload).
Two questions;
1. Is the larger program also open source? If not, the work may be less attractive to a developer and the open source code would usually require separate presentation/installation to make clear the different licensing.
2. Are you providing your own functionality to make the larger program work on the web? Audacity has no native ability to run on web servers or be called from web pages.
Here is a response from one of our team members. I had sent him a copy of your post and his response follows:
David,
This is clearly a NO. They are saying, it will not run in browser. This is where I was saying if they give an API, we can add the slider controls and send the emit frequency to their software (via API). Their software in turn can send to the sound card the right frequency.
When a provider connects the laptop/desktop/tablet to our Web application (for the first time), we can put a check to see if the software (audacity stuff) is present. If not, we can let the provider click a button to download. This button can auto install (if they have one installer), else we can prompt thru screens/wizard to complete Audacity installation. this is a one time setup operation.
Subsequent logins, will not show it.
Now their second question : they need not worry what type of application is going to access the tone generator. It can be a webapp or desktop app. You can tell them we are developing a web application – custom software using .NET/C#.
A standard computer soundcard with 44.1kHz sample frequency cannot produce a 20kHz sine wave in a reliable way, only a 20kHz square wave. Producing a 20kHz sine wave requires audio hardware with a sample frequency of minimum 400kHz.
Question: What is the exact purpose of this SPL value?
SPL is an acoustical unit and therefore is solely dependent on external audio hardware (volume knob of the amplifier, loudspeaker parameters, etc.), and therefore an SPL value cannot be implemented in software without acoustical measurement feedback, where standard soundcards have a too poor quality for measurement purpose.
The effective acoustical loudness that a listener hears out of a standard HiFi loudspeaker or headphone cannot be controled by software, because it solely depends on external hardware outside of the computer, with too many inpredictable parameters involved.
Or do your users have special-made audio equipment like calibrated hearing-aids or something similar?
First of all, a very good question and thank you for bringing it up! Your assessment is correct and there is no perfect solution (that I can think of). I am contemplating establishing a reference threshold for a 750 Hz tone and then use that as my referance zero (for that particular person). All other intensity measurements for other tones and noise, would then be recorded in dB re: Sensation Level for the 750 Hz reference. That way, all variables (sound card, volume setting and transducer) remain the same, at least for that session. Once the reference level is established re: SPL, then we could subtract the difference in SPL, but use the difference in dB re: SL (Sensation Level). That’s the best compromise I could come up with, but I would welcome your thoughts.
There is no perfect solution for nothing in life, and I’m not perfect, too. My questions were not about nit-picking. I am an electrician for audio and video recording equipment and have already worked for several medical institutions in Germany. I just simply wanted to know if you need software to implement it in medical environment of if it is planned to write e.g. a simple tinitus test that people can do at home via internet and standard consumer level equipment.
This is true, the parameters remain the same but the problem is that the acoustical energy produced by a loudspeaker (no matter how expensive) is very non-linear and strongly depends on the reproduced frequency. This means with the same amount of electrical energy (the volume knob doesn’t change) a loudspeaker will produce different SPL levels at 750Hz compared to e.g. 500Hz or 1000Hz.
A typical non-linear SPL curve for a semi-professional studio monitor can be seen here:
The only way to circumvent this is first to measure the frequency-dependent SPL curve of the specific loudspeaker and then implement a counter-curve in the software to compensate the non-linearity. This measurement procedure must be repeated with every loudspeaker, even if it’s the same louspeaker model from the same manufacturer, because even after more than 100 years of loudspeaker research it’s still not possible to produce two loudspeakers with exactly the same acoustical properties. Data sheets of loudspeaker manufacturers only provide statistical approximations. Microphones and loudspeakers are still the weakest parts of the audio chain.
Yes, but only if the SPL curve of the specific loudspeaker is known…
It is a pleasure getting your feedback. Here is the Cliff Note version:
We want to have a patient adjust a sine wave to “approximate” their perception of tinnitus for frequency and also for intensity.
If they report that their tinnitus sounds more like noise, the we would have them adjust white noise until the narrow band “approximates” the sound of their tinnitus for frequency (narrow band) and intensity.
I think (hope) I have finally understood what the problem is. The exact SPL value is not really important here, it’s the exact frequency range that matters. This can be tested with standard computer equipment, but the loudspeakers should not be too cheap.
I live in Germany and therefore I’m too far away from Texas to be a real help, also I’m an electrician (RFT = German abbreviation for “radio/television broadcast technician”), and not a really good software programmer.
But I can translate your specification from otorhinolaryngology language (ear, nose, throat doctor) to audio software engineer language, so this may help you to find the person you need to accomplish this task:
Generate an adjustable sinusoidal tone (from 200 Hz to 20 kHz)
a. Minimum oscillator frequency increments: 1/6 octave
b. Adjustable oscillator amplitude in a range of 70dB minimum
Generate an adjustable white noise signal
a. Use slides to adjust low-cut and high-cut filters to establish a narrow band noise from the white noise signal
b. Minimum filter cutoff increments: 1/6 octave
c. Adjustable noise amplitude in a range of 70dB minimum
Special notes:
a. Displays should represent the actual wave forms for the frequencies (Sine and Noise)
i. Ability to adjust the color of the wave display would be nice, but not essential.
ii. Must have SDK with code and instructions.
iii. Guidance and suggestions for best calibration of signals is required.
Background information: For an audio developer “1/3 octave” is the frequency range of a standard bandpass audio filter, as used in audio measurement equipment, where “1/6 octave” means “double precision is needed”. This assumes that (<30Hz) was meant for 200Hz, because (<30Hz) at 20kHz is an irrational demand.
The “amplitude range” limit of a standard computer soundcard is 96dB, so implementing an adjustable amplitde range of 70dB is no real problem, but the acousical loudness in SPL must then be set by the volume knob of the audio amplifier.
The frequency adjustments for sinewave or noise can be easily done by the patient him/herself, but for the intensity level medical assistance is needed.
Again, I thank you for your professional comments, as they are very helpful. I would very much appreciate your assistance in finding someone to build this program. If I had your email address, i could send you some more in-depth documentation, that wouild greatly benefit anyone working on the project. My email is: drdavidholmes_AT-gmail-DOT_com.
Since their software doesn’t run directly in the browser, the proposed solution is to use an API that allows sending and receiving frequency data between your web application and the software. Once the software (like Audacity) is installed on the user’s device, it could handle the frequency adjustments.
for the first-time users, your web application should detect if the required software is installed, and if not, prompt the user to install it, ensuring that the setup process is simple and automatic. This is expected to be a one-time process, and subsequent logins won’t require any further actions.
Additionally, for the second question, the type of application (web or desktop) doesn’t matter in terms of accessing the tone generator.
for more related solutions consider our [Advertising Deleted]