of using midas3:
//to import the midas3 library
import ocean.midi.*;
import ocean.midi.model.*;
import ocean.midi.controller.*;
import ocean.midi.event.*;
//variable
private var _midiFile:MidiFile;
//to open a midi file in AIR environment:
var fileToOpen = new File();
var txtFilter = new FileFilter("MIDI", "*.mid;*.midi");
fileToOpen.browseForOpen("Open", new Array(txtFilter));
fileToOpen.addEventListener(Event.SELECT, fileSelected);
function fileSelected(e:Event)
{
//istream handles the file opened from disk
var istream:FileStream = new FileStream();
istream.open(fileToOpen,FileMode.READ);
istream.readBytes( cache );
istream.close();
/* File load into MidiFile instance, this means decodeing. */
_midiFile = new MidiFile(cache);
/* Now you can manipulate any data inside midi */
//........do something....
}
//to save a midi file in AIR:
var docsDir = File.documentsDirectory;
docsDir.browseForSave("Save As");
docsDir.addEventListener(Event.SELECT, saveData );
function saveData(e:Event)
{
var newFile = e.target ;
var stream = new FileStream();
stream.open(newFile, FileMode.WRITE);
/* call .output() method to perform serialization */
stream.writeBytes(_midiFile.output());
stream.close();
}
//to manipulate midi file:
/* add an empty track or a track with something */
/* addTrack(track:MidiTrack = null); */
trackNum = _midiFile.addTrack(track);
/* insert a track after 2nd track */
/* insertTrack(t:int, track:MidiTrack = null):uint */
trackNum = _midiFile.insertTrack(2, track);
/* look up doc for more methods */
//tp manipulate midi track:
/* Unserializes the incoming stream data to message list. MidiTrack */
var _track = MidiTrack(stream);
/* or mostly creates midi event messages list from stream. */
var _msgList = createList(stream:ByteArray):MessageList
/* MessageList simply hosts midi data in array with following extending methods */
/* needs import ocean.midi.model.*; */
//clone():MessageList
//new instance with the same identical contents MessageList
//input(mt:MidiTrack):void
//Parse the midi Track, cache as event list in array MessageList
//output():MidiTrack
//Export event list as midi track.
/* use TrackEditor to do advanced manipulating MessageList of MidiTrack */
/* needs import ocean.midi.controller.*; */
/* look up doc for more methods */ |