M
Mark Fergerson
Guest
eromlignod wrote:
dribbling. :>(
involved selecting an input, massaging it, then selecting
the appropriate output and repeating 219 times. That may or
may not be fatal in terms of bottlenecking, but then you
don't have really fast signals to process.
Too often people come here and ask questions without
providing background. I really ought to have looked at your
patent. But no, I had to go off half-cocked. Anyway...
<snip>
values and work it out; you obviously weren't. ;>
on-the-fly thing which seemed over the top to me. You too,
apparently. I don't s'pose high-end pianos are subjected to
wild variations in temp/humidity etc. during play now that I
think about it.
matters, they're quite reliable and I'd guess your patent
isn't that specific. (No, I still haven't looked at the patent)
from what you say each piano "knows" its own tuning from the
get-go from the PROM/whatever the values are stored in at
the factory.
slack at once and something going TWANGGG! But with high-end
pianos, I guess there aren't any "small" catastrophes.
OK, having read your description, I have one final
question; given what you want the thing to do, your
circuitry sounds just about minimalist for the job. Exactly
what part are you unhappy with, having to stack shift
registers to get the word width you need? The only
minimalizing I can imagine that'd be worthwhile would be
putting all the processing, timing, and control functions in
a PIC but you still need all those inputs/outputs.
Industrial controllers typically handle that with racks of
mux/demux but then we're back to bottlenecking. You seem to
be about as close to truly tuning all the strings in
parallel as is feasible, at least to me.
Mark L. Fergerson
I suppose I _could_ have looked at the patent beforeMark Fergerson <mfergerson1@cox.net> wrote in message news:<3F2F7F36.70105@cox.net>...
Multiplexer as suggested by others looks simplest
parts-count wise (with sample-and-hold period/v converter to
PWM drivers?). I never heard of a 1-of-219 chip, so you may
have to learn PICs. Or, you could cascade 1/whatever's handy
and skip unused inputs.
Actually the multiplexing and PWM control isn't that bad. I use a
74F675A serial in, parallel/serial out shift register with
output-hold. Since it has a serial output, you can cascade several
together to basically get one giant shift register. With fourteen of
them in a row I can convert a serial signal to a big 224-bit word. I
connect each bit to a power transistor to control current to the
strings.
dribbling. :>(
Yes, much more so than my first interpretation whichI refresh this word every few milliseconds and send a series of 100
words in a continuous cycle. So if I want to control string #48, I
just put a "1" in the 48th place of the word to turn it on and a "0"
to turn it off. The duty cycle is set by which word of the cycle of
100 words that I change the bit. For example, if I want string #48 to
have a 60% duty cycle, I set bit #48 in the word to "1" in the first
word I send, then set it back to "0" on the 60th word I send. Does
this make sense?
involved selecting an input, massaging it, then selecting
the appropriate output and repeating 219 times. That may or
may not be fatal in terms of bottlenecking, but then you
don't have really fast signals to process.
Too often people come here and ask questions without
providing background. I really ought to have looked at your
patent. But no, I had to go off half-cocked. Anyway...
<snip>
OK, OK, I was too damn lazy to look up the strings'It really does come out to nearly one second.
values and work it out; you obviously weren't. ;>
Rats. You already said that and I failed to notice.Also, how do you cope with the slight shifts in frequency
when the key is first struck and when the little felt pad
thingies damp the strings' vibration when a key is released,
by disabling polling a specific key while it is being played?
The tuning process only occurs when you first turn on the system.
Ah, that makes more sense. I was afraid it was an... You
must depress the pedal (which lifts the dampers) and let the strings
sustain and warm until they are in tune (20 seconds). Then the PWM
duty cycle values are stored in memory and maintained while you play.
on-the-fly thing which seemed over the top to me. You too,
apparently. I don't s'pose high-end pianos are subjected to
wild variations in temp/humidity etc. during play now that I
think about it.
Recorded in some kind of PROM I assume (not that itWhen you're done, you just turn it off. The next time you turn it on,
it tunes again. This way you get a custom tuning for the room
conditions at that moment. After the piano is tuned by hand at the
factory the sustainers sustain the strings at a specified level before
recording their value. They are again sustained at this level when
tuning in the field. In this way the tuning is identical to the hand
tuning.
matters, they're quite reliable and I'd guess your patent
isn't that specific. (No, I still haven't looked at the patent)
Sometimes cheaper is better!More dribble: BTW, what are you using as a standard
during play, an ovened crystal oscillator or what? Also,
what is it referred against, the usual tuning fork? How does
the piano "remember" the "factory-set tuning" ratios, a set
of fixed dividers off the oscillator?
The pickups are so crude that they produce basically a fundamental
sine wave with very little filtering (to get overtones requires an
expensive pickup!).
Quite elegant....I Schmitt-trigger this signal to get a
fundamental square wave. Then I feed this signal to the clock input
of a one-shot counter and set the "count" number to "1". When I
trigger it, the output goes low at the first low-to-high trasition of
the input wave and then high again at the next low-to-high (to signify
that it has counted to "one"). So the output is a pulse equal to
exactly one vibration of the string.
The "correct one" part is what I was wondering about;I feed this pulse to the "gate" of another counter and a 10 MHz
oscillator to the "clock" input. Now it will count how many "ticks"
of the oscillator happen in one string vibration. I read this number
from the chip into my MPU. This is the number that is compared to the
correct one, etc.
from what you say each piano "knows" its own tuning from the
get-go from the PROM/whatever the values are stored in at
the factory.
Hrm. I was thinking more about all the strings goingDo you have a "failsafe" option for when power dies?
No, you're hosed if the power dies. But then, who wants to play in
the dark?
slack at once and something going TWANGGG! But with high-end
pianos, I guess there aren't any "small" catastrophes.
OK, having read your description, I have one final
question; given what you want the thing to do, your
circuitry sounds just about minimalist for the job. Exactly
what part are you unhappy with, having to stack shift
registers to get the word width you need? The only
minimalizing I can imagine that'd be worthwhile would be
putting all the processing, timing, and control functions in
a PIC but you still need all those inputs/outputs.
Industrial controllers typically handle that with racks of
mux/demux but then we're back to bottlenecking. You seem to
be about as close to truly tuning all the strings in
parallel as is feasible, at least to me.
Mark L. Fergerson