Why is it that when the frequency of of musical note is changed by electronic methods, it doesn't sound good? The further the note is changed the worse it sounds. Changes in lower notes are better than changes in higher notes.
For example, playing a note on a guitar sounds ok, and playing one octave up sounds ok, but if the first note is pitch shifted an octave electronically using an effects unit, although it is up an octave it sounds different, squeaking, a bit distorted and not good. Why is that?
Are you referring to pitch scaling methods? Those algorithms try to analyze the wave and artificially change the frequency of the input waveform while maintaining speed. Some algorithms do better than others.
A simple speed-up method (where the waveform is played at twice the speed and the frequency is also doubled, like playing a tape at a faster rate than it was recorded at) should sound relatively good, though the harmonics between notes change a little with pitch so it still sounds "different" than a note that was actually played at a higher octave.
tim77777:
Why is it that when the frequency of of musical note is changed by electronic methods, it doesn't sound good? The further the note is changed the worse it sounds. Changes in lower notes are better than changes in higher notes.
For example, playing a note on a guitar sounds ok, and playing one octave up sounds ok, but if the first note is pitch shifted an octave electronically using an effects unit, although it is up an octave it sounds different, squeaking, a bit distorted and not good. Why is that?
Pitch scaling is fundamentally a non-linear operation, which is what makes it both hard and ill-defined, there
are different approaches with different consequences to the sound.
Pitch shifting (all frequencies move the same amount in Hz) is a linear operation, and thus easy to do well, but this operation breaks the harmonic relationships and is completely unmusical...
I am interested to (someday) attempt the more advanced frequency-domain methods in the Teensy audio library, especially in the coming years as we get 500+ MHz microcontrollers.... Currently the only method implemented is a granual effect (time domain processing), which sometimes gives ok results but often sounds, well, "granular".
A DSP is what you would use, not a microcontroller. Or an FPGA.
FFT's and so forth can be done on a fast microcontroller but it isn't the most cost-effective approach.
MarkT:
A DSP is what you would use, not a microcontroller. Or an FPGA.
FFT's and so forth can be done on a fast microcontroller but it isn't the most cost-effective approach.
I'm going to eat my words somewhat, having played with the Teensy 4.0, which has a 600MHz dual-issue
super-scalar microcontroller with full floating point (the fastest available I think)...