Пример #1
0
        static void Main(string[] args)
        {
            var seq = new SyntCore.Sequencer(44100);

            seq.Tempo     = 30;
            audioProvider = new AudioProvider();
            var waveOutEvent = new WaveOutEvent();

            waveOutEvent.NumberOfBuffers = 2;
            waveOutEvent.DesiredLatency  = 100;
            player = waveOutEvent;
            var stwp = new SampleToWaveProvider(audioProvider);

            player.Init(stwp);
            player.Play();
            Console.WriteLine("Sequencer");
            Console.WriteLine("--------");
            Console.WriteLine("--------");

            bool run = true;

            nodes = new Node[9];
            for (int i = 0; i < 9; i++)
            {
                nodes[i] = new Node
                {
                    Function = false,
                    Q        = false
                };
            }
            // Modulation matrix
            audioProvider.SetDest(0, 0b1111110);
            audioProvider.SetDest(1, 0b100);
            audioProvider.SetDest(2, 0b1000);
            audioProvider.SetDest(3, 0b10010);
            audioProvider.SetDest(4, 0b1100000);
            audioProvider.SetDest(5, 0b1111111);
            audioProvider.SetDest(6, 0b1111000);
            audioProvider.SetDest(7, 0b1000000);

            nodes[8].Q = true;

            nodes[0].Function = false;
            nodes[1].Function = false;
            nodes[2].Function = false;
            nodes[3].Function = false;
            nodes[4].Function = false;
            nodes[5].Function = true;
            nodes[6].Function = false;
            //nodes[7].Function = true;
            audioProvider.SetFreq(38, 0); //48
            audioProvider.SetFreq(8, 1);  // 325
            audioProvider.SetFreq(20, 2); //100
            audioProvider.SetFreq(8, 3);  // 1140
            audioProvider.SetFreq(50, 4);
            audioProvider.SetFreq(8, 5);
            audioProvider.SetFreq(18, 6);
            audioProvider.SetFreq(8, 7);


            while (run)
            {
                for (int x = 0; x < 8; x++)
                {
                    SetLevel(x);
                    StatusWrite(x);
                }
                Console.SetCursorPosition(0, 5);
                Count();
                Thread.Sleep(200);
            }
        }