"Please set CONFIG FILE as shown above"

Here are the content of HeroPack:

We can clean-up your BladeConfig now that you’ve shared the wiring diagram–and it does need it because your blade config is not consistent with your wiring, with data and led pins not in agreement.

Your main blade is correct, but your second blade should be on blade2Pin with bladePowerPin4.
This BladeConfig will let you control the two pixels independently, with different styles (note: this includes changing the num-blades define.

#define NUM_BLADES 3
BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(), //main blade
    SubBlade(0, 0, WS281XBladePtr<2, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin4> >()), //first pixel
    SubBlade(1, 1, NULL),  //second pixel
  , CONFIGARRAY(presets) },
}; 

For the sound/SD card issue–others know the expected files better than I, but the HeroPack folder looks correct. Need to confirm the common folder is correct too. Also–make sure the SD card is formatted as FAT32. You do not have a track specified–I don’t know what that would do… all of my SD cards also have a tracks folder with .wav files referenced in the second parameter of the preset.

Aside from suggesting you try different SD cards–I think I’ve reached the limit of what I can do to help…

best,
j

Tried that but no change to the sound distortion unfortunately :confused:

Do you see any underflows in the serial monitor when the distortion occurs?

When I cycle through presets and use the “on” prompt for the serial monitor I get:

Ignition.
SD card is busy, flags= medium
DISPLAY: OWK3 Style
No sounds found: font
No sounds found: hum
SD card is busy, flags= medium
unit = 0 vol = 0.00, No sounds found: poweron
No sounds found: hum
Audio underflows: 1
Amplifier off.
Battery voltage: 3.87

This output indicates the the SD card is busy (maybe used by the computer) so it doesn’t really mean anything.

That said, one or two underflows right when you start up is fairly normal. However, if you get repeated underflows while the hum (or other things) are playing, then you have a problem somewhere. (Usually the SD card is too slow.)

It’s a SanDisk 16GB, from what I know that’s a good one.
Are there any issues with the “No sounds found: font” and “hum” lines?

Also, I took the volume down to 100 and its no distorted; obviously not ideal since it’s very quiet and I can do the verification config at 1500 with no issue. It also says “Error in font directory” when I boot it; it’s said this the entire time but this is the first time I’ve been able to make out what the words are since the distortion has been so bad.

The line before says it failed to access the SD card, so not being able to find “font” and “hum” would be a normal consequence.

Does the distortion go away with a fully charged battery connected?

Ahh, I see.

And unfortunately no, the battery is fully charged and has been at least >90% or so throughout my troubleshooting.

And the there it’s connected? (Kill switch isn’t off or something?)

If you have sufficient power, and you’re still getting distortion, then there is very likely something wrong with your board unfortunately.

I was worried about that too, but if it’s clear at 1500 volume on the verification config file, why would the board distort my file at 1000 or less?

That’s my biggest mystery, it works like a charm now with the verification configuration (although there’s no sound fonts, but the spoken words are extremely clear, whereas the same voice is broken with my file).

Could you explain this with a lot of detail?
“there’s no sound fonts”?
Like what happens if you edit the verification config to use the fonts in “your” config instead of the default TeensySF etc…?
And vice versa, what if you edit “your” config to use the default fonts TeensySF etc… ?
Which “spoken lines” are clear , but “broken” with your file?

Did you correct the blade config? I’m not sure it matters, but your data and LED pins are not in agreement with the wiring–which could cause power issues.

That is indeed a good question.
Post your current config file and we’ll take a look.

I haven’t tried swapping my fonts into the verification or vice versa, I’ll give that a shot.

But either “font directory not found” or “error in font directory.” With my config, distorted at high volumes, in the verification config, crystal clear.

I did and it didn’t change anything, so I reverted to my original config. I can give it another shot.

// ProffieOS7 Config File
#ifdef CONFIG_TOP
#include "proffieboard_v3_config.h"
#define NUM_BLADES 4
#define NUM_BUTTONS 2
const unsigned int maxLedsPerStrip = 144;
#define EXTRA_COLOR_BUFFER_SPACE 60
#define VOLUME 100
#define CLASH_THRESHOLD_G 3
#define ENABLE_AUDIO
#define ENABLE_MOTION
#define ENABLE_WS2811
#define ENABLE_SD
#define SHARED_POWER_PINS
#define MOTION_TIMEOUT 60 * 5 * 1000
#define IDLE_OFF_TIME 60 * 5 * 1000
#define DISABLE_BASIC_PARSER_STYLES
#define DISABLE_DIAGNOSTIC_COMMANDS
#define SAVE_VOLUME
#define SAVE_COLOR_CHANGE
#define SAVE_PRESET
#define NO_REPEAT_RANDOM
#define COLOR_CHANGE_DIRECT
#define FETT263_CLASH_STRENGTH_SOUND
#define FETT263_MAX_CLASH 16
#define FETT263_SAY_COLOR_LIST_CC
#define FETT263_HOLD_BUTTON_LOCKUP
#define FETT263_LOCKUP_DELAY 200
#define FETT263_BM_CLASH_DETECT 6
#endif

#ifdef CONFIG_PROP
#include "../props/saber_fett263_buttons.h"
#endif


#ifdef CONFIG_PRESETS

Preset presets[] = {
{ "HeroPack;common",  "",
/* copyright Fett263 Rotoscope (Primary Blade) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v2.241p
Single Style
Base Style: Audio Rotoscope - Single Color (Prequels)

Base Color: BaseColorArg (0)

--Effects Included--
Ignition Effect: SparkTip Ignition [Color: IgnitionColorArg]
Retraction Effect: Standard Retraction [Color: RetractionColorArg]
Lockup Effect:
0: mainLockMulti0Shape - Begin: Real Clash - Style: Intensity AudioFlicker - End: Full Blade Absorb
[Color: LockupColorArg]
Lightning Block Effect:
0: mainLBMulti0Shape - Begin: Responsive Impact - Style: Strobing AudioFlicker - End: Full Blade Absorb
[Color: LBColorArg]
Drag Effect:
0: mainDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: mainMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
Blast Effect: Blast Fade (Random) [Color: BlastColorArg]
Clash Effect: Random Clash [Color: ClashColorArg]
Battery Level: % Blade (Green to Red)
*/
StylePtr<Layers<AudioFlicker<Stripes<24000,-1400,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<11565>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,Mix<Int<16448>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,TransitionEffectL<TrConcat<TrInstant,AlphaMixL<Bump<EffectPosition<EFFECT_BLAST>,Scale<EffectPosition<EFFECT_BLAST>,Int<9000>,Int<12000>>>,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<BLAST_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>,EFFECT_BLAST>,TransitionEffectL<TrConcat<TrInstant,AlphaMixL<Bump<EffectPosition<EFFECT_CLASH>,Scale<ClashImpactF<>,Int<9000>,Int<12000>>>,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<16384>,Black,RgbArg<CLASH_COLOR_ARG,Rgb<255,255,255>>>>,TrFade<300>>,EFFECT_CLASH>,LockupTrL<TransitionEffect<AlphaL<AlphaMixL<Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<22000>>>,AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,BrownNoiseFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<12000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>,300>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<22000>>>>,AlphaL<AudioFlicker<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Mix<Int<20000>,Black,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<SwingSpeed<100>,Int<14000>,Int<18000>>>>,TrExtend<5000,TrInstant>,TrFade<5000>,EFFECT_LOCKUP_BEGIN>,TrConcat<TrJoin<TrDelay<50>,TrInstant>,Mix<IsLessThan<ClashImpactF<>,Int<26000>>,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,AlphaL<RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Scale<BladeAngle<0,16000>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-12000>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<10000>>>,Sum<IntArg<LOCKUP_POSITION_ARG,23940>,Int<-10000>>>,Scale<ClashImpactF<>,Int<20000>,Int<60000>>>>>,TrFade<300>>,TrConcat<TrInstant,RgbArg<LOCKUP_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,SaberBase::LOCKUP_NORMAL,Int<1>>,ResponsiveLightningBlockL<Strobe<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,AudioFlicker<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Blue>,50,1>,TrConcat<TrExtend<200,TrInstant>,AlphaL<RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,Bump<Scale<BladeAngle<>,Int<10000>,Int<21000>>,Int<10000>>>,TrFade<200>>,TrConcat<TrInstant,RgbArg<LB_COLOR_ARG,Rgb<255,255,255>>,TrFade<400>>,Int<1>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,28000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrWipeSparkTipX<RgbArg<IGNITION_COLOR_ARG,Rgb<255,255,255>>,BendTimePowInvX<IgnitionTime<200>,Mult<IntArg<IGNITION_OPTION2_ARG,10992>,Int<98304>>>>,TrWipeInX<BendTimePowInvX<RetractionTime<0>,Mult<IntArg<RETRACTION_OPTION2_ARG,10992>,Int<98304>>>>,Black>,TransitionEffectL<TrConcat<TrJoin<TrDelay<2000>,TrWipe<1000>>,AlphaL<Mix<BatteryLevel,Red,Green>,SmoothStep<BatteryLevel,Int<-10>>>,TrWipeIn<1000>>,EFFECT_BATTERY_LEVEL>>>(),

/* copyright Fett263 (Crystal Chamber) OS7 Style
https://www.fett263.com/fett263-proffieOS7-style-library.html#Rotoscope
OS7.14 v2.241p
Single Style
On Behavior: Solid Color [Color: BaseColorArg]
Off Behavior: Fast Pulse Dim-On [Color: Match ON Color]

Base Color: BaseColorArg (0)

--Effects Included--
Ignition Effect: Instant [Color: IgnitionColorArg]
Retraction Effect: Instant [Color: RetractionColorArg]
Lockup Effect: NoneLightning Block Effect: NoneDrag Effect:
0: crystalDragMulti0Shape - Begin: Wipe In - Style: Intensity Sparking Drag - End: Wipe Out
[Color: DragColorArg]
Melt Effect:
0: crystalMeltMulti0Shape - Begin: Wipe In - Style: Intensity Melt - End: Wipe Out
[Color: StabColorArg]
*/
StylePtr<Layers<RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,LockupTrL<AlphaL<TransitionEffect<RandomPerLEDFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>>,BrownNoiseFlickerL<RgbArg<DRAG_COLOR_ARG,Rgb<255,255,255>>,Int<300>>,TrExtend<4000,TrInstant>,TrFade<4000>,EFFECT_DRAG_BEGIN>,SmoothStep<Scale<TwistAngle<>,IntArg<DRAG_SIZE_ARG,31000>,Int<30000>>,Int<3000>>>,TrWipeIn<200>,TrWipe<200>,SaberBase::LOCKUP_DRAG,Int<1>>,LockupTrL<AlphaL<Stripes<2000,4000,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,Mix<Sin<Int<50>>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,Mix<Int<4096>,Black,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrConcat<TrExtend<4000,TrWipeIn<200>>,AlphaL<HumpFlicker<Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>,RotateColorsX<Int<3000>,Mix<TwistAngle<>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>,RotateColorsX<Int<3000>,RgbArg<STAB_COLOR_ARG,Rgb<255,68,0>>>>>,100>,SmoothStep<Scale<TwistAngle<>,IntArg<MELT_SIZE_ARG,26000>,Int<30000>>,Int<3000>>>,TrFade<4000>>,TrWipe<200>,SaberBase::LOCKUP_MELT,Int<1>>,InOutTrL<TrInstant,TrInstant,Pulsing<Mix<Int<8192>,Black,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>>,RgbArg<BASE_COLOR_ARG,Rgb<0,0,255>>,2000>>>>(),

StylePtr<White>(),

StylePtr<White>(),

"OWK3 Style"
},

};

BladeConfig blades[] = {
 { 0, WS281XBladePtr<144, bladePin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >(),
    SubBladeWithStride(0, 15, 2, WS281XBladePtr<16, blade2Pin, Color8::GRB, PowerPINS<bladePowerPin2, bladePowerPin3> >()),
    SubBladeWithStride(1, 15, 2, NULL),
    WS281XBladePtr<15, blade3Pin, Color8::GRB, PowerPINS<bladePowerPin4> >()
  , CONFIGARRAY(presets) },
};
#endif

#ifdef CONFIG_BUTTONS
Button PowerButton(BUTTON_POWER, powerButtonPin, "pow");
Button AuxButton(BUTTON_AUX, auxPin, "aux");
#endif

 /* Generated with Fett263 Config Helper v3.10 */

Per your wiring diagram, your 1st pixel is captured in the definition for blade 2 and your second pixel is in blade 3, but they get power from the LED defined in blade 4.

I don’t see anything obvious in the config file that could cause audio glitches.
Is it actually the same sound that is broken with this config and works with the default config?

If the builtin sounds are somehow affected, there is a very small set of things that can cause that, and the SD card isn’t one of them. However, if it is sounds that comes from the SD card that are affected, then 90% of the time, replacing the SD card fixes the problem.

What would the correct blade config look like then to match my wiring? Just subtract 1 from each bladePowerPin?