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(); } }
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()); }
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(); }
//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(); }
/// <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(); }
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; }
void Start() { MidiSystem.ReadMidi(midiPath, BASE_SCALE, magniSpead); text.text = "Spaceキーで再生"; thisObj_initY = MySystem.Get_ScreenTopLeft(camera).y; }
/// <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; } }