Myriad Blog 1.3.0 Saturday, Oct 25th, 2014 at 03:00am 

Friday, Jun 17th, 2011 at 05:08pm
Acam III, version Ubuntu, étape 43

 
Côté synchronisation des envois de données MIDI, les choses se présentent mal. Contrairement à MacOS ou à Windows, Linux ne semble pas prévu en standard pour effectuer des tâches temps réel, nécessitant une synchronisation précise. Il semblerait que pour cela, il faille travailler à un niveau beaucoup plus bas, ce qui compliquerait beaucoup trop l'application et son installation.
 
Donc, nous avons essayé de faire avec ce que nous avions, notamment les "timers" d'Alsa. Grâce à eux, il est possible de définir qu'une partie de notre programme (celle qui envoie les données MIDI) soit appelée régulièrement, toutes les millisecondes, par exemple. Cela a d'abord plutôt bien fonctionné, et nous avons pu tester la régularité des appels et la fiabilité de ce système, puis avons tout mis au propre, croyant que notre problème était résolu.
 
Malheureusement, il semble que, dans la pratique, cette fonctionnalité ne soit pas gérable. Elle perturbe gravement tous les timings du reste du programme, en rendant inutilisables  les fonctions système telles que "sleep" ou "usleep", et en induisant des ralentissements sensibles dans la gestion des événements de l'interface graphique.
 
Croyant que nous avions commis une erreur dans l'écriture du  code, nous avons compilé l'exemple "timer.c" livré avec ALSA et l'avons essayé sur une vraie machine Linux. Même résultat. C'est donc bien un problème inhérent aux timers ALSA, et nous en sommes revenus au point de départ, avec de moins en moins d'espoir de pouvoir faire fonctionner la sortie MIDI correctement dans la version Linux.
by Olivier Guillion
Comments

Comment from Jean-Armand Monday, Jun 20th, 2011 at 11:14pm
About the comment above
The comment above is from me. Sorry, I did not intend to leave an anonymous comment.

Comment from Monday, Jun 20th, 2011 at 11:12pm
(No subject)
But are there any "average users" that use Linux on their personal computer ?  

Comment from Olivier Guillion Monday, Jun 20th, 2011 at 10:03am
Re: Linux timers
Quote:
When it comes to timing issues, it may be that the linux kernel has to be recompiled. This is also the case with the native linux midi program Rosegarden.
 
Maybe this may help: the section 'What does "System timer resolution is too low" mean?' in the FAQ of http://www.rosegardenmusic.com/

 
You are probably right, we read here and there that accurate timer callbacks could be achived using a kernel recompiled for real-time. But, even if Rosegarden does it, we cannot recommend to recompile the kernel to use our products properly. Our products are aiming at  average users, not Linux experts (we aren't experts neither), and we wouldn't be capable of providing tech support about kernel compilation issues.

Comment from Olivier Guillion Monday, Jun 20th, 2011 at 09:54am
Re: Sortie MIDI
Quote:
Est ce que  Timidity ne pourrait pas resoudre votre problème, il me semble que certains logiciels l'utilisent pour leur sortie midi!  

 
Oui, Timidity est un synthétiseur logiciel, et peut être utilisé en remplacement d'un périphérique MIDI matériel. Mais les problèmes de timing restent les mêmes...

Comment from rbek Saturday, Jun 18th, 2011 at 11:03am
Linux timers
When it comes to timing issues, it may be that the linux kernel has to be recompiled. This is also the case with the native linux midi program Rosegarden.
 
Maybe this may help: the section 'What does "System timer resolution is too low" mean?' in the FAQ of http://www.rosegardenmusic.com/

Comment from Augereau Friday, Jun 17th, 2011 at 06:47pm
sortie midi
Est ce que  Timidity ne pourrait pas resoudre votre problème, il me semble que certains logiciels l'utilisent pour leur sortie midi!  
Félicitation pour l'enorme travail accompli!


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013