Example #1
0
    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();
        }
    }
Example #2
0
    // 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();
    }
Example #3
0
    // 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> ();
    }
Example #4
0
        // 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());
            }
        }
Example #5
0
 // 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);
 }
Example #6
0
 // 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 ();
 }