this post was submitted on 04 Oct 2023
27 points (86.5% liked)

Apple

17455 readers
79 users here now

Welcome

to the largest Apple community on Lemmy. This is the place where we talk about everything Apple, from iOS to the exciting upcoming Apple Vision Pro. Feel free to join the discussion!

Rules:
  1. No NSFW Content
  2. No Hate Speech or Personal Attacks
  3. No Ads / Spamming
    Self promotion is only allowed in the pinned monthly thread

Lemmy Code of Conduct

Communities of Interest:

Apple Hardware
Apple TV
Apple Watch
iPad
iPhone
Mac
Vintage Apple

Apple Software
iOS
iPadOS
macOS
tvOS
watchOS
Shortcuts
Xcode

Community banner courtesy of u/Antsomnia.

founded 1 year ago
MODERATORS
 

Watch video linked from Mastodon to hear the difference due to the bug.

Bug still exists in Sonoma

Full thread: https://social.treehouse.systems/@marcan/111160426488046610

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 11 points 1 year ago* (last edited 1 year ago)

They go on to deduce it's an off-by-one error in the time domain.
So instead of 0-127 it's processing 0-126 samples (a classing i < 127 instead of i <= 127 in a for loop)

https://social.treehouse.systems/@marcan/111160552044972689

The train of thought was:

  • The aliasing is every 375 Hz.
  • 48000 / 375 = 128 so this is some fourier thing with a block size 128???
  • Wait no, this could be time domain, aliasing like that is what you get when you upsample without lowpassing.
  • Specifically, when you upsample with zero-sample padding (standard), that is, when one sample out of 128 has the low frequency content.
  • So this is like taking the average of a 128-sample block and adding it to just one sample?
  • Wait, isn't that almost equivalent to zeroing out one sample?

numpy time

fs, signal = wavfile.read("sweep.wav")
signal[::128] = 0
wavfile.write("lol.wav", fs, signal)

And the rest is history.

Edit:
Stupid less-than symbol getting html-coded