Ejemplo n.º 1
0
        static public int NbrOfSixteen(Cadence.Duration enumDuration)
        {
            int countSixteen = 0;

            switch (enumDuration)
            {
            case Cadence.Duration.Sixteenth: countSixteen = 1; break;

            case Cadence.Duration.Eighth: countSixteen = 2; break;

            case Cadence.Duration.Quarter: countSixteen = 4; break;

            case Cadence.Duration.Half: countSixteen = 8; break;

            case Cadence.Duration.Whole: countSixteen = 16; break;
            }
            return(countSixteen);
        }
Ejemplo n.º 2
0
        public override void Generate(bool fake)
        {
            try
            {
                int indexCadence = 0;
                Durations = new List <Cadence>();
                Debug.Log("Generate Cadence");
                for (int measure = 0; measure < MeasureCount; measure++)
                {
                    int countSixteen = 16; // Always the max else : Global.instance.countSixteenthMeasure;

                    // Generate for the maximum : 4 measures
                    while (countSixteen > 0)
                    {
                        Cadence.Duration enDuration = Cadence.Duration.NotDefined;

                        float randDuration = UnityEngine.Random.Range(1f, 100f);

                        if (randDuration < RatioWhole)
                        {
                            enDuration = Cadence.Duration.Whole;
                        }
                        if (randDuration < RatioHalf)
                        {
                            enDuration = Cadence.Duration.Half;
                        }
                        if (randDuration < RatioQuarter)
                        {
                            enDuration = Cadence.Duration.Quarter;
                        }
                        if (randDuration < RatioEighth)
                        {
                            enDuration = Cadence.Duration.Eighth;
                        }
                        if (randDuration < RatioSixteen)
                        {
                            enDuration = Cadence.Duration.Sixteenth;
                        }
                        if (enDuration == Cadence.Duration.NotDefined)
                        {
                            enDuration = Cadence.Duration.Quarter;
                        }

                        countSixteen -= MathMotifNote.NbrOfSixteen(enDuration);

                        float randSilence = UnityEngine.Random.Range(1f, 100f);

                        Cadence cadence = new Cadence()
                        {
                            enDuration = enDuration, Silence = randSilence >= PctSilence ? false : true
                        };
                        //Debug.Log("   cadence:" + indexCadence + " measure:" + measure + " countSixteen:" + countSixteen + " enDuration:" + cadence.enDuration + " Silence:" + cadence.Silence);
                        Durations.Add(cadence);
                        indexCadence++;
                    }
                }

                LastCadenceGenerated = DateTime.Now;
            }
            catch (System.Exception ex)
            {
                MidiPlayerGlobal.ErrorDetail(ex);
            }
        }