Mercurial > hg > beatroot
diff at/ofai/music/util/MIDI2Matlab.java @ 2:4c3f5bc01c97
* Import BeatRoot v0.5.7
author | Chris Cannam |
---|---|
date | Fri, 08 Oct 2010 16:11:06 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/at/ofai/music/util/MIDI2Matlab.java Fri Oct 08 16:11:06 2010 +0100 @@ -0,0 +1,52 @@ +/* + Copyright (C) 2001, 2006 by Simon Dixon + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program (the file gpl.txt); if not, download it from + http://www.gnu.org/licenses/gpl.txt or write to the + Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +package at.ofai.music.util; + +import java.util.ListIterator; + +class MIDI2Matlab { + + public static void main(String[] args) { + EventList e = EventList.readMidiFile(args[0]); + Event[] events = e.toArray(0x90); + int len = events.length; + double[] pitch = new double[len]; + double[] vel = new double[len]; + double[] onset = new double[len]; + double[] offset = new double[len]; + for (int i=0; i<len; i++) { + pitch[i] = events[i].midiPitch; + vel[i] = events[i].midiVelocity; + onset[i] = events[i].keyDown; + offset[i] = events[i].keyUp; + } + Format.init(1,5,3,false); + System.out.println("notes = zeros(" + len + ",4);"); + Format.matlab(onset, "notes(:,1)", System.out); + Format.matlab(offset, "notes(:,2)", System.out); + Format.matlab(pitch, "notes(:,3)", System.out); + Format.matlab(vel, "notes(:,4)", System.out); + // if (event.midiCommand == 0x90) + // count++; + // else + // System.out.println("*** Other command: " + event.midiCommand); + } // main() +}