void OnAudioFilterRead(float[] data, int channels) { // Asserts channels == 2 for (var i = 0; i < data.Length; i += 2) { if (isRunning && seq.Run()) { osc.SetNote(seq.currentNote); if (seq.currentTrigger) { env.Bang(); } } if (isRunning && drumSeq.Run()) { for (var tr = 0; tr < drumSeq.triggers.GetLength(0); tr++) { if (drumSeq.GetCurrent(tr)) { drums[tr].Bang(); } } } var x = amp.Run(lpf.Run(osc.Run())); foreach (var sampler in drums) { x += sampler.Run(); } data[i] = data[i + 1] = x; env.Update(); } }
// Use this for initialization void Start() { _grabber = new GstUnityAudioGrabber(); _grabber2 = new GstCustomAudioGrabber(); _grabber2.Init("filesrc location=\"" + AudioFile + "\" ! decodebin3 ! audioconvert ! audioresample", Channels, SampleRate); _osc = new Oscillator(); _osc.SetNote(70); _grabber.Init(_osc.SamplesCount() * 10, 1, AudioSettings.outputSampleRate); float[] data = new float[_grabber.BufferLength]; for (int i = 0; i < data.Length; ++i) { data [i] = _osc.Sample(); } _data = data; _streamer = new GstAppNetAudioStreamer(); _streamer.AttachGrabber(_grabber2); _grabber2.Start(); _streamer.SetIP("127.0.0.1", 5001); _streamer.CreateStream(); _streamer.Stream(); }
// Use this for initialization void Start() { var gen = new Oscillator(); float[] intervals = _Scales [ScaleIndex % _Scales.Length]; Index = Random.Range(0, intervals.Length); float interval = intervals [Index % intervals.Length]; float octave = (float)Index / (float)intervals.Length; Note = BaseNote + octave * 12 + interval; gen.SetNote(Note); _generator = gen; _samples = new float[_generator.SamplesCount()]; for (int i = 0; i < _samples.Length; ++i) { _samples [i] = _generator.Sample(); } _source = GetComponent <AudioSource> (); _source.loop = true; _source.spatialBlend = 1; _source.clip = AudioClip.Create("", _samples.Length, 1, AudioSettings.outputSampleRate, false); _source.clip.SetData(_samples, 0); _source.Play(); _baseBehaviour = GetComponent <ElementBehaviour> (); }
// Use this for initialization void Start() { Oscillator _osc; _osc = new Oscillator(); _osc.SetNote(70); int samples = (int)Mathf.Ceil((float)BufferLength / (float)_osc.SamplesCount()) * _osc.SamplesCount(); for (int i = 0; i < BufferLength; ++i) { _samplesBuffer.Add(_osc.Sample()); } }
// Update is called once per frame void Update() { if (_osc.Note != Note) { _osc.SetNote(Note, SamplingRate); } _samplesBuffer.Clear(); for (int i = 0; i < BufferLength; ++i) { _samplesBuffer.Add(_osc.Sample()); } Samples.Invoke(_samplesBuffer); }
// Use this for initialization void Start() { _osc = new Oscillator(); _osc.SetNote(Note, SamplingRate); //int samples = (int)Mathf.Ceil((float)BufferLength /(float) _osc.SamplesCount ())*_osc.SamplesCount (); }