Is this a crazy idea...?

No change sadly.
:frowning:

Does it matter that the click effects are in the Common folder (so they can be accessed by all fonts) rather than individual font folders?

or because something about RequestMotion() also competing.
Let me know if you prefer the option of multiple sounds, otherwise try this “fix”, that goes back to use the single sound playback function Fredrik posted.
saber_sa22c_buttons_press.h (25.2 KB)

Perhaps it would be better to do it like this:

  bool Event(enum BUTTON button, EVENT event) override {
     if (button == BUTTON_POWER) {
       switch (event) {
             case EVENT_PRESSED:
                  PlaySound("press.wav");
                  break;
            case EVENT_RELEASED:
                  PlaySound("relaese.wav");
                  break;
       }
    }
    return PropBase::Event2(button, event);
  }

This would go in the prop, but outside of Event2()

No matter as long as common is in your font search path.

1 Like

Seems to be missing an argument. modifiers?

Arduino: 1.8.13 (Mac OS X), Board: "Proffieboard V2, Serial, SDCARD (SPI), 80 MHz, Smallest Code"

In file included from sketch/config/diag.h:29,
                 from /Volumes/SD_SLOT_512GB/Dropbox/Lightsabers/Soundboards/Proffieboard/a_official releases./ProffieOS-v6.x/ProffieOS/ProffieOS.ino:598:
sketch/config/../props/saber_sa22c_buttons_press.h: In member function 'virtual bool SaberSA22CButtons::Event(BUTTON, EVENT)':
sketch/config/../props/saber_sa22c_buttons_press.h:378:42: error: no matching function for call to 'SaberSA22CButtons::Event2(BUTTON&, EVENT&)'
  378 |     return PropBase::Event2(button, event);
      |                                          ^
In file included from sketch/config/../props/saber_sa22c_buttons_press.h:123,
                 from sketch/config/diag.h:29,
                 from /Volumes/SD_SLOT_512GB/Dropbox/Lightsabers/Soundboards/Proffieboard/a_official releases./ProffieOS-v6.x/ProffieOS/ProffieOS.ino:598:
sketch/config/../props/prop_base.h:1725:16: note: candidate: 'virtual bool PropBase::Event2(BUTTON, EVENT, uint32_t)'
 1725 |   virtual bool Event2(enum BUTTON button, EVENT event, uint32_t modifiers) = 0;
      |                ^~~~~~
sketch/config/../props/prop_base.h:1725:16: note:   candidate expects 3 arguments, 2 provided
exit status 1
Error compiling for board Proffieboard V2.

You guys are legends!!!

Prof, I didn’t need to go as far as your last suggestion as Brian’s 3rd Prop file did the trick. (y)

What’s more it works, and makes it much easier to ‘navigate’ the button without using too much force not knowing if you’ve engaged it or not.

Guys, thank you, thank you, thank you! I can’t thank you all enough!

And in case the end user doesn’t like it, I’ll include two shorts files of silence on the SD card so that all they need do is rename those files to lose the clicks.

Thank you again!

Here’s how it looks/sounds in action:

:slight_smile:

2 Likes

Cool! Could make it do or do not all this on a #define if that’s cleaner than renaming silence wavs.
Up to you.

That would be very slick from a config point of view. But I’m just thinking from a customer’s point of view who doesn’t know anything about Arduino or connecting their saber to a computer, but wants to try it without the clicks. Renaming a couple of files on the SD card is something anyone can do. :slight_smile:

Sincere thanks again for all this Brian. I’m in your debt with the time you’ve taken on this one! :slight_smile:

1 Like

Sure thing, always up for a challenge. Learning experience in the process too!
Shown a different way to write functions and summon sounds now thanks to @profezzorn. Win win.

1 Like

Ops,. supposed to be:

return PropBase::Event(button, event);
1 Like