public LineCalibratorViewModel()
 {
     MeasureClippingCommand = new SimpleCommand(() => MeasureClipping());
     InputDevices           = _audioDeviceRepository.GetCaptureDevices().ToArray();
     if (InputDevices.Any())
     {
         SelectedInputDevice = InputDevices.FirstOrDefault();
     }
 }
        public InstrumentAudioRecorderSettingsViewModel(IViewServices viewServices, ModuleSchema schema, string midiName)
        {
            this.viewServices = viewServices;
            this.schema       = schema;
            var groups = schema.InstrumentGroups
                         .Where(ig => ig.Preset)
                         .Select(ig => ig.Description)
                         .ToList();

            groups.Insert(0, "(All)");
            InstrumentGroups        = groups;
            selectedInstrumentGroup = groups[0];
            InputDevices            = AudioDevices.GetInputDeviceNames();

            // Try to guess at a reasonable input based on known inputs including the MIDI name.
            var expectedInputDevices = new[] { $"MASTER ({midiName})", $"IN ({midiName})", $"KICK ({midiName})" };

            SelectedInputDevice = InputDevices.FirstOrDefault(inputName => expectedInputDevices.Contains(inputName));

            kitNumber = schema.KitRoots.Count;
            SelectOutputFileCommand = new DelegateCommand(SelectOutputFile, true);
        }
Пример #3
0
        /// <summary>
        ///     Get input and output MIDI devices
        /// </summary>
        public void GetMidiDevices()
        {
            var inputDevices  = new BindableCollection <MidiInputDeviceInfo>();
            var outputDevices = new BindableCollection <MidiOutputDeviceInfo>();

            for (var i = 0; i < InputDevice.DeviceCount; i++)
            {
                inputDevices.Add(new MidiInputDeviceInfo(InputDevice.GetDeviceCapabilities(i)));
            }

            for (var i = 0; i < OutputDeviceBase.DeviceCount; i++)
            {
                outputDevices.Add(new MidiOutputDeviceInfo(OutputDeviceBase.GetDeviceCapabilities(i)));
            }

            _logger.Info($"Found {inputDevices.Count} input devices");
            _logger.Info($"Found {outputDevices.Count} output devices");

            InputDevices  = inputDevices;
            OutputDevices = outputDevices;

            var jdXiInput  = InputDevices.FirstOrDefault(d => d.Name == "JD-Xi");
            var jdXiOutput = OutputDevices.FirstOrDefault(d => d.Name == "JD-Xi");

            SelectedInputDeviceId  = jdXiInput == null ? -1 : InputDevices.IndexOf(jdXiInput);
            SelectedOutputDeviceId = jdXiOutput == null ? -1 : OutputDevices.IndexOf(jdXiOutput);

            if (jdXiInput != null)
            {
                _logger.Info($"JD-XI Input device found (ID: {SelectedInputDeviceId})");
            }

            if (jdXiOutput != null)
            {
                _logger.Info($"JD-XI Output device found (ID: {SelectedOutputDeviceId})");
            }
        }