Loading ...
Sorry, an error occurred while loading the content.

Re: [linuxham] fldigi makes Macbook fan run full time

Expand Messages
  • Brian Lloyd
    ... Hmm, then clearly it makes no sense to send the bit stream at 48KHz. Why the difference? It seems to me that it would be simpler to make all the codecs run
    Message 1 of 20 , Aug 2, 2009
    • 0 Attachment
      On Sun, Aug 2, 2009 at 2:11 PM, w1hkj<w1hkj@...> wrote:

      > 8000 and 11025 depending on mode.  refer to the source code for each
      > individual encoder / decoder.

      Hmm, then clearly it makes no sense to send the bit stream at 48KHz.
      Why the difference? It seems to me that it would be simpler to make
      all the codecs run at the same sample rate.

      Is the code smart enough to know when sample-rate conversion is not
      needed, i.e. that the actual sample rate and the desired sample rate
      are the same?

      --
      73 de Brian, WB6RQN/J79BPL
    • Stelios Bounanos
      ... You can set the capture & playback sample rates to Auto , and then fldigi will always try to open the audio device at the modem s sample rate (8000 or
      Message 2 of 20 , Aug 2, 2009
      • 0 Attachment
        >>>>> On Sun, 2 Aug 2009 14:04:30 -0700, Brian Lloyd <brian-wb6rqn@...> said:

        > On Sun, Aug 2, 2009 at 1:07 PM, w1hkj<w1hkj@...> wrote:
        >> You might be able to reduce cpu usage by judicious selection of the sound
        >> card interpolator.  The "Fast Interpolator" might provide more than adequate
        >> sample rate conversion at a much reduced cpu load.

        > And if I didn't have to do sample-rate conversion, I wouldn't have to
        > use the interpolator at all.

        You can set the capture & playback sample rates to "Auto", and then
        fldigi will always try to open the audio device at the modem's sample
        rate (8000 or 11025 Hz). Of course, if your audio device does not
        support these rates there will still be resampling, but this time it
        will be done by CoreAudio. On OS X, IIRC, PortAudio sets things up so
        that any such resampling is done at the maximum available quality,
        probably equivalent to libsamplerate's Medium or Best Sinc.

        BTW there is an interesting resampler comparison here:

        http://src.infinitewave.ca/


        --

        73,
        Stelios, M0GLD.
      • Stelios Bounanos
        ... This is what the Auto sample rate does, with a fall-back to Native if the modem s rate is not supported by the sound card. Auto used to be the default
        Message 3 of 20 , Aug 2, 2009
        • 0 Attachment
          >>>>> On Sun, 2 Aug 2009 14:20:25 -0700, Brian Lloyd <brian-wb6rqn@...> said:

          > On Sun, Aug 2, 2009 at 2:11 PM, w1hkj<w1hkj@...> wrote:
          >> 8000 and 11025 depending on mode.  refer to the source code for each
          >> individual encoder / decoder.

          > Hmm, then clearly it makes no sense to send the bit stream at 48KHz.
          > Why the difference? It seems to me that it would be simpler to make
          > all the codecs run at the same sample rate.

          > Is the code smart enough to know when sample-rate conversion is not
          > needed, i.e. that the actual sample rate and the desired sample rate
          > are the same?

          This is what the "Auto" sample rate does, with a fall-back to "Native"
          if the modem's rate is not supported by the sound card. Auto used to be
          the default option but we had to change it to Native because some
          systems claim to support every standard sample rate... using really
          crappy linear interpolation.


          --

          73,
          Stelios, M0GLD.
        • Brian Lloyd
          ... -- 73 de Brian, WB6RQN/J79BPL
          Message 4 of 20 , Aug 2, 2009
          • 0 Attachment
            On Sun, Aug 2, 2009 at 2:36 PM, Stelios Bounanos<lham@...> wrote:
            >
            >
            >>>>>> On Sun, 2 Aug 2009 14:20:25 -0700, Brian Lloyd
            >>>>>> <brian-wb6rqn@...> said:
            >
            >> On Sun, Aug 2, 2009 at 2:11 PM, w1hkj<w1hkj@...> wrote:
            >>> 8000 and 11025 depending on mode.  refer to the source code for each
            >>> individual encoder / decoder.
            >
            >> Hmm, then clearly it makes no sense to send the bit stream at 48KHz.
            >> Why the difference? It seems to me that it would be simpler to make
            >> all the codecs run at the same sample rate.
            >
            >> Is the code smart enough to know when sample-rate conversion is not
            >> needed, i.e. that the actual sample rate and the desired sample rate
            >> are the same?
            >
            > This is what the "Auto" sample rate does, with a fall-back to "Native"
            > if the modem's rate is not supported by the sound card. Auto used to be
            > the default option but we had to change it to Native because some
            > systems claim to support every standard sample rate... using really
            > crappy linear interpolation.
            >
            > --
            >
            > 73,
            > Stelios, M0GLD.
            >
            >



            --
            73 de Brian, WB6RQN/J79BPL
          • Brian Lloyd
            ... Sounds like the goal is really to make sure fldigi doesn t have to resample. -- 73 de Brian, WB6RQN/J79BPL
            Message 5 of 20 , Aug 2, 2009
            • 0 Attachment
              On Sun, Aug 2, 2009 at 2:36 PM, Stelios Bounanos<lham@...> wrote:
              >> Is the code smart enough to know when sample-rate conversion is not
              >> needed, i.e. that the actual sample rate and the desired sample rate
              >> are the same?
              >
              > This is what the "Auto" sample rate does, with a fall-back to "Native"
              > if the modem's rate is not supported by the sound card. Auto used to be
              > the default option but we had to change it to Native because some
              > systems claim to support every standard sample rate... using really
              > crappy linear interpolation.

              Sounds like the goal is really to make sure fldigi doesn't have to resample.

              --
              73 de Brian, WB6RQN/J79BPL
            • Brian Lloyd
              ... Well the goal is to avoid resampling in fldigi. That implies to me that I need to make the source match fldigi rather than the other way around. I could go
              Message 6 of 20 , Aug 2, 2009
              • 0 Attachment
                On Sun, Aug 2, 2009 at 2:32 PM, Stelios Bounanos<lham@...> wrote:
                >> And if I didn't have to do sample-rate conversion, I wouldn't have to
                >> use the interpolator at all.
                >
                > You can set the capture & playback sample rates to "Auto", and then
                > fldigi will always try to open the audio device at the modem's sample
                > rate (8000 or 11025 Hz). Of course, if your audio device does not
                > support these rates there will still be resampling, but this time it
                > will be done by CoreAudio.

                Well the goal is to avoid resampling in fldigi. That implies to me
                that I need to make the source match fldigi rather than the other way
                around.

                I could go dig through the source code for fldigi to find the native
                sample rates for the various modems. But given that I have never
                looked at the source code, it would probably take awhile to figure out
                where to look. I don't like asking people to do things for me but
                given as you or Dave could probably tell me off the top of your heads
                where to look (or cut an paste the relevant section of the constant
                declarations) I am going to ask.

                > On OS X, IIRC, PortAudio sets things up so
                > that any such resampling is done at the maximum available quality,
                > probably equivalent to libsamplerate's Medium or Best Sinc.
                >
                > BTW there is an interesting resampler comparison here:
                >
                > http://src.infinitewave.ca/

                Interesting, to say the least. All resamplers are not created equal,
                eh? I was heartened to see that the resampler in Apple's Coreaudio is
                pretty darned good. How is resampling done in auto on Windows systems?


                --
                73 de Brian, WB6RQN/J79BPL
              • w1hkj
                ... As Stelios pointed out in a separate response that really is not necessary Brian. Use the auto and if your sound driver supports the request the modem
                Message 7 of 20 , Aug 2, 2009
                • 0 Attachment
                  Brian Lloyd wrote:
                  On Sun, Aug 2, 2009 at 2:32 PM, Stelios Bounanos<lham@...> wrote:
                    
                  And if I didn't have to do sample-rate conversion, I wouldn't have to
                  use the interpolator at all.
                        
                  You can set the capture & playback sample rates to "Auto", and then
                  fldigi will always try to open the audio device at the modem's sample
                  rate (8000 or 11025 Hz). Of course, if your audio device does not
                  support these rates there will still be resampling, but this time it
                  will be done by CoreAudio.
                      
                  Well the goal is to avoid resampling in fldigi. That implies to me
                  that I need to make the source match fldigi rather than the other way
                  around.
                  
                  I could go dig through the source code for fldigi to find the native
                  sample rates for the various modems. But given that I have never
                  looked at the source code, it would probably take awhile to figure out
                  where to look. I don't like asking people to do things for me but
                  given as you or Dave could probably tell me off the top of your heads
                  where to look (or cut an paste the relevant section of the constant
                  declarations) I am going to ask.
                    
                  As Stelios pointed out in a separate response that really is not necessary Brian.  Use the "auto" and if your sound driver supports the request the modem native sample rate will be used.

                  For those systems that do not support such a response and lie about their capability (mostly MS systems) the resampling code in fldigi is far superior to what most outboard drivers provide.  It is then much better to operate the sound system in its sound card clock native mode.  That might be 44100, 48000, 96000, whatever.  The resamplers in fldigi are from the SecretRabbit site.  Take a look at the specs available on that web site.  Several types of resampling are provided so that fldigi can continue (even if degraded) on cpu starved systems.  fldigi measures you system performance on the initial start and selects the optimum resampler based on that measurement.

                  These are the sample rates you requested:

                  PSK (all baud rates)
                  8000
                  MFSK 4 / 8 / 16 / 31 / 32 / 64
                  8000
                  MFSK 11 / 22
                  11025
                  DOMINOEX 5 / 11 / 22
                  11025
                  DOMINOEX 4 / 8 / 16
                  8000
                  THOR 5 / 11 / 22
                  11025
                  DOMINOEX 4 / 8 / 16
                  8000
                  FELD
                  8000
                  MT63
                  8000
                  OLIVIA
                  8000
                  THROB
                  8000



                  Dave
                • Brian Lloyd
                  ... I guess I wasn t being clear. I am running PowerSDR, the processing behind the Flex 5000. There is no sound card. The digital baseband stream (or low IF if
                  Message 8 of 20 , Aug 2, 2009
                  • 0 Attachment
                    On Sun, Aug 2, 2009 at 6:02 PM, w1hkj<w1hkj@...> wrote:
                    > For those systems that do not support such a response and lie about their
                    > capability (mostly MS systems) the resampling code in fldigi is far superior
                    > to what most outboard drivers provide.  It is then much better to operate
                    > the sound system in its sound card clock native mode.  That might be 44100,
                    > 48000, 96000, whatever.

                    I guess I wasn't being clear. I am running PowerSDR, the processing
                    behind the Flex 5000. There is no sound card. The digital baseband
                    stream (or low IF if you prefer) is being fed to fldigi from PowerSDR
                    through VAC (Virtual Audio Cable). The "radio" (PowerSDR) provides a
                    digital stream. There is no A:D or D:A involved between PowerSDR and
                    fldigi. Also, PowerSDR has no "native" sample rate. PowerSDR is using
                    48KHz, 96KHz, or 192KHz depending on the sample rate I select for the
                    ADC in the front-end. PowerSDR then allows me to specify the sample
                    rate to send to the digital mode program via VAC. Therefore the
                    resampling takes place in PowerSDR. (And you have me wondering just
                    how good it is.)

                    Since I normally run the radio at 96KHz PowerSDR is going to resample
                    for me no matter what because 48KHz (the default value) is the highest
                    sample rate that VAC supports. Since I must resample anyway, by
                    telling PowerSDR to resample down to 8KHz or 11.025KHz I avoid the
                    need to have fldigi resample a second time.

                    > The resamplers in fldigi are from the SecretRabbit
                    > site.  Take a look at the specs available on that web site.  Several types
                    > of resampling are provided so that fldigi can continue (even if degraded) on
                    > cpu starved systems.  fldigi measures you system performance on the initial
                    > start and selects the optimum resampler based on that measurement.

                    I understand but since PowerSDR is resampling for me anyway (and
                    generating whatever artifacts it is going to generate :-) it seems to
                    me that resampling a second time in fldigi is not going to improve
                    things.

                    > These are the sample rates you requested:

                    Thank you. Perfect. I am going to experiment with having PowerSDR
                    resample down to either 8KHz or 11.025KHz to see if it improves
                    performance any. I will also see if it reduces CPU utilization.

                    Too bad there is no communication between the two programs as it seems
                    to me that the best solution is for them to cooperate to resample only
                    once and then to have the CODECs communicate the optimum sample rate
                    back to the source, i.e. PowerSDR. In the mean time, I can do it
                    manually. Knowing the native sample rates for the CODECs will let me
                    select the correct one at PowerSDR so that fldigi doesn't need to
                    resample.

                    >
                    > PSK (all baud rates)
                    > 8000
                    > MFSK 4 / 8 / 16 / 31 / 32 / 64
                    > 8000
                    > MFSK 11 / 22
                    > 11025
                    > DOMINOEX 5 / 11 / 22
                    > 11025
                    > DOMINOEX 4 / 8 / 16
                    > 8000
                    > THOR 5 / 11 / 22
                    > 11025
                    > DOMINOEX 4 / 8 / 16
                    > 8000
                    > FELD
                    > 8000
                    > MT63
                    > 8000
                    > OLIVIA
                    > 8000
                    > THROB
                    > 8000

                    --
                    73 de Brian, WB6RQN/J79BPL
                  • w1hkj
                    ... I would be very interested in learning the results of your tests Brian. Dave
                    Message 9 of 20 , Aug 3, 2009
                    • 0 Attachment
                      Brian Lloyd wrote:
                      >
                      > Thank you. Perfect. I am going to experiment with having PowerSDR
                      > resample down to either 8KHz or 11.025KHz to see if it improves
                      > performance any. I will also see if it reduces CPU utilization.

                      I would be very interested in learning the results of your tests Brian.

                      Dave
                    • Brian Lloyd
                      ... Certainly. You are doing much more work on this than I. Anything I can do to make your work more effective I will. -- 73 de Brian, WB6RQN/J79BPL
                      Message 10 of 20 , Aug 3, 2009
                      • 0 Attachment
                        On Mon, Aug 3, 2009 at 3:19 AM, w1hkj<w1hkj@...> wrote:
                        >
                        >
                        > Brian Lloyd wrote:
                        >>
                        >> Thank you. Perfect. I am going to experiment with having PowerSDR
                        >> resample down to either 8KHz or 11.025KHz to see if it improves
                        >> performance any. I will also see if it reduces CPU utilization.
                        >
                        > I would be very interested in learning the results of your tests Brian.

                        Certainly. You are doing much more work on this than I. Anything I can
                        do to make your work more effective I will.

                        --
                        73 de Brian, WB6RQN/J79BPL
                      • Dick Kriss
                        After reading the recent comments on sampling rates, I recalled a note from Dec 2008 where Chen W7AY changed the default sampling rate setting for his
                        Message 11 of 20 , Aug 3, 2009
                        • 0 Attachment
                          After reading the recent comments on sampling rates, I
                          recalled a note from Dec 2008 where Chen W7AY changed
                          the default sampling rate setting for his cocoaModem to
                          16000 samples per second due to some technical issues
                          between the Burr-Brown PCM2902 codec chipset and the
                          Mac OS X Core Audio.

                          The Burr-Brown chipset is used in sound cards such as as the
                          microHAM digiKeyer, the Edirol UA-1X and the SignaLink USB.

                          The topic is discussed in W7AY's "What has changed in v0.62" at

                          <http://homepage.mac.com/chen/w7ay/cocoaModem/Whats%20New/index.html>

                          The bottom line was W7AY recommend users avoid using 11025
                          and 44100 samples per sec and he changed the default Rx in his
                          cocoaModem to 16000 samples per sec.

                          At the time I really did not understand the technical issue but
                          changing to his recommend 16000 samples per second for Rx
                          helped cocoaModem decoding.

                          When I changed from cocoaModem to fldigi, I set the
                          Sound Card/Audio/Settings to Capture at 16000 samples/sec
                          (vs. the native 32000) and I left Playback at the native 32000
                          samples/sec. I did not understand the "Converter" so set it
                          to Medium.

                          To see what would happen I just changed my fldigi Capture
                          setting back to the native 32000 samples per second and
                          fldigi seems to work fine. Maybe Apple has changed the OS X
                          Core Audio since W7AY's note that was posted in Dec 2008.

                          I wonder what Capture/Converter settings other fldigi Mac OS X
                          and SignaLink US/users are using?

                          73 Dick AA5VU
                        • ke7adu
                          OK, I have been playing around with the Sample Rate and Converter settings. My install was set to Native I set to Auto did not notice any change in CPU use.
                          Message 12 of 20 , Aug 3, 2009
                          • 0 Attachment
                            OK,

                            I have been playing around with the Sample Rate and Converter settings. My install was set to Native I set to Auto did not notice any change in CPU use. Changing the Converter settings from Medium Sync to Linear drops CPU use by a few percent.

                            CocoaModem runs about 6% CPU use while fldigi runs between 16% and 25% CPU. However, the Cocoa Modem table view is only decoding two to three signals while fldigi is decoding six to eight signals in the PSK Browser so I can see why it would use more CPU.

                            Anthony - KE7ADU

                            --- In linuxham@yahoogroups.com, "ke7adu" <ke7adu@...> wrote:
                            >
                            > First let me say that I am really enjoying using fldidi on my Macbook. Good HAM software for OS X is hard to find (especially for free). Second I am new to the Mac OS but I have been using Windows and playing with Linux for years.
                            >
                            > Now down to business.
                            >
                            > When fldigi is loaded the fan on my Macbook runs continuously. Normally it never runs. That is not a big deal except I figure that will lead to a short battery life if I decide to operate in the field.
                            > CocoaModem doesn't seem to make the fan run but for what I do I prefer fldigi.
                            >
                            > I plan to try fldidg on a Windows and Linux box and see if I have the same issue.
                            >
                            > Anyone else with this issue? Anyone have suggestions as to how to temper the CPU use when I am operating off battery?
                            >
                            > My equipment:
                            > Computer: Macbook Aluminum 2.0 GHz, 4 GB RAM
                            > Interface: SignaLink USB
                            > OS X ver: 10.5.7
                            > Radio: FT-897D
                            >
                            > Thanks,
                            > Anthony - KE7AUD
                            >
                          • w1hkj
                            ... BINGO ! If you were decoding 20 the cpu usage might be more yet. cpu usage will also be a function of the modem and baud rate that is being used. Don t
                            Message 13 of 20 , Aug 3, 2009
                            • 0 Attachment
                              ke7adu wrote:
                              > OK,
                              >
                              > I have been playing around with the Sample Rate and Converter settings. My install was set to Native I set to Auto did not notice any change in CPU use. Changing the Converter settings from Medium Sync to Linear drops CPU use by a few percent.
                              >
                              > CocoaModem runs about 6% CPU use while fldigi runs between 16% and 25% CPU. However, the Cocoa Modem table view is only decoding two to three signals while fldigi is decoding six to eight signals in the PSK Browser so I can see why it would use more CPU.
                              >
                              BINGO ! If you were decoding 20 the cpu usage might be more yet. cpu
                              usage will also be a function of the modem and baud rate that is being used.

                              Don't recommend Linear ... your OS X box should be more that fast enough
                              to support the Medium or Fast Sync converter.

                              Dave
                            • Brian Lloyd
                              ... I ran some tests last night, qualitative rather than quantitative, i.e. the results were subjective rather than objective -- no measurements. Before I get
                              Message 14 of 20 , Aug 4, 2009
                              • 0 Attachment
                                On Mon, Aug 3, 2009 at 3:19 AM, w1hkj<w1hkj@...> wrote:
                                >
                                >
                                > Brian Lloyd wrote:
                                >>
                                >> Thank you. Perfect. I am going to experiment with having PowerSDR
                                >> resample down to either 8KHz or 11.025KHz to see if it improves
                                >> performance any. I will also see if it reduces CPU utilization.
                                >
                                > I would be very interested in learning the results of your tests Brian.

                                I ran some tests last night, qualitative rather than quantitative,
                                i.e. the results were subjective rather than objective -- no
                                measurements. Before I get into it I thought I would explain my setup
                                just so everyone understands why what I am doing is a bit different.

                                I am running a Flex 5000a software-defined radio. Unlike most
                                digital-mode setups there is no sound-card involved since the radio
                                software provides data to fldigi in digital form. No analog to digital
                                or digital to analog conversion before fldigi. Most rigs have the
                                following signal processing chain:

                                antenna>1st mixer>roofing filter>2nd
                                mixer>A:D>DSP>D:A>cables>A:D(soundcard)>fldigi

                                In my setup I have the following signal processing chain:

                                antenna>1st mixer>A:D>DSP>fldigi

                                As you can see it is much simpler and once the signal has been
                                converted from analog to digital right after the mixer it is never
                                converted back to analog. It is pure digital all the way through to
                                the digital mode program. (Note, this works for any digital mode
                                program including DM780, not just fldigi.) The potential is for much
                                higher quality since intermediate conversions have been eliminated.
                                Performance is not dependent on eliminating ground loops, eliminating
                                RF pick-up, sound-card quality/sample rate/bit depth, etc.

                                The "DSP" software really is the radio. It is called PowerSDR and
                                implements all the functions for the Flex 5000. There are no controls
                                on the radio hardware itself. Everything is handled by the software.
                                The analog-to-digital conversion takes place in the RF hardware using
                                a very high performance A:D converter with a bit-depth of 24 bits and
                                a sample rate of 48KHz, 96KHz, or 192KHz. (I normally run at 96KHz.)
                                Once the radio hardware has performed this conversion the signal is
                                never converted back into analog form. It remains in digital form all
                                the way through to the digital mode program. (I normally run fldigi or
                                DM780.)

                                (The only difference to this is the case of audio modes, e.g. CW or
                                SSB where the signal is converted back to analog in order to drive the
                                speaker and/or headphones.)

                                As you recall from a couple of days ago, I was asking about native
                                sample rates for the CODECs (COders/DECoders). The reason is, it
                                seemed to me that it would be a waste to do sample rate conversion
                                twice, once in PowerSDR and a second time in fldigi. By default
                                PowerSDR provides its digital "audio" (I prefer the term "baseband" or
                                "low IF" because it is not the final output signal -- that is the text
                                on the screen) signal at a sample rate of 48000 Hz. Fldigi then does a
                                second sample rate conversion to either 8000 Hz or 11025 Hz depending
                                on the CODEC chosen by the operator. Since PowerSDR is already doing
                                the sample rate conversion from 96 KHz to 48 KHz it seemed a waste to
                                me to then have fldigi go through the sample rate conversion process
                                yet again. It seemed better to just let PowerSDR do the sample rate
                                conversion directly to 8000 Hz or 11025 Hz and eliminate a step.

                                I spent some time last night monitoring PSK31 and Olivia signals
                                letting PowerSDR perform the sample rate conversion to 8000 Hz.
                                Subjectively I could discern no obvious improvement or degradation
                                over the double-rate-conversion that was going on previously. What I
                                did notice is that the waterfall was showing substantial aliasing
                                products in the passband. It appears that PowerSDR is *NOT* doing
                                sufficient anti-aliasing at the lower sample rate. Given that the Flex
                                5000 can produce substantial power 48KHz from the LO injection
                                frequency (at a 96KHz sample rate) it stands to reason that there
                                needs to be a brick wall filter for all power above the Nyquist
                                frequency at the intermediate rate of the CODEC, i.e. one half the
                                sample rate or 4 KHz in the case of 8 KHz sampling. This does not
                                appear to be the case.

                                So, until the downsampling in PowerSDR gets improved anti-aliasing
                                filtering, it seems to me that it is better to continue sending a 48
                                KHz data stream to fldigi and allow fldigi to do the downsampling to
                                the 8000 Hz or 11025 Hz sample rate expected by the CODECs.

                                I guess I need to go bug the guys over at Flex now. ;-)

                                --
                                73 de Brian, WB6RQN/J79BPL
                              Your message has been successfully submitted and would be delivered to recipients shortly.