Exemplo n.º 1
0
        public Models.Track FileToString(string path)
        {
            Sequence midiSequence = new Sequence();

            midiSequence.Load(path);

            MidiConverter mc = new MidiConverter();

            return(mc.ConvertMidiToStaff(midiSequence));
        }
Exemplo n.º 2
0
        private static void Main(string[] args)
        {
            var converter   = new MidiConverter();
            var midi        = MidiFile.Read(@"Files\hey-jude.mid");
            var input       = converter.MidiToMelody(midi);
            var inputToSave = converter.MelodyToMidi(input);

            converter.SaveMidi(inputToSave, @"Files\input.mid");

            var measureMutationOperator = new List <IMeasureMutationOperator>
            {
                new MeasureInversionOperator(),
                new MeasureReorganizationOperator(),
                new MeasureReplacementOperator(),
                new MeasureBrokerOperator(),
                new MeasureExchangeOperator(),
            };

            var melodyMutationOperators = new List <IMelodyMutationOperator>
            {
                new MelodyExchangeOperator(),
                new MelodyInversionOperator(),
            };

            var crossoverOperator        = new RandomCutOffCrossoverOperator(measureMutationOperator, melodyMutationOperators);
            var initializer              = new RandomInitializer(input);
            var selector                 = new TournamentSelector();
            var replacementOperator      = new HalfReplacementOperator(crossoverOperator, selector);
            var fitnessCalculator        = new MelodySimilarityFitnessCalculator();
            var stoppingCriterionChecker = new MultipleStoppingCriterionChecker();
            var geneticAlgorithm         = new MelodyGenerator(crossoverOperator, fitnessCalculator, initializer, measureMutationOperator, melodyMutationOperators, replacementOperator, selector, stoppingCriterionChecker);
            var geneticEventsManager     = Singleton <GeneticEventsManager> .Instance();

            geneticEventsManager.Set(input);
            // Test
            new List <Melody>()
            {
                input
            }.ForEach(currentMelody => fitnessCalculator.Calculate(input, currentMelody));
            var output       = geneticAlgorithm.Generate();
            var outputToSave = converter.MelodyToMidi(output);

            converter.SaveMidi(outputToSave, @"Files\output.mid");

            Console.ReadLine();
        }
Exemplo n.º 3
0
 public MidiSaver()
 {
     _musicConverter = new MidiConverter(true);
     FilterName      = "Midi";
     Extension       = ".mid";
 }