The 'WebMIDIfier' reads textual data from any web site and converts it to MIDI music.
Requirements
 
The ability to play MIDI files on your computer.
 
 
 
Best results can be obtained from web sites with at least a paragraph of text.
 
 
 
Quality of audio will depend on your sound card's MIDI instruments.
Ideas for v2.0
  • Allow user-controllable number of voices. Would allow changing of instrumentation on a word-by-word basis.
  • Set voices for each word based on the 'color' of the word (maybe consonants vs. vowels, ??)
  • Added an Alphabet Count function to store how many of each letter appears in the text, need to remove randomness in note slice length and voice choice and seed with these numbers.
  • Need to add a word length count. Could be a modifier to note length to slow pieces down that have a lot of lengthy words. Could also modify voice choice if I index the instruments from, perhaps, smooth to shrill.
  • Have considered adding explicit tonality, read word lengths and letter counts and choose a key for each sentence. Working on a way to do this in one pass, only having to read each letter once.
  • Defined
     
    At its most base, the WebMIDIfier creates repetitive noise., however, with some sites it is able to assemble interesting musical structures from the characters represented.
     
    At present this project is basic in its algorithm. It simply converts any a-g character in a web site's text to a note a-g. Letters h-l are converted into sharps. All notes generated from one word are played vertically. The duration of events is determined from the sum of the ASCII values of all characters in the word, whether used as a note or not. Therefore, the word 'a' is the shortest note played, but only slightly shorter than 'am'.
    Process
    How the WebMIDIfier came to be.
     
    MIDIfier Created!
    The MIDIfier is created as a stand-alone application that takes text input and converts it to a binary MIDI file. The first version plays the first 3 notes found in each word simultaneously.
     
    Web Installation
    A web site reader is added to the program.  It can now take a URL, read the page, and strip the html out of the text which is passes to the MIDIfier.  The system now also allows multiple users to launch the MIDIfier and not overwrite eachothers' files. Finally, the entire software is wrapped up as a web object which can be called from ASP.
     
    Instrumentation
    The original MIDIfier was pretty bland since all 3 voices played the same instrument. To create richer instrumentation, I added a random selection of instruments to the voices. This update also allowed setting the number of tracks and randomly chooses which instrument each note will be assigned to.
     
    Simultaneity Tinkering
    In an attempt to get all the notes from one word to play, I changed the system to provide some sequential note capacity within the duration of a single word. A word's duration is added up, then each of the notes in the word get a random slice. Each letter can have different random beginnings and endings within a word so notes are unlikely to be played simultaneously like in previous versions.
     
    At this point a curious bug crept into the system which introduced run-on notes and some unexpected counterpoint. I think that some tracks are receiving note-on events and sometimes no note-off events. I liked the results so much that I decided not to fix the bug but to release this version as a 1.0.
    Examples
     
    Some results that turned out favorably...
     
  • Happy Accident
     
  • Morton Subotnick 2
        http://www.newalbion.com/artists/subotnickm/
     
  • Tokyo Ale
        http://www.tokyo-ale.com/e/news/index.html
     
  • Data Beautification
        http://generative.net/papers/MIDI::Realtime/
  • www.oddible.com