public MidiChord(MidiNotes root, ChordType type) { rootNote = root; chordType = type; interval = GenerateInterval(type); // nextFifth = generateNextFifth(this); }
public MidiChord generateNextFifth() { MidiNotes nextNote = (rootNote + 7); string tmp = nextNote.ToStandardString().Remove(nextNote.ToStandardString().Length - 1); MidiChord nextFifth = StringToChordFactory(tmp, "2", chordType); return(nextFifth); }
void NoteOff(MidiChannel channel, int note) { MidiNotes _note = (MidiNotes)note; switch (_note) { case MidiNotes.rayMarchNote: sceneController.EaseRaymarchObject(0); break; } }
public static MidiChord StringToChordFactory(string note, string octaveNumber, ChordType chordType) { string midiNote; if (note.Contains("#")) { midiNote = "s" + note[0]; } else if (note.Contains("b")) { midiNote = "s"; char oldnote = note[0]; switch (oldnote) { case 'A': midiNote += "G"; break; case 'B': midiNote += "A"; break; case 'D': midiNote += "C"; break; case 'E': midiNote += "D"; break; case 'G': midiNote += "F"; break; } } else { midiNote = "" + note[0]; }; midiNote += octaveNumber; MidiNotes rootNote = (MidiNotes)System.Enum.Parse(typeof(MidiNotes), midiNote); return(new MidiChord(rootNote, chordType)); }
public Flower(MidiNotes rootNote, FlowerConfig config, Point center) { this.RootNote = rootNote; FlowerFamily = config.Family; MidiChord ChordC = new MidiChord(RootNote, config.ChordType_C); MidiChord ChordL = new MidiChord(RootNote, config.ChordType_L); MidiChord ChordU = new MidiChord(RootNote, config.ChordType_U); MidiChord ChordR = new MidiChord(RootNote, config.ChordType_R); MidiChord ChordD = new MidiChord(RootNote, config.ChordType_D); Point CoordC = new Point(center.X, center.Y); Point CoordL = new Point(center.X - 1, center.Y); Point CoordU = new Point(center.X, center.Y + 1); Point CoordR = new Point(center.X + 1, center.Y); Point CoordD = new Point(center.X, center.Y - 1); ButtonC = new FlowerButton(CoordC); ButtonC.SetColor(new SolidColorBrush(FlowerFamily.GetColor(FlowerButtonPositions.C))); ButtonL = new FlowerButton(CoordL); ButtonL.SetColor(new SolidColorBrush(FlowerFamily.GetColor(FlowerButtonPositions.L))); ButtonU = new FlowerButton(CoordU); ButtonU.SetColor(new SolidColorBrush(FlowerFamily.GetColor(FlowerButtonPositions.U))); ButtonR = new FlowerButton(CoordR); ButtonR.SetColor(new SolidColorBrush(FlowerFamily.GetColor(FlowerButtonPositions.R))); ButtonD = new FlowerButton(CoordD); ButtonD.SetColor(new SolidColorBrush(FlowerFamily.GetColor(FlowerButtonPositions.D))); ButtonC.Chord = ChordC; ButtonL.Chord = ChordL; ButtonU.Chord = ChordU; ButtonR.Chord = ChordR; ButtonD.Chord = ChordD; FlowerButtons = new List <FlowerButton> { ButtonC, ButtonD, ButtonL, ButtonU, ButtonR }; }
public bool ConvertFile(string sourceFile, int fileType, int TrackNum, ICollection<MidiNotes> NoteCollection) { try { //MidiFile midiFile = new MidiFile(sourceFile); MidiFile midiFile = new MidiFile(sourceFile); if (fileType == -1) { fileType = midiFile.FileFormat; } EventRuleArgs eventRuleArgs = new EventRuleArgs(Path.GetFileNameWithoutExtension(sourceFile)); MidiEventCollection outputFileEvents = new MidiEventCollection(fileType, midiFile.DeltaTicksPerQuarterNote); bool hasNotes = false; int track = TrackNum; ; IList<MidiEvent> trackEvents = midiFile.Events[track]; // Notes the use of the Track reference, if invalid track is referenced then causes big issues IList<MidiEvent> outputEvents; if (fileType == 1 || track == 0) { outputEvents = new List<MidiEvent>(); } else { outputEvents = outputFileEvents[0]; } foreach (MidiEvent midiEvent in InsertEvents) { outputEvents.Add(midiEvent); } foreach (MidiEvent midiEvent in trackEvents) { outputEvents.Add(midiEvent); NoteOnEvent noteOnEvent = midiEvent as NoteOnEvent; if (noteOnEvent != null) { // Add to the midi collection if (!MidiEvent.IsNoteOff(noteOnEvent)) { MidiNotes tempnote = new MidiNotes(noteOnEvent); NoteCollection.Add(tempnote); }; //System.Diagnostics.Debug.Assert(noteOnEvent.OffEvent != null); hasNotes = true; outputEvents.Add(noteOnEvent.OffEvent); } //} } // Get the tempo events foreach (MidiEvent midiEvent in trackEvents) { //get the tempo and drop out of that track if (midiEvent is TempoEvent) { //tempo in milliseconds tempo = (midiEvent as TempoEvent).MicrosecondsPerQuarterNote / 1000; break; } //get the tempo and drop out of that track if (midiEvent is TimeSignatureEvent) { //Time sig timesig1 = (midiEvent as TimeSignatureEvent).Numerator; timesig2 = (midiEvent as TimeSignatureEvent).Denominator; break; } } if (fileType == 1 || track == 0) { outputFileEvents.AddTrack(outputEvents); } //} if (hasNotes) { //MidiFile.Export(destFile, outputFileEvents); } return hasNotes; } catch { MessageBox.Show("Invalid File or track number"); return false; } }
void NoteOn(MidiChannel channel, int note, float velocity) { MidiNotes _note = (MidiNotes)note; switch (_note) { case MidiNotes.rayMarchNote: sceneController.EaseRaymarchObject(velocity); break; case MidiNotes.randomJump: sceneController.JumpCamera(); break; case MidiNotes.isolineToggle: sceneController.ToggleIsoline(); break; case MidiNotes.skyboxToggle: sceneController.ToggleSkyBox(); break; case MidiNotes.bpmTap: sceneController.SetBpm(); break; case MidiNotes.toggleCameraMove: sceneController.ToggleCameraMove(); break; case MidiNotes.toggleRadialMesh: sceneController.ToggleRadialMesh(); break; case MidiNotes.toggleTwist: sceneController.ToggleTwist(); break; case MidiNotes.toggleRandomSubdivisions: sceneController.ToggleRandomSubdivisions(); break; case MidiNotes.toggleVeda: sceneController.ToggleVeda(); break; case MidiNotes.toggleWaveStick: sceneController.ToggleWaveStick(); break; case MidiNotes.toggleBend: sceneController.ToggleBend(); break; case MidiNotes.toggleWorld: sceneController.ToggleWorldMarch(); break; case MidiNotes.toggleObject: sceneController.ToggleObjectMarch(); break; case MidiNotes.newColors: sceneController.NewColors(); break; case MidiNotes.toggleParticles: sceneController.ToggleParticles(); break; } }
public Plant(MidiNotes rootNote, PlantFamilies rootFamily, Point center) { List <MidiNotes> allnotes = MidiNotesUtils.GetAllMidiNotesList(); List <int> rule = new List <int>(); Point p1 = new Point(center.X, center.Y); Point p2 = new Point(center.X - 3, center.Y - 1); Point p3 = new Point(center.X - 2, center.Y + 1); Point p4 = new Point(center.X + 1, center.Y + 2); Point p5 = new Point(center.X + 3, center.Y + 1); Point p6 = new Point(center.X + 2, center.Y - 1); Point p7 = new Point(center.X - 1, center.Y - 2); MidiNotes n1 = MidiNotes.NaN; MidiNotes n2 = MidiNotes.NaN; MidiNotes n3 = MidiNotes.NaN; MidiNotes n4 = MidiNotes.NaN; MidiNotes n5 = MidiNotes.NaN; MidiNotes n6 = MidiNotes.NaN; MidiNotes n7 = MidiNotes.NaN; FlowerConfig c1 = null; FlowerConfig c2 = null; FlowerConfig c3 = null; FlowerConfig c4 = null; FlowerConfig c5 = null; FlowerConfig c6 = null; FlowerConfig c7 = null; switch (rootFamily) { case PlantFamilies.Major: rule = MajorRule; n1 = rootNote; n2 = rootNote + rule[1]; n3 = rootNote + rule[2]; n4 = rootNote + rule[3]; n5 = rootNote + rule[4]; n6 = rootNote + rule[5]; n7 = rootNote + rule[6]; c1 = FlowerConfigFactory.DefaultMajor(); c2 = FlowerConfigFactory.DefaultMinor(); c3 = FlowerConfigFactory.DefaultMinor(); c4 = FlowerConfigFactory.DefaultMajor(); c5 = FlowerConfigFactory.DefaultMajor(); c6 = FlowerConfigFactory.DefaultMinor(); c7 = FlowerConfigFactory.DefaultMinor(); break; case PlantFamilies.Minor: rule = MinorRule; n1 = rootNote; n2 = rootNote + rule[1]; n3 = rootNote + rule[2]; n4 = rootNote + rule[3]; n5 = rootNote + rule[4]; n6 = rootNote + rule[5]; n7 = rootNote + rule[6]; c1 = FlowerConfigFactory.DefaultMinor(); c2 = FlowerConfigFactory.DefaultMinor(); c3 = FlowerConfigFactory.DefaultMajor(); c4 = FlowerConfigFactory.DefaultMinor(); c5 = FlowerConfigFactory.DefaultMajor(); c6 = FlowerConfigFactory.DefaultMajor(); c7 = FlowerConfigFactory.DefaultMinor(); break; } Flower1 = new Flower(n1, c1, p1); Flower2 = new Flower(n2, c2, p2); Flower3 = new Flower(n3, c3, p3); Flower4 = new Flower(n4, c4, p4); Flower5 = new Flower(n5, c5, p5); Flower6 = new Flower(n6, c6, p6); Flower7 = new Flower(n7, c7, p7); Flowers = new List <Flower>(); Flowers.Add(Flower1); Flowers.Add(Flower2); Flowers.Add(Flower3); Flowers.Add(Flower4); Flowers.Add(Flower5); Flowers.Add(Flower6); Flowers.Add(Flower7); }