OLED Images

Is it possible to have a preon oled image play and if so how would you make it work during preon sequence, as well as adding other feature like battery meter.
Thanks for any advice MTFBWY

I replied to you on Facebook. It’s in the works :wink:

I just whipped up this for displaying when low battery occurs
lowbatt.bmp (9.1 KB)

1 Like

Is there a list that tells you what should be in the config,ini file for OLED images for or can you just use the ones listed as an example to make more like # For OLED displays, the time an on.bmp will play
ProffieOSOnImageDuration=5000.0

I like the lowbattery image

hybrid_font.h has a list in iterateVariables().
Once things get finished up, config.ini in the font could look something like this:

# config.ini

# This specifies how many milliseconds before the end of the "out" sound 
# that the hum starts to fade in.
# Default 100
# humStart=1800

# This specifies how many milliseconds from the beginning of the "out" sound 
# that the hum starts to fade in.
# This overrides humStart, but you can only use one or the other. 
# Default 0
ProffieOSHumDelay=200

# The volume of the hum sound. Can be 0-16, where 0 is muted.
# Default 15
volHum=15

# The volume of all effect sounds. Can be 0-16, where 0 is muted.
# Default 16
volEff=16

# How fast (degrees per second) we have to swing before 
# a swing effect is triggered. 
# Default 250.
ProffieOSSwingSpeedThreshold=250

# How much to bend the response curve between swing speed and swing volume.
# Can be 0.01 - 2.0, where value of 1.0 will result in no bending. 
# Default 0.5
ProffieOSSwingVolumeSharpness=0.5

# The volume multiplier when swings are at the swing speed threshold.
# Can be 1.0 to 3.0. 
# Default 2.0
ProffieOSMaxSwingVolume=2.0

# Specify what fraction of swing that must be played before a new swing can be
# started. Can be 0.0-1.0. 
# Defaults to 0.5 (50%).
ProffieOSSwingOverlap=0.5

# This is used to control the volume of the combined hum and smoothswings
# when an accent swing plays.                       
# Defaults to 0.2 (volume is decreased by 20% of swing volume)    
ProffieOSSmoothSwingDucking=0.2                       

# How slow (degrees per second) the swing has to be before it's not considered
# to be a swing anymore. 
# Default 200.
ProffieOSSwingLowerThreshold=200

# Only used for non-smoothswing fonts. Specifies how aggressive a swing has
# to be to be considered a slash. Once we
# reach the ProffieOSSwingSpeedThreshold, rate of swing speed change is used to
# determine if it's a swing or a slash.
# Default 260
ProffieOSSlashAccelerationThreshold=260

# If #define ENABLE_SPINS is defined:
# Number of degrees the blade must travel while staying above the
# swing threshold in order to trigger a spin sound.
# Default is 360 or one full rotation.
ProffieOSSpinDegrees=360.0


# ---- As of ProffieOS 6 ---- #

# Minimum acceleration for Accent Swing file Selection
# recommended value is 20.0 ~ 30.0
ProffieOSMinSwingAcceleration=20.0

# Maximum acceleration for Accent Swing file Selection
# must be higher than Min value to enable selection
# recommended value is 100.0 ~ 150.0
ProffieOSMaxSwingAcceleration=100.0

# Pair sequential effects such as preon->out.wav files
# EFFECTNAME can be “preon”, “out”, “pstoff”, etc.
# Set to 1 AND have the same number of files in the second effect
# to activate this feature. Only the first in the chain need be paired here.
# ProffieOS.SFX.EFFECTNAME.paired=1
# For example:
ProffieOS.SFX.preon.paired=1
# will pair with out.wavs
ProffieOS.SFX.in.paired=1
# will pair with pstoff.wavs
ProffieOS.SFX.bgnlock.paired=1
ProffieOS.SFX.bgndrag.paired=1
ProffieOS.SFX.bgnlb.paired=1
ProffieOS.SFX.bgnmelt.paired=1
ProffieOS.SFX.bgnarm.paired=1

# When multiple hum files exist, this will loop the 
# same hum sound until next ignition instead of randomly 
# choosing a different file once the current hum ends.
ProffieOS.SFX.hum.paired=1

#----- tentative OS7 hum paired to out.wav
ProffieOS.SFX.out.paired=1
# will pair to hum.wavs
ProffieOS.SFX.SOMETHING.paired=1
# will pair to boom.wavs

# Set the volume for each effect individually, in percent.
# 50 makes it half as loud. 200 makes it twice as loud. 
# Maximum allowed value is currently 255. The default is 100.
# EFFECTNAME can be "clash", “preon”, “out”, “pstoff”, etc.
#
# ProffieOS.SFX.EFFECTNAME.volume=100
ProffieOS.SFX.boot.volume=75

# ---- As of ProffieOS 7 ---- #

# Pairing the lock sounds matches up the same number end sound,
# and this works for any / all lockups.
# lock → endlock
# drag → enddrag
# lb → endlb
# melt → endmelt
# armhum → endarm
# auto → endauto


ProffieOS.SFX.lock.paired=1
ProffieOS.SFX.drag.paired=1
ProffieOS.SFX.lb.paired=1
ProffieOS.SFX.melt.paired=1
ProffieOS.SFX.armhum.paired=1

#----------------------------
# For OLED displays.

# Match OLED images to sounds with same numbers
# Ex: blst02.bmp shows when blst02.wav plays
# If quantity of images=wavs, all files are paired 1:1.
# If quantity of images<wavs, unmatched higher numbered wavs all use highest numbered image.
# If quantity of images>wavs, unmatched images get ignored.
# If not set to pair, images are randomly chosen, regardless of quantities of sounds/images.
# ProffieOS.IMG.EFFECTNAME.paired=1
ProffieOS.IMG.boot.paired=1
ProffieOS.IMG.blst.paired=1
ProffieOS.IMG.clsh.paired=1
ProffieOS.IMG.lock.paired=1

# This specifies the frame rate of animtions.
# If not specified (or set to zero) the frame rate will be 24 frames
# per second for non-looped animations. For looped animations, the
# frame rate will be set so that the loop takes one second.
ProffieOSAnimationFrameRate=0.0

# Below are the durations the images will play for.
# If commented out or not specified, the default is used.
# As of ProffieOS 7, effect images can use 0.0 to automatically 
# sync to the effect sound file duration.


# Boot image duration
# Default 4000.0
# ProffieOSBootImageDuration=5000.0

# Font image duration
# Default 3000.0
ProffieOSFontImageDuration=3000.0

# Blast image duration
# Default 1000.0
ProffieOSBlastImageDuration=0.0

# Clash image duration
# Default 500.0
ProffieOSClashImageDuration=0.0

# Force image duration
# Default 2000.0
ProffieOSForceImageDuration=0.0

# Preon always autosyncs

# Out image duration
# Default 2000.0
ProffieOSOutImageDuration=0.0

# In image duration
# Default 2000.0
ProffieOSInImageDuration=0.0

# Pstoff image duration
# Default 2000.0
ProffieOSPstoffImageDuration=0.0

#----------------------------
# Blaster Images

# Reload image duration
# Default 1000.0
ProffieOSReloadImageDuration=0.0

# Empty image duration
# Default 1000.0
ProffieOSEmptyImageDuration=0.0

# Jam image duration
# Default 1000.0
ProffieOSJamImageDuration=0.0

# Clip In image duration
# Default 1000.0
ProffieOSClipinImageDuration=0.0

# Clip Out image duration
# Default 1000.0
ProffieOSClipoutImageDuration=0.0

# Destruct image duration
# Default 10000.0
ProffieOSDestructImageDuration=0.0

Maybe I am missing something but shouldn’t there be # For OLED displays, the time an on.bmp will play
ProffieOSOnImageDuration=5000.0

No, you’re correct, that’s a thing. For me personally, I always have a looping BMP play during ON, so it’s not a set duration as it just keeps looping, so I just don’t even have it in my config.ini.

This would where you’d get the full list really:

1 Like

So how do you set your ON looping BMP, if you don’t mind saying

Images will loop if they are made from vertically stacked frames and saved as a 1bit-per-pixel monochrome .bmp files.
The images just go in the font with the sounds, and are treated just like sounds as far as being chosen randomly, or paired to the accompanying numbered wav file.

More info in the links below to the ProffieOS Documentation site (although I should update the page as I’ve found more streamlined methods,) as well in the video series I did on Youtube.

Can ProffieOSPreonImageDuration, 2000.0f be added, or would a preon.bmp looped image work with out adding something to the hybrid_font.h file or adding to the config.ini file

The plan is to have preon image just always auto-sync to the wav length.
Other images could be set to duration=0 in config.ini to have them sync to wav, else use the set duration, or the default if not specified or commented out.
What do you think?

That sounds like a great plan to me. Your awsome.
MTFBWY

1 Like