Search results

  1. B

    Teensy 4.1: Lots of noise on higher gains + clipping/peaking

    In Teensy audio, including Tympan, variables are either I16 16-bit signed integers, -32768 to 32767 in range, or they are F32 floating point with practical limits to their range. The problem is that the hardware is always I16. Somehow, the signal going to the output hardware must be in that...
  2. B

    Help with a 4 band parametric eq

    Take a look at doing it with FIR filtering. The size of the FIR relates to the relative frequency width of the narrowest band in the equalizer. Traditional hardware and some DSP implementations used biquad or similar IIR filtering. The Teensy handles the load of the FIR approach with ease, and...
  3. B

    Floating-Point Audio Library Extension

    I have not attempted to run your sketch, but a couple of things: You do not have a control object, such as SGL5000 for the Teensy audio adapter. Also, there seems to be a data type issue. The AudioRecordQueue_F32 will produce an array of 128 float (aka float32_t). Each float is 4 bytes. I...
  4. B

    Floating-Point Audio Library Extension

    Hi Mike - I've been away and fallen behind. A couple of thoughts, though, on mixed USB / Teensy Codec audio. As I understand it, the USB audio must come with an implied sample rate. This might be 44100 sps. The Codec has a sample rate set (usually) by the Teensy clock. This might be 44110...
  5. B

    Audio compressor

    Hi All - In the speech compression, the original F32 classes came from the hearing aid designers via the classes written by Chip. To me, these were fine, but used a lot of lingo that was specific to the original applications. Rather than adapt, I wrote AudioEffectCompressor2_F32 that retains...
  6. B

    Floating-Point Audio Library Extension

    I have no experience with PlatformIO. But, git is an easy way to keep your external library up-to-date, independent of what IDE you are using. The internet is loaded with examples of this. Once you have your favorite few git commands it can be very smooth. I might mention, though, that if...
  7. B

    New audio class for generating waveforms from sines

    Holger, thanks for putting this together. Good thinking material. But, I don't see why you can't just generate, for instance, a triangular waveform and then run this through a linear-phase LP FIR filter. All components below the cut-off would align properly since the delay in the FIR is...
  8. B

    Floating-Point Audio Library Extension

    I suspect, for transmitting, the criteria for optimal should be carrier rejection. That is because most of the other problems can be dealt with in DSP software. But, the carrier balance comes from the hardware alone. That may not be helpful, as in my limited looking, I have not seen...
  9. B

    Floating-Point Audio Library Extension

    Hi Mike - I am not current in what is available for IQ hardware. I know K7MDL has used the RS-HFIQ that may be out of stock. But the schematics are available and a they should tell how to build just the pieces that you need. There must be more approaches to this, but I know the RS-HFIQ was...
  10. B

    Floating-Point Audio Library Extension

    Hi Mike - There are two ways to get to HF. They both have pros and cons. You can use radioCESSB_Z_transmit_F32 and you get a baseband SSB, either USB or LSB, ready to modulate an IQ mixer pair. No sharp filtering is needed. Or, you can use the radioCESSBtransmit_F32 and it has the Weaver...
  11. B

    Floating-Point Audio Library Extension

    I added another class to the OpenAudio_ArduinoLibrary to transmit Morse code. This is intended primarily for amateur radio. Called radioCWModulator_F32 it receives ASCII data into a 512 character circular buffer and makes the resulting audio available as an output. Most punctuation and...
  12. B

    Floating-Point Audio Library Extension

    Hi Frank - I think the idea of the Charlie Hill FT-8 communicator is fun. I know he operated from Hyde Park in London with success. Be aware that his code adds powers in dB, as I recollect, and it should be in pure power. Also, I don't think he did an estimate of snr. But those are details...
  13. B

    Floating-Point Audio Library Extension

    A quick note, un-related to radio architecture. I pushed a new class to the floating-point audio library for clipping of audio, and voice signals in particular. It is called radioVoiceClipper_F32. This is primarily intended for AM, FM and NBFM transmitters (not SSB---for that use the...
  14. B

    Floating-Point Audio Library Extension

    A couple of thoughts on superhet architecture. I'll keep this brief, or it would need a new thread. An assumption is that fine frequency RF hardware synthesizers have coherent spurious outputs at unacceptable levels (like -60 to -90 dBC). The DDS function implemented in software has a small...
  15. B

    Floating-Point Audio Library Extension

    Frank, I would like to chat about the architecture issues, like superhets and things. But, I'm almost out of time for today. The same for a pocket FT-8 in the Charlie Hill W5BAA spirit. That would be a fun item For now, though, the S/N calculation can be very wrong on busy bands. I do not...
  16. B

    Floating-Point Audio Library Extension

    Hi Frank and Mark - Frank, it is great that you were able to test the FT8 module. My experiments showed it to be within about 2 dB of the WSJT-X sensitivity and also to be able to do at least 15 decodes at once. So it seems OK. Frank, when you used the two Teensies you could run the FT8 at...
  17. B

    Floating-Point Audio Library Extension

    A note that the AudioPlayQueue_F32 class has been updated to have the same flexibility as in the Teensy Audio I16 library. Thanks much to Jonathan Oakley. This is reflected in the code and the OpenAudio F32 Design Tool.
  18. B

    Floating-Point Audio Library Extension

    The Controlled Envelope Single Sideband (CESSB), as implemented in the two classes above, is an improvement for a standard modulation used for amateur radio voice communications called Single Sideband. The CESSB addition involves some non-linear processing that is not obvious. For those...
  19. B

    Floating-Point Audio Library Extension

    The class for transmitting CESSB in #87 above does not work well with the simple I-Q Zero-IF type of radios. There is a weak tone due to the Weaver method of SSB generation, along with finite hardware mixer LO isolation. So, now there is a companion class, radioCESSB_Z_transmit_F32 that uses...
  20. B

    Floating-Point Audio Library Extension

    Added to the F32 Audio library is radioCESSBtransmit__F32. CESSB stands for Controlled Envelope Single Sideband, which is a process developed for ham radio by Dave Hershberger, W9GR. The include file for the class has the basic references to Dave's work Nutshell wise it allows the average...
  21. B

    Floating-Point Audio Library Extension

    Relative to the AudioPlaySDWav_F32, the sub-multiples for the WAV file sample rate are currently 1, 2, 4, or 8. Restricting this to not include, say 3 and 5, is historic and I believe no longer needed.. I have it on my list to make it "any integer."
  22. B

    Floating-Point Audio Library Extension

    AudioPlaySDWav_F32 Added - This reads a WAV file from an uSD card into the Teensy F32 audio stream. This has been in the Teensy I16 Audio library and is now available with floating point audio conversion. The basic use and functions are the same for both I16 and F32. But, in addition, the...
  23. B

    Teensyduino Loader with "Download ERROR"

    Thanks for the info on the inner workings. Currently, using 2.0.3 and TD0.58.3, under Linux Mint 20.04. The hex file needs to be more that 80K to 100K for failure. I have not been able to define a case that always works nor that always fails. It may depend on other USB activity, and I can't...
  24. B

    Teensyduino Loader with "Download ERROR"

    I spoke too soon. I have loading problems that come and go with the mood of Linux USB. I am trying to isolate the situations that cause this. More later. But, does anyone know where the hex load file, xxxx.ino.hex is under Arduino 2.0.3? Post #17 above needs it!
  25. B

    Floating-Point Audio Library Extension

    Questions have come up, from those building radio with Teensy's, about audio sample rates other than 44.1 ksps. I tried to summarize the current state of this in a short note. This particularly applies to the floating point audio library of this thread. This is hopefully helpful to people...
  26. B

    Teensyduino Loader with "Download ERROR"

    Good News! Loading looks good with Teensyduino 1.58 Beta #3. I used the USB3 port that has always failed loading of large hex files. I used Arduino 2.0.3 with TD1.57 along with a large hex file. Sure enough, it failed every time I tried, always in the same way, as in the past:11:13:56.024...
  27. B

    Teensyduino Loader with "Download ERROR"

    Paul, I sure will test that! Thanks, Bob
  28. B

    SDR A.M. Transmitter on I Q Mixer board RF harmonic problem

    That looks great Stefano!! Not to suggest that you need to change anything, but, if you want to explore this more, there is a library class, RadioIQMixer_F32 that is what you have, after "Mixer1". That includes the two oscillators and multipliers. I mention that because it also includes...
  29. B

    Teensyduino Loader with "Download ERROR"

    Update info. The Linux loading failure problem is not solved by a delay of 1 millisecond per 1024 bytes. It is solved by 1.5 millisecond or more. I am currently using 2.5 milliseconds which is barely observable over no delay. I had been running from a USB3 port on the PC. I switched to a...
  30. B

    Teensyduino Loader with "Download ERROR"

    That sounds fine. I will keep the 2 that have the problem, and also try to better define bounds of the problem, as that looks to be a useful effort.
  31. B

    Teensyduino Loader with "Download ERROR"

    Update and Further Solution - I have been using another Linux PC and the old problem was back. That is, large size, more than about 80K or 90K Hex bytes, will bomb out and the loader hangs. This is with T4.0. Without going to other USB hardware in the Lenovo S30, I played with...
  32. B

    Floating-Point Audio Library Extension

    Hi Frank - Thanks for the comments and thoughts. You are the wizard of this stuff and your ideas are most helpful. Besides, it lets you take a break from bat listening (I want to pursue that one sometime!) On the FT8, I think the transmit and receive functions are in good shape. Many thanks...
  33. B

    Floating-Point Audio Library Extension

    As part of the example INO's for the FT8 transmit class listed above is a test generator that sends out additive white Gaussian noise plus 7 FT8 FSK signals. These are of accurate signal-to-noise ratio and suitable for evaluating various decoders for the sparse Hamming space modulation of FT8...
  34. B

    Floating-Point Audio Library Extension

    FT8 Reception - The FT8 transmitter was added into the floating point audio library a couple off months ago and is discussed in several posts above . The FT8 receive function has been added, as radioFT8Demodulator_F32. As usual, this is available as part of the OpenAudio_ArduinoLibrary and the...
  35. B

    Floating-Point Audio Library Extension

    The I16 to F32 only converts the 16 values to floating point. It does no interpolation of the data. So the resolution remains that of I16. Also, the mantissa of F32 is 24 bits (not 32), so that limits the resolution of F32. The total range benefits from the exponent range, but that just...
  36. B

    Floating-Point Audio Library Extension

    Hi Frank - It is great to catch you here. I saw that you did some work with the Goba/Hill software for the Teensy. I used that for creating the 81 tone sequence. That seems to be a real time saver and I hope the same procedure works for the receive side. If so, I really only need to decimate...
  37. B

    Teensy 4.1: Lots of noise on higher gains + clipping/peaking

    Just a couple of thoughts. Chip and the Tympan group might be a useful resource . Also, using the F32 objects prevents overload and clipping, such as you are seeing, up to the point of conversion to I16. At that conversion point, the range of values must be between -1.0 and 1.0 or it will...
  38. B

    Floating-Point Audio Library Extension

    Again on the FT8 Modulator, there is filtering of the variable that sets the 1-of-7 tone frequency shift. This is Gaussian in both frequency and time domains and greatly reduces the spectrum of the transmitted signal. This is important as only about 50 Hz is available for each transmission...
  39. B

    Floating-Point Audio Library Extension

    A new item for the F32 audio library is an FT8 transmit class. FT8 is a communications protocol that is very popular in amateur radio. The input is a short text string that is of a standard format. The radioFT8Modulator_F32 object then sends out 81 tones at a 0.16 second per tone rate.. The...
  40. B

    Teensyduino Loader with "Download ERROR"

    Report on Code4Code. Using the USB on the new plug-in card, compile and load were without error. End of loader log: 18:05:57.825 (loader): flash, block=1296, bs=1024, auto=1 18:05:57.828 (loader): flash, block=1297, bs=1024, auto=1 18:05:57.831 (loader): flash, block=1298, bs=1024, auto=1...
  41. B

    Teensyduino Loader with "Download ERROR"

    Another Update: I borrowed a "StarTech 2-Port PCIe USB3.0 " card and put it in the Lenovo. Presto, PROBLEM SOLVED. The Loader not only loads without errors, consistently, but it is much faster. I could not make this happen with the multitude of built-in USB ports. My problem is solved and I...
  42. B

    Teensyduino Loader with "Download ERROR"

    An update. The USB cables that I have tried are both 1-m USB2, one by Trip-Lite and the other marked "Amazon Basics," that could be anything. Both behave the same. What I did discover is that the problem seems to relate to my PC (a Lenovo S30 Think Station). When I moved to an...
  43. B

    Teensyduino Loader with "Download ERROR"

    I use Blink as a check of general health. I have never seen any loading issues with Blink. The program is the Pocket FT8 that I have gone through and removed hardware references in preparation to use it as library classes. Most likely the program won't run, as I have never been able to get...
  44. B

    Teensyduino Loader with "Download ERROR"

    I put in a different T4.0 and it has the same failure. But, interestingly, for either T4.0, the last block number (as "(loader): flash, block=91, bs=1024, auto=1") changes from try to try. I have seen 91, 121, 95, 115 and 117. Each new try involved the 15 second blink reset and a USB replug...
  45. B

    Teensyduino Loader with "Download ERROR"

    I have a Loader problem that that results in a red "Download ERROR" error box. To start off, I regret that I cannot isolate the problem to simple code that creates the problem. It seems to be associated with big program memory. OK, this is with Linux Mint 20.2, Teensy 4.0 with only an audio...
  46. B

    SDR A.M. Transmitter on I Q Mixer board RF harmonic problem

    I do not understand what the spectrum plot is. Is this an RF spectrum? My computer doesn't show enough resolution to read the schematic, so it is hard to help!! Bob
  47. B

    biquad bandpass Q value

    Here is an alternate approach: https://forum.pjrc.com/threads/60928-Audio-Equalizer-using-FIR?highlight=Audio+Equalizer The narrowest band is set by the number of FIR taps. Within that constraint it is quite flexible in response.
  48. B

    Floating-Point Audio Library Extension

    A further note on the BFSK data transmission, is that I used the BFSK_random.ino, referenced in the last #70 post, to generate byte error statistics. These are shown in this graph: This is for 1200 bit/sec 8N1 and the number of samples ranged from a few thousand at low S/N to a million for the...
  49. B

    Floating-Point Audio Library Extension

    New additions to the F32 Audio library support Binary Frequency Shift Keying (BFSK) which is used in many radio systems, going way back. The classes are radioBFSKmodulator_F32, RadioFMDiscriminator_F32 and UART_F32. The Github site and the F32 Design tool links are in the previous #69 post...
  50. B

    Amplitude Modulation (AM) SDR TX for Teensy 4.X code request

    stefanodi, just to make it visible for those without your hardware, I built an AM generator only and used a Queue to output the final waveform to the Serial Plotter. As it sits, it runs 50% modulation. Oh, and I also brought the input from a sine wave generator. Here is the INO: // AM waveform...
Back
Top