Deep dive into MRRC system architecture, DSP processing pipeline and advanced feature implementations
| Component | File | Function |
|---|---|---|
| Main Program | MRRC |
WebSocket server, handles audio streams and control commands |
| Audio Interface | audio_interface.py |
PyAudio wrapper, supports multiple format decoding |
| DSP Processing | wdsp_wrapper.py |
WDSP library wrapper, NR2/AGC/ANF |
| Transceiver Control | hamlib_wrapper.py |
rigctld communication wrapper |
| Tuner Proxy | atr1000_proxy.py |
ATR-1000 independent proxy process |
| Voice Assistant | voice_assistant_service.py |
Whisper ASR + Qwen3-TTS |
WDSP (Warren Pratt's Digital Signal Processing) is a high-performance DSP library from the OpenHPSDR project, widely used in professional amateur radio software.
| Module | Function | Effect |
|---|---|---|
| NR2 | Spectral Noise Reduction | 15-20dB noise reduction depth |
| NB | Noise Blanker | Eliminates impulse interference |
| ANF | Automatic Notch Filter | Removes single-tone interference |
| AGC | Automatic Gain Control | 4 selectable modes |
| Command | Format | Description |
|---|---|---|
| Set Frequency | setFreq:14074000 | In Hz, syncs to ATR-1000 |
| Get Frequency | getFreq | Read from rig, broadcast response |
| Set Mode | setMode:USB | USB/LSB/CW/FM/AM |
| Get Mode | getMode | Read mode from rig |
| PTT TX | setPTT:true | Key transmitter (with retry) |
| PTT RX | setPTT:false | Release (with ACK protocol, 3x retry) |
| Get PTT | getPTT | Read actual PTT state from hardware |
| Tune | tune:true / tune:false | Start/stop tune tone (5% volume) |
| CQ | cq:true / cq:false | Start/stop CQ playback (cq.wav) |
| WDSP Toggle | setWDSPEnabled:true | Enable/disable WDSP processing |
| NR2 Level | setWDSPNR2Level:2 | 0=OFF, 1=LOW, 2=MED, 3=HIGH, 4=MAX |
| Noise Blanker | setWDSPNB:true | Toggle NB (pulse interference) |
| Auto Notch | setWDSPANF:true | Toggle ANF automatic notch filter |
| Add Notch | addWDSPNotch:1500,200 | Manual notch (center_hz, width_hz) |
| AGC Mode | setWDSPAGC:3 | 0=OFF, 1=LONG, 2=SLOW, 3=MED, 4=FAST |
| Bandpass | setWDSPBandpass:300,2700 | Low Hz, High Hz |
| Recording | startRecording / stopRecording | Stereo WAV β MP3 recording |
| Memory | memLoadAll / memSaveAll:{json} | Per-user memory channels (6 slots) |
| Ping | PING | Latency check, responds PONG |
Check the installation guide or join community discussion