private void Form1_Shown(object sender, EventArgs e) { f2 = new FormSettings(); cm = new ChooseModule(); int k = 0; k = MidiOut.NumberOfDevices; for (int i = 0; i < k; i++) { f2.comboBox1.Items.Add(MidiOut.DeviceInfo(i).ProductName.ToString()); } if (k > 0) { f2.comboBox1.SelectedIndex = 0; } k = 0; k = MidiIn.NumberOfDevices; for (int i = 0; i < k; i++) { f2.comboBox3.Items.Add(MidiIn.DeviceInfo(i).ProductName.ToString()); } if (k > 0) { f2.comboBox3.SelectedIndex = 0; } f2.comboBox2.SelectedIndex = 0; f2.StartPosition = FormStartPosition.CenterParent; f2.FormClosing += SettingsClose; f2.ShowDialog(); cm.StartPosition = FormStartPosition.CenterScreen; cm.FormClosing += ChooseModuleClose; }
private static void ScanAndRegisterToMidiDevices(bool logInformation = false) { for (int index = 0; index < MidiIn.NumberOfDevices; index++) { var deviceInfo = MidiIn.DeviceInfo(index); if (logInformation) { Log.Debug("Scanning " + deviceInfo.ProductName); } MidiIn newMidiIn; try { newMidiIn = new MidiIn(index); } catch (NAudio.MmException e) { Log.Error(" > " + e.Message + " " + MidiIn.DeviceInfo(index).ProductName); continue; } foreach (var midiConsumer in MidiConsumers) { newMidiIn.MessageReceived += midiConsumer.MessageReceivedHandler; newMidiIn.ErrorReceived += midiConsumer.ErrorReceivedHandler; } newMidiIn.Start(); MidiInsWithDevices[newMidiIn] = deviceInfo; MidiInsByDeviceIdHash[deviceInfo.ProductName.GetHashCode()] = newMidiIn; } }
// Get the specific list based on the property name. public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { List <string>?rec = null; switch (context.PropertyDescriptor.Name) { case "MidiInDevice": rec = new List <string>(); for (int devindex = 0; devindex < MidiIn.NumberOfDevices; devindex++) { rec.Add(MidiIn.DeviceInfo(devindex).ProductName); } break; case "MidiOutDevice": rec = new List <string>(); for (int devindex = 0; devindex < MidiOut.NumberOfDevices; devindex++) { rec.Add(MidiOut.DeviceInfo(devindex).ProductName); } break; } return(new StandardValuesCollection(rec)); }
public void RefreshConnectedDevices() { _connectedInputDevices = new ConcurrentDictionary <string, List <int> >(); for (var i = 0; i < MidiIn.NumberOfDevices; i++) { var infoIn = MidiIn.DeviceInfo(i); if (!_connectedInputDevices.ContainsKey(infoIn.ProductName)) { _connectedInputDevices.TryAdd(infoIn.ProductName, new List <int>()); } _connectedInputDevices[infoIn.ProductName].Add(i); } _connectedOutputDevices = new ConcurrentDictionary <string, List <int> >(); for (int i = 0; i < MidiOut.NumberOfDevices; i++) { var infoOut = MidiOut.DeviceInfo(i); if (!_connectedOutputDevices.ContainsKey(infoOut.ProductName)) { _connectedOutputDevices.TryAdd(infoOut.ProductName, new List <int>()); } _connectedOutputDevices[infoOut.ProductName].Add(i); } BuildInputDeviceList(); BuildOutputDeviceList(); }
private void frmConfig_Load(object sender, EventArgs e) { List <float> flist = new List <float>(); flist.Add(0); flist.Add(2); flist.Add(4); flist.Add(6); flist.Add(8); flist.Add(10); DiscDraw.Draw(pictureBox1, flist); DiscDraw.Draw(pictureBox2, flist); _config = Config.ReadXML(configFilename); lstMIDIEvent.Items.Clear(); //ASIOドライバー一覧取得 foreach (string device in AsioOut.GetDriverNames()) { cboAsioDriver.Items.Add(device); } if (cboAsioDriver.Items.Count > 0) { cboAsioDriver.SelectedIndex = 0; } //MIDI入力デバイス一覧取得 for (int device = 0; device < MidiIn.NumberOfDevices; device++) { cboMIDIINDEVICE.Items.Add(MidiIn.DeviceInfo(device).ProductName); } if (cboMIDIINDEVICE.Items.Count > 0) { cboMIDIINDEVICE.SelectedIndex = 0; } }
public static IEnumerable <MidiInCapabilities> GetConnectedInputDevices() { for (var i = 0; i < MidiIn.NumberOfDevices; ++i) { yield return(MidiIn.DeviceInfo(i)); } }
private int NanoFind() //polling is mandatory, naudio does not implement a watcher { for (int device = 0; device < MidiIn.NumberOfDevices; device++) { if ((MidiIn.DeviceInfo(device).ProductId == 65535))//checks that nano slider is present { if (nanoID != device) { nanoID = device; try { midiIn = new MidiIn(nanoID); } catch (Exception e) { Debug.WriteLine(e.Message); nanoSliderTray.midiAlredyInUse(); } midiIn.MessageReceived += MidiIn_MessageReceived; SystemEvents.PowerModeChanged += OnPowerChange; midiIn.Start(); nanoSliderTray.Ready(); if (settings.notifyStatus) { nanoSliderTray.ReadyBaloon(); } } showed = false; return(nanoID); } } nanoID = -1; showed = nanoSliderTray.NanoNotPresentMB(showed); return(nanoID); }
public void fillDevicesList() { devices = new List <string>(); devices.Add("[NONE]"); for (int i = 0; i < MidiIn.NumberOfDevices; i++) { devices.Add(String.Format("{0}", MidiIn.DeviceInfo(i).ProductName)); } }
public MidiInput(int devId) { base.DeviceID = new DeviceId(); base.DeviceID.id = devId; base.DeviceID.t = EDeviceType.In; base.DeviceName = MidiIn.DeviceInfo(devId).ProductName; this.InputDevice = new MidiIn(devId); this.InputDevice.MessageReceived += new EventHandler <MidiInMessageEventArgs>(this.HandleMsgReceived); }
public static string[] GetInputDevices() { string[] names = new string[MidiIn.NumberOfDevices]; for (int i = 0; i < MidiIn.NumberOfDevices; i++) { names[i] = MidiIn.DeviceInfo(i).ProductName; } return(names); }
private List <MidiInCapabilities> GetMidiInCapabilities() { var devices = new List <MidiInCapabilities>(); for (int i = 0; i < _numberOfDevices; i++) { devices.Add(MidiIn.DeviceInfo(i)); } return(devices); }
static int Main(string[] args) { _soundpad = new Soundpad(); var config = JsonConvert.DeserializeObject <Configuration>(File.ReadAllText("config.json")); Console.WriteLine("The config contains the following information:"); Console.WriteLine(JsonConvert.SerializeObject(config)); Console.WriteLine(""); var audioControl = new AudioControl(config, _soundpad); MidiIn midiIn = default; for (var device = 0; device < MidiIn.NumberOfDevices; device++) { Console.WriteLine(MidiIn.DeviceInfo(device).ProductName); if (MidiIn.DeviceInfo(device).ProductName.Contains(config.KeypadName)) { midiIn = new MidiIn(device); midiIn.MessageReceived += audioControl.OnButtonPress; midiIn.ErrorReceived += MidiInErrorReceived; midiIn.Start(); break; } } if (midiIn == null) { Console.Error.WriteLine("Device with name pad not found."); return(-1); } _soundpad.StatusChanged += audioControl.SoundpadOnStatusChanged; _soundpad.ConnectAsync(); //if (OnButtonPress() == 41) /*{ * Soundpad.PlaySound(index: 6); * }*/ Console.CancelKeyPress += delegate { midiIn?.Dispose(); }; Console.ReadLine(); midiIn.Dispose(); return(0); }
public MainWindow() { InitializeComponent(); this.Visibility = Visibility.Hidden; MainNotifyIcon.Icon = new System.Drawing.Icon("boardy_logo.ico"); foreach (var pcs in ApplicationSettings.PadControls) { PadControl pc = new PadControl(pcs.AudioDeviceID, pcs.Volume, pcs.AudioFilePath, pcs.MidiNoteMap, pcs.VolumeSliderControllerMap); GlobalStaticContext.AddPad(pc); MainWrapPanel.Children.Add(pc); } int selectedMidiINPUTDevId = -1; for (int i = 0; i < MidiIn.NumberOfDevices; i++) { if (ApplicationSettings.MidiInputDeviceID == MidiIn.DeviceInfo(i).ProductName) { selectedMidiINPUTDevId = i; } } int selectedMidiOUTPUTDevId = -1; int selectedMidiREPEATEDDevId = -1; for (int i = 0; i < MidiOut.NumberOfDevices; i++) { if (ApplicationSettings.MidiOutputDeviceID == MidiOut.DeviceInfo(i).ProductName) { selectedMidiOUTPUTDevId = i; } if (ApplicationSettings.MidiOutputRepeatedDeviceID == MidiOut.DeviceInfo(i).ProductName) { selectedMidiREPEATEDDevId = i; } } if (ApplicationSettings.MidiInputDeviceID != null && ApplicationSettings.MidiInputDeviceID != "") { GlobalStaticContext.AttachMidiInDevice(selectedMidiINPUTDevId); } if (ApplicationSettings.MidiOutputDeviceID != null && ApplicationSettings.MidiOutputDeviceID != "") { GlobalStaticContext.AttachMidiOutDevice(selectedMidiOUTPUTDevId); } if (ApplicationSettings.MidiOutputRepeatedDeviceID != null && ApplicationSettings.MidiOutputRepeatedDeviceID != "") { GlobalStaticContext.AttachMidiRepeatDevice(selectedMidiREPEATEDDevId); } }
public MainForm() { // // The InitializeComponent() call is required for Windows Forms designer support. // InitializeComponent(); for (int device = 0; device < MidiIn.NumberOfDevices; device++) { comboBoxMidiInDevices.Items.Add(MidiIn.DeviceInfo(device).ProductName); } if (comboBoxMidiInDevices.Items.Count > 0) { comboBoxMidiInDevices.SelectedIndex = 0; } for (int device = 0; device < MidiOut.NumberOfDevices; device++) { comboBoxMidiOutDevices.Items.Add(MidiOut.DeviceInfo(device).ProductName); } if (comboBoxMidiOutDevices.Items.Count > 0) { comboBoxMidiOutDevices.SelectedIndex = 0; } if (comboBoxMidiInDevices.Items.Count == 0) { MessageBox.Show("No MIDI input devices available"); } else { if (midiIn == null) { midiIn = new MidiIn(comboBoxMidiInDevices.SelectedIndex); midiIn.MessageReceived += new EventHandler <MidiInMessageEventArgs>(midiIn_MessageReceived); midiIn.ErrorReceived += new EventHandler <MidiInMessageEventArgs>(midiIn_ErrorReceived); } midiIn.Start(); comboBoxMidiInDevices.Enabled = false; } if (comboBoxMidiOutDevices.Items.Count == 0) { MessageBox.Show("No MIDI output devices available"); } else { if (midiOut == null) { midiOut = new MidiOut(comboBoxMidiOutDevices.SelectedIndex); } } // Add Audio Output Types InitialiseAsioControls(); }
public static MidiIn GetInputDeviceWithName(string name) { for (int i = 0; i < MidiIn.NumberOfDevices; i++) { if (MidiIn.DeviceInfo(i).ProductName.Equals(name)) { return(new MidiIn(i)); } } return(null); }
/// <summary>Gets connected MIDI input devices</summary> /// <returns>Array of MidiInCapabilities</returns> public static MidiInCapabilities[] GetMidiInDevices() { var devices = new MidiInCapabilities[MidiIn.NumberOfDevices]; for (var device = 0; device < MidiIn.NumberOfDevices; device++) { devices[device] = MidiIn.DeviceInfo(device); } return(devices); }
public MidiIn CreateMidiIn() { for (int i = 0; i < MidiIn.NumberOfDevices; i++) { if (MidiIn.DeviceInfo(i).ProductName == MidiInputName) { return(new MidiIn(i)); } } return(null); }
//TODO: error handling public void GetDeviceNames(Action <ObservableCollection <string>, Exception> callback) { ObservableCollection <string> names = new ObservableCollection <string>(); for (int device = 0; device < MidiIn.NumberOfDevices; device++) { names.Add(MidiIn.DeviceInfo(device).ProductName); } callback(names, null); }
public List <string> GetAvailableInputDevices() { List <string> devices = new List <string>(); for (int i = 0; i < MidiIn.NumberOfDevices; ++i) { devices.Add(MidiIn.DeviceInfo(i).ProductName); } return(devices); }
public static List <string> AvailableMidiInDevices() { var devInfo = new List <string>(); for (int device = 0; device < MidiIn.NumberOfDevices; device++) { devInfo.Add(MidiIn.DeviceInfo(device).ProductName); } return(devInfo); }
private void cmb_MIDI_InList_Click(object sender, EventArgs e) { for (int device = 0; device < MidiIn.NumberOfDevices; device++) { cmb_MIDI_InList.Items.Add(MidiIn.DeviceInfo(device).ProductName); } if (cmb_MIDI_InList.Items.Count > 0) { cmb_MIDI_InList.SelectedIndex = 0; } }
public MidiInViewModel(int deviceNo) { this.deviceNo = deviceNo; device = new MidiIn(deviceNo); capabilities = MidiIn.DeviceInfo(deviceNo); subscribers = new List <Subscriber>(); device.MessageReceived += Device_MessageReceived; device.ErrorReceived += Device_ErrorReceived; device.Start(); }
public MidiIn FindMidiIn(string name) { for (int i = 0; i < MidiIn.NumberOfDevices; i++) { if (MidiIn.DeviceInfo(i).ProductName.ToLower().Contains(name.ToLower())) { _logger.WriteLine($@"Found MidiIn: {MidiIn.DeviceInfo(i).ProductName}"); return(new MidiIn(i)); } } return(null); }
public static List <MidiWithIndex> GetDevices() { List <MidiWithIndex> devices = new List <MidiWithIndex>(); for (int index = 0; index < MidiIn.NumberOfDevices; index++) { MidiInCapabilities x = MidiIn.DeviceInfo(index); devices.Add(new MidiWithIndex(x, index)); } return(devices); }
public void FindMidiIn() { for (int i = 0; i < MidiIn.NumberOfDevices; i++) { Console.WriteLine("MIDI IN: " + MidiIn.DeviceInfo(i).ProductName); if (MidiIn.DeviceInfo(i).ProductName.ToLower().Contains(SearchString)) { midiIn = new MidiIn(i); Console.WriteLine($@"Assigning MidiIn: {MidiIn.DeviceInfo(i).ProductName}"); break; } } }
private void selectDevice() { // If there are any devices, then we can read (technically) if (MidiIn.NumberOfDevices > 0) { canRead = true; selectedDevice = 0; Console.WriteLine(String.Format("Selected MIDI Device: {0}", MidiIn.DeviceInfo(selectedDevice).ProductName)); } else { Console.WriteLine("No MIDI devices found."); } }
public MIDIinput(string devicename) { _index = -1; turntable = new MIDITurnTable[2]; MIDIInList = new List <string>(); for (int device = 0; device < MidiIn.NumberOfDevices; device++) { MIDIInList.Add(MidiIn.DeviceInfo(device).ProductName); if (MidiIn.DeviceInfo(device).ProductName == devicename) { _index = device; } } }
public void StartMIDIInMonitoring() { if (setting.midiKbd.MidiInDeviceName == "") { return; } if (midiin != null) { try { midiin.Stop(); midiin.Dispose(); midiin.MessageReceived -= midiIn_MessageReceived; midiin.ErrorReceived -= midiIn_ErrorReceived; midiin = null; } catch { midiin = null; } } if (midiin == null) { for (int i = 0; i < MidiIn.NumberOfDevices; i++) { if (!setting.midiKbd.UseMIDIKeyboard) { continue; } if (setting.midiKbd.MidiInDeviceName != MidiIn.DeviceInfo(i).ProductName) { continue; } try { midiin = new MidiIn(i); midiin.MessageReceived += midiIn_MessageReceived; midiin.ErrorReceived += midiIn_ErrorReceived; midiin.Start(); } catch { midiin = null; } } } }
static void PrintUsageAndMidiDevices() { Console.WriteLine("This program needs to be run as such:"); Console.WriteLine("MidiScaleEnforcer.exe <midi-in> <midi-out> <scale> <root note>"); Console.WriteLine("Run 'MidScaleEnforcer.exe scales' for a list of available scales."); Console.WriteLine("Midi IN devices:"); for (var i = 0; i < MidiIn.NumberOfDevices; i++) { Console.WriteLine("\t" + MidiIn.DeviceInfo(i).ProductName); } Console.WriteLine("Midi OUT devices:"); for (var i = 0; i < MidiOut.NumberOfDevices; i++) { Console.WriteLine("\t" + MidiOut.DeviceInfo(i).ProductName); } }
//TODO: error handling public void GetDevice(int deviceID, Action <MidiInCapabilities, Exception> callback) { MidiInCapabilities cap = new MidiInCapabilities(); if (MidiIn.NumberOfDevices > 0) { cap = MidiIn.DeviceInfo(deviceID); callback(cap, null); } else { MidiInCapabilities nullCap = new MidiInCapabilities(); callback(nullCap, new MidiDeviceServiceException("No Midi Devices Found")); } }