On Nov 25, 2003, at 7:24 PM, Mindy McCutchan wrote:

Our task is to create a player to stream MP3's that works
with digital rights management and allows users to search for songs that
sound similar to the one they are listening to in terms of rhythm &
pace.

The AmplitudeXtra, as indicated, might help. The way to do it, I think, would be to use that to store a table of beat times and (possibly) areas where the sounds of a song surge and ebb, basically a numeric representation of salient data. A waveform.


The problem is that you would have to actually build that data on a per-song basis; that is, you really wouldn't be able to do a live search, I think. The other problem is simple: Do you base your search on the entirety of a song, or on one section of it? Since many pieces of music change tone and meter wildly over the course of a melody, your answer can heavily determine how you answer.

As for actually making a searchable list of tables, hey, that's just a database. Song, artist, BPM, genre -- all user entered -- and then the waveform as the "fingerprint" of the song. Matching waveforms, or similar ones, show similar song characteristics. To make it less painful you could probably just use a range for BPM (within ten percent of the given rate, perhaps) and number of places the audio peaks and for how long with each peak. I suppose you could add the same data for where it falls silent.

Your prof's a goon, really a prime arse-end orifice, for assigning this, when it comes to actually processing waveforms. Music is way to goddamned subjective to put its recognition into the silicon nodules of a machine. Seems he's got an artistic background rather than one in computer science. Too bad. Demand a refund on your tuition.

Or ... you can blow his suggestion totally out of the water by thinking around his lunacy.

Network the program. Create a half dozen client apps that have their own music libraries, where the user enters information such as genre, BPM, artist, title, etc, and where you store a representation of the waveform, like above -- but where you don't analyze it at all. Just grab the first 30 seconds or so of each song's waveform data.

Each library, in each program, is stocked with "user favorites" (that you have selected, of course). Since this is a demo, you can easily stack the results to show your proof of concept; each library will have its own specific style. That is, one has rock, another country, a third classical, a fourth opera, a fifth jazz, etc.

Each program you demo will thus know five times what it appears to from its own library. Since they all talk to each other by networking (you will need a network Xtra and a free communications port, BTW), you should in theory be able to find songs of a *genre* by analyzing the waveform of any "unknown" piece (that is, a jazz song on a rock-only program), determining which song it is, and then displaying other songs from within that *genre*.

So a machine that knows only Ace Frehly, for instance, can more or less cheat and say "Oh, that's Art Tatum -- here's some more by him, and here's some Coltrane as well," basically by reading waveforms, asking the other programs to find a match for the waveform, and then returning the results, as well as the complete list of other songs that have been entered by the "user" into that genre.

About a half dozen to a dozen songs per demo program should be sufficient to prove you know what's what, and you can probably readily find folks near you -- fellow students or their kids (depending on your classmates' ages) with a wide selection of music to sample.

The reason that's a valid approach is simple. If the program you develop is distributed to thousands of users, odds are *superb* that almost any song dropped into its analyzer will get a match from *somewhere* without the user having to enter *anything* -- title, artist, genre, anything.

Also, take a look at your syllabus and see if your prof wants to claim rights, ownership or anything else on the work you do. It's entirely possible he's trying to come up with something like this on his own, for profit reasons, and if you develop something that works and is effective he might just steal your idea, patent it and go off to make a lot of money, leaving you with a sheepskin and an empty feeling.


----------------------------------- | Mira, 1987 - 2003 | | Requiescat in pace | | http://www.nightwares.com/mira/ | -----------------------------------

        Warren Ockrassa | [EMAIL PROTECTED]
              http://www.nightwares.com/

[To remove yourself from this list, or to change to digest mode, go to http://www.penworks.com/lingo-l.cgi To post messages to the list, email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED]). Lingo-L is for learning and helping with programming Lingo. Thanks!]

Reply via email to