Welcome to the BTMHA (Boys Town Master Hearing Aid) Web App. This application runs the BTMHA firmware and audio processing engine in your web browser using WebAssembly and a graphical interface.
The BTMHA engine is controlled via the CLI Terminal. You can enter commands or assign variables directly.
Core Commands:
start: Initiates real-time audio processing from the default input device to the output.stream: Displays the current input and output variables.list: Displays a list of all currently assigned variables and their values.play: Streams an audio file to the audio device.Live Tuning:
BTMHA supports "Live Tuning", allowing you to change variables dynamically without audio pops or clicks. To assign a value, use the = operator:
agc_attack = 5.0
srate = 24000This web app includes the audiometric test file, carrots.wav. You can use it to learn how BTMHA processes audio. Tip: You can copy and paste these multi-line blocks directly into the CLI terminal!
Step 1: Unprocessed Audio
Set the input file to the carrots passage and stream it directly to your audio device without any processing by using a pass-through mixer:
process = mixer
mixer = 1
input = carrots.wav
start(You will hear the unprocessed audio passage).
Step 2: Standard Compression
Assign the Generic Hearing Aid (gha) plugin and play the processed audio:
input = carrots.wav
process = plugin
plugin = gha
start(You will hear the audio playing with standard Wide Dynamic Range Compression).
Step 3: Instantaneous Compression
To demonstrate instantaneous compression, we chain the Complex IIR filter bank (ciirfb) with the instantaneous compressor (icmp):
input = carrots.wav
process = chain
chain = [p0.0 p1.0 p0.1]
plugin0 = ciirfb
plugin1 = icmp
start(You will hear the compression react to the signal envelope).
No Audio Output? Modern browsers block audio playback until you have interacted with the page. If you start audio immediately and hear nothing, make sure you have clicked anywhere on the page or inside the CLI Terminal first.