Tomasz M.

Tomasz M. never go full
retard!

Temat: Programowanie MIDI

Cześć,

Szukam jakichś publikacji / stron / czegokolwiek dotyczącego pisania driverów dla różnych kontrolerów MIDI. Jestem świeżakiem w tym temacie z małym pomysłem, ale zupełnie nie wiem jak się do tematu zabrać - z góry dzięki za pomoc.

BTW. Interesuje mnie komunikacja po USB ;)Tomasz M. edytował(a) ten post dnia 16.01.13 o godzinie 10:51
Marek Dąbek

Marek Dąbek Software Engineer,
Intel Technology
Poland

Temat: Programowanie MIDI

Jaki OS? User space czy kernel driver?

Generalnie to programowanie urządzeń na USB polega na:

1. Wybraniu konfiguracji urządzenia - pozwala to otworzyć endpointy (aka pipes) do urządzenia.
2. Wysyłaniu/odbieraniu transferów na endpointach.
3. Obsługiwanie błędów podczas transferów.
4. Power states.

W przypadku urządzeń MIDI, będziesz miał głównie ruch izochroniczny, który jest dość niewdzięczny ze względu na to, że musisz zapewnić rate przesyłania danych. Łatwiejsza jest za to maszyna stanów takiego endpointa, gdyż ten typ ruchu nie przewiduje potwierdzeń.Marek Dąbek edytował(a) ten post dnia 16.01.13 o godzinie 11:35
Tomasz M.

Tomasz M. never go full
retard!

Temat: Programowanie MIDI

Marek Dąbek:
Jaki OS? User space czy kernel driver?

Windows, taki driver chyba styknie jak będzie w user space - przynajmnie tak się doczytałem.
Generalnie to programowanie urządzeń na USB polega na:

1. Wybraniu konfiguracji urządzenia - pozwala to otworzyć endpointy (aka pipes) do urządzenia.
2. Wysyłaniu/odbieraniu transferów na endpointach.
3. Obsługiwanie błędów podczas transferów.
4. Power states.

Checked.
W przypadku urządzeń MIDI, będziesz miał głównie ruch izochroniczny, który jest dość niewdzięczny ze względu na to, że musisz zapewnić rate przesyłania danych. Łatwiejsza jest za to maszyna stanów takiego endpointa, gdyż ten typ ruchu nie przewiduje potwierdzeń.

Mhm, tzn. generalnie ideę ogarniam, tylko najłatwiej mi się uczy na przykładach. W tym przypadku nie mam doświadczenia i chciałbym zacząć od przeklepania czegoś isntiejącego by poznać zasadę (z grubsza) działania.

W każdym razie dzięki za rady.
Marek Dąbek

Marek Dąbek Software Engineer,
Intel Technology
Poland

Temat: Programowanie MIDI

Piszesz jakiś miniport czy chcesz zrobić całkowicie standalone driver?Marek Dąbek edytował(a) ten post dnia 16.01.13 o godzinie 16:09
Tomasz M.

Tomasz M. never go full
retard!

Temat: Programowanie MIDI

Marek Dąbek:
Piszesz jakiś miniport czy chcesz zrobić całkowicie standalone driver?

Całkowicie standalone, bo i projekt jest customowy - kontroler midi (trochę gałek, padów itd.)
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Programowanie MIDI

Nie odważyłbym się robić kontrolera MIDI na Win :) W MIDI bardzo ważny jest timing (w tym jitter i latencja), a Win jest na tyle mało (słabo) deterministycznym systemem, że zrobienie tego dobrze wydaje się być mocno trudne. Ale to tylko moje prywatne zdanie.
Tomasz M.

Tomasz M. never go full
retard!

Temat: Programowanie MIDI

Piotr Głudkowski:
Nie odważyłbym się robić kontrolera MIDI na Win :) W MIDI bardzo ważny jest timing (w tym jitter i latencja), a Win jest na tyle mało (słabo) deterministycznym systemem, że zrobienie tego dobrze wydaje się być mocno trudne. Ale to tylko moje prywatne zdanie.

Dzięki za otuchę :D

Ale serio - jeśli polegnę to polegnę, jakąś wiedzę z tego wyniosę. Póki co znalazłem jakiegoś ebooka na ten temat i się wczytuję.
Piotr Głudkowski

Piotr Głudkowski Rzucam się na
wszystko to, co jest
ciekawe i wymaga
rusze...

Temat: Programowanie MIDI

Trzymam kciuki.
Niby Steinberg czy Yamaha zrobiły podobne sterowniki dla Win, czyli się da :)

konto usunięte

Temat: Programowanie MIDI

Piotr Głudkowski:
Nie odważyłbym się robić kontrolera MIDI na Win :) W MIDI bardzo ważny jest timing (w tym jitter i latencja), a Win jest na tyle mało (słabo) deterministycznym systemem, że zrobienie tego dobrze wydaje się być mocno trudne. Ale to tylko moje prywatne zdanie.

Eee tam. Da się. Linux też nie jest systemem czasu rzeczywistego. Obecne procesory są na tyle szybkie, że problemu nie ma. Dodatkowo masz kilka rdzeni i priorytetyzację. Jeden wątek na najwyższym priorytecie jest w stanie położyć cały system na kilka minut, więc można uznać, że Windows jest prawie systemem czasu rzeczywistego.
Karol Z.

Karol Z. Programista,
elektronik

Temat: Programowanie MIDI

Adam M.:
Piotr Głudkowski:
Nie odważyłbym się robić kontrolera MIDI na Win :) W MIDI bardzo ważny jest timing (w tym jitter i latencja), a Win jest na tyle mało (słabo) deterministycznym systemem, że zrobienie tego dobrze wydaje się być mocno trudne. Ale to tylko moje prywatne zdanie.

Eee tam. Da się. Linux też nie jest systemem czasu rzeczywistego. Obecne procesory są na tyle szybkie, że problemu nie ma. Dodatkowo masz kilka rdzeni i priorytetyzację. Jeden wątek na najwyższym priorytecie jest w stanie położyć cały system na kilka minut, więc można uznać, że Windows jest prawie systemem czasu rzeczywistego.

Żartowniś... ;)

Następna dyskusja:

programowanie cross-platfor...




Wyślij zaproszenie do