From c31a609399c2e05a50a5df8be10049903521c9e7 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Thu, 1 Nov 2012 21:10:31 +0000 Subject: initial commit --- vfg/src/music.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 vfg/src/music.h (limited to 'vfg/src/music.h') diff --git a/vfg/src/music.h b/vfg/src/music.h new file mode 100755 index 0000000..145538e --- /dev/null +++ b/vfg/src/music.h @@ -0,0 +1,55 @@ +#pragma once + +#include "ofMain.h" +#include "ofxXmlSettings.h" + +//event times are absolute integer milliseconds + +class note { + public: + note(int n,int v,int d=0); + int num; + int velocity; + int duration; //may be needed another time? +}; + +class score { + //implements basics of timelime, loading from xml, time, checking + public: + + protected: + ofxXmlSettings XML; +}; + +class lyricscore: public score { + //draws lyrics to screen for a certain time + public: +}; + +class musicscore: public score { + //draws notes to screen for a certain time and certain parameters, checks when they become ready + //how will it be played dictates how the data is stored + //play : start from beginning, schedule event at next delta + //end : clean up and start again + //you can set position of sound file, it will seek. will we want ffwd at any stage + //when it comes to drawing, we will want to repeatedly retrieve notes in a range of times + //lower_bound and upper_bound + public: + void parseMidi(string filename); + private: + map notes; +}; + +class song { + public: + song(string backfile,string melfile,string musfile); + private: + ofSoundPlayer backing; + ofSoundPlayer melody; + lyricscore lyrics; + musicscore notes; + int bpm; +}; + + + -- cgit v1.2.3