Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
Need the latest SmartSDR, Power Genius, Tuner Genius and Antenna Genius Software?
SmartSDR v3.8.20 and the SmartSDR v3.8.20 Release Notes
SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
Power Genius XL Utility v3.8.9 and the Power Genius XL Release Notes v3.8.9
Tuner Genius XL Utility v1.2.11 and the Tuner Genius XL Release Notes v1.2.11
Antenna Genius Utility v4.1.8
SmartSDR v3.8.20 and the SmartSDR v3.8.20 Release Notes
SmartSDR v2.12.1 and the SmartSDR v2.12.1 Release Notes
Power Genius XL Utility v3.8.9 and the Power Genius XL Release Notes v3.8.9
Tuner Genius XL Utility v1.2.11 and the Tuner Genius XL Release Notes v1.2.11
Antenna Genius Utility v4.1.8
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.
Decoding Opus Packets
Cliff - G4PZK
Member ✭✭
I am successfully receiving Opus audio packets both using C#, and latterly javascript via a websocket, but I am unable as yet to decode them to produce audio. I know from earlier posts that Opus packets of around 64 (32 bit) 'samples' are sent in each packet and also that the Opus stream is 2 channels 'sampled' at 24kHz but how do I decode them? If anybody has working C# code (probably with an external library) perhaps they could point me in the right direction?
I have even tried a javascript library without success. The Opus packets appear to be simply data packets without any form of packaging, eg ogg, and so even if I dump incoming data to a file and then attempt to play it back using vlc or audacity using ffmpeg I still cannot get any audio out.
As an aside I have successfully produced audio using a DAX channel and simply javascript player but of course there is no compression and the data rate is much higher.
Any pointers gratefully received of course.
Cliff, G4PZK
0
Answers
-
1
-
0
-
0
-
0
-
0
-
1
-
1
-
1
-
Very interesting thread! Thanks for posting it here for all to follow along. I haven't really messed with audio decoding yet in my program. I am still trying to make my waterfall work properly. Being an over the road trucker gives little time for coding! James WD5GWY1
-
Take a look at POpus0
-
0
-
Hi James,
Glad you found it interesting, programing the Flex is becoming an obsession for me now. The waterfall part of the coding is always tricky as it's quite complex in many ways.
Good luck when you get time to get it going.
Cliff, G4PZK
1 -
Cliff,
I agree that "it's complicated until you understand it", the problem for me is that after I understand it I forget it. It seems that once I finish something (e.g. Opus audio), a few months later while working on something else I need to go back to it and have to relearn a bit. It's one reason I've become a fanatical commenter, the comments are mostly for my own benefit.
It would be nice to have a thorough set of documentation to refer to. Since Flex produces the Radio (i.e firmware), the API (FlexLib) and the client (SmartSDR) they don't really need to share documentation with the rest of us. It's only as a courtesy to us that they provide the source for FlexLib. I sympathize with their efforts to document things (e.g. the Wiki). I've tried similar approaches and come away believing the code and the comments are the only documentation that will remain current.
I have done a large variety of languages starting at ones and zeros, then assembler .... I started my Apple project in Objective-C but switched whole-heartedly to Swift. I find Swift to be very powerful and relatively easy. I really like the Apple development environment (Xcode). What I like about Swift (different from C) is that one of its core objectives is to detect errors at compile time as opposed to run time.
I'm not aware of the problem you describe with Flex and TCP. As far as I know I have never failed to receive a reply to a TCP command. I think I'll add some code to verify that.0
Leave a Comment
Categories
- All Categories
- 260 Community Topics
- 2.1K New Ideas
- 538 The Flea Market
- 7.6K Software
- 6K SmartSDR for Windows
- 139 SmartSDR for Maestro and M models
- 368 SmartSDR for Mac
- 242 SmartSDR for iOS
- 226 SmartSDR CAT
- 175 DAX
- 345 SmartSDR API
- 8.8K Radios and Accessories
- 6.9K FLEX-6000 Signature Series
- 44 FLEX-8000 Signature Series
- 859 Maestro
- 45 FlexControl
- 849 FLEX Series (Legacy) Radios
- 807 Genius Products
- 424 Power Genius XL Amplifier
- 280 Tuner Genius XL
- 87 Antenna Genius
- 227 Shack Infrastructure
- 153 Networking
- 409 Remote Operation (SmartLink)
- 130 Contesting
- 640 Peripherals & Station Integration
- 116 Amateur Radio Interests
- 878 Third-Party Software