Пример #1
0
        /// <inheritdoc />
        public void Read(int inputDeviceId, int outputDeviceId)
        {
            // Reset dump count counter
            _dumpCount = 0;

            // Initialize input device
            _device = new InputDevice(inputDeviceId);

            // Setup event handler for receiving SysEx messages
            _device.SysExMessageReceived += OnSysExMessageReceived;

            // Start recording input from device
            _device.StartRecording();

            // Start timer before running task, so we have timer on the same thread
            // as the callbacks for timer and input device
            _timer.Start();

            // Request data dump from device on separate thread
            Task.Run(() =>
            {
                // Need to make 50ms delay between requests to ensure
                // that device will not hung up

                using (var output = new OutputDevice(outputDeviceId))
                {
                    _logger.Send("Request Patch.Common");
                    output.Send(SysExUtils.GetRequestDumpMessage(CommonAddressOffset, _commonDumpRequest));
                    Thread.Sleep(50);

                    _logger.Send("Request Patch.PartialOne");
                    output.Send(SysExUtils.GetRequestDumpMessage(PartialAddressOffset(DigitalPartial.First), _partialDumpRequest));
                    Thread.Sleep(50);

                    _logger.Send("Request Patch.PartialTwo");
                    output.Send(SysExUtils.GetRequestDumpMessage(PartialAddressOffset(DigitalPartial.Second), _partialDumpRequest));
                    Thread.Sleep(50);

                    _logger.Send("Request Patch.PartialThree");
                    output.Send(SysExUtils.GetRequestDumpMessage(PartialAddressOffset(DigitalPartial.Third), _partialDumpRequest));
                    Thread.Sleep(50);

                    _logger.Send("Request Patch.Modifiers");
                    output.Send(SysExUtils.GetRequestDumpMessage(ModifiersAddressOffset, _modifiersDumpRequest));
                    Thread.Sleep(50);
                }
            });
        }
Пример #2
0
        /// <inheritdoc />
        public void Read(int inputDeviceId, int outputDeviceId)
        {
            // Reset dump count counter
            _dumpCount = 0;

            // Initialize input device
            _device = new InputDevice(inputDeviceId);

            // Clear previous sysex dumps
            _commonDump = null;
            _partialsDump.Clear();

            // Setup event handler for receiving SysEx messages
            _device.SysExMessageReceived += OnSysExMessageReceived;

            // Start recording input from device
            _device.StartRecording();

            // Start timer before running task, so we have timer on the same thread
            // as the callbacks for timer and input device
            _timer.Start();

            // Request data dump from device on separate thread
            Task.Run(() =>
            {
                // Need to make 50ms delay between requests to ensure
                // that device will not hung up

                using (var output = new OutputDevice(outputDeviceId))
                {
                    _logger.Send("Request Patch.Common");
                    output.Send(SysExUtils.GetRequestDumpMessage(_commonAddressOffset, _commonDumpRequest));

                    Thread.Sleep(50);

                    foreach (var vdPair in EnumHelper.GetAllValuesAndDescriptions(typeof(DrumKey)))
                    {
                        var key = (DrumKey)vdPair.Value;

                        _logger.Send($"Request Patch.Partial[{key}]");
                        output.Send(SysExUtils.GetRequestDumpMessage(PartialAddressOffset(key), _partialDumpRequest));

                        Thread.Sleep(50);
                    }
                }
            });
        }
Пример #3
0
        /// <inheritdoc />
        public void Read(int inputDeviceId, int outputDeviceId)
        {
            // Reset dump count counter and dumps container
            _dumpCount = 0;
            _dataDumps.Clear();

            // Initialize input device
            _device = new InputDevice(inputDeviceId);

            // Setup event handler for receiving SysEx messages
            _device.SysExMessageReceived += OnSysExMessageReceived;

            // Start recording input from device
            _device.StartRecording();

            // Start timer before running task, so we have timer on the same thread
            // as the callbacks for timer and input device
            _timer.Start();

            // Request data dump from device on separate thread
            Task.Run(() =>
            {
                // Need to make 50ms delay between requests to ensure
                // that device will not hung up

                using (var output = new OutputDevice(outputDeviceId))
                {
                    _logger.Send("Request Effect 1");
                    output.Send(SysExUtils.GetRequestDumpMessage(EffectOffset(Effect.Effect1), EffectDumpRequest(Effect.Effect1)));
                    Thread.Sleep(50);

                    _logger.Send("Request Effect 2");
                    output.Send(SysExUtils.GetRequestDumpMessage(EffectOffset(Effect.Effect2), EffectDumpRequest(Effect.Effect2)));
                    Thread.Sleep(50);

                    _logger.Send("Request Delay");
                    output.Send(SysExUtils.GetRequestDumpMessage(EffectOffset(Effect.Delay), EffectDumpRequest(Effect.Delay)));
                    Thread.Sleep(50);

                    _logger.Send("Request Reverb");
                    output.Send(SysExUtils.GetRequestDumpMessage(EffectOffset(Effect.Reverb), EffectDumpRequest(Effect.Reverb)));
                    Thread.Sleep(50);
                }
            });
        }
Пример #4
0
        /// <inheritdoc />
        public void Read(int inputDeviceId, int outputDeviceId)
        {
            _device = new InputDevice(inputDeviceId);

            // Setup event handler for receiving SysEx messages
            _device.SysExMessageReceived += OnSysExMessageReceived;

            // Start recording input from device
            _device.StartRecording();

            // Start timer before running task, so we have timer on the same thread
            // as the callbacks for timer and input device
            _timer.Start();

            // Request data dump from device on separate thread
            Task.Run(() =>
            {
                using (var output = new OutputDevice(outputDeviceId))
                {
                    _logger.Send("Request Patch");
                    output.Send(SysExUtils.GetRequestDumpMessage(_addressOffset, _dumpRequest));
                }
            });
        }