summaryrefslogtreecommitdiff
path: root/stacks/crdop/docs/CONFIG.md
blob: 821fd1cd1fb6721200cc05d62b061cd86ddc9205 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Configuration

`scripts/crdopc` reads INI → starts native `audio-dummyd` (M25/KISS host).

## INI search order

1. `$CRDOP_INI`
2. `~/.config/crdop/crdop.ini`
3. `share/crdop.ini.example`

Templates: `share/crdop.ini.example` · `share/crdop-dual.ini.example` · `share/crdop-amateur.ini.example`

## Keys

### `[profile]`

| Key | Default | Values |
|-----|---------|--------|
| `radio_profile` | `cb` | `cb` · `dual` · `amateur` |

### `[modem]`

| Key | Default | Notes |
|-----|---------|-------|
| `arq_bandwidth` | profile | `500MAX` (cb/dual) · `1000MAX` (amateur) |
| `duplex` | `half` | `half` · `full` (`full` → `EXTRADELAY 0`) |
| `extra_delay_ms` | _(auto)_ | Override delay; empty = profile default |

### `[host]` · `[mycall]` · `[audio]`

| Section | Key | Default | Notes |
|---------|-----|---------|-------|
| host | `port` | `8515` | TCP control |
| mycall | `call` | `NOCALL-0` | On-air ID |
| audio | `backend` | `alsa-kernel` | Kernel ALSA only — see [AUDIO-ARCHITECTURE.md](AUDIO-ARCHITECTURE.md) |
| audio | `no_pulse` | `yes` | Reject PulseAudio/PipeWire pseudo devices |
| audio | `capture` | _(required)_ | e.g. `hw:1,0` from `arecord -l` |
| audio | `playback` | _(required)_ | e.g. `hw:1,0` from `aplay -l` |
| audio | `sample_rate` | modem default | Hz |
| audio | `period_frames` | auto | Buffer tuning |

**No PulseAudio** in the production path. The **MAX25 sound-proxy** opens ALSA directly; `scripts/crdopc` clears Pulse/PipeWire session env when `no_pulse=yes`.

## Environment

| Variable | Purpose |
|----------|---------|
| `CRDOP_INI` | Config file path |

Examples: [EXAMPLES.md](EXAMPLES.md)
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com