void SetupMidiAccess(Context context) { #if TEST_MIDI_API_BASED_ACCESS acc = new Commons.Music.Midi.AndroidMidiAccess.MidiAccess (this); #else var acc = new FluidsynthMidiAccess (); this.acc = acc; acc.HandleNativeError = (messageManaged, messageNative) => { Android.Util.Log.Error ("FluidsynthPlayground", messageManaged + " : " + messageNative); return true; }; acc.ConfigureSettings += settings => { settings [ConfigurationKeys.AudioSampleFormat].StringValue = "16bits"; // float or 16bits var manager = context.GetSystemService (Context.AudioService).JavaCast<AudioManager> (); // Note that SynthSampleRate is NOT audio sample rate but *synthesizing* sample rate. // So it is kind of wrong assumption that AudioManager.PropertyOutputSampleRate would give the best outcome... //var sr = double.Parse (manager.GetProperty (AudioManager.PropertyOutputSampleRate)); //settings [ConfigurationKeys.SynthSampleRate].DoubleValue = sr; settings [ConfigurationKeys.SynthSampleRate].DoubleValue = 11025; var fpb = double.Parse (manager.GetProperty (AudioManager.PropertyOutputFramesPerBuffer)); settings [ConfigurationKeys.AudioPeriodSize].IntValue = (int) fpb; //settings [ConfigurationKeys.SynthThreadSafeApi].IntValue = 0; }; acc.SoundFontLoaderFactories.Add (syn => new SoundFontLoader (syn, new AndroidAssetStreamLoader (context.Assets))); SynthAndroidExtensions.GetSoundFonts (acc.SoundFonts, context, predefined_temp_path); #endif }
public MainWindow() { InitializeComponent(); access = MidiAccessManager.Default; output = access.OpenOutputAsync(access.Outputs.Last().Id).Result; this.KeyDown += new KeyEventHandler(OnButtonKeyDown); }
public TestPage() { InitializeComponent(); _access = MidiAccessManager.Default; _messages = new ObservableCollection <string>(); PopulateMessageTypes(); }
void SetupMidiAccess(Context context) { #if TEST_MIDI_API_BASED_ACCESS acc = new Commons.Music.Midi.AndroidMidiAccess.MidiAccess(this); #else var acc = new FluidsynthMidiAccess(); this.acc = acc; acc.ConfigureSettings += settings => { settings [ConfigurationKeys.AudioSampleFormat].StringValue = "16bits"; // float or 16bits var manager = context.GetSystemService(Context.AudioService).JavaCast <AudioManager> (); // Note that SynthSampleRate is NOT audio sample rate but *synthesizing* sample rate. // So it is kind of wrong assumption that AudioManager.PropertyOutputSampleRate would give the best outcome... //var sr = double.Parse (manager.GetProperty (AudioManager.PropertyOutputSampleRate)); //settings [ConfigurationKeys.SynthSampleRate].DoubleValue = sr; settings [ConfigurationKeys.SynthSampleRate].DoubleValue = 11025; var fpb = double.Parse(manager.GetProperty(AudioManager.PropertyOutputFramesPerBuffer)); settings [ConfigurationKeys.AudioPeriodSize].IntValue = (int)fpb; settings [ConfigurationKeys.SynthThreadSafeApi].IntValue = 0; settings [ConfigurationKeys.AudioDriver].StringValue = "oboe"; acc.SoundFontLoaderFactories.Add(syn => new AndroidNativeAssetSoundFontLoader(settings, context.Assets)); }; SynthAndroidExtensions.GetSoundFonts(acc.SoundFonts, context, predefined_temp_path); #endif }
public LaunchPadManager(IMidiAccess access, IMidiInput input, IMidiOutput output) { if (input == null || output == null) { throw new ArgumentException("Please choose the connected Launchpad S before going further"); } this.access = access; this.input = input; this.output = output; StartListener(); }
public MainWindow() { InitializeComponent(); access = MidiAccessManager.Default; LaunchPadInputs.ItemsSource = access.Inputs.ToList().Select((dev) => { return(dev); }); LaunchPadOutputs.ItemsSource = access.Outputs.ToList().Select((dev) => { return(dev); }); LaunchPadInputs.DisplayMemberPath = "Name"; LaunchPadOutputs.DisplayMemberPath = "Name"; LaunchPadInputs.SelectedValuePath = "Id"; LaunchPadOutputs.SelectedValuePath = "Id"; LaunchPadInputs.SelectedIndex = 0; LaunchPadOutputs.SelectedIndex = 1; }
void SetupMidiDevices() { access = MidiAccessManager.Default; Application.ApplicationExit += delegate { if (output != null) { output.Dispose(); } }; if (!access.Outputs.Any()) { MessageBox.Show("No MIDI output device was found."); Application.Exit(); return; } SwitchToDevice(access.Outputs.First().Id, false); }
public MidiManager(IMonitor monitor) { this.Monitor = monitor; this.Monitor.Log("Initializing MIDI Framework", LogLevel.Info); midi = MidiAccessManager.Default; var numdevices = midi.Inputs.Count(); if (numdevices <= 0) { this.Monitor.Log("No Devices Found. Please connect MIDI Device to use this mod.", LogLevel.Info); this.Monitor.Log("Any Mods requiring this framework will be disabled.", LogLevel.Info); return; } inDevice = new List <IMidiInput>(); this.Monitor.Log($"Midi Framework Initialized. Found {numdevices} device{ ((numdevices == 0 || numdevices > 1) ? ("s") : ("")) }", LogLevel.Info); for (int i = 0; i < numdevices; i++) { inDevice.Add(midi.OpenInputAsync(midi.Inputs.ElementAt(i).Id).Result); this.Monitor.Log($"Device {i}: {inDevice[i].Details.Name}", LogLevel.Debug); } }
public static MidiPlayer GetMidiPlayer(IMidiPlayerTimeManager timeManager = null, IMidiAccess midiAccess = null, string resourceId = null) { var access = midiAccess ?? MidiAccessManager.Empty; var music = resourceId != null?GetMidiMusic(resourceId) : GetMidiMusic(); var tm = timeManager ?? new VirtualMidiPlayerTimeManager(); return(new MidiPlayer(music, access, tm)); }
public static MidiPlayer GetMidiPlayer(IMidiPlayerTimeManager timeManager, MidiMusic midiMusic, IMidiAccess midiAccess = null) { var access = midiAccess ?? MidiAccessManager.Empty; var music = midiMusic ?? GetMidiMusic(); var tm = timeManager ?? new VirtualMidiPlayerTimeManager(); return(new MidiPlayer(music, access, tm)); }
public MidiPlayer(MidiMusic music, IMidiAccess access, IMidiPlayerTimeManager timeManager) : this(music, access.OpenOutputAsync(access.Outputs.First().Id).Result, timeManager) { should_dispose_output = true; }
public MidiPlayer(MidiMusic music, IMidiAccess access) : this(music, access, new SimpleAdjustingMidiPlayerTimeManager()) { }
public RawMidiProcessor(IMidiAccess access) : this(access.OpenOutputAsync(access.Outputs.First().Id).Result) { }
public MidiPlayer(SmfMusic music, IMidiAccess access) : this(music, access, new SimpleMidiTimeManager()) { }
public MidiPlayer(SmfMusic music, IMidiAccess access, IMidiTimeManager timeManager) : this(music, access.OpenOutputAsync (access.Outputs.First ().Id).Result, timeManager) { should_dispose_output = true; }
public MidiPlayer(SmfMusic music, IMidiAccess access) : this(music, access, new SimpleMidiTimeManager ()) { }