Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

remote audio stream

Jim Shaffer
Jim Shaffer Member ✭✭
edited July 2019 in SmartSDR API

The OpusStream class has disappeared in version 3, and apparently even in 2.5.1.  I'm surprised to see this in the middle of a release.
I see RXRemoteAudioStream, RXAudioStream, and TXRemoteAudioStream.
Is the use of these described somewhere?


  • Jim Shaffer
    Jim Shaffer Member ✭✭
    edited June 2019

    An explanation of this new audio interface is definitely in order here.
  • Doug Hall
    Doug Hall Member ✭✭
    edited June 2019
    I don't have any inside info, so this is just speculation. I wonder if it has anything to do with the fact that the Opus vocoder is only used during a SmartLink session? On a LAN (or VPN which looks like a LAN) Opus is apparently not used and there is no audio compression. I think this behavior is new for 3.x and 2.51. Or at least I don't think it was present in 2.49.
    Doug K4DSP

  • Jim Shaffer
    Jim Shaffer Member ✭✭
    edited July 2019

    remote audio stream

    I think I can now finally answer my own question.  Note that when I mention "output", I'm referring to output from the rig, and "input" refers to input to the rig.

    The remote audio has changed somewhat between releases 2.4.9 and 2.5.1, but not that much.  In 2.4.9, for audio output, you used RequestAudioStream(channel#) to request a DAX channel (AudioStream object), and in 2.5.1 you use RequestDAXRXAudioStream(channel#) to request a DAX channel (a DAXRXAudioStream object.  In both cases, a DAX channel is assigned to a slice.  For transmit, input, you used RequestTXAudioStream() in 2.4.9 to get an input channel (a TXAudioStream object), and in 2.5.1, RequestDAXTXAudioStream() to get a channel (a DAXTXAudioStream object).  Of course, there is only one transmit channel.

    For the remote, Opus, audio channels, in 2.4.9 and before, when you connected to a remote radio, over the internet or WAN, you got an Opus channel upon connecting, which you used for both input and output.  With 2.5.1, you must use RequestRXRemoteAudioStream() to get an RXRemoteAudioStream object, and RequestRemoteAudioTXStream() to get a TXRemoteAudioStream object.  The one RXRemoteAudioStream serves all channels for output.  Also, for 2.4.9 and before, you needed to make sure RemoteRXOn was set to true for the radio, and in 2.5.1, make sure RemoteTXOn is set if you want to transmit.

    I think this covers the high points.

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.