public void SubscribeUnsubscribePort() { using (var seq = new AlsaSequencer(AlsaIOType.Input, AlsaIOMode.NonBlocking)) { var subs = new AlsaPortSubscription(); subs.Sender.Client = AlsaSequencer.ClientSystem; subs.Sender.Port = AlsaPortInfo.PortSystemAnnouncement; subs.Destination.Client = (byte)seq.CurrentClientId; subs.Destination.Port = (byte)seq.CreateSimplePort("test in port", AlsaPortCapabilities.SubsRead | AlsaPortCapabilities.Read, AlsaPortType.MidiGeneric | AlsaPortType.Application); try { seq.SubscribePort(subs); foreach (var ppi in subs.GetType().GetProperties()) { TextWriter.Null.WriteLine($" [{ppi}]\t{ppi.GetValue (subs)}"); } seq.UnsubscribePort(subs); } finally { seq.DeleteSimplePort(subs.Destination.Port); } } }