Ejemplo n.º 1
0
        private static void VibratoFromUst(VibratoExpression vibrato, string ust)
        {
            var args = ust.Split(new[] { ',' }).Select(double.Parse).ToList();

            if (args.Count() >= 7)
            {
                vibrato.Length = args[0];
                vibrato.Period = args[1];
                vibrato.Depth  = args[2];
                vibrato.In     = args[3];
                vibrato.Out    = args[4];
                vibrato.Shift  = args[5];
                vibrato.Drift  = args[6];
            }
        }
Ejemplo n.º 2
0
        private static string VibratoToUst(VibratoExpression vibrato)
        {
            var args = new List <double>()
            {
                vibrato.Length,
                vibrato.Period,
                vibrato.Depth,
                vibrato.In,
                vibrato.Out,
                vibrato.Shift,
                vibrato.Drift
            };

            return(string.Join(",", args.ToArray()));
        }
Ejemplo n.º 3
0
        public void SetVibrato(string vbr)
        {
            var cultureInfo = new CultureInfo("ja-JP");
            var value       = vbr.Split(',');
            var vibrato     = new VibratoExpression();

            if (value.Count() >= 7)
            {
                vibrato.Length = double.Parse(value[0], cultureInfo);
                vibrato.Period = double.Parse(value[1], cultureInfo);
                vibrato.Depth  = double.Parse(value[2], cultureInfo);
                vibrato.In     = double.Parse(value[3], cultureInfo);
                vibrato.Out    = double.Parse(value[4], cultureInfo);
                vibrato.Shift  = double.Parse(value[5], cultureInfo);
                vibrato.Drift  = double.Parse(value[6], cultureInfo);
            }

            Vibrato = vibrato;
        }
Ejemplo n.º 4
0
        private double InterpolateVibrato(VibratoExpression vibrato, double posMs)
        {
            var lengthMs = vibrato.Length / 100 * DocManager.Inst.Project.TickToMillisecond(vibrato.Parent.DurTick);
            var inMs     = lengthMs * vibrato.In / 100;
            var outMs    = lengthMs * vibrato.Out / 100;

            var value = -Math.Sin(2 * Math.PI * (posMs / vibrato.Period + vibrato.Shift / 100)) * vibrato.Depth;

            if (posMs < inMs)
            {
                value *= posMs / inMs;
            }
            else if (posMs > lengthMs - outMs)
            {
                value *= (lengthMs - posMs) / outMs;
            }

            return(value);
        }
Ejemplo n.º 5
0
 private UNote() {
     PitchBend = new PitchBendExpression(this);
     Vibrato = new VibratoExpression(this);
     Phonemes.Add(new UPhoneme() { Parent = this, PosTick = 0 });
 }
Ejemplo n.º 6
0
 static String VibratoToUst(VibratoExpression vibrato)
 {
     List<double> args = new List<double>()
     {
         vibrato.Length,
         vibrato.Period,
         vibrato.Depth,
         vibrato.In,
         vibrato.Out,
         vibrato.Shift,
         vibrato.Drift
     };
     return string.Join(",", args.ToArray());
 }
Ejemplo n.º 7
0
 static void VibratoFromUst(VibratoExpression vibrato, string ust)
 {
     var args = ust.Split(new[] { ',' }).Select(double.Parse).ToList();
     if (args.Count() >= 7)
     {
         vibrato.Length = args[0];
         vibrato.Period = args[1];
         vibrato.Depth = args[2];
         vibrato.In = args[3];
         vibrato.Out = args[4];
         vibrato.Shift = args[5];
         vibrato.Drift = args[6];
     }
 }
Ejemplo n.º 8
0
 public void SetVibrato(VibratoExpression value)
 {
     Vibrato = value;
 }
Ejemplo n.º 9
0
        private double InterpolateVibrato(VibratoExpression vibrato, double posMs)
        {
            double lengthMs = vibrato.Length / 100 * DocManager.Inst.Project.TickToMillisecond(vibrato.Parent.DurTick);
            double inMs = lengthMs * vibrato.In / 100;
            double outMs = lengthMs * vibrato.Out / 100;

            double value = -Math.Sin(2 * Math.PI * (posMs / vibrato.Period + vibrato.Shift / 100)) * vibrato.Depth;

            if (posMs < inMs) value *= posMs / inMs;
            else if (posMs > lengthMs - outMs) value *= (lengthMs - posMs) / outMs;

            return value;
        }