CHANGES version 25sep2005 version 0.4.1: fixed aec_test.cpp Tuning of parameter Thold and xfast threshold (from -55dB to -70dB) Speaker output only right Line-out channel version 0.4: new Soft decision Adrian DTD speex_bits_write() gives different return value with Speex 1.0 and Speex 1.1 lib. Emit error message "Update Speex lib to 1.1" mix 2040Hz for VHF transmitter activation (not Intercom relevant) Common Answer button Diversion button visualize w vector (TCP connection intercomd to wdisplay.tcl) Leaky NLMS algorithm version 0.3.6: Soft decision Adrian DTD instead of Geigel DTD Soft decision Acoustic Echo Suppression program option -b for no Acoustic Echo Suppression Wideband Speex now 27.8kBit/s net (was 20.6kBit/s) version 0.3.5: Reduce number of compile warnings (change signed to unsigned, ...). Disable capture switch does no longer freeze intercomd. add Wideband Speex Codec (20.6kBit/s) option -k works in wideband mode. create 2 binaries for narrowband, wideband operation version 0.3.4: H-infinity LMS-pw instead of NLMS-pw algorithm. See Haykin, Adaptive Filter Theory, 4. Edition, Chap. 5.10. Cutoff Frequency now 2kHz for pre-whitening filters. Correct FIR and IIR highpass filters for narrowband/wideband. NoiseFloor is now -55dB for all codecs. In wideband mode, option -k is broken. Compressing codecs work bad in wideband mode. See file Makefile for wideband enabling. Work in progress MMX and SSE implementation of dot product dotp(). version 0.3.3: experimental Wide Band support. Open PCM out changed back to 0.3.1 behaviour. version 0.3.2: experimental Wide Band support. All codecs use 16kHz sample rate, options -f and -k are broken. Payload types are wrong. Open PCM out only on demand fixed in audio_write(). version 0.3.1: open UDP ports at program start in intercom.tcl (slow CPUs bug fix) version 0.3: Packet Loss Concealment for G.729, GSM-EFR Packet Loss default behaviour is silence, optional PLC check receive RTP packets payload type SSRC does no longer change for the station (unique identifier) fill RTP CSRC field at telephone conference Avoid audio loops (multiple UDP RTP connections) by checking CSRC Up/Down counter for active station notification in HMI alternative fixed point acoustic echo cancellation - see aecfix.cpp application ping from intercom.tcl to intercomd via TCP connection version 0.2.2: Codec specific ambient noise default because of AEC divergence Allow change of stability parameter delta for NLMS-pw any time Kill intercomd at intercom destroy (Close Button) Better handling of Operation System jitter Packet Loss Concealment for iLBC version 0.2.1: create 2 binaries with GSM-EFR and G.729 because of name conflicts add G.726 32kbps codec (ITU-T G.191) version 0.2: use Tcl/Tk tcludp lib for active station and failed station signalling use UDP port 5004 for RTP, UDP port 55004 for signalling add G.711 A-law, G.711 u-law, GSM codec (ITU-T G.191) add G.729 (ITU-T G.729), GSM-EFR (3GPP 46.053) codec write-only and read-only audio fd. Open PCM out only on demand version 0.1: first release. Features: iLBC codec (RFC3951, RFC3952) subset of RTP stack (RFC3550, RFC3551) Acoustic echo cancellation telephone conference intercom.tcl to intercomd process communication via TCP connection