Example #1
0
 public MidiChord(MidiNotes root, ChordType type)
 {
     rootNote  = root;
     chordType = type;
     interval  = GenerateInterval(type);
     //    nextFifth = generateNextFifth(this);
 }
Example #2
0
        public MidiChord generateNextFifth()
        {
            MidiNotes nextNote  = (rootNote + 7);
            string    tmp       = nextNote.ToStandardString().Remove(nextNote.ToStandardString().Length - 1);
            MidiChord nextFifth = StringToChordFactory(tmp, "2", chordType);

            return(nextFifth);
        }
Example #3
0
    void NoteOff(MidiChannel channel, int note)
    {
        MidiNotes _note = (MidiNotes)note;

        switch (_note)
        {
        case MidiNotes.rayMarchNote:
            sceneController.EaseRaymarchObject(0);
            break;
        }
    }
Example #4
0
        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));
        }
Example #5
0
        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;
            }
        }
Example #7
0
    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;
        }
    }
Example #8
0
        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);
        }