ProffieOS 7.x pre-alpha discussion

ProffieOS 7.x is coming. (Insert Ned Stark meme here.)

It’s not even at alpha stage yet, but it’s time to start summing up what the new stuff is and make sure we didn’t forget anything before we start testing.

Here’s what’s new in OS7 so far:

Features:

  • New code for reading/writing ini files. Should cut down on SD card corruption significantly.
  • Better Teensy4 support, including WS281x support.
  • Most “help” command text moved to wiki page to save memory.
  • Alternate sound files: altNNN/
  • Sound file sub-sub directories: hum/001/001.wav
  • Updated clash detection
  • Bendable time in most transitions

New font config variable:

  • ProffieOSHumDelay

New defines:

  • BOOT_VOLUME
  • AUDIO_CLASH_SUPPRESSION_LEVEL

New sound effects:

  • altchng - when the alternative changs

New EFFECT_* values:

  • EFFECT_SECONDARY_IGNITION
  • EFFECT_SECONDARY_RETRACTION
  • EFFECT_QUOTE
  • EFFECT_TRANSITION_SOUND
  • EFFECT_GAME_START
  • EFFECT_GAME_ACTION1
  • EFFECT_GAME_ACTION2
  • EFFECT_GAME_CHOICE
  • EFFECT_GAME_RESPONSE1
  • EFFECT_GAME_RESPONSE2
  • EFFECT_GAME_RESULT1
  • EFFECT_GAME_RESULT2
  • EFFECT_GAME_WIN
  • EFFECT_GAME_LOSE

Styles:

  • LockupTrL has a new argument: CONDITION
  • StylePOV
  • ContinuousPOV
  • ChargingStylePtr
  • TransitionPulseL

New Functions:

  • ClampF / ClampFX
  • Divide
  • IsBetween
  • Subtract
  • TwistAcceleration
  • AltF

Sound library addition:

  • moffopt.wav

New style arguments:

  • ALT_COLOR2_ARG
  • ALT_COLOR3_ARG
  • STYLE_OPTION2_ARG
  • STYLE_OPTION3_ARG
  • IGNITION_OPTION2_ARG
  • RETRACTION_OPTION2_ARG

There is also a large set of changes in Fett263 and BC props, but I’ll let them write their own summaries of those changes.

I will update this post if more features are added. Also, this is the right thread to ask questions about what these features do, and until the documentation bas been updated, this will most likely be the best resource for using, testing and understanding the new features.

7 Likes

Was there going to be a define for keeping the edit mode selected blade length (similar to the volume one), or am I imagining that?

There already is in OS6.

#define ENABLE_ALL_EDIT_OPTIONS

or

#define DYNAMIC_BLADE_LENGTH

Keeping the blade length when? When programming? When shutting down? When switching blades?

My use case is that I have a hilt that I want the option to have as a 34" blade, but usually use a shorter blade for testing and using indoors. I would prefer not to have to reconfigure the length every time I flash the board, but currently the system doesn’t let you have a default length and go higher.

Set the default length to the longest you need, then the shortened value is saved and used even after uploading with either define above as long as .ini files are not deleted.

2 Likes

NOTE: I’ll be updating this reply as more of the pieces are finalized and merged to keep everything in one place.

EDIT: To keep discussions grouped together I’ve broken out larger features to their own topics links are below

Fredrik and I have been working on a lot of new capabilities for fonts, styles and controls. The new features, effects, styles and functions along with updates coming to my prop will make all of these parts now possible in OS7.

[As I have time I’ll expand on these explanations]

-------------------------------- ALT FONTS -------------------------------------------------

The “Alt Font” capability will allow style code to change the font sounds being used by setting up altNNN" folders within the font.

Questions/Discussion thread here: ProffieOS7.x "Alt Font" pre-alpha discussion

-------------------------------- TRANSITION SOUNDS --------------------------------

“Transition Sounds” allow sound effects to be added to transition animations at specific points in a TrConcat to keep visual and audio effects in synch.
Questions / discussion here: ProffieOS7.x "Transition Sounds" pre-alpha discussion

-------------------------------- RANDOMIZATION OF SELECTED SOUNDS ---------------------------------

This allows for the randomization of selected sounds. This can be used for any effect but is especially important for Transition Sounds above.

Questions / discussion here: ProffieOS7.x "Randomization of Selected Sounds" pre-alpha discussion

-------------------------------- SECONDARY IGNITION/RETRACTION for Dual Bladed or Staff Sabers running on one board -----------------------

These effects will require my prop and new style code to enable Dual blades or Staff sabers to have individually controlled/triggered ignitions and retractions.

Questions / discussion here: ProffieOS7.x "Secondary Blade Effects for Staff/Dual Blade Saber" pre-alpha discussion

-------------------------------- “CONDITIONAL” Effects ----------------------------------

These are used for “Conditional” effects within style code, they allow for us to set up specific conditions in which an effect is triggered; i.e. BladeAngle<>, SwingSpeed<>, etc. This is especially helpful for Staff or Dual bladed sabers running on a single board but can also be applied to multiple other uses.

Questions / discussion here: ProffieOS7.x "Conditional Effects" pre-alpha discussion

-------------------------------- ACCELERATING / DECELERATING TRANSITIONS (BEND TIME) ----------------------

This is the accelerating/decelerating transition effects capability.

Questions / Discussion here: ProffieOS7.x "Accelerating / Decelerating Transitions (BEND TIME)" pre-alpha discussion

-------------------------------- MINI GAMES ----------------------------------

These effects are primarily intended for use in “mini game” styles or more advanced interactive styles, like Interactive Blast. On their own they won’t actually trigger anything, when used in combination with my prop and styles using they can be put together to allow for mapping the branches in a mini-game (more to come).

Questions / Discussion here: ProffieOS7.x "Mini Games & Advanced Interactive Styles" pre-alpha discussion

-------------------------------- AUDIO_CLASH_SUPPRESSION_LEVEL ----------------------------------

#define AUDIO_CLASH_SUPPRESSION_LEVEL 15

Allows you to adjust clash detection to account for loud fonts, speaker etc. As audio increases the clash required to trigger increases as well. This may be helpful for sabers that experience a lot of false clashes from sounds like ignition, quotes, swings, etc.

Defaults to 10, if you wish not account for sound set to 1.

Background here: Testing Needed - AUDIO_CLASH_SUPPRESSION_LEVEL

-------------------------------- BOOT_VOLUME ----------------------------------

#define BOOT_VOLUME 200

Allows your saber to start with a lower volume on boot/reset or after uploading. You would then use Volume Menu to increase to operating volume.

More background here:

-------------------------------- MORE TO COME… ----------------------------------

I’ll continue to expand on additional features as I have time and as they are merged so check this reply regularly. Please note, we’re still in pre-Alpha so not all of the above can work yet. This area is to discuss, once everything is ready for Alpha testing Fredrik will announce formally so if you’re trying to do something above and it’s not working it’s probably because not all of the pieces to the puzzle are there yet.

1 Like

Please also write up a summary of some sort in this thread.
By the time ProffieOS 7.x goes to alpha, I would like to have a full list of all the new features.

Sure will do.

Oh my O.o I’m still trying to learn OS6 lol but this all looks amazing! Proffie keeps advancing so quickly, count me in for whatever testing might be needed :smiley: I’m sure I’ll have a lot of questions lol but right now I’m kinda just curious what this is:

  • ProffieOSHumDelay
    Is that going to replace the humstart in the font config or is it something else?

This basically does the same thing as humstart. humstart sets how long before the end of the “out.wav” ends that the hum should start. ProffieOSHumDelay starts from the beginning of the “out.wav” instead. You can use either one, but not both.

Ah ok, cool!

I’m using the above reply to begin documenting/explaining. I still have a lot of writes ups to do so I’ll update this reply as I get time and as the other parts are merged.

Exciting! What will the new DEFINES do?

  • BOOT_VOLUME
  • AUDIO_CLASH_SUPPRESSION_LEVEL

BOOT_VOLUME allows you to set a different “lower” volume at boot, you then use volume menu to increase for normal operation.

AUDIO_CLASH_SUPRESSION_LEVEL is an additional adjust you can apply to take your speaker volume into account for clash detection.

2 Likes

Gah, more homework. :wink:

Oh you have no idea.

2 Likes

@NoSloppy *I’ve an inkling. :wink:

tl: If what I looked at indicates what’s ahead of us, and I’ve barely tapped into OS6, yes “gah” is an understatement. “Huge learning curve.” comes to mind and not to go off-topic but yeah, I’ll likely be asking even more questions when things come up. I/We thought OS6 was mind blowing. “Next level!” doesn’t cover all this. I shoulda/coulda stayed in tech but took an easy-out. I’m boned now if I plan on understanding it better. Another 100-things in 100-days is gonna happen.

To all the contributors listed on the breakouts in the GitHub, awesome work!

1 Like

I’m finding curstate.ini and global.ini as hex instead of plain text.
Is this part of the new way files are written?
curstate used to have installed date and saved preset number,
global would have volume shown.

Most likely, your editor is showing the file as hex because it now contains a bunch of data that doesn’t look like text. The “normal” contents of the file will start at byte 512.