Ejemplo n.º 1
0
 /// <summary>
 /// Composer constructor.
 /// </summary>
 /// <param name="factory">The factory to use with this composer</param>
 public Composer(FuxExMachinaFactory factory)
 {
     _factory = factory;
     _compositionEvaluator = _factory.CompositionEvaluator;
     Composition           = _factory.CreateComposition();
     CompositionStrategy   = _factory.CreateCompositionStrategy();
 }
        public void Setup()
        {
            _factory = FuxExMachinaTestFactoryProvider.GetTestFactory();
            var scaleDegreeEvaluator = new ScaleDegreeEvaluator();

            _ruleEvaluator = new DissonantLeapRuleEvaluator(scaleDegreeEvaluator, new CompositionContext());
        }
        public static FuxExMachinaFactory GetTestFactory()
        {
            if (_instance != null)
            {
                return(_instance);
            }

            var random = new CryptoRandom();
            var scaleDegreeEvaluator      = new ScaleDegreeEvaluator();
            var compositionContext        = new CompositionContext();
            var compositionContexts       = new CompositionContextCollection();
            var noteChoices               = new NoteChoiceCollection();
            var noteChoiceWeightGenerator = new NoteChoiceWeightGenerator(random);

            var ruleEvaluatorFactory = new RuleEvaluatorFactory(
                new AscendingSeventhRuleEvaluator(scaleDegreeEvaluator),
                new DissonanceRuleEvaluator(),
                new DissonantLeapRuleEvaluator(scaleDegreeEvaluator, compositionContext),
                new DoubledLeapRuleEvaluator(),
                new DoubledNoteRuleEvaluator(scaleDegreeEvaluator),
                new LeapReturnRuleEvaluator(),
                new MultipleLeapRuleEvaluator(),
                new ParallelPerfectsRuleEvaluator(scaleDegreeEvaluator)
                );

            var aggregateEvaluator = new AggregateRuleEvaluator(ruleEvaluatorFactory);

            var mordentDecorator     = new MordentDecorator(scaleDegreeEvaluator, random);
            var passingToneDecorator = new PassingToneDecorator(scaleDegreeEvaluator, random);
            var appogiaturaDecorator = new AppogiaturaDecorator(scaleDegreeEvaluator, random);

            _instance = new FuxExMachinaFactory(
                compositionContexts,
                noteChoices,
                noteChoiceWeightGenerator,
                scaleDegreeEvaluator,
                new CompositionEvaluator(aggregateEvaluator),
                new CompositionDecorator(passingToneDecorator, mordentDecorator, appogiaturaDecorator),
                new CryptoRandom(),
                new FuxExMachinaNullLogger()
                );

            return(_instance);
        }
 public void Setup()
 {
     _factory = FuxExMachinaTestFactoryProvider.GetTestFactory();
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Composition constructor.
 /// </summary>
 /// <param name="factory">The factory to initialize this composition with</param>
 public Composition(FuxExMachinaFactory factory)
 {
     _factory             = factory;
     _compositionContexts = _factory.CompositionContexts;
 }
 public void Setup()
 {
     _factory       = FuxExMachinaTestFactoryProvider.GetTestFactory();
     _ruleEvaluator = new DoubledLeapRuleEvaluator();
 }
 public void Setup()
 {
     _factory       = FuxExMachinaTestFactoryProvider.GetTestFactory();
     _ruleEvaluator = new AscendingSeventhRuleEvaluator(new ScaleDegreeEvaluator());
 }
Ejemplo n.º 8
0
 /// <summary>
 /// ComposerPopulation constructor.
 /// </summary>
 /// <param name="factory">The factory to use</param>
 public ComposerPopulation(FuxExMachinaFactory factory)
 {
     _factory = factory;
 }
 public void Setup()
 {
     _factory       = FuxExMachinaTestFactoryProvider.GetTestFactory();
     _ruleEvaluator = new ParallelPerfectsRuleEvaluator(new ScaleDegreeEvaluator());
 }
Ejemplo n.º 10
0
 public void Setup()
 {
     _factory             = FuxExMachinaTestFactoryProvider.GetTestFactory();
     _compositionContexts = _factory.CompositionContexts;
 }
Ejemplo n.º 11
0
 public void Setup()
 {
     _factory       = FuxExMachinaTestFactoryProvider.GetTestFactory();
     _ruleEvaluator = new DissonanceRuleEvaluator();
 }