Example #1
0
        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;
        }
Example #2
0
        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;
            }
        }
Example #3
0
        // 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));
        }
Example #4
0
        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();
        }
Example #5
0
    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));
     }
 }
Example #7
0
 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);
 }
Example #8
0
 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));
     }
 }
Example #9
0
 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);
 }
Example #10
0
 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);
 }
Example #11
0
        private List <MidiInCapabilities> GetMidiInCapabilities()
        {
            var devices = new List <MidiInCapabilities>();

            for (int i = 0; i < _numberOfDevices; i++)
            {
                devices.Add(MidiIn.DeviceInfo(i));
            }
            return(devices);
        }
Example #12
0
        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);
        }
Example #13
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);
            }
        }
Example #14
0
        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();
        }
Example #15
0
 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);
 }
Example #16
0
        /// <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);
        }
Example #17
0
 public MidiIn CreateMidiIn()
 {
     for (int i = 0; i < MidiIn.NumberOfDevices; i++)
     {
         if (MidiIn.DeviceInfo(i).ProductName == MidiInputName)
         {
             return(new MidiIn(i));
         }
     }
     return(null);
 }
Example #18
0
        //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);
        }
Example #19
0
        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);
        }
Example #20
0
        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);
        }
Example #21
0
 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();
        }
Example #23
0
 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);
 }
Example #24
0
        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);
        }
Example #25
0
 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;
         }
     }
 }
Example #26
0
 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.");
     }
 }
Example #27
0
 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;
         }
     }
 }
Example #28
0
        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;
                    }
                }
            }
        }
Example #29
0
 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);
     }
 }
Example #30
0
        //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"));
            }
        }