A hybrid vocoder that uses both DVSI hardware and Codec2 open source software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tom Early 8fa16713d1
run-time config
3 years ago
codec2 added codec2 from mvoice 4 years ago
config run-time config 3 years ago
.gitignore run-time config 3 years ago
Configure.cpp run-time config 3 years ago
Configure.h run-time config 3 years ago
Controller.cpp run-time config 3 years ago
Controller.h run-time config 3 years ago
DV3000.cpp Updates from master 3 years ago
DV3000.h Updates from master 3 years ago
DV3003.cpp Updates from master 3 years ago
DV3003.h Updates from master 3 years ago
DVSIDevice.cpp Updates from master 3 years ago
DVSIDevice.h Updates from master 3 years ago
DVSIPacket.h support for dvsi 300{0,3} 4 years ago
LICENSE Initial commit 4 years ago
Main.cpp run-time config 3 years ago
Makefile run-time config 3 years ago
PacketQueue.h Updates from master 3 years ago
README.md run-time config 3 years ago
TCPacketDef.h mend 4 years ago
Timer.h several improvements to CTranscoderPacket 4 years ago
TranscoderPacket.cpp Add USRP transcoding 3 years ago
TranscoderPacket.h Add USRP transcoding 3 years ago
UnixDgramSocket.cpp mend 4 years ago
UnixDgramSocket.h mend 4 years ago
WinTypes.h switched to ftd2xx 4 years ago
ftd2xx.h switched to ftd2xx 4 years ago

README.md

tcd

tcd is a hybrid digital voice transcoder for ham radio used by the new URF reflector.

Introduction

This will build a new kind of hybrid transcoder that uses AMBE DVSI-based hardware for vocoding digital voice streams used in DStar/DMR/YSF and David Rowe's open-source Codec2 used in M17. TCd is optimized for performance by using a highly multi-threaded design that incorporates blocking I/O to make it as efficient as possible.

This is the only transcoder that will work with the URF reflector.

The imbe_vocoder library is required for P25 and can be found here:

https://github.com/nostar/imbe_vocoder

To use md380_vocoder along with a single DV Dongle on an ARM platform (like RPi) change the line 'swambe2 = false' to 'swambe2 = true' in the Makefile. The md380_vocoder library can be found here:

https://github.com/nostar/md380_vocoder

This software is loosely based on LX3JL's ambed, but is easily different enough to be considered an entirely original work. Here are some major differences with ambed:

  • tcd uses both hardware-based and software-based vocoders, providing a bridge between the closed source vocoders used in DStar, DMR and YSF and open-source vocoders used in M17.
  • UNIX Sockets are used to communicate between the reflector and this transcoder. This greatly simplifies the code and significantly improves transcoding performance.
  • AMBE vocoders are dedicated to an assigned reflector channel. This prevents overloading when processing multiple voice streams and provides the best possible performance for the reflector's clients.

Constraints and Requirements

This branch uses only one 300x device for the AMBE+(DStar) codec. The md380_vocoder library is used for the AMBE+2 (DMR/YSF/NXDN) codec. This means that this branch of tcd must run on an ARM platform like a RPi.

Currently, this program must be run locally with its paired URF reflector. Remote transcoding is not yet supported.

Only systemd-based operating systems are supported. Debian or Ubuntu is recommended. If you want to install this on a non-systemd based OS, you are on your own. Also, by default, tcd is built without gdb support.

Download the repository

In the parent directory of you urfd repository:

git clone https://github.com/n7tae/tcd.git
cd tcd

To be perfectly clear, the urfd reflector repository clone and this clone must be in the same directory.

Configuring and compiling

Copy the three configuration files: cp config/* . Use your favorite text editor:

  • tcd.mk defines some compile time options. Once you've set these options, do make
  • tcd.ini defines run-time options. It is especially imporant that the Transcoded line for the tcd.ini file is exactly the same as the same line in the urfd.ini file!
  • tcd.service is the systemd service file. be sure the ExecStart line will successfully start tcd!

Installing and other activities

If the transcoder is local, all other activities will be performed by the ./radmin scripts in your urfd repo.

73

DE N7TAE

Powered by TurnKey Linux.