Example #1
0
 private static void ParsePreUtterance(UNote note, string ust, UstLine ustLine)
 {
     if (string.IsNullOrWhiteSpace(ust))
     {
         note.Phonemes[0].AutoEnvelope = true;
         return;
     }
     note.Phonemes[0].AutoEnvelope = false;
     if (!double.TryParse(ust, out double preutter))
     {
         throw new FileFormatException($"Invalid PreUtterance\n${ustLine}");
     }
     note.Phonemes[0].Preutter = preutter;
 }
Example #2
0
 private static void ParseVibrato(UNote note, string ust, UstLine ustLine)
 {
     try {
         var args = ust.Split(',').Select(s => float.TryParse(s, out float v) ? v : 0).ToArray();
         if (args.Length < 7)
         {
             throw new Exception();
         }
         note.vibrato.length = args[0];
         note.vibrato.period = args[1];
         note.vibrato.depth  = args[2];
         note.vibrato.@in    = args[3];
         note.vibrato.@out   = args[4];
         note.vibrato.shift  = args[5];
         note.vibrato.drift  = args[6];
     } catch {
         throw new FileFormatException($"Invalid VBR\n{ustLine}");
     }
 }
Example #3
0
 private static void ParseVibrato(UNote note, string ust, UstLine ustLine)
 {
     try {
         var args = ust.Split(',').Select(double.Parse).ToArray();
         if (args.Length < 7)
         {
             throw new Exception();
         }
         note.Vibrato.Length = args[0];
         note.Vibrato.Period = args[1];
         note.Vibrato.Depth  = args[2];
         note.Vibrato.In     = args[3];
         note.Vibrato.Out    = args[4];
         note.Vibrato.Shift  = args[5];
         note.Vibrato.Drift  = args[6];
     } catch {
         throw new FileFormatException($"Invalid VBR\n{ustLine}");
     }
 }
Example #4
0
 private static void ParseEnvelope(UNote note, string ust, UstLine ustLine)
 {
     // p1,p2,p3,v1,v2,v3,v4,%,p4,p5,v5 (0,5,35,0,100,100,0,%,0,0,100)
     try {
         var parts = ust.Split(new[] { ',' }).Select(s => double.TryParse(s, out double v) ? v : -1).ToArray();
         if (parts.Length < 7)
         {
             return;
         }
         double p1 = parts[0], p2 = parts[1], p3 = parts[2], v1 = parts[3], v2 = parts[4], v3 = parts[5], v4 = parts[6];
         if (parts.Length == 11)
         {
             double p4 = parts[8], p5 = parts[9], v5 = parts[11];
         }
         note.Expressions["decay"].Data = 100 - (int)v3;
     } catch (Exception e) {
         throw new FileFormatException($"Invalid Envelope\n{ustLine}", e);
     }
 }
Example #5
0
 private static void ParseEnvelope(UNote note, string ust, UstLine ustLine)
 {
     // p1,p2,p3,v1,v2,v3,v4,%,p4,p5,v5 (0,5,35,0,100,100,0,%,0,0,100)
     try {
         var parts = ust.Split(new[] { ',' }).Select(s => float.TryParse(s, out float v) ? v : -1).ToArray();
         if (parts.Length < 7)
         {
             return;
         }
         float p1 = parts[0], p2 = parts[1], p3 = parts[2], v1 = parts[3], v2 = parts[4], v3 = parts[5], v4 = parts[6];
         if (parts.Length == 11)
         {
             float p4 = parts[8], p5 = parts[9], v5 = parts[10];
         }
         note.phonemeExpressions.Add(new UExpression("dec")
         {
             index = 0,
             value = 100f - v3,
         });
     } catch (Exception e) {
         throw new FileFormatException($"Invalid Envelope\n{ustLine}", e);
     }
 }