adding packages

This commit is contained in:
2026-01-15 14:38:46 -08:00
parent ef86e3ab6a
commit 6869cf47e5
5253 changed files with 726695 additions and 34 deletions
@@ -0,0 +1,61 @@
import Cocoa
import FlutterMacOS
import AVFoundation
public class FlutterMidiPlugin: NSObject, FlutterPlugin {
var message = "Please Send Message"
var _arguments = [String: Any]()
var au: AudioUnitMIDISynth!
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "flutter_midi", binaryMessenger: registrar.messenger)
let instance = FlutterMidiPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
switch call.method {
case "prepare_midi":
let map = call.arguments as? Dictionary<String, String>
let data = map?["path"]
let url = URL(fileURLWithPath: data!)
au = AudioUnitMIDISynth(soundfont: url)
print("Valid URL: \(url)")
let message = "Prepared Sound Font"
result(message)
case "change_sound":
let map = call.arguments as? Dictionary<String, String>
let data = map?["path"]
let url = URL(fileURLWithPath: data!)
au.prepare(soundfont: url)
print("Valid URL: \(url)")
let message = "Prepared Sound Font"
result(message)
case "unmute":
do {
// try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
print(error)
}
let message = "unmuted Device"
result(message)
case "play_midi_note":
_arguments = call.arguments as! [String : Any];
let midi = _arguments["note"] as? Int
let velocity = _arguments["velocity"] as? Int
au.playPitch(midi: midi ?? 60, velocity: velocity ?? 64)
let message = "Playing: \(String(describing: midi!))"
result(message)
case "stop_midi_note":
_arguments = call.arguments as! [String : Any];
let midi = _arguments["note"] as? Int
let velocity = _arguments["velocity"] as? Int
au.stopPitch(midi: midi ?? 60, velocity: velocity ?? 64)
let message = "Stopped: \(String(describing: midi!))"
result(message)
default:
result(FlutterMethodNotImplemented)
break
}
}
}