Chargement...
 
Skip to main content

4 - Techniques et manipulations du son


[ABANDONNÉ] Démarrer un enregistrement sur un message MIDI

Bonjour à tous,

N'étant absolument pas maoiste, j'avoue que j'ai beau chercher et eplucher des docs, je ne trouve pas de réponse à cette question... Je voudrais savoir s'il est possible de démarrer un enregistrement sur un message MIDI.

Si oui, pouvez-vous m'aiguiller vers la / les solutions logicielles et matérielles pour ce faire.

Et pour aller un peu plus loin, sur une carte sérieuse (je suis l'heureux possesseur d'une RME MULTIFACE 1 depuis peu), et si cela est possible, le message MIDI doit il être interprété par un logiciel qui lance alors l'enregistrement, où bien la carte est-elle capable de détecter le message MIDI toute seule?

En effet, pour une application qui n'a rien a voir avec de la mao, j'aurai besoin d'un minimum de latence entre un signal électrique externe et le début de mon enregistrement, latence de l'ordre de la dizaine de micro-seconde (oui oui), ou si ce n'est pas le cas, d'un retard fixe, pour être capable de le corriger après enregistrement.

Mon réel besoin étant de dater le début de l'échantillon à la dizaine de micro-seconde, je suis ouvert à toutes propositions, idées ou embryon de réponse.

D'avance merci.
Allemagne
Bon, la bonne nouvelle, c'est que certaines centrales nucléaires utilisent des cartes RME et un système RT linux afin de monitorer certaines installations le plus précisment possible. Je tiens ça d'un des développeurs de pilotes RME sous linux.
Après, concrètement, la multiface peut aller jusqu'à un maximum de 96000 kHz, non ?
Ce qui veut dire qu'on ne peut pas mesurer en dessous de 1/96000. Je pense que jack ne descend pas en dessous de 16 échantillons/périodes, ce qui fait qu'avec 2 périodes/tampons, on peut théoriquement descendre à 0.333 ms théorique.

Je ne pense pas que ça possible de faire mieux quel que soit le système utilisé.
France
pour répondre à la question "peut on piloter un enregistrement en midi" : oui
il existe plusieures methodes variées, ca dépend principalement du logiciel que tu utilise pour enregistrer
si celui-ci ne comporte pas d'interface virtuelle MIDI, des outils comme mididings permettent de convertir un signal MIDI en message OSS, bash ou autre
Salut,
Merci pour vos réponses.
certaines centrales nucléaires utilisent des cartes RME et un système RT linux afin de monitorer certaines installations le plus précisment possible

Je ne suis pas le seul a avoir eu ce genre d'idée alors...

Je pense que jack ne descend pas en dessous de 16 échantillons/périodes, ce qui fait qu'avec 2 périodes/tampons, on peut théoriquement descendre à 0.333 ms théorique

OK, mais connaissant la période d'échantillonnage et la profondeur de ton tampon, tu sais corriger la date du premier échantillon, donc c'est encore bon.

ca dépend principalement du logiciel que tu utilise pour enregistrer

C'est donc faisable par logiciel, c'est mieux que rien... Je vais jeter un oeil à mididings...

Pour préciser un peu, les cas d'utilisations que je rencontre peuvent se résumer à 2 cas seulement, être capable de dater avec précision le début d'un enregistrement pour une mise en corrélation avec d'autres sources de données possédant la même base de temps, ou bien être capable de commencer l'enregistrement sur un signal extérieur. Sachant que ce dernier cas permet de répondre au premier en utilisant un GPS par exemple.
Malheureusement, démarrer un enregistrement de manière logicielle n'est pas une bonne solution car la latence entre la réception de l'ordre d'enregistrer et le début effectif de celui-ci n'est pas constant et plutôt de l'ordre de la milliseconde. C'est pour celà que sur le types de carte que nous utilisons actuellement, il y a une entrée "trigger" permettant de démarrer la conversion analogique -> numérique, la partie logicielle étant en attente de donnée depuis la carte, ainsi on ne perds pas d'échantillon.

Je pensais pouvoir remplacer l'entrée "trigger" par l'entrée MIDI de la carte, mais si l'ordre MIDI doit être interpréter "logiciellement" ce ne sera à priori pas une solution acceptable...
Allemagne
Et c'est dans le cadre de quoi que tu veux mesurer ça ? Parce que là, on est dans la ultra haute précision, plus rapide et on remonte dans le temps...
France
mmm tout ca me dépasse légèrement : il vaudrait mieux aue tu ailles faire un tour sur le chan #jack (freenode) pour vérifier comment sont géré la latence MIDI (jack-midi et alsa) avec les développeurs concernés, mais il me semble que les threads MIDI prennent le dessus sur le reste, donc il est peut être possible d'obtenir le resultat voulu par ce moyen

quoi qu'il advienne, continue a nous faire des retours ici 😉
Et c'est dans le cadre de quoi que tu veux mesurer ça ? Parce que là, on est dans la ultra haute précision, plus rapide et on remonte dans le temps...

C'est pour faire du positionnement acoustique sous-marin, et la vitesse du son dans l'eau c'est environ 1500m/s, donc une erreur de 1ms c'est 1.5m qui enfle dans les calculs...

mmm tout ca me dépasse légèrement : il vaudrait mieux aue tu ailles faire un tour sur le chan #jack (freenode) pour vérifier comment sont géré la latence MIDI (jack-midi et alsa) avec les développeurs concernés, mais il me semble que les threads MIDI prennent le dessus sur le reste, donc il est peut être possible d'obtenir le resultat voulu par ce moyen

Ce qui m'inquiète c'est le passage par le monde logiciel, même avec une solution noyau temps réel sur une bête de course, j'ai peur que les latences ne soient pas assez faibles et trop fluctuante...

Malheureusement je n'ai pas trop le temps de creuser, je le fais sur mon temps libre car je suis intéressé par le domaine de l'audio-numérique, mais au boulot il nous faut des solutions éprouvées et fonctionnelles car les délais sont toujours tendus, et malgré cela on essuie suffisament de problème pour se permettre de trop passez de temps en prospection.

Merci de votre intérêt, et si jamais j'obtiens quelques éléments supplémentaires, je posterai de nouveau.
Allemagne
Bon, je suis allé discuter sur le canal des développeurs de linux audio.
La latence de jack est exacte et non fluctuante, donc on eut la déduire sans soucis.
et ensuite il m'a fourni un lien (en anglais) sur les questions de latence. C'est un document qui explique comment synchroniser au sample près sous linux. J'ai pas tout lu, mais il y a surement de bonnes infos.
C'est par ici
La latence de jack est exacte et non fluctuante, donc on eut la déduire sans soucis.

Je suis complètement d'accord puisque la latence est déterminé par la taille du buffer en échantillons divisée par la fréquence d'échantillonage. Ce n'est pas de celle-ci dont je veux m'affranchir mais bien du délais entre l'émission du message MIDI (ou autre) et le lancement de l'enregistrement, qui me semble difficilement maîtrisable à cause des couches logicielles à traverser... Je vais néanmoins lire avec intérêt la doc que tu m'as dégoter et continuer de jouer avec JACK (ça ne fait que quelques week-end que je joue avec). Merci encore.