Beispiel #1
0
        private void loadProgramFile(string file)
        {
            //StreamReader reader = new StreamReader(File.Open(file, FileMode.Open));
            StreamReader reader = new StreamReader(Application.GetResourceStream(new Uri(file, UriKind.Relative)).Stream);

            if (!reader.ReadLine().Trim().ToUpper().Equals("[FM INSTRUMENT]"))
            {
                reader.Close();
                throw new InvalidDataException("Invalid Program file: Incorrect Header!");
            }
            string[] args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 4)
            {
                reader.Close();
                throw new InvalidDataException("Invalid Program file: Parameters are missing");
            }
            this.baseWaveType = SynthHelper.getTypeFromString(args[0]);
            this.modWaveType  = SynthHelper.getTypeFromString(args[1]);
            this.mfreq        = getOpsAndValues(args[2], true);
            this.mamp         = getOpsAndValues(args[3], false);
            args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                throw new InvalidDataException("Invalid Program file: Parameters are missing");
            }
            if (int.Parse(args[0]) == 0)
            {
                looping = true;
            }
            start_time = double.Parse(args[1]);
            end_time   = double.Parse(args[2]);
            args       = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                throw new InvalidDataException("Invalid Program file: Parameters are missing");
            }
            switch (args[0].ToLower().Trim())
            {
            case "fadein":
                env = Envelope.CreateBasicFadeIn(double.Parse(args[2]));
                break;

            case "fadeout":
                env = Envelope.CreateBasicFadeOut(double.Parse(args[2]));
                break;

            case "fadein&out":
                double p = double.Parse(args[2]) / 2.0;
                env = Envelope.CreateBasicFadeInAndOut(p, p);
                break;

            default:
                env = Envelope.CreateBasicConstant();
                break;
            }
            env.Peak = double.Parse(args[1]);
            reader.Close();
        }
Beispiel #2
0
        private void loadProgramFile(string file)
        {
            StreamReader reader = new StreamReader(PlatformHelper.StreamLoad(file));

            if (!reader.ReadLine().Trim().ToUpper().Equals("[FM INSTRUMENT]"))
            {
                reader.Close();
                throw new Exception("Invalid Program file: Incorrect Header!");
            }
            string[] args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 4)
            {
                reader.Close();
                throw new Exception("Invalid Program file: Parameters are missing");
            }
            this.baseWaveType = SynthHelper.getTypeFromString(args[0]);
            this.modWaveType  = SynthHelper.getTypeFromString(args[1]);
            this.mfreq        = (ModulatorFrequencyFunction)getOpsAndValues(args[2], true);
            this.mamp         = (ModulatorAmplitudeFunction)getOpsAndValues(args[3], false);
            args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                throw new Exception("Invalid Program file: Parameters are missing");
            }
            if (int.Parse(args[0]) == 0)
            {
                looping = true;
            }
            start_time = double.Parse(args[1]);
            end_time   = double.Parse(args[2]);
            args       = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                throw new Exception("Invalid Program file: Parameters are missing");
            }
            switch (args[0].ToLower().Trim())
            {
            case "fadein":
                env = Envelope.CreateBasicFadeIn(double.Parse(args[2]));
                break;

            case "fadeout":
                env = Envelope.CreateBasicFadeOut(double.Parse(args[2]));
                break;

            case "fadein&out":
                double p = double.Parse(args[2]) / 2.0;
                env = Envelope.CreateBasicFadeInAndOut(p, p);
                break;

            default:
                env = Envelope.CreateBasicConstant();
                break;
            }
            env.Peak = double.Parse(args[1]);
            reader.Close();
        }
Beispiel #3
0
 //--Public Methods
 public AnalogInstrument(SynthHelper.WaveFormType waveformtype, int sampleRate)
     : base()
 {
     //set type
     this.type = waveformtype;
     this.SampleRate = sampleRate;
     //Proper calculation of voice states
     _attack = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_ATTACK);
     _release = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_RELEASE);
     _decay = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_DECAY);
     _hold = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_HOLD);
     //set base attribute name
     base.Name = waveformtype.ToString();
 }
Beispiel #4
0
 //--Public Methods
 public AnalogInstrument(SynthHelper.WaveFormType waveformtype, int sampleRate)
     : base()
 {
     //set type
     this.type       = waveformtype;
     this.SampleRate = sampleRate;
     //Proper calculation of voice states
     _attack  = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_ATTACK);
     _release = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_RELEASE);
     _decay   = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_DECAY);
     _hold    = SynthHelper.getSampleFromTime(sampleRate, SynthHelper.DEFAULT_HOLD);
     //set base attribute name
     base.Name = waveformtype.ToString();
 }
Beispiel #5
0
 private void loadProgramFile(string file)
 {
     StreamReader reader = new StreamReader(PlatformHelper.StreamLoad(file));
     if (!reader.ReadLine().Trim().ToUpper().Equals("[FM INSTRUMENT]"))
     {
         reader.Close();
         throw new Exception("Invalid Program file: Incorrect Header!");
     }
     string[] args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
     if (args.Length < 4)
     {
         reader.Close();
         throw new Exception("Invalid Program file: Parameters are missing");
     }
     this.baseWaveType = SynthHelper.getTypeFromString(args[0]);
     this.modWaveType = SynthHelper.getTypeFromString(args[1]);
     this.mfreq = (ModulatorFrequencyFunction)getOpsAndValues(args[2], true);
     this.mamp = (ModulatorAmplitudeFunction)getOpsAndValues(args[3], false);
     args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
     if (args.Length < 3)
     {
         reader.Close();
         throw new Exception("Invalid Program file: Parameters are missing");
     }
     if (int.Parse(args[0]) == 0)
         looping = true;
     start_time = double.Parse(args[1]);
     end_time = double.Parse(args[2]);
     args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
     if (args.Length < 3)
     {
         reader.Close();
         throw new Exception("Invalid Program file: Parameters are missing");
     }
     switch (args[0].ToLower().Trim())
     {
         case "fadein":
             env = Envelope.CreateBasicFadeIn(double.Parse(args[2]));
             break;
         case "fadeout":
             env = Envelope.CreateBasicFadeOut(double.Parse(args[2]));
             break;
         case "fadein&out":
             double p = double.Parse(args[2]) / 2.0;
             env = Envelope.CreateBasicFadeInAndOut(p, p);
             break;
         default:
             env = Envelope.CreateBasicConstant();
             break;
     }
     env.Peak = double.Parse(args[1]);
     reader.Close();
 }
Beispiel #6
0
        private void loadProgramFile(string file)
        {
            //CSSynth
            //StreamReader reader = new StreamReader(File.Open(file, FileMode.Open));
            //Debug.Log(this.ToString() + " AppDataPath " + Application.dataPath + " Filename: " + file);
#if NETFX_CORE
            StreamReader reader = LegacyFile.OpenText(Application.dataPath + "/Resources/" + file);
#else
            StreamReader reader = new StreamReader(Application.dataPath + "/Resources/" + file);
#endif

            if (!reader.ReadLine().Trim().ToUpper().Equals("[FM INSTRUMENT]"))
            {
#if NETFX_CORE
                reader.Dispose();
#else
                reader.Close();
#endif
                throw new InvalidOperationException("Invalid Program file: Incorrect Header!");
            }
            string[] args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 4)
            {
#if NETFX_CORE
                reader.Dispose();
#else
                reader.Close();
#endif
                throw new InvalidOperationException("Invalid Program file: Parameters are missing");
            }
            this.baseWaveType = SynthHelper.getTypeFromString(args[0]);
            this.modWaveType  = SynthHelper.getTypeFromString(args[1]);
            this.mfreq        = getOpsAndValues(args[2], true);
            this.mamp         = getOpsAndValues(args[3], false);
            args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
#if NETFX_CORE
                reader.Dispose();
#else
                reader.Close();
#endif
                throw new InvalidOperationException("Invalid Program file: Parameters are missing");
            }
            if (int.Parse(args[0]) == 0)
            {
                looping = true;
            }
            start_time = double.Parse(args[1]);
            end_time   = double.Parse(args[2]);
            args       = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
#if NETFX_CORE
                reader.Dispose();
#else
                reader.Close();
#endif
                throw new InvalidOperationException("Invalid Program file: Parameters are missing");
            }
            switch (args[0].ToLower().Trim())
            {
            case "fadein":
                env = Envelope.CreateBasicFadeIn(double.Parse(args[2]));
                break;

            case "fadeout":
                env = Envelope.CreateBasicFadeOut(double.Parse(args[2]));
                break;

            case "fadein&out":
                double p = double.Parse(args[2]) / 2.0;
                env = Envelope.CreateBasicFadeInAndOut(p, p);
                break;

            default:
                env = Envelope.CreateBasicConstant();
                break;
            }
            env.Peak = double.Parse(args[1]);
#if NETFX_CORE
            reader.Dispose();
#else
            reader.Close();
#endif
        }
        private void loadProgramFile(string file)
        {
            //UnitySynth
            //StreamReader reader = new StreamReader(File.Open(file, FileMode.Open));
            //Debug.Log(this.ToString() + " AppDataPath " + Application.dataPath + " Filename: " + file);
            StreamReader reader = new StreamReader(Application.dataPath + "/Resources/" + file);

            if (!reader.ReadLine().Trim().ToUpper().Equals("[FM INSTRUMENT]"))
            {
                reader.Close();
                //MANGLING FOR WEB BUILD
                //throw new InvalidDataException("Invalid Program file: Incorrect Header!");
                throw new Exception("Invalid Program file: Incorrect Header!");

            }
            string[] args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 4)
            {
                reader.Close();
                //MANGLING FOR WEB BUILD
                //throw new InvalidDataException("Invalid Program file: Parameters are missing");
                throw new Exception("Invalid Program file: Parameters are missing");

            }
            this.baseWaveType = SynthHelper.getTypeFromString(args[0]);
            this.modWaveType = SynthHelper.getTypeFromString(args[1]);
            this.mfreq = getOpsAndValues(args[2], true);
            this.mamp = getOpsAndValues(args[3], false);
            args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                //MANGLING FOR WEB BUILD
                //throw new InvalidDataException("Invalid Program file: Parameters are missing");
                throw new Exception("Invalid Program file: Parameters are missing");

            }
            if (int.Parse(args[0]) == 0)
                looping = true;
            start_time = double.Parse(args[1]);
            end_time = double.Parse(args[2]);
            args = reader.ReadLine().Split(new string[] { "|" }, StringSplitOptions.None);
            if (args.Length < 3)
            {
                reader.Close();
                //throw new InvalidDataException("Invalid Program file: Parameters are missing");
                throw new Exception("Invalid Program file: Parameters are missing");

            }
            switch (args[0].ToLower().Trim())
            {
                case "fadein":
                    env = Envelope.CreateBasicFadeIn(double.Parse(args[2]));
                    break;
                case "fadeout":
                    env = Envelope.CreateBasicFadeOut(double.Parse(args[2]));
                    break;
                case "fadein&out":
                    double p = double.Parse(args[2]) / 2.0;
                    env = Envelope.CreateBasicFadeInAndOut(p, p);
                    break;
                default:
                    env = Envelope.CreateBasicConstant();
                    break;
            }
            env.Peak = double.Parse(args[1]);
            reader.Close();
        }