Download Powerpoint

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Honours project: Interim presentation
Music pattern recognition and
generating new compositions using
the Haskore Computer Music
System
Semester 1, 2003
Amanda Crawford – Comp. Sci. Honours
Email: [email protected]
Supervisors: Lloyd Allison, Jon McCormack
Overview
•
•
•
•
•
•
•
•
Introduction
Relevant music theory
MIDI music
Previous research
Research methods - Lempel-Ziv, Haskore
Progress so far
Summary
References/further information
Slide 2
Introduction
• Repeating patterns and structure in music
• Extracting the melody
• Compare different aspects of music
• Generation of new music from particular
genre
• MIDI music used
Slide 3
Relevant music theory
• Notes divided into bars
• Accent on starting beat
• Time signature
Slide 4
Music theory example
Slide 5
MIDI music
• Musical Instrument Digital Interface
• Computer music
• Instrument communication
• Note on/off, key velocity, pitch bend, etc
• General MIDI instruments
• Tracks and channels
Slide 6
Example of MIDI music data
Slide 7
Previous research
• Shan, Kuo, Chen (2002). Music style
mining and classification by melody.
• Mo, Han, Kim (1999). Melody-based
similarity computation algorithm for music
information.
• Shih, Narayanan, Kuo (2001). Automatic
main melody extraction with a modified
Lempel-Ziv algorithm.
Slide 8
Research methods
• Extend on models from previous research
– Lempel-Ziv algorithm
• Functions for analysis of MIDI data
• Functions for generating new music
• Haskore Computer Music System
Slide 9
Lempel-Ziv alg. diagram
Slide 10
LZ modified diagram
Slide 11
Haskore
• Haskore Computer Music System
• Paul Hudak - Yale Uni.
• Modules in Haskell
• Hugs interpreter
• Music rather than sound
• MIDI file input/output
Slide 12
Haskore (cont…)
• More information - Haskore website
http://haskell.cs.yale.edu/haskore/
Slide 13
Example of Haskore
module HaskoreExamples_mine (module
HaskoreExamples_mine, module Haskore, module
IO)
where
import Haskore
import IO
-- octave 4, quarter notes
cMaj = [ n 4 qn [] | n <- [c,e,g] ]
cMajArp = line cMaj
cMajChd = chord cMaj
Slide 14
Progress so far
• My own MIDI files
• Haskore code
• Extract features from MIDI
• Extracted time signature
• MIDI file into bars
Slide 15
Example of work so far
gm file = do
x <- loadMidiFile file
let m = removeEOTs $ format x
let t = removeMidiEventsNO m
print t
removeMidiEventsNO :: Track -> Track
removeMidiEventsNO ((MidiEvent _ (NoteOff _ _ _)):es) =
removeMidiEventsNO es
removeMidiEventsNO ((MidiEvent _ (NoteOn _ _ _)):es) =
removeMidiEventsNO es
removeMidiEventsNO (e:es) = e:(removeMidiEventsNO es)
removeMidiEventsNO [] = []
Slide 16
Progress so far - still to come
• Generating new compositions
– random notes
– harmonic relations
– key signature
• Guitar chord positions
Slide 17
Summary
• Discovering patterns and structure, generating new
music
• Lempel-Ziv algorithm
• Haskore Computer Music System
• Haskore + MIDI information
• Functions to extract certain aspects of MIDI data
Slide 18
References/further
information
• Haskore Music Tutorial – Hudak
– http://haskell.cs.yale.edu/haskore/
• Computer Music Journal – MIT Press
– http://mitpress2.mit.edu/e-journals/ComputerMusic-Journal/
• Introduction to MIDI
– http://hotwired.lycos.com/webmonkey/geektalk
/97/21/index4a.html
Slide 19
Questions?
Slide 20
Related documents