All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] MIDI over Bluetooth Low Energy
@ 2015-10-01  8:41 ` Felipe Tonello
  0 siblings, 0 replies; 32+ messages in thread
From: Felipe Tonello @ 2015-10-01  8:41 UTC (permalink / raw)
  To: alsa-devel-K7yf7f+aM1XWsZ/bQMPhNw,
	linux-bluetooth-u79uwXL29TY76Z2rM5mHXA

Hi guys,

I am planning to start the support of MIDI BLE profile[1]. This
profile is not officially supported yet, but it will most likely be
very similar, so development efforts are still valid.

I suggest two main goals:
 * To be transparent to applications, i.e., use rawmidi and sequencer
ALSA interfaces to interact.
 * To support peripheral and central BLE roles.

My question is: what is the best way possible of doing it?

My initial though is to write a GATT BlueZ profile plugin that will
load snd-virtmidi module with id and midi_devs parameters, then read
and write seq events from/to it. I am not sure if this is really
possible.

Another way of implementing is as a rawmidi and a seq plugin using the
BlueZ GATT D-Bus interface. IMO this is not ideal because it requires
a lot more work (rawmidi and seq plugins, maybe even a library to
avoid code duplication) and has an overhead of using dbus.

It is also possible to write a kernel module to handle ALSA
card/device setup and reads and writes from the bluez plugin (perhaps
this simplifies things because it has less dependencies).

They all have the problem of context switching between bluez plugin
and alsa midi driver. I would prefer to use a shared ring buffer
between ALSA e BlueZ.

Any ideas and comments?

[1] https://developer.apple.com/bluetooth/Apple-Bluetooth-Low-Energy-MIDI-Specification.pdf

PS: I am at #bluez and #alsa as ftonello.

Felipe Tonello

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2015-10-03 17:07 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-01  8:41 [RFC] MIDI over Bluetooth Low Energy Felipe Tonello
2015-10-01  8:41 ` Felipe Tonello
     [not found] ` <CAGrhNMyY7rJVZ35p5P5FnGvJPYZuKndau1vNY5k+GCHHYzZtzQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01  9:34   ` Luiz Augusto von Dentz
2015-10-01  9:34     ` Luiz Augusto von Dentz
     [not found]     ` <CABBYNZ+iR-LXvMDkGiOkh8+X_=PWjrbGs3kveYFMo1UdhHVaNA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 10:17       ` Felipe Tonello
2015-10-01 10:17         ` Felipe Tonello
     [not found]         ` <CAGrhNMwpx9Q4Usb75jWofWpLpUxJOd6FsckRT=O4Uj8KBtqayA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 11:05           ` Luiz Augusto von Dentz
2015-10-01 11:05             ` Luiz Augusto von Dentz
     [not found]             ` <CABBYNZ+D5KbW7b2_F0fw9C=YvMNyVdaN=sLuNj5v0O-Zs6XSVg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 11:26               ` Felipe Tonello
2015-10-01 11:26                 ` Felipe Tonello
2015-10-01 11:16           ` Marcel Holtmann
2015-10-01 11:16             ` Marcel Holtmann
     [not found]             ` <BECBD8C9-C49D-410C-BE11-CA1A52839EED-kz+m5ild9QBg9hUCZPvPmw@public.gmane.org>
2015-10-01 11:29               ` Felipe Tonello
2015-10-01 11:29                 ` Felipe Tonello
2015-10-01 11:27 ` Clemens Ladisch
2015-10-01 11:27   ` [alsa-devel] " Clemens Ladisch
     [not found]   ` <560D1893.6040509-P6GI/4k7KOmELgA04lAiVw@public.gmane.org>
2015-10-01 11:35     ` Felipe Tonello
2015-10-01 11:35       ` Felipe Tonello
     [not found]       ` <CAGrhNMxmtt-5kZO-6me2sPQYeQ5wcpvonKqzbx7CEB5=RJ724Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 11:46         ` Takashi Iwai
2015-10-01 11:46           ` Takashi Iwai
     [not found]           ` <s5hfv1uvmjq.wl-tiwai-l3A5Bk7waGM@public.gmane.org>
2015-10-01 12:04             ` Felipe Tonello
2015-10-01 12:04               ` Felipe Tonello
     [not found]               ` <CAGrhNMxUsUXBmYFLo4Bq=Mx1qdUZC1Zv7c4pXb+F8D8adYTvcg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 14:15                 ` Luiz Augusto von Dentz
2015-10-01 14:15                   ` Luiz Augusto von Dentz
     [not found]                   ` <CABBYNZ+g9+QBEOxO8ZGnQbBva+JxX=WkQAvBst=YMM7zHdz1hw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-01 14:46                     ` Felipe Tonello
2015-10-01 14:46                       ` Felipe Tonello
     [not found]                       ` <CAGrhNMw1wZaTXFAp-56ujr_YH4wxHtnCWRZdThH39y-WLY26iA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-10-03 17:07                         ` Marcel Holtmann
2015-10-03 17:07                           ` Marcel Holtmann
2015-10-01 11:53         ` Clemens Ladisch
2015-10-01 11:53           ` Clemens Ladisch
2015-10-01 11:59           ` Felipe Tonello
2015-10-01 11:59             ` [alsa-devel] " Felipe Tonello

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.