: : Okay here is my dillema. Back in October of last year, I decided to
: : take on a perl programming project for my science research project.
: : Having no idea what Perl entailed, I plunged head-first into this
: : project. Science fair is about a month and I need help on my
: : project. It has nothing written to it yet, I just secured a computer
: : that would run perl. anyway, Here are the params:
: Uh....oops. So why did you pick Perl? Sure, it's a great language and I greatly love working in it, but it certainly isn't the best tool for every job out there.
:
: : The program I am writing takes a recorded audio stream of a solo
: : improvist and converts it into sheet music.
: I hope you've done a preliminary study into the complexity of this problem, 'cus it ain't a simple one.
:
: : The program takes the audio imput and breaks it down into individual
: : seperate sound waves
: OK, so you're going to need to do FFT. Turns out there's a Perl module for that...wow...
:
http://search.cpan.org/~rkobes/Math-FFT-0.25/FFT.pm
: Of course, you're going to need something more of a clue about FFT to use that module than I have.
:
: : and measures the wavelength of those waves to determine its musical
: : pitch.
: That part probably ain't so bad, if you've got the waves to look at. You'll probably want to concentrate on the "driving" wave rather than the other harmonics etc. That's what doing FFT should give you.
:
: : While the program measures the wavelength, it also measures the
: : amount of time each wave was sustained and saves these values. (also
: : measures empty space, where no sound was recorded)
: You may want to consider running the input through a noise gate to make this bit easier.
:
: : Once these values are recorded, the program's user selects the
: : longest musical note length(half note etc.). This is applied to the
: : longest recorded note time(i.e. 10 sec) since musical note length is
: : scalar, with a margin of error, the proper note lengths can then be
: : applied to all recorded notes.
: Sounds like a half decently through out algorithm...
:
: : once this is completed, I need to know how I would import this
: : processed information into an excel spread sheet or something so
: : that the program will print out the information on scoresheets.
: There's a module out there for helping you write excel spread sheet files:-
:
http://search.cpan.org/author/JMCNAMARA/Spreadsheet-WriteExcel-0.42/WriteExcel.pm
:
: : Any help on this subject would be GREATLY appreciated.
: You got a HELL of a lot of work to do...good luck.
:
: Jonathan
:
: ###
: for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
: (tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
: /(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");
:
:
Thankyou for the links. greatly appreciated.
...And yeah, as I talk to more people, the problem of time is becoming evident. I'm thinkning of switching the program params a little. Instead of applying the waves to musical notes with length, I'm thinking of writing the program so that it just reads and processes the notes, and then applies it to a spreadsheet. By eliminating the time aspect I think I can make the program possible within the time constraints I have. What do you think?