diff --git a/osmo-tetra b/osmo-tetra
index 185a659..1ff09fd 160000
--- a/osmo-tetra
+++ b/osmo-tetra
@@ -1 +1 @@
-Subproject commit 185a6590481fc01e6f421d595b5a23680ee399b5
+Subproject commit 1ff09fdd9109de3454a1c6737b8a64e6ded29085-dirty
diff --git a/radio-tetra/config.sh b/radio-tetra/config.sh
index bf9142d..86c0f0b 100644
--- a/radio-tetra/config.sh
+++ b/radio-tetra/config.sh
@@ -24,23 +24,23 @@ FIFO_TMP_DIR=${TMP_DIR}/fifo
 REC_TMP_DIR=${TMP_DIR}/tetra-raw
 # where to store decoded tetra audio files
 REC_DIR=~/tetra-rec
-# format of audio, use anny of: wav, flac, ogg
-REC_FORMAT=ogg
+# format of audio, use anny of: cdata.bz2, wav, flac, ogg
+REC_FORMAT=cdata.bz2
 # number of decoded channels
 STREAMS=72
 
-TUNE_FREQ=424e6
-TUNE_PPM=0
+TUNE_FREQ=424150e3
+TUNE_PPM=1
 SAMPLE_RATE=1.8e6
 # set gain, comment out for automatic gain setting
-#TUNE_GAIN=36
+TUNE_GAIN=36
 # Band width usefull for automatic squelch threshold detection
 # values >= 1 are interpreted as a fraction of sample rate.
 SIGNAL_DETECTION_BW=0.8
 # Therhold level (above detected noise level) for automatic squelching.
-#SIG_DETECTION_THRESHOLD=6
+SIG_DETECTION_THRESHOLD=6
 # arguments for osmo-sdr RX block, use rtl_tcp=<ADDR>:<PORT> for TCP source
-OSMO_SDR_ARGS=""
+OSMO_SDR_ARGS="rtl_tcp=10.34.6.90:1234"
 
 # set to yes to enable debug logging
 #DEBUG=yes
diff --git a/radio-tetra/tetra.sh b/radio-tetra/tetra.sh
index b5d161b..b514bac 100755
--- a/radio-tetra/tetra.sh
+++ b/radio-tetra/tetra.sh
@@ -31,7 +31,9 @@ start_demod() {
 	SIG_DETECTION_BW=${SIG_DETECTION_BW:+--sig-detection-bw ${SIG_DETECTION_BW}}
 	SIG_DETECTION_THRESHOLD=${SIG_DETECTION_THRESHOLD:+--sig-detection-threshold ${SIG_DETECTION_THRESHOLD}}
 	SAMPLE_RATE=${SAMPLE_RATE:+-s ${SAMPLE_RATE}}
-	${ROOT}/radio-tetra/tetra_rx_multi.py \
+	#~/fcl/examples/tetra.py \
+	export GR_SCHEDULER=STS
+	~/fcl/examples/tetra1.py \
 		-f "${TUNE_FREQ}" \
 		${TUNE_PPM} \
 		${TUNE_GAIN} \
@@ -41,18 +43,39 @@ start_demod() {
 		${SIG_DETECTION_THRESHOLD} \
 		-o "file:///${FIFO_TMP_DIR}/bits%d" & 2>&1
 	DEMOD_PID=$!
+	sudo renice -n -5 -p $DEMOD_PID
+
+  export GR_SCHEDULER=STS
+  ~/fcl/examples/tetra2.py \
+    -f "${TUNE_FREQ}" \
+    ${TUNE_PPM} \
+    ${TUNE_GAIN} \
+    ${OSMO_SDR_ARGS} \
+    ${DEBUG} \
+    ${SIG_DETECTION_BW} \
+    ${SIG_DETECTION_THRESHOLD} \
+    -o "file:///${FIFO_TMP_DIR}/bits%d" & 2>&1
+  DEMOD_PID=$!
+  sudo renice -n -5 -p $DEMOD_PID
+	
 }
 
 cleanup() {
 	kill ${DEMOD_PID}
 }
 
+mkdir -p /tmp/fifos/
+
 trap cleanup EXIT
 cd "${OSMOTETRA_DIR}"
 #rm -rf ${FIFO_TMP_DIR}
 for i in `seq 0 ${STREAMS}`; do
 #	./tetra-rx "${FIFO_TMP_DIR}/bits${i}" "${REC_TMP_DIR}/${i}" >"${REC_TMP_DIR}/log${i}.txt" 2>&1 & #DEBUG
-	./tetra-rx "${FIFO_TMP_DIR}/bits${i}" "${REC_TMP_DIR}/${i}" >"${FIFO_TMP_DIR}/log${i}.txt" 2>&1 &
+#	./tetra-rx "${FIFO_TMP_DIR}/bits${i}" "${REC_TMP_DIR}/${i}" >"${FIFO_TMP_DIR}/log${i}.txt" 2>&1 &
+#	./tetra-rx "${FIFO_TMP_DIR}/bits${i}" "${REC_TMP_DIR}/${i}" >/dev/null 2>&1 &
+        mkfifo /tmp/fifos/fifo$i
+        ./tetra-rx -a $i -t /tmp/fifos/fifo$i -d "${REC_TMP_DIR}/${i}" "${FIFO_TMP_DIR}/bits${i}" >/dev/null 2>&1 &
+
 done
 
 start_demod
@@ -90,12 +113,20 @@ while true; do
 		mkdir -p "${fpath}"
 
 		./cdecoder "$i" ${TMP_DIR}/traffic.cdata > /dev/null 2>&1
+
+		c=`echo ${i} | cut -d "/" -f 6` # breaks when not in /home/user/
+		# FIXME not relative frequency
+		mkdir -p "${fpath}/codec/"
+		TNAME="${fpath}/codec/${fn}.o${c}.${REC_FORMAT}"
+
+		cat ${TMP_DIR}/traffic.cdata | ~/gr-pack | bzip2 -9 > ${TNAME}
+		TNAME="${fpath}/${fn}.o${c}.ogg"
 		./sdecoder ${TMP_DIR}/traffic.cdata ${TMP_DIR}/traffic.raw  > /dev/null 2>&1
-		sox -q -r 8000 -e signed -b 16 -c 1 ${TMP_DIR}/traffic.raw "${fpath}/${fn}.${REC_FORMAT}"
+		sox -q -r 8000 -e signed -b 16 -c 1 ${TMP_DIR}/traffic.raw "${fpath}/${fn}.o${c}.ogg"
 
 		mv "${i%%.out}.txt" "${fpath}/${fn}.txt"
 		echo "created: ${fpath}/${fn}"
-		length=$(($(stat -c %s ${TMP_DIR}/traffic.raw)/16)) # in [ms]
+		#length=$(($(stat -c %s ${TMP_DIR}/traffic.raw)/16)) # in [ms]
 # WTF, where is the fucking file ???
 #		${ROOT}/add_group.py -i ${ssi} -t ${mtime} -l ${length}
 		rm "${i}"
diff --git a/radio-tetra/tetra_rx_multi.py b/radio-tetra/tetra_rx_multi.py
index f9a0ad1..44c2c6b 100755
--- a/radio-tetra/tetra_rx_multi.py
+++ b/radio-tetra/tetra_rx_multi.py
@@ -37,7 +37,7 @@ class tetra_rx_multi(gr.top_block):
         self.afc_ppm_step = 100
         self.debug = options.debug
         self.last_pwr = -100000
-        self.sig_det_period = 1
+        self.sig_det_period = 10
         self.sig_det_bw = sig_det_bw = options.sig_detection_bw or srate_rx
         if self.sig_det_bw <= 1.:
             self.sig_det_bw *= srate_rx
@@ -108,6 +108,14 @@ class tetra_rx_multi(gr.top_block):
             map_bits = digital.map_bb(([3, 2, 0, 1, 3]))
             unpack_k_bits = blocks.unpack_k_bits_bb(2)
 
+            brmchannels = [0,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,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]
+            #brmchannels = [11,4,3,64,45,47,53,8,68,6,56,49,17,54,65,5,71,22,48,7,50] # itds kancl
+            #brmchannels = [23,13,40,69,59,7,42,54,5,14,4,56,45,46,67,55,66,44,71,49,31,57,0,65,70] # doma - dole
+            brmchannels = [23,13,59,40,69,7,49,60,42,70,4,50,66,67,3,14,57,33,46,22,68,32,39,24,6,12,43,58,48,17,5,56,65,29,54,30,16,52,53,41,47,2,34,44,8] # doma - strecha
+            #brmchannels = [67, 7, 23, 70] # doma - strecha - SDS
+            brmchannels = [67, 7, 23, 70,9,71,64,63,62,61,55,51,45,38,37,36,35,31,28,27,26,25,21,20,19,18,15,11,10,1,0] # doma - strecha - komplement
+
+
             if out_type == 'udp':
                 sink = blocks.udp_sink(gr.sizeof_gr_char, dst_ip, int(dst_port)+ch, 1472, True)
             elif out_type == 'file':
@@ -116,8 +124,9 @@ class tetra_rx_multi(gr.top_block):
             else:
                 raise ValueError("Invalid output URL '%s'" % options.output)
 
-            self.connect((self.channelizer, ch),
-                    (squelch, 0),
+            if ch in brmchannels:
+                self.connect((self.channelizer, ch),
+                    #(squelch, 0),
                     (mpsk, 0),
                     (diff_phasor, 0),
                     (complex_to_arg, 0),
@@ -128,6 +137,7 @@ class tetra_rx_multi(gr.top_block):
                     (unpack_k_bits, 0),
                     (sink, 0))
 
+
             self.squelch.append(squelch)
             self.digital_mpsk_receiver_cc.append(mpsk)
             self.diff_phasor.append(diff_phasor)
@@ -161,7 +171,7 @@ class tetra_rx_multi(gr.top_block):
                 if not pwr:
                     continue
                 pwr = min(pwr) + self.sig_det_threshold
-                print "Power level for squelch % 5.1f" % pwr
+                print "power threshold target %f"%pwr
                 if abs(pwr - self.last_pwr) > (self.sig_det_threshold / 2):
                     for s in self.squelch:
                         s.set_threshold(pwr)
@@ -198,9 +208,10 @@ class tetra_rx_multi(gr.top_block):
                 if abs(err) < self.afc_ppm_step:
                     continue
                 freq = self.freq_xlating.center_freq + err * self.afc_gain
-                if self.debug:
-                    print "err: %f\tfreq: %f" % (err, freq, )
+                print "err: %f\tfreq: %f" % (err, freq, )
                 self.freq_xlating.set_center_freq(freq)
+
+        self.afc_channel = 23
         self._afc_err_thread = threading.Thread(target=_afc_probe)
         self._afc_err_thread.daemon = True
         self._afc_err_thread.start()
