At 10:10 PM 9/5/2001 -0400, you wrote:
How about perl? I'm pretty handy with it, and it wouldn't be significantly
more difficult to make it a web-based tool than a standalone command-line app.
Also I know (used to know) some about music, back in my wild guitar-playing
youth...
The tricky part of this is the "fitting" algorithm that needs to be able to
try out various modulations of the song into the 2600's sound canvas. The
note values (ABCDE) center around the concert pitch standard but there is
no point in trying to convert a song while maintaining the exact key. It's
probably not going to fit well. You just have to match the intervals, the
spacing between the notes, in the melody, and the song will remain
recognizable.
We're not just talking a traditional chromatic scale here, we're talking
about MICROTONAL scales. That's what all the cent values are for. It's
like we're talking about a guitar with six out of tune strings and all the
notes that these strings can make up the neck, some of which are closely
spaced. Or more appropriately, an out of tune dulcimer (as was my previous
analogy) with a limited number of scales it can generate.
Even though the table lists note values, it's really only the intervals
between the notes that matter.
For instance, a C1 +49 is only a tiny fraction away from a C#1 -49, so
close in fact that giving them different note values like this is somewhat
misleading. They are almost exactly the same frequency. You would NOT
want to sequence them as listed in the note values. You'd pick one or the
other value and avoid using the other one unless you wanted to generate
some kind of out-of-phase chorus effect or a glissando/bend effect as you
transition through microtones.
So a program has to be pretty smart in taking all the _intervals_ between
the notes and trying to find somewhere, like fitting a jigsaw puzzle, to
home it on the 2600's scale, then report back the results. Most likely
even a best-fit is going to result in unhittable notes that will require
rescoring, like hitting the note an octave above or below the desired note,
etc...
The quick page I can create will only be able to show you filtered views
which you can then experiment with.
You'd have to break your song down and isolate the range of notes it needs
to generate, and compare that against these views. If it doesn't fit,
you'd have to manually modulate the notes up and down until you find a best
fit.
But even then it's tricky because, let's say you wanted a filtered view
where the target cent value was +50. That is right in the middle a quarter
tone between two notes. So you can't go just by note values anymore
because it's on the fence between two different notes. It gets really
confusing trying to compare a MIDI score to that because then a C in your
score could match a C# -49 or a B+49.
Remember the opening music in Starmaster, the out of tune last note? The
Raiders theme in Raiders of the Lost Ark also has some sour notes. And
don't even get me started on the music to 7800 Mario Brothers... That's
the kind of thing we've got to try to avoid here. When we manually pick
notes we may not be finding the optimal combination. I'm not so sure the
pitch choices are quite so obvious or exclusive as it may seem...
-
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/