//globales Zeitmaß ist ein Floatwert public MusicDataObject(TemperamentDataObject temperament, int baseFrequency, List <TimeSignatureMDO> timeSignatures, List <TempoIndicationMDO> tempoIndications, List <Channel> channels) { Temperament = temperament; BaseFrequency = baseFrequency; TimeSignatures = timeSignatures; TempoIndications = tempoIndications; Channels = channels; }
public MusicDataObject getMusicDataObject() { TemperamentDataObject temperament = TemperamentDataObject.Default; int baseFrequency = 440; List <TimeSignatureMDO> timeSignatures = new List <TimeSignatureMDO>(); foreach (var ts in this.timeSignatures) { int numerator = Int32.Parse(ts.metrum.Split('/').First()); int denominator = Int32.Parse(ts.metrum.Split('/').Last());; int n = Int32.Parse(ts.time.musical.Split('/').First()); int d = Int32.Parse(ts.time.musical.Split('/').Last()); timeSignatures.Add(new TimeSignatureMDO(numerator, denominator, n, d)); } List <TempoIndicationMDO> tempoIndications = new List <TempoIndicationMDO>(); foreach (var t in tempo) { int tempoMDO = t.bpm; int n = Int32.Parse(t.time.musical.Split('/').First()); int d = Int32.Parse(t.time.musical.Split('/').Last()); tempoIndications.Add(new TempoIndicationMDO(tempoMDO, n, d)); } List <Channel> channels = new List <Channel>(); foreach (var track in tracks) { string name = track.trackName; List <NoteData> notesMDO = new List <NoteData>(); foreach (var note in track.notes) { Fraction[] exponents = new Fraction[3]; exponents[0] = new Fraction(note.midiNumber - 69, 12); exponents[1] = new Fraction(0); exponents[2] = new Fraction(0); Fraction duration = new Fraction(note.length.musical); Fraction onset = new Fraction(note.time.musical); int dynamics = note.velocity; notesMDO.Add(new NoteData(exponents, duration, onset, dynamics)); } channels.Add(new Channel(name, notesMDO)); } return(new MaMuTh.MusicDataObject.MusicDataObject(temperament, baseFrequency, timeSignatures, tempoIndications, channels)); }
private Temperament GetTemperament(TemperamentDataObject temperament) { //Hilfsmethode zum Erstellen einer Composition if (temperament == MusicDataObject.TemperamentDataObject.EqualTemperament) { return(Temperament.EqualTemperament); } if (temperament == MusicDataObject.TemperamentDataObject.JustIntonation) { return(Temperament.JustIntonation); } if (temperament == MusicDataObject.TemperamentDataObject.PythagoreanTuning) { return(Temperament.PythagoreanTuning); } if (temperament == MusicDataObject.TemperamentDataObject.WellTemperament) { return(Temperament.WellTemperament); } return(Temperament.Default); }