Skip to content

IPAT and parameters

JP150PCB 1.3PCB 1.4Jan PřibyslavskýThis page does not apply to the product or PCB revision chosen in the header.

The firmware does not write into the DSP program's memory by raw address. It goes through the program's indirect parameter access table (IPAT): a table the SigmaStudio design builds, in which each entry names a parameter cell and whether it may be written or read back. The firmware and the hosts address a parameter by its table entry, so a design can change and recompile without the firmware having to know where a cell landed.

What the firmware uses

Use Table entry Direction Why it matters
Input selection The input mux of the INPUTS_PROCESSING board Write The firmware writes the value of the selected source through it once the DSP program runs, at power-up and after every wake. Without the entry the input cannot be selected and the DSP plays its export default, the test tone
Level meter The rms output of the level meter, read-enabled entry 0x600A Read Drives the six LEDs of the level meter, answers DSP:LVLMETER:RMS? and feeds the silence threshold of the automatic power-down. Without it the meter stays dark and the module never powers down on silence

Both come with the starter project. An own design keeps the INPUTS_PROCESSING board unchanged, and with it these two entries and the per-source values of the input mux.

The firmware waits for the DSP program to start before it writes the input, because a parameter written during the boot would be overwritten by the boot image; DSP:BOOT? shows when that happened. The input mux entry is write-only, so the firmware cannot read the selection back; the value SYS:INPUT? reports is the one it last wrote.

Your own parameters

A parameter you expose in the table can be written from MuraLink on DSP > Direct memory: under DSP IPAT write, enter the entry's indirect write address as Write address (IPAT) and the Value, and click Write via IPAT; MuraLink asks for a confirmation, because the write affects the live audio path. Over the control interface the same write is DSP:IPAT:SETBLOCK <write_address>,<value>. The write address is the entry's indirect write address from the project's export; the value is the 32-bit word of the cell's format (for example 8.24 fixed point for a gain). Nothing is read back, so a host keeps its own copy of what it wrote. The deprecated DSP:INPUTMUX commands write the mux behind the table instead and are kept only for old software.

DSP, Direct memory
DSP > Direct memory: the block write and the write through the IPAT.

DSP:SETBLOCK <address>,<value> (DSP block write on the same MuraLink page) writes a value to a direct DSP address and bypasses the table. It is a diagnostic primitive: a parameter that the table manages must not be written this way, or the program's own copy and the hardware diverge.

To be added

The table of the starter project's parameter entries (name, write address, read address, format) and the SigmaStudio steps that add an entry of your own.