Sound Fonts Crackling or Muting

Hi all, I’ve been encountering some strange sound issues on my Sabertrio lightsaber. After talking to Sabertrio support, they confirmed to me that they were able to observe this issue on their in-house sabers as well, so I wanted to bring it here.

The Problem:
When using some of my sound fonts, the speaker has the possibility to make harsh, loud, crackling noises. Alternatively, when I am using FILTER_CUTOFF_FREQUENCY in my config, the saber will mute itself instead of crackling.

  • It seems to happen specifically during swng events (not swingh nor swingl). It seems to happen (or more likely happen) when multiple swng events happen in quick succession, or when a swng event happens in close proximity to a different effect like a clash or blast.
    • Strangely, I have never been able to reproduce the problem by pushing a swng command through the serial monitor.
  • Each swng file in a particular soundfont seems to have the possibility of causing the issue when it is played. Each file has a different chance of making the problem happen, if at all. I came to this conclusion by testing each swng file in a particular font one at a time by making it the only swng file in the font. Removing all swng files from the font or only using swng files that have no chance to crackle will remove the issue on that font.
    • Most of the sound fonts that I use are from Kyberphonic or KSith. The fonts that Sabertrio provides out of the box seem to all have zero chance of causing the issue, though I will note that some of those good out-of-the-box fonts are also by KSith/Kyberphonic, so I’m not sure if this is relevant.
  • When the saber mutes itself, all other functionality of the saber works normally. Buttons, LEDs, etc all work fine, except the speaker. It will usually unmute itself after retracting the blade. Rarely, it will stay muted even after retracted, and will remain muted until the current font is switched (even more rarely, it may stay muted until multiple fonts switch)
  • It is much easier to replicate the bug when using a blade plug, likely because it’s easier to generate the acceleration required for swng events

Things I Have Tried:

  • Charging the battery
  • I cannot check the 5v pad because it is covered by a Sabertrio warranty sticker
  • Playing at low volume (87.5 at the lowest)
  • Formatting the SD card with SDAssociation Formatter
  • Using a different SD card
  • Removing excess fonts
  • Reinstalling fonts directly out of the downloaded .zip they came in
  • Editing/switching config.ini, smoothswing.ini
  • Reverting to out-of-box config file
  • Using different prop_configs
  • Using different values for FILTER_CUTOFF_FREQUENCY and FILTER_ORDER

This link leads to a Google Drive folder that I’ve set up containing more useful resources for this issue, including example footage, Serial Monitor output, configs, and a list of fonts I use.

If anyone is able to reproduce this behaviour on their sabers, or if anyone has any idea why this happens or how I may be able to fix it, please let me know!

Which swng file(s) in The Sorcerer cause it?

The only thing that looks weird in the serial monitor output is multiple SWING events extremely close together and then one sound played.

SerialOutput01:

18:22:25.380 -> EVENT: Swing ON millis=280659
18:22:25.665 -> EVENT: Swing ON millis=280903
18:22:25.713 -> EVENT: Swing ON millis=280996
18:22:25.950 -> EVENT: Swing ON millis=281217
18:22:25.998 -> unit = 1 vol = 0.50, Playing Ahsoka/swng/swng03.wav

SerialOutput02:

18:31:53.605 -> EVENT: Swing ON millis=105781
18:31:53.747 -> EVENT: Swing ON millis=105927
18:31:53.747 -> unit = 1 vol = 0.50, Playing Ahsoka/swng/swng01.wav

SerialOutput03 looks normal. Did you have an issue during that?

PM’d you something to try.

1 Like

In The Sorcerer, every swng file except swng10 and swng11 can cause it, as far as I can tell.

I saved these logs over a day ago, so I can’t recall for sure. There’s a chance that output3 was normal and I mistakenly saved it. I am pretty confident that the issue happened in the cases where multiple swing events only played one wav, though.

Will give it a try and get back to you when I have the chance

(For context for others, I was sent swing files identical to those in The Sorcerer, but they seem to have some volumes or other properties clamped. It sounds less bass-y than the original swing sounds).

These files work great! There is no crackle or mute using these swng files. Not a perfect fix for the problem at large, but gives new interesting information about what’s happening

I encountered this issue from time to time as well, where it most occurs during accent swings and a successive amount of accent swings back to back (swinging furiously and quickly) where the saber just ends up muting itself (but the neoblade remains lit)…and once you turn of your saber and re-ignite it…the sound is back.

It took me weeks to trouble shoot it, and ive come to the following conclusions as to why it happens:

Your sound files are too HOT. Meaning, the sound files themselves are pushed to 0db_fs with no headroom, and the wave file itself is flatlined and squished to death. This also happens too when the file itself is too bassy, and the wave form is flatlined (over compressed/limited) trying to get a bassy sound to come across as “louder”.

I don’t know how the driver chips work in the proffie soundboard, but the fact that it cuts off the sound on the saber when too many sound files of this type happen in quick, constant occurrences/triggers…it could be the sound driver on the chip itself is overloaded and as a safety measure instead of blowing it up… it just shuts itself off and cuts the sound.

Saying it happens because of the sound driver chip is just speculation of course. Because CFX or golden harvest uses different sound chips maybe this happens only on proffie, that I dont know. But i do know the remedy to fix this, is too take all the accent swing files and high pass them at 100hz and/or low shelf EQ around 200hz by -4db, and then place a limiter on them set to a threshold of around 0.3dbfs (to ensure no peaks surpass this point). Also lower the overall volume of the file itself by a very small amount (like -0.5db) before passing it into the limiter.

1 Like

This is exactly what I did to the files I sent him that apparently resolved the issue.
The low end was ridiculous, which aside from absolutely not going to be reproduced by a tiny speaker, apparently has enough juice to knock the amp into “safety shutoff” or something. @profezzorn would need to chime in regarding the chip behavior.

However, this points at an issue possibly with FILTER_CUTOFF_FREQUENCY, as that should be doing the same thing I did, only in real time.

2 Likes

While I can’t say for sure, some information I’ve gathered from others hints that it may indeed only happen on Proffie. Kyberphonic told me he uses a CFX Sabertrio when making/testing his fonts, and hasn’t encountered this. S3 told me they were able to replicate it on their Proffie sabers using my font files. I think I’ll reach out to S3 again and ask if they are able to replicate it on their CFX installs as well

So, it sounds like this happens even at low volumes, which to me means that it’s not the sound chip that’s doing it, but something in the ProffieOS sound mixing algorithms.

Now, having things sound bad when you use files with extremely high volume is normal and intentional. ProffieOS normally plays sounds at a volume of 0.5, but smoothswing with push the volume higher, and when the volume goes over 1.0, some clipping can occur. (if the swing sound
is using the full range of values.) This clipping adds some grit to the sound, but can become awful if taken to an extreme. Limiting the volume of the swings and the maximum swing volume in such a way that you get the right amount of clipping is part of good font design.

Now if CFX does this differently than ProffieOS, then we may have some work to figure out what that ‘differently’ is, and then duplicate when ProffieOS is given a CFX font. For non-cfx fonts, the current behavior should be preserved though.

It’s weird that it’s muting when the filter is being used though. I’m not sure how that happens.

1 Like

Is there an easy way I can learn how to do this? I’m not familiar with editing sound files in any way like this.

This is true, I put the original swing files and the modded ones you sent me side-by-side, and I can’t tell the difference after it goes through the speaker.

As Sloppy is saying, there’s a chance that the filter isn’t fully working as intended, since it’s causing the saber to mute instead of fixing the crackle.

As long as I can figure out how to edit the swing files like this, I can use that as a temporary work-around, but the ideal fix would be that enabling the filter works as expected

There isnt an easy way to teach all of these things, its just knowing audio engineering. But the quickest way to do this, is download a free audio editor like Audacity. Once you load a sound file in there, they have an effect called “High pass Filter” which you would apply to that file/track…and just set the frequency to 100hz so it rolls off all frequencies below that point.

https://manual.audacityteam.org/man/high_pass_filter.html

1 Like
1 Like

Thanks for reposting the step by step to the batch high-pass. IIRC this is what you also did for me w a problem font set I was dealing with and this solved it.

NoSloppy for the WIN! Nice video :slight_smile:

1 Like

Thanks for the help, everyone! I added the filter to all of my files, and also lowered the volume before adding a limiter for some of the more stubborn fonts. This has significantly improved the issue; I can now only get the saber to mute when I try very hard to do so with a blade plug, and I have yet to reencounter the issue while using a full blade.

From now on, I’ll have to do this with any new sound fonts I get, until things develop further for this in the future.

1 Like