# SSIGIN

Read/write signal from/to a wave item.

## [SPU SIGOUT SIG X1 .. X8 OUT SR I XMAX]

description frame position random read → read frame centered around position POS POS-L/2 .. POS+L/2-10 ≤ POS < SIG[!length] absolute read → read frames (blocks) without overlap I*L/2 .. POS+L/2-10 ≤ POS < SIG[!length]

input description data type value type default value
A input data number, vector variable
B masker or threshold number, vector variable
C replacement data number, vector variable
COND condition number (int.), string variable 0
output description data type value type comment
Y masked data same type as A variable
Description

If the condition defined by COND is true, Ci is assigned to Yi, otherwise Yi is set to Ai.

If A is a vector, the inputs B and C can be numbers or vectors with the same length as A. The output Y has always the same type as A.

COND Assignment
0 or < ${\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}
1 or > ${\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}>B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}$
2 or ≤ ${\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}\leqslant B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}$
3 or ≥ ${\displaystyle Y_{i}={\begin{cases}C_{[i]}&{\mbox{if }}A_{i}\geqslant B_{[i]}\\A_{i}&{\mbox{otherwise}}\end{cases}}}$

with: 0 ≤ i < length of A; [i] means: index is used only if the input is a vector

<SP-atoms>

#### SSIGIN - read signal (for filters, ...)

##### Usage:

SSIGIN SIG REV L S K D

##### Inputs:
 SIG name of shell-wave-item no default REV 0, YES|1) def.=NO L frame length in samples (>=4) def.=1024 S frame shift in samples (1 <= S <= L) def.=L/4 K amplification factor def.=1 D differentiation factor (0..1) def.=0
##### Outputs:
 Xi signal of channel i (L samples) SR sampling rate in Hz N number of frames I frame counter (0..N)
##### Function:

This atom implements an alternative signal-frame read function that can be used instead of CSIGN. The frame-splitting method is designed to be used for filter or other frequency-domain processing methods. The partitioning of the signal is similar to the method used by the phase vocoder, but no windowing or other processing is applied to the frames. The picture below shows the frame partitioning method:

Frame partitioning method used by SSIGIN

##### Notes:

This read function is currently not used, because specialized signal-I/O (analysis/re-synthesis) atoms for the filter methods have been implemented. The values of the outputs SR and N are set during the initialization. The output I is initialized to 0 and incremented by 1 after each read cycle. The input REV can be used to reverse the signal in time.