; ; downlink_voice.dspg ; graphName downlink_voice ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Macros ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [def FFT_BLOCK_SIZE 240] [def IO_BLOCK_SIZE 240] [def IO_SAMPLE_RATE 24000] [def VOICE_INPUT_CHANNEL_COUNT 1] [def VOICE_OUTPUT_CHANNEL_COUNT 1] [def ENABLE_OCNS 0] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Constants ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [def kAUOneChannelNSParam_SpeechProbability 1] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; I/O ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; in Input out Output ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Boxes ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; box PreEQ (aufx nbeq appl) 1 1 box VoiceEQ (aufx tmst appl) 1 1 box Deesser (aufx dees appl) 1 1 box Gain dbgn 1 1 [if [and [== [ENABLE_OCNS] 1] [and [== [VOICE_INPUT_CHANNEL_COUNT] 1] [== [IO_BLOCK_SIZE] [FFT_BLOCK_SIZE]]]] { box OCNS (aufx ons4 appl) 1 1 }{}] [if [!= [VOICE_INPUT_CHANNEL_COUNT] [VOICE_OUTPUT_CHANNEL_COUNT]] { box ChannelSelector (aufx clsl appl) 1 1 }{}] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Wires ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; wire Input PreEQ ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) wire PreEQ VoiceEQ ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) wire VoiceEQ Deesser ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) wire Deesser Gain ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) [if [and [== [ENABLE_OCNS] 1] [and [== [VOICE_INPUT_CHANNEL_COUNT] 1] [== [IO_BLOCK_SIZE] [FFT_BLOCK_SIZE]]]] { wire Gain OCNS ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) [if [== [VOICE_INPUT_CHANNEL_COUNT] [VOICE_OUTPUT_CHANNEL_COUNT]] { wire OCNS Output ([IO_SAMPLE_RATE] [VOICE_OUTPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) }{ wire OCNS ChannelSelector ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) wire ChannelSelector Output ([IO_SAMPLE_RATE] [VOICE_OUTPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) }] }{ [if [== [VOICE_INPUT_CHANNEL_COUNT] [VOICE_OUTPUT_CHANNEL_COUNT]] { wire Gain Output ([IO_SAMPLE_RATE] [VOICE_OUTPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) }{ wire Gain ChannelSelector ([IO_SAMPLE_RATE] [VOICE_INPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) wire ChannelSelector Output ([IO_SAMPLE_RATE] [VOICE_OUTPUT_CHANNEL_COUNT] [IO_BLOCK_SIZE]) }] }] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Parameters ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [if [and [== [ENABLE_OCNS] 1] [and [== [VOICE_INPUT_CHANNEL_COUNT] 1] [== [IO_BLOCK_SIZE] [FFT_BLOCK_SIZE]]]] { param dnsp 0 out wireGraphParam dnsp (OCNS [kAUOneChannelNSParam_SpeechProbability]) }{}]