View Single Post
  #24   Report Post  
philicorda
 
Posts: n/a
Default

On Fri, 15 Oct 2004 22:20:06 -0700, Ryan wrote:

Bob Cain wrote in message
...

The Ghost could address this in some detail if anyone could get him to
do something besides insult people. When he was young he published
with one of the pioneers in the field of hearing research, someone who
I believe got a Nobel Prize for it.



The Ghost?

Is this what I'm asking for? I really don't know myself.


I'm having trouble figuring that out exactly too. :-)

In case you've received any new information that might help you frame
it better, would you care to try again? Refinement to specs from vague
ideas is not an uncommon process in the user/marketing/engineering
cyclic process.


Well, I think you had the right idea the first time, before I attempted
to be more conscise and confused you. I will jot out a basic algorithm
for the softwa

1. Analyze real instrument sound files. These files should inculde
every possible way every classical instrument can be played, from the
traditional to the avant garde. For the viols for example, from plain
jane arco to bartok's snapping strings to harmonics to different bow
pressures to playing behind the bridge to the tapping of fingers on the
body of the instruments. There should be files that represent the
instruments at all possible dynamic levels. There should be files that
feature the instruments playing in micotones if it can do so. (Most
classical instruments can.) Also, there should be analysis of the
instruments in "static form." By this I mean the part of the sound
after the intial attack, which can be looped over and over again to give
the impression the note is sustaining. This is done in standard
synthesis as well as good sample libraries. It may take quite awhile to
amass all these samples, but once collected the analysis of them only
has to be done once.


Why not use mathametical models of the instruments? I would imagine the
amount of samples required to cover all the sounds a violin could make
would be impossible (think of playing a false harmonic on all the strings
of a violin at every position, and with every bowing style). With a model,
you have defined the 'prime aspects of these sounds' in a very flexible
way. The computer could adjust the way the model is 'played' to find the
best fit to the sound you wish to analyse.

This would perhaps get nearer to fulfilling the interesting idea in your
original post-

"Perhaps a car engine sound file
would yield three Double Basses, a flute or two in very quiet irregular
rhythms, and maybe a horn would be involved during gear changes."

The computer could go through every single possible sound a violin could
make by iterating though all possible bow positions/angle/velocity, finger
positions etc until it found the combination that would most closely
approximate the sound you want to analyse.

If I were to persue this, I would brutally simplify things to start with.
For example, make some simple rules for an experiment...

All music is played on a single instrument model that creates perfect sine
waves. Each note this instrument makes has a fixed decay to silence over a
period of one second.
The only variables this instrument has is how loud each note is, and its
pitch, fixed to a chromatic scale.
The limitations of the 'player' of this instrument has is to play twenty
notes per second, and as many as ten notes at once.

Then, take the sound file to be analysed and every 20th of a second, try
each of the limited range of sounds this instrument can create until you
find the one that correlates most closely. (Litrally by fft correlation?)

Once that is done, you should have a performance on a very simple
instrument that has some relation to the file you wish to analyse.

Then, the model could be made slightly more complex, ie - this instrument
is an ideal Karplus-Strong string with a simple frequency dependent loss
filter. It has the properties of the length of the string, where the
string is struck, and the amount of energy imparted. It is monophonic, and
can change pitch at a limited rate.

The disadvantages of this way of working would be - Iterating though each
sound a model could create would be *very* time consuming once the models
became more realistic. It's very hard to create good physical models of
real instruments.

The advantages would be -
It might actually work. Or at least provide a way to begin attacking
this interesting but extraordinarily difficult task. The model does not
just define a fixed set of sounds (samples) an instrument can create, but
also defines the limitations in how that instrument can be played.

I think that you would have to create a model of limitations of the player
as well as the instrument anyway if you were using samples. This would
be very difficult if the computer does not 'understand' the instrument
like a physical model, as you would have to create a large amount of
rules by hand for each sample.



2. Deduct from these analyzations the prime aspects of these sounds. If
we only have, say ten frequencies to represent this sound, which ones
would be the most usefull. Or would some other type of info about the
file be more imprtant than it's frequencies? So now we have a set of
data instead of just a pcm sound file. We can call these data sets,
"fingerprints." This is mainly to help speed up the math performed later
during step 4, though it will compromise the accuracy of the final
product. Ideally, the user should be able to select the amount of data
to be derived from the samples.

3. Analyze any given sound file. These would be the "real world"
sounds. Or anything at all. In fact, I was thinking last night that
the ultimate test for this software would be to feed it, say,
Beethoven's 9th, and see how close it could aproximate it.

4. Run differential, or co-efficent on the "real world" sound file
compared to all the "sound fingerprints" the program created in step 2.

5. Create midi file. After the program has deduced what would be the
best combination of instruments in which playing styles at what pitches
and what dynamics, playing at what kind of rhytmic figures, etc., the
program would simply create a multiple staff midi file with all said
info scored on it.

Viola!