Hello Theo
same as me :-) I played electronic organ sind 1982 and quicky started to
modify it with own electronics. Later, I started with GALs and PLDs to
create an own organ. The first concept was like this:
http://96khz.org/htm/pldmodularorgan.htm
A coarse DDS created from a digitally devided oscillator and then
filtered the analog way (light blue box lower left corner)
Later I used 12 optimized OSC crystals to create the required 11
fundamental frequencies and thus shunning the DDS issues caused by
"gaps" and "hops" in the table / synth maths.
When then coming to FPGAs, I thought of a method to tune these
frequencies in one chip and came to this solution:
http://96khz.org/oldpages/frequencyshifter.htm
It is possible to tune frequencies down to some 0,001% of an incoming
frequency. With that concept it is possible to get all freqs out of one
chip and one oszillator only and make use of FPGAs with less than 11
clock capable inputs.
What I would suggest with todays electronics (and if there is enough
time any money :-) ):
Use 11 Crystals/PLL and an FPGA to create a very high resolution vector
for DDS and drive 11 wave tables from Block-RAMs. Then you get all notes
perfectly trimmed without DDS issues. This is they way were are doing in
an audio meassurement system.
The other way is extremely high sample frequency and very large RAMs
using common DDS. This also makes it possible to perform vibrato without
issues.
Regarding the perfect square:
With common DACs this is hardly possible, since they all use dithering
and filtering as well as band width limiting on order not to generate
ultra sonic frequencies and alias as you decribed. With industrial squre
waves, We do not use DACs at all. Instead there is high frequency design
and rapid gating with GAS-Transistors to e.g. produce GHz-pulses from
FPGAs and tune them in the range of some 50ps in phase. For one of my
customers I built a system with a double DDS tuneably in MHz-region and
beeing able to trim the wave at 20ps only.
Coming back to audio:
From my point of view, this is finally a matter of the edge frequency:
In my 768kHz systems driving a PDM->Analog Filter, it is no problem to
generate a pulse with harmonics up to 50...100 khz having an edge
frequency in that region for the analog filter. Therewith there should
be no audible difference anymore between this and a perfect squre. This
wals also prooved by some tests we did in the field of medical ultra
sonic wave generation and processing. But keep in mind, we need special
"loud speakers" for this to produce these waves in real air :-)
And, starting from 10kHz, the distance to your speaker becomes relevant.
There is a significant samping caused by the air. Frequencies in the
range of 50kHz are significantly reduced in a larger distance, so you
need a kind of emphasis possibly.
Regarding the methods of filtering:
FIR can and cannot be a good choice to prepare the signals for DACs
because of pre-ringing. This all depends on the analog filter design and
the response. The best perfect pulse in theory can be obtained by
sending the response of a DIRAC, namly the standard filter coefficiants
of a low pass filter into such a low pass filter with an edge frequency
meeting that of the FIR coefficient. This is the best trade off between
steepness and overshot.
Jürgen
Am 13.06.2018 um 12:59 schrieb Theo Verelst:
There's this preoccupation I have since the advent of going "digital",
let's say since I heard music being played on CD in the early 80s.
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp