public FMVoice(string name, FMSynthesizer parent) { Name = name; p = parent.UI; eg = new EnvelopeGenerator(name); eg.Attack = p.Attack1; eg.Decay = p.Decay1; eg.Sustain = p.Sustain1; eg.Release = p.Release1; eg2 = new EnvelopeGenerator(name); eg2.Attack = p.Attack2; eg2.Decay = p.Decay2; eg2.Sustain = p.Sustain2; eg2.Release = p.Release2; table = new float[Settings.SampleRate / 220]; for (int i = 0; i < table.Length; i++) { table[i] = Mathf.Sin(TWO_PI * ((float)i / (float)(table.Length - 1))) * .8f;// + (Mathf.Pow( UnityEngine.Random.Range(0,1), 5 )*2-1); //Debug.Log(table[i]); } index = 0; }
// public FMSynthesizer(UIFMSynthesizer UI = null, int noOfVoices = 6) { Name = "hi"; this.UI = UI; noOfVoices = Mathf.Clamp(noOfVoices, 2, 12); FMVoice[] voices = new FMVoice[noOfVoices]; for (int i = 0; i < voices.Length; i++) { voices[i] = new FMVoice("voice" + i, this); voices[i].UpdateParams(); } voiceManager = new VoiceManager(voices); }