Download presentation
Presentation is loading. Please wait.
1
Honours project: Interim presentation Amanda Crawford – Comp. Sci. Honours Email: Amanda.Crawford@csse.monash.edu.auAmanda.Crawford@csse.monash.edu.au Supervisors: Lloyd Allison, Jon McCormack Music pattern recognition and generating new compositions using the Haskore Computer Music System Semester 1, 2003
2
Slide 2 Overview Introduction Relevant music theory MIDI music Previous research Research methods - Lempel-Ziv, Haskore Progress so far Summary References/further information
3
Slide 3 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
4
Slide 4 Relevant music theory Notes divided into bars Accent on starting beat Time signature
5
Slide 5 Music theory example
6
Slide 6 MIDI music Musical Instrument Digital Interface Computer music Instrument communication Note on/off, key velocity, pitch bend, etc General MIDI instruments Tracks and channels
7
Slide 7 Example of MIDI music data
8
Slide 8 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.
9
Slide 9 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
10
Slide 10 Lempel-Ziv alg. diagram
11
Slide 11 LZ modified diagram
12
Slide 12 Haskore Haskore Computer Music System Paul Hudak - Yale Uni. Modules in Haskell Hugs interpreter Music rather than sound MIDI file input/output
13
Slide 13 Haskore (cont…) More information - Haskore website http://haskell.cs.yale.edu/haskore/ http://haskell.cs.yale.edu/haskore/
14
Slide 14 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
15
Slide 15 Progress so far My own MIDI files Haskore code Extract features from MIDI Extracted time signature MIDI file into bars
16
Slide 16 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 [] = []
17
Slide 17 Progress so far - still to come Generating new compositions –random notes –harmonic relations –key signature Guitar chord positions
18
Slide 18 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
19
Slide 19 References/further information Haskore Music Tutorial – Hudak –http://haskell.cs.yale.edu/haskore/http://haskell.cs.yale.edu/haskore/ Computer Music Journal – MIT Press –http://mitpress2.mit.edu/e-journals/Computer- Music-Journal/http://mitpress2.mit.edu/e-journals/Computer- Music-Journal/ Introduction to MIDI –http://hotwired.lycos.com/webmonkey/geektalk /97/21/index4a.htmlhttp://hotwired.lycos.com/webmonkey/geektalk /97/21/index4a.html
20
Slide 20 Questions?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.