コード例 #1
0
        public static void Main(string [] args)
        {
            string port    = null;
            string outfile = null;

            foreach (var arg in args)
            {
                if (arg.StartsWith("--port:"))
                {
                    port = arg.Substring("--port:".Length);
                }
                else
                {
                    outfile = arg;
                }
            }
            Stream outStream = outfile != null?File.OpenWrite(outfile) : null;

            MidiSystem.Initialize();

            var access = MidiAccessManager.Default;

            foreach (var i in access.Inputs)
            {
                Console.WriteLine(i.Id + " : " + i.Name);
            }
            if (!access.Inputs.Any())
            {
                Console.WriteLine("No input device found.");
                return;
            }
            var iport = access.Inputs.FirstOrDefault(i => i.Id == port) ?? access.Inputs.Last();
            var input = access.OpenInputAsync(iport.Id).Result;

            Console.WriteLine("Using " + iport.Id);
            input.MessageReceived += (obj, e) => {
                Console.WriteLine($"{e.Timestamp} {e.Start} {e.Length} {e.Data [0].ToString ("X")}");
                if (outStream != null)
                {
                    outStream.Write(e.Data, e.Start, e.Length);
                }
            };
            Console.WriteLine("Type [CR] to quit...");
            Console.ReadLine();
            input.CloseAsync();

            if (outStream != null)
            {
                outStream.Close();
            }
        }
コード例 #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource   = Resource.Layout.Toolbar;

            base.OnCreate(savedInstanceState);

            if (PackageManager.HasSystemFeature(PackageManager.FeatureMidi))
            {
                MidiSystem.Initialize(BaseContext);
            }
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            LoadApplication(new App());
        }
コード例 #3
0
        static void Main(string[] args)
        {
            int    baseScale  = 10;
            float  magniSpeed = 1f; //速度倍率
            string filePath   = "testDo.mid";

            //midi読み込み
            MidiSystem.ReadMidi(filePath, baseScale, magniSpeed);

            //結果を参照
            Console.WriteLine("参照_最初のレーン番号:" + MidiSystem.a_noteDataList[0].leanNum);
            Console.WriteLine("参照_最初の長さ:" + MidiSystem.a_noteDataList[0].Length);
            Console.WriteLine("参照_最初のノーツの速さ:" + MidiSystem.a_tempDataList[0].speed);

            Console.ReadKey();
        }
コード例 #4
0
        //cons
        public PluginSettingsWnd(VSTPanel _panel)
        {
            InitializeComponent();

            panel       = _panel;
            plugin      = panel.plugin;
            waveDevices = panel.host.waveDevices;
            midiDevices = panel.midiDevices;

            cbxAudioIn.DataSource  = waveDevices.getInDevNameList();
            cbxAudioOut.DataSource = waveDevices.getOutDevNameList();

            cbxMidiIn.DataSource    = midiDevices.getInDevNameList();
            cbxMidiIn.SelectedIndex = cbxMidiIn.FindString((panel.midiInDevice != null) ? panel.midiInDevice.devName : "no input");

            cbxMidiOut.DataSource = midiDevices.getOutDevNameList();
        }
コード例 #5
0
        /// <summary>
        /// Invoked when the application is launched normally by the end user.  Other entry points
        /// will be used such as when the application is launched to open a specific file.
        /// </summary>
        /// <param name="e">Details about the launch request and process.</param>
        protected override void OnLaunched(LaunchActivatedEventArgs e)
        {
#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached)
            {
                this.DebugSettings.EnableFrameRateCounter = true;
            }
#endif

            Frame rootFrame = Window.Current.Content as Frame;

            // Do not repeat app initialization when the Window already has content,
            // just ensure that the window is active
            if (rootFrame == null)
            {
                // Create a Frame to act as the navigation context and navigate to the first page
                rootFrame = new Frame();

                rootFrame.NavigationFailed += OnNavigationFailed;

                Xamarin.Forms.Forms.Init(e);
                //Window.Current.Activate();

                MidiSystem.Initialize(Window.Current.Dispatcher);

                if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
                {
                    //TODO: Load state from previously suspended application
                }

                // Place the frame in the current Window
                Window.Current.Content = rootFrame;
            }

            if (rootFrame.Content == null)
            {
                // When the navigation stack isn't restored navigate to the first page,
                // configuring the new page by passing required information as a navigation
                // parameter
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }
            // Ensure the current window is active
            Window.Current.Activate();
        }
コード例 #6
0
ファイル: ControlPanel.cs プロジェクト: kohoutech/Audimat
        int vstnum;         //for debugging

        public ControlPanel(AudimatWindow _auditwin)
        {
            auditwin = _auditwin;

            //init backend
            vashti      = new Vashti();
            host        = new VSTHost(vashti);
            midiDevices = new MidiSystem();

            InitializeComponent();

            //child windows
            patchNameWnd = null;

            //model
            currentRig     = null;
            curRigFilename = null;
            curRigPath     = Application.StartupPath;
            curPluginPath  = Application.StartupPath;

            vstnum = 0;

            isRunning = false;
        }
コード例 #7
0
ファイル: MidiManager.cs プロジェクト: soda-game/NotesGame
 void Start()
 {
     MidiSystem.ReadMidi(midiPath, BASE_SCALE, magniSpead);
     text.text     = "Spaceキーで再生";
     thisObj_initY = MySystem.Get_ScreenTopLeft(camera).y;
 }
コード例 #8
0
        /// <summary>
        /// MIDIデバイスの選択肢の欄を更新します
        /// </summary>
        private void updateMidiDevice()
        {
            int sel_midi = comboMidiInPortNumber.SelectedIndex;
            int sel_mtc  = comboMtcMidiInPortNumber.SelectedIndex;

            comboMidiInPortNumber.Items.Clear();
            comboMtcMidiInPortNumber.Items.Clear();
#if ENABLE_MIDI
            List <MidiDevice.Info> midiins = new List <MidiDevice.Info>();
            foreach (MidiDevice.Info info in MidiSystem.getMidiDeviceInfo())
            {
#if DEBUG
                if (info != null)
                {
                    sout.println("Preference#updateMidiDevice; info.getName()=" + info.getName());
                }
#endif
                MidiDevice device = null;
                try {
                    device = MidiSystem.getMidiDevice(info);
                } catch (Exception ex) {
                    device = null;
                }
                if (device == null)
                {
                    continue;
                }
#if DEBUG
                sout.println("Preference#updateMidiDevice; (device is Receiver)=" + (device is Receiver));
#endif
                // MIDI-OUTの最大接続数.-1は制限なしを表す
                int max = device.getMaxTransmitters();
                if (max > 0 || max == -1)
                {
                    midiins.Add(info);
                }
            }

            foreach (MidiDevice.Info info in midiins)
            {
                comboMidiInPortNumber.Items.Add(info);
                comboMtcMidiInPortNumber.Items.Add(info);
            }
            if (midiins.Count <= 0)
            {
                comboMtcMidiInPortNumber.Enabled = false;
                comboMidiInPortNumber.Enabled    = false;
            }
            else
            {
#if ENABLE_MTC
                comboMtcMidiInPortNumber.setEnabled(true);
#else // ENABLE_MTC
                comboMtcMidiInPortNumber.Enabled = false;
#endif // ENABLE_MTC
                comboMidiInPortNumber.Enabled = true;
            }
#else // ENABLE_MIDI
            comboMtcMidiInPortNumber.setEnabled(false);
            comboMidiInPortNumber.setEnabled(false);
#endif // ENABLE_MIDI

            // 可能なら選択状態を復帰
            if (sel_midi >= 0)
            {
                if (comboMidiInPortNumber.Items.Count <= sel_midi)
                {
                    sel_midi = comboMidiInPortNumber.Items.Count - 1;
                }
                comboMidiInPortNumber.SelectedIndex = sel_midi;
            }

            if (sel_mtc >= 0)
            {
                if (comboMtcMidiInPortNumber.Items.Count <= sel_mtc)
                {
                    sel_mtc = comboMtcMidiInPortNumber.Items.Count - 1;
                }
                comboMtcMidiInPortNumber.SelectedIndex = sel_mtc;
            }
        }