A Virtual Stringed Instrument With Haptic Feedback
Comp 259 Final Project Proposal
Jeff Feasel
How A String Works
- When plucked, struck, or otherwise excited, a string is given an
initial displacement, velocity, or acceleration -- usually expressed
as a function over its length.
- The string behaves according to the wave equation, a 2nd-order
PDE.
- Numerical solution of this by standard methods requires very
dense sampling, as the sample spacing determines the highest frequency
produced by the system.
- The computational inefficiency of these simulations is one of the
reasons this is not typically done in modern synthesizers.
Waveguide Solution
- In 1987 Julius Smith introduced the Digital Waveguide model.
- Assuming linearity and time-invariance, the wave
equation solution becomes very straightforward.
- The initial excitation wave separates into two components,
traveling in opposite directions. These wave components go back and
forth along the length of the string, reflecting off the terminations.
- Can be modeled as a DSP circuit.
KVT String Model
- Karjalainen, Valimaki, and Tolonen (1998) recently developed a
model based on the digital waveguide that has a simplified implementation
and is designed in terms of more high-level control parameters.
- They have also looked into relaxing the linear, time-invarant
constraint.
- I will create a string model that is similar to theirs
- At the least, I will implement the simple LTI case. Time-permitting,
I may try to model the tension modulation non-linearity caused by string
elongation.
My Virtual Instrument
- Several strings (4 to 6).
- User is presented with a fretboard (probably use discrete
frets, like a guitar).
- One-handed control, for now.
- Plucking the string on a fret is equivalent to holding the
string at that location and performing the pluck somewhere along that string
(probably at a predetermined location?).
- Note: There is some necessary inconsistency here in order
to do both fretting and plucking with the same hand:
- The user is given a model consisting only of strings over a freboard.
- The excitation from the fretboard model is reinterpreted as an
input to the string model which produces the sound.
- Haptic feedback from the string model must be reinterpreted back
to the fretboard model that the user interacts with.
- Excitation is done through a virtual pick.
Haptic Model
- I will use the Phantom to interface with the string model,
providing force feedback for a realistic feel.
- The pick-string interaction should have some physical
basis but I will try to simplify it as much as possible without losing
its important nuances.
- Allow different plucking types, based on angle of the pick,
velocity, etc.
- Provide a realistic pluck feel.
- Allow post-excitation control. In real instruments
the user may bend (change string tension), slide (change string length),
and adjust pressure of the fretting (change the damping at the fret-finger
terminus). Efficient models assume time-invariance, so this
might be hard.
The Larger Picture
- Having the haptic model physically resemble a real instrument may
expedite the learning process for experienced instrumentalists.
- But, I believe that the haptic model doesn't need to resemble
any real instrument. This justifies much simplification of the pick-string
interaction.
- I think it is sufficient to merely do the following, regardless
of physical basis:
- Create a sufficiently complex system, whose behavior depends
strongly upon its excitation.
- Determine which parameters of the excitation make the most difference
to the system's behavior.
- Give the user direct control of these parameters in an intuitive
way.
- Provide feedback (sonic, haptic, ...) about the behavior of the
system.
- An experienced musician (or any artist) should be able to develop
a "feel" for any virtual instrument with enough practice, even if it does
not resemble any real existing instrument.
- Simulating a real instrument is only a first step. I hope to allow
the user additional control that he or she would not have with a real instrument
(e.g. adjusting the shape or resonance properties of the instrument while
playing).
- Abstracting the idea of an instrument, one can replace the vibrating
string portion of the system with other physical simulations, such as pressure
waves in an air column (thus creating a guitar that acts like a flute).
Even simulations outside the musical domain can be used: E.g., Somehow
convert the string pluck inputs into seed-material or conductance variations
in an ice growth simulation, and somehow extract a waveform from its output.
(I admit, that's kind of far-fetched, but the point is that virtual instruments
allow unlimited abstraction in the sound generation process.)