ProffieOS 8.4 beta (call for testers!)

So I should see a difference in combination with one of these:

#define MENU_SPEC_TEMPLATE FETT263_MENU_SPEC
  // please take a look at the serial monitor I posted above:
  // No sounds found: mclick ...
  // ERROR - Sound library version 2 required. ...
  // Sound library version 2 found. ...
  // unit = 0 vol = 0.50, Playing common/mclick.wav
  // <- sometimes sound library v2 & mclick.wav are found, sometimes they are not
  // depending on wether it looks for a font in my presets or a font on my SD-Card but not in my presets.
  // Do I need mclick.wav & voicepack.ini in all my font folders ?
#define MENU_SPEC_TEMPLATE DefaultMenuSpec
#define MENUS_SPEC_TEMPLATE SettingsOnlyMenuSpec

Strange, I was turning right (clock wise) and only got “disable”, but now I did turn left (counter clock wise) and did get “enable”. I finally got it, thanks @Fett263

And it works

So I guess this can be marked as tested.

Your board may be inverted then, turn right is set to be affirmative and turn left is negative in the menus.

I don’t think my board is inverted: my fetts are towards the blade (usb towards speaker) but my buttons are on the other side of the Proffieboard on the chassis so I always start with the buttons facing up (saber horizontal) and Proffieboard facing down so that might affect it ? But I am fine with it, now that I know.

Played a bit with saber_fett263_buttons.h & #define MENU_SPEC_TEMPLATE DefaultMenuSpec
These are all the sound_library_v2 sounds that I heard:

ADD_SL_SOUND(AdjustRed, "madjred");
ADD_SL_SOUND(AdjustBlue, "madjblue");
ADD_SL_SOUND(AdjustGreen, "madjgren");
ADD_SL_SOUND(PasteColor, "mpastec");
ADD_SL_SOUND(CopyColor, "mcopyc2");
ADD_SL_SOUND(MovePresetUp, "mmpsetup");
ADD_SL_SOUND(MovePresetDown, "mmpsetdn");
ADD_SL_SOUND(EditPresets, "medpsets");
ADD_SL_SOUND(InsertSelectedPreset, "minpset");
ADD_SL_SOUND(ApplyColorsFromSelectedStyle, "macolsty");
ADD_SL_SOUND(ApplyStyleSettingsFromSelectedStyle, "maargsty");
ADD_SL_SOUND(ApplyColorsToAllBlades, "macolall");
ADD_SL_SOUND(ResetToDefaultColor, "mcolrst");
ADD_SL_SOUND(ResetStyleSettings, "mrststys");
ADD_SL_SOUND(SDAccess, "msdacc");

I don’t know if all the others are programmed but AdjustSaturation for example only returns one found in the sound library only:

I would say that the ones that I found works well.

I tryed to played a bit with saber_fett263_buttons.h & #define MENU_SPEC_TEMPLATE SettingsOnlyMenuSpec

When accessing the menu, all I can hear is “save” and the menu quits.
Serial monitor:

19:16:40.994 -> EVENT: Aux-Pressed#1 millis=1233146
19:16:40.994 -> EVENT: Aux-Pressed millis=1233146
19:16:41.313 -> EVENT: Power-Pressed#1 mods Aux millis=1233430
19:16:41.313 -> EVENT: Power-Pressed mods Aux millis=1233430
19:16:41.313 -> EVENT: Aux-Held#1 mods PowerAux millis=1233447
19:16:41.313 -> EVENT: Aux-Held mods PowerAux millis=1233447
19:16:41.599 -> EVENT: Power-Held#1 mods PowerAux millis=1233731
19:16:41.599 -> EVENT: Power-Held mods PowerAux millis=1233731
19:16:41.815 -> EVENT: Aux-HeldMedium#1 mods PowerAux millis=1233947
19:16:41.815 -> EVENT: Aux-HeldMedium mods PowerAux millis=1233947
19:16:42.122 -> EVENT: Power-HeldMedium#1 mods PowerAux millis=1234231
19:16:42.122 -> EVENT: Power-HeldMedium mods PowerAux millis=1234231
19:16:43.028 -> EVENT: Aux-HeldLong#1 mods PowerAux millis=1235147
19:16:43.028 -> EVENT: Aux-HeldLong mods PowerAux millis=1235147
19:16:43.061 -> Playing msave.wav, channels: 1 rate: 44100 bits: 16
19:16:43.439 -> EVENT: Power-Released#1 millis=1235561
19:16:43.439 -> EVENT: Power-Released millis=1235561
19:16:43.439 -> EVENT: Aux-Released#1 millis=1235581
19:16:43.439 -> EVENT: Aux-Released millis=1235581
19:16:43.600 -> Unmounting SD Card.
19:16:43.628 -> Amplifier off.

Is the only thing happening.
If I press another button, either the saber ignites or the preset changes.

Edit:
More playing around with MENU_SPEC_TEMPLATE DefaultMenuSpec

tested, works, I like this.

tested but the color and the brightness changed, my blade went from bright light purple to a dim white.

tested, this I like too, works well, managed to make a purple I am happy with.

tested, works

I deleted a preset, can it be “undeleted” from the menu ?

Does it work better with the DefaultMenuSpec ?

Well it works with DefaultMenuSpec but doesn’t work with SettingsOnlyMenuSpec

I’ll have to take a look at this. The hue shouldn’t change. (But it will make it black or white at the extremes.)

No, well, sort of…
You can duplicate another preset, then change all the styles, fonts and tracks to match the deleted preset.

So it will be a no for me, I can do the rest but re-create a style that will look decent is not for me. :grin:

For me the blade turned less bright and the color turned to some very light grey, asmost white.

You don’t have to re-create the style, you just have to select it from a list that includes all styles that you programmed the board with.

Honestly, deleting a preset via menus is something I would never do. I only clicked on it out of curiosity and to see if it could be “undeleted”.

In fact thinking futher, if I don’t want this menu option on my saber. Is it enough to just comment out typedef mode::DeletePresetSubMenuEntry<SPEC> DeletePresetSubMenuEntry; from default_spec.h so I or my kids using my saber can never click on it ?

No, you would need to comment it out here:

1 Like

Very cool, thanks @profezzorn for the information.

If anyone else want to try this, you also need to comment out or remove the comma from the previous line or you will get a compile error like this:

In file included from C:\ProffieOS\ProffieOS.ino:660:
C:\ProffieOS\modes\preset_modes.h:192:1: error: template argument 9 is invalid
  192 | > {};
      | ^
In file included from C:\ProffieOS\ProffieOS.ino:653:
C:\ProffieOS\modes\mode.h: In instantiation of 'void pushMode() [with MODE = mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >]':
C:\ProffieOS\modes\menu_list.h:31:45:   required from 'void mode::SubMenuEntry<SUBMENU, SOUND>::select(int) [with SUBMENU = mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >; SOUND = SoundLibraryV2::tEditPresets]'
   31 |   void select(int entry) { pushMode<SUBMENU>(); }
      |                            ~~~~~~~~~~~~~~~~~^~
C:\ProffieOS\modes\menu_list.h:90:35:   required from 'void mode::MenuEntryConcat<A, B>::select(int) [with A = mode::SubMenuEntry<mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >, SoundLibraryV2::tEditPresets>; B = mode::SubMenuEntry<mode::SettingsMenuMode<MKSPEC<DefaultMenuSpec> >, SoundLibraryV2::tEditSettingsV2>]'
   90 |     if (entry < A::size) a_.select(entry);
      |                          ~~~~~~~~~^~~~~~~
C:\ProffieOS\modes\menu_list.h:118:43:   required from 'void mode::MenuEntryMenuImpl<SPEC, MenuEntryTypeList>::select() [with SPEC = MKSPEC<DefaultMenuSpec>; MenuEntryTypeList = TypeList<mode::SubMenuEntry<mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >, SoundLibraryV2::tEditPresets>, mode::SubMenuEntry<mode::SettingsMenuMode<MKSPEC<DefaultMenuSpec> >, SoundLibraryV2::tEditSettingsV2> >]'
  118 |   void select() override { entries_.select(this->pos_); }
      |                            ~~~~~~~~~~~~~~~^~~~~~~~~~~~
C:\ProffieOS\modes\menu_list.h:118:8:   required from here
  118 |   void select() override { entries_.select(this->pos_); }
      |        ^~~~~~
C:\ProffieOS\modes\mode.h:23:37: error: cannot convert 'mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >*' to 'ModeInterface*' in initialization
   23 |   ModeInterface* mode = getPtr<MODE>();
      |                         ~~~~~~~~~~~~^~
      |                                     |
      |                                     mode::EditPresetMenu<MKSPEC<DefaultMenuSpec> >*
exit status 1

Compilation error: template argument 9 is invalid

Please ignore this one, user error! :roll_eyes:
On the “edit preset”, “edit brigtness” sub-menu level, the main blade goes from it’s original color to white, rotate left or right to adjust the “white brightness”, click power to save, click exit x 3 to return to preset, ignite preset and original color is maintained but brigtness only is changed, hue is maintained.

However my eyes are no longer sharp enough to detect if “edit preset, edit brightness” gives a different brightness than “edit settings, edit brightness”. I did set “edit settings, edit brightness” to 60% first then “edit preset, edit brightness” to 45% but I can’t tell if that one preset is dimmer than the rest of my preset ?

The global brightness is a simple multiplier, and it can’t make the blades any brighter than 100%.
The “edit preset … edit brightness” holds the hue and saturation constant until you reach 100%, then it lets you proceed upwards until you reach white. (The saturation goes down when you go over 100% though.)

In Fett263 prop, you can also mark this one as tested.

Tested and it works but there is nothing in the description about accessing menu, PR submitted

Tested, works

Tested, works

Tested, works (I didn’t test the randomized force effect players yet, I need more than 2 or 3 force wavs to test if it is random)

Tested, love it, specially the press.wav (the release, I could do without) both work

Tested works

Tested, works, I like this too, no need to plug sd-card in card reader to delete saved files (or connect to computer via USB & do the serial monitor “sd 1”, delete the files, “sd 0”, which also works with saber_sabersense_buttons)

One thing that I find is missing is an “edit brightness” menu. But it is a very compact and simple to use prop that allows for plenty of space for more presets.

Edit: Where does the code for “edit brightness” lives in ProffieOS ?

Thanks Olivier. Glad it’s ticking a few boxes for you.

Re. the clicker release, you can just delete the release.wav file from the SD card if you don’t want it - it’s not a mandatory sound file, even with the define, so you shouldn’t get any “Error in font directory alerts.” (If you do, add a wav file that is just half a second of silence).

As for brightness, yes, it’s not explicitly added as its own feature, but you can achieve it using the Array Selector and Dimblade in your blade array. This lets you add as many power steps as you like. It’s an alternative way to skin the same cat! LOL!

1 Like