The ToneProfile does not work on Venu3S

Hello,

I have the following function. It plays tones nicely on Fenix 5x Plus watches, but never on Venu 3S  watches, while it works on Venu 3S emulator. 

I have checked the code and Attention has :ToneProfile && Attention has :playTone is true... I can see it also in device logs.

        if (Attention has :ToneProfile && Attention has :playTone)
        {
            log("[playMusic] ToneProfile is supported");
            var toneProfile =
            [
                new Attention.ToneProfile( 784, 125),
                new Attention.ToneProfile( 932, 125),
                new Attention.ToneProfile( 1244, 250),
                new Attention.ToneProfile( 1174, 250),
                new Attention.ToneProfile( 932, 125),
                new Attention.ToneProfile( 784, 125),
                new Attention.ToneProfile( 1174, 250),
                new Attention.ToneProfile( 1568, 250),
                new Attention.ToneProfile( 1396, 250),
                new Attention.ToneProfile( 1244, 250),
                new Attention.ToneProfile( 1661, 250),
                new Attention.ToneProfile( 1568, 500),
                new Attention.ToneProfile( 784, 125),
                new Attention.ToneProfile( 932, 125),
                new Attention.ToneProfile( 1244, 250),
                new Attention.ToneProfile( 1174, 250),
                new Attention.ToneProfile( 1046, 250),
                new Attention.ToneProfile( 932, 250),
                new Attention.ToneProfile( 784, 500)
            ];
            Attention.playTone({:toneProfile=>toneProfile});
        }
        else
        {
            log("[playMusic] ToneProfile not supported");
        }

But when I play one of the pre-defined tunes (see below), it works fine...

// Play a predefined tone
if (Attention has :playTone)
{
    Attention.playTone(Attention.TONE_LOUD_BEEP);
}

Any idea what could be wrong?

Thanks a lot

STeN

  • There's actually a variation - music devices with and without a speaker.  When headphones are paired, the tones com through the head phones.

  • > For now, the rule of thumb (which I realize may not be an easy determination for you) is to expect tone profiles to not work > if a device has a speaker. This will likely include most of the newer products.

    Since there is no way to detect it - is it at least known which concrete devices have speaker and which have still tone generator?

    There's actually a variation - music devices with and without a speaker.  When headphones are paired, the tones com through the head phones.

    I think you're missing the point of the comment you're replying to (and this entire topic). This topic is about ToneProfile not working on Venu 3S, not the predefined tones. The point is that Brandon.ConnectIQ said that devices with a (fully-fledged) speaker (as opposed to a beeper) can't use ToneProfile.

    I assume this would be the case for both the speaker and for connected headphones. After all, it wouldn't make sense for ToneProfile to be supported for headphones but not the speaker. If ToneProfile tones could be played through headphones, then obviously there would be no problem also playing ToneProfile tones through the speaker. But ToneProfile tones can't be played through headphones [*].

    Therefore, I don't think support for music (and headphones) is relevant here.

    [*] Also, I tested the attention sample on my FR955. While it does not have a fully-fledged speaker, it does support headphones. Of course, predefined tones are played through both the internal beeper and connected headphones. However, as expected, ToneProfile tones only play through the beeper and not the connected headphones. As a matter of fact, some of the predefined tones don't seem to play through headphones either (like TONE_KEY, TONE_SUCCESS, TONE_FAILURE, and TONE_POWER).

    So my understanding is that for the purposes of playing a ToneProfile, it's irrelevant whether the device supports music or not. I think it has to have CIQ >= 3.2, and it has to have a beeper as opposed to a fully-fledged speaker.

  • Hi ,

    So my understanding is that for the purposes of playing a ToneProfile, it's irrelevant whether the device supports music or not. I think it has to have CIQ >= 3.2, and it has to have a beeper as opposed to a fully-fledged speaker.

    Exactly! Thanks for a comment.

    -  Ideally I will detect a beeper and if available I will play the custom tone, but that's not possible (at the moment).

    - In even better world I will detect a "music play capability" and play a very small audio file, but such feature is not (yet?) available.

    So the solution, that currently works, is to use subset of predefined tones.

    Regards,

    STeN

  • So the solution, that currently works, is to use subset of predefined tones.

    It would also be nice if Garmin could somehow document which predefined tones are available to be played on headphones or a real speaker. I assume all of the predefined tones should work on a beeper, but it seems that only a subset of the predefined tones have a corresponding sound file in order to support playback on headphones/speaker.

    Alternatively, it would be even nicer if all of the predefined tones could be played on headphones/speaker.