/// <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(); }
/// <summary> /// FuxExMachinaFactory constructor. /// </summary> /// <param name="compositionContexts">The composition contexts to use</param> /// <param name="noteChoices">The note choices to use</param> /// <param name="noteChoiceWeightGenerator">The note choice weight generator to use</param> /// <param name="scaleDegreeEvaluator">The scale degree evaluator to use</param> /// <param name="compositionEvaluator">The composition evaluator to use</param> /// <param name="compositionDecorator">The composition decorator to use</param> /// <param name="random">The random number generator to use</param> /// <param name="logger">The logger to use</param> public FuxExMachinaFactory( CompositionContextCollection compositionContexts, NoteChoiceCollection noteChoices, NoteChoiceWeightGenerator noteChoiceWeightGenerator, ScaleDegreeEvaluator scaleDegreeEvaluator, CompositionEvaluator compositionEvaluator, CompositionDecorator compositionDecorator, CryptoRandom random, IFuxExMachinaLogger logger ) { CompositionContexts = compositionContexts; NoteChoices = noteChoices; NoteChoiceWeightGenerator = noteChoiceWeightGenerator; ScaleDegreeEvaluator = scaleDegreeEvaluator; CompositionEvaluator = compositionEvaluator; CompositionDecorator = compositionDecorator; Random = random; Logger = logger; }