Stenzel

Joined 10 years ago

Karma
127
Submissions
30
Member since
Aug 1
Mainly audio signal processing, also iOS Apps, speech synthesis and synthesis of singing voice. Freelancer.

7aa82bc7a548f58c98b7b53f6cdb3c7890071babcbae6979014ee7da5a2f228a

View on Hacker News

Recent submissions

Comment · 2 years ago
Processors with saturating capabilities usually clip at 0x7FFFFFF and 0x80000000, so the clipping thing has no relation to the original topic. But in fixpoint DSP, 0x8000 (add trailing zeros if you like) is often the only possibility to achieve a multiplicative identity by using a = - b * 0x8000, with the negation part of the assembly instruction.
Comment · 2 years ago
Title should say screen design, for general UI these are quite useless, especially if your UI is physical.
Comment · 4 years ago
OK for beginners, but there are lots of nice voicings missing, also those where the root note is not played at all.
Comment · 5 years ago
Your proposed zero phase filter won't work in realtime, and there are many use cases for what you consider shitty.
Comment · 5 years ago
This is indeed an excellent way of filtering if your audio is cyclic and fits into a single FFT, like a periodic waveform, a drum loop or an Optigan track. Just make sure not to apply any window.
Comment · 7 years ago
True, but ambiguity does not imply that one possible interpretation must necessarily be an illusion.
Comment · 7 years ago
There is no illusion of pitch, and it is a common misconception that the fundamental frequency must be present in a tone. Pitch is the perceived periodicity of a tone, which is roughly the greatest common divisor of the harmonics. If perceived pitch without fundamental is considered an auditory illusion with, common pitch detection techniques should fail if the fundamental is not present, but they work quite well in the absence of the fundamental. So either there is no illusion of pitch or algorithms have illusions too.
Comment · 7 years ago
Sadly most sorce code follows the exact opposite convention - starting with legalese, followed by boring initialisation. I wish more source code would come to the point right at the start, and I am thankful for the new acronym BLUF that expresses this concept quite clearly.
Comment · 7 years ago
Much faster if constraints are represented by single bits in an integer mask and binary masking operations are used - even the hardest soduko solves instantly.
Comment · 7 years ago
The transposed direct form II allows a biquad to be calculated with two scalar by vector multiplications and some shuffling, which should be faster than the proposed matrix solution I believe.
Comment · 7 years ago
MIDI is great, and I am so thankful that they had the foresight to require a mandatory opto-coupler in the input to avoid ground loops of interconnected gear. Even today, very few devices have a comparable insulation in their USB connection.
Comment · 7 years ago
This book contains some wrong and oversimplified statements, the explanation of the sampling theorem is awkward and suggests that the author has not fully understood it himself.

Example of wrong claims: "The heart of digital noise generation is the random number generator." Not true, many digital noise generators use LFSR.

"Just as analog filters are designed using the Laplace transform, recursive digital filters are developed with a parallel technique called the z-transform." Hello no, there are gazillion ways to design filters - analog or digital - without those transforms.

"The frequency domain becomes attractive whenever the complexity of the Fourier Transform is less than the complexity of the convolution. This isn't a matter of which you like better; it is a matter of which you hate less."

Clearly I hate both domains less than this book. It might serve as an introduction to DSP, but please remain suspicious, if some claim herein seems oversimplified, it probably is.

Comment · 8 years ago
If you sell hardware, you have to deal with CE/FCC/RoHS and -worst of all- WEEE compliance, to name just a few. In comparison, GPDR is a piece of cake. Just sayin.
Comment · 8 years ago
The distortion sounds like it is applied to individual strings, if it were applied after summing, it would not only resemble more a real electric guitar, but also sum- and difference frequencies of detuned strings would be audible much nicer as beating.

Furthermore, the intervals E-A/A-D/D-G and B-E are not exactly perfect fourths, they should be equal tempered. Luckily the difference is almost negligible for the fourth, the perfect interval would be 4/3 = 1.3333 versus 2^(5/12) = 1.3348 for equal temperament. The interval G-B however is a major third, here the perfect interval is 5/4 = 1.25 while equal tempered is 2^(4/12) = 1.26 Those minor errors accumulate if one string is tuned based on the preceding one, the interval from lowest to highest strings can be calculated:

(4/3)^4 * 5/4 = 3.95 for perfect intervals, 2^(4 * 5/12) * 2^(4/12) = 4 for equal temperament.

The highest string should be exactly two octaves (= a factor of 4) above the lowest one, so the equal temperament should be preferred. A practical result is that tuning a guitar using only intervals of adjacent strings will never really converge to the ideal result, so tuning (fretted) octaves and flageolets should be used in addition.

Comment · 8 years ago
At least these guys commented, nowadays the paradigm "Identifiers are comments" seems to prevail. Technically this might be good, but reading such code is an experience equivalent to eating unsalted fries.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton