Exemple #1
0
    public Vector4[] Read(AudioContext ac)
    {
        Vector4[] data = new Vector4[ac.length];
        //float[] beatphase = beatPh.Read(ac.clock.BPM/60.0,ac);
        //float[] oscphase = oscPh.Read((double)freq, ac);



        for (int n = 0; n < data.Length; n += ac.channels)
        {
            var   ptn       = new int[] { 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
            float barpos    = (float)ac.clock.readCache(n);
            float loopPhase = barpos % (ptn.Length * 1.0f / 8);
            var   ptnphase  = Pattern.Read(ptn, 1.0f / 8, barpos, ac);
            var   trigP     = ptnphase.y;

            float envA = (float)DSP.Env(0.001f, 0.1f, 1, trigP, ac);
            float envP = (float)DSP.Env(0.001f, 0.99f, 9, trigP, ac);
            var   osc  = oscPh.read(ac.baseFreq, ac);
            // float s = Sine(oscPh.read(freq, ac), ac) * amp * sawsq;
            float o = DSP.noise((float)osc) * envA;

            for (int i = 0; i < ac.channels; i++)
            {
                data[n + i] = new Vector4(o, trigP, envA, loopPhase);
            }
        }
        return(data);
    }
Exemple #2
0
    public Vector4[] Read(List <Note> ptn, float stepLength, AudioContext ac)
    {
        Vector4[] data = new Vector4[ac.length];
        //float[] beatphase = beatPh.Read(ac.clock.BPM/60.0,ac);
        //float[] oscphase = oscPh.Read((double)freq, ac);



        for (int n = 0; n < data.Length; n += ac.channels)
        {
            float barpos    = (float)ac.clock.readCache(n);
            float loopphase = (float)Clock.Phase(barpos, 2.0);



            var ptnphase = Pattern.Read(ptn, barpos);
            var trigP    = ptnphase.phase;
            var note     = ptnphase.note;
            var scale    = Note.NotenumToScale(note.noteNum, ac);
            var pitch    = Note.ScaleToFreq(scale, ac);


            var osc = Read((float)pitch, (float)trigP, ac);
            // float s = Sine(oscPh.read(freq, ac), ac) * amp * sawsq;
            float envA = (float)DSP.Env(0.01f, 0.99f, 1, trigP, ac);
            float o    = ((float)osc) * (envA);

            for (int i = 0; i < ac.channels; i++)
            {
                data[n + i] = new Vector4(o, envA, (float)pitch, loopphase);
            }
        }
        return(data);
    }
Exemple #3
0
    public Vector4[] Read(AudioContext ac)
    {
        var data = new Vector4[ac.length];

        //float[] beatphase = beatPh.Read(ac.clock.BPM/60.0,ac);
        //float[] oscphase = oscPh.Read((double)freq, ac);



        for (int n = 0; n < data.Length; n += ac.channels)
        {
            //float[] barphase = phase;
            float loopphase = (float)Clock.Phase(ac.clock.BarPosition, 1.0);
            var   phase     = ac.clock.readCache(n);

            float beatphase = (float)Clock.Beat4th(phase);
            float envA      = (float)DSP.Env(0.001f, 0.99f, 1, beatphase, ac);
            float envP      = (float)DSP.Env(0.001f, 0.8f, 6, beatphase, ac);
            var   osc       = oscPh.read(0.5 * ac.baseFreq * envP, ac);
            // float s = Sine(oscPh.read(freq, ac), ac) * amp * sawsq;
            float o = DSP.Sine((float)osc, ac) * envA;

            for (int i = 0; i < ac.channels; i++)
            {
                data[n + i] = new Vector4(o, beatphase, envA, loopphase);
            }
        }
        return(data);
    }
Exemple #4
0
    public Vector4[] Read(List <Code> ptn, float stepLength, AudioContext ac)
    {
        Vector4[] data = new Vector4[ac.length];
        //float[] beatphase = beatPh.Read(ac.clock.BPM/60.0,ac);
        //float[] oscphase = oscPh.Read((double)freq, ac);



        //var nptns = new List<Note[]>();
        //var ptns = nptns.ConvertAll(new Converter<Note[], int[]>(Pattern.NoteToNum));



        for (int n = 0; n < data.Length; n += ac.channels)
        {
            for (int c = 0; c < ac.channels; c++)
            {
                float barpos    = (float)ac.clock.readCache(n);
                float loopphase = (float)Clock.Phase(barpos, stepLength);

                var outd = Pattern.Read(ptn, barpos);



                var trigP = outd.phase;
                var code  = outd.note;
                if (code.noteNums.Length > oscs.Count)
                {
                    for (int i = 0; i < code.noteNums.Length - oscs.Count; i++)
                    {
                        oscs.Add(new OSC());
                    }
                }
                float envA = (float)DSP.Env(0.2f, 0.8f, 1, trigP, ac);

                float val   = 0;
                int   count = 0;

                var notes = from note in code.noteNums
                            select new {
                    scale = Note.NotenumToScale(note, ac),
                    freq  = Note.ScaleToFreq(Note.NotenumToScale(note, ac), ac)
                };
                var freqs  = notes.Select(note => (float)note.freq);
                var scales = notes.Select(note => note.scale);

                val = Read(freqs, ac) * envA;



                data[n + c] = new Vector4(val, envA, 0, loopphase);
            }
        }
        return(data);
    }