Sorry to drag up an ancient thread. I was wondering what specific modifications were
needed for the general_work function of op25_decoder_ff.cc?
Does only returning synthesized frames work or does IMBE expect for some empty results to
be inserted where there is no data to smooth things out? I am trying something similar
using DSD and the WAV files I record with only synthesized data do not sound as good as
audio played back with empty frames returned when no data is available.
Thanks for any tips you have!
Luke
--- In op25-dev(a)yahoogroups.com, "Balint" <balint256@...> wrote:
Dear all,
I've uploaded to the Files section of the board a new 'audio_p25_rx.py',
which is the original file modified to output IMBE audio, and read/write
WAV/float data files (since I don't have a USRP and use a discriminator
tap).
Some notes:
# wx must be set to 'nongl' mode (widgets are the older non-OpenGL type)
# Make sure your ~/.gnuradio/config.conf has a '[wxgui]' section, which
contains the line 'style=nongl'
#
# Voice output requires the environment variable 'IMBE' set to 'soft',
AND
modification to op25_decoder_ff.cc to prevent
# excessive zero values being output (which chops up the real output
stream and produces too much silence) - this can
# be done by only producing 'general_work' output values when actual voice
data is synthesised (i.e. return the number
# of synthesised samples produced and don't pad the output buffer with
silence)
#
# If you want to capture using Wireshark, don't forget to run this as root!
# Use the '-w' wait option, then start Wireshark and begin capturing, then
return to your terminal and hit any key.
In addition, I've found that software_imbe_decoder dies sporadically at
'decoder/src/lib/software_imbe_decoder.cc:1022'. I believe this is because
the class member variable 'OldL' is left un-initialised, and used as such on
line 1018. Adding 'OldL = 0;' to the class constructor (line 756) appears to
fix the problem (and causes the 'OldL == 0' check on line 1005 to kick in).
Please let me know if you try the new Python code and have any problems.
Balint