J'ai construit une version d'application autonome d'un projet qui jusqu'à présent était juste un VST/audiounit. Je fournis un support audio via rtaudio.entrée midi en temps réel et synchronisation avec l'audio
Je voudrais ajouter le support MIDI en utilisant rtmidi mais je ne vois pas comment synchroniser les parties audio et MIDI. En mode VST/audiounit, je suis habitué aux événements MIDI qui ont un horodatage indiquant leur décalage dans les échantillons depuis le début du bloc audio. Rtmidi fournit un temps delta en secondes depuis l'événement précédent, mais je ne sais pas comment je devrais saisir ces événements et comment je peux calculer leur temps par rapport à l'échantillon actuel dans le fil audio.
Comment les hôtes du plugin font-ils cela?
Je peux comprendre comment les événements peuvent être précis lors de la lecture, mais on ne sait pas exactement comment ils peuvent être précis lors de l'utilisation d'une entrée en temps réel.
rtaudio me donne une fonction de rappel. Je vais courir à une taille de bloc faible (32 échantillons). Je suppose que je passerai un pointeur vers une instance rtmidi en tant que partie userdata du rappel, puis j'appellerai midiin-> getMessage (& message); à l'intérieur du rappel audio, mais je ne suis pas sûr si cela est sensible au fil.
Un grand merci pour tous les conseils que vous pouvez me donner
Le MIDI ne sera jamais précis, ni nécessaire. Les données MIDI sont relativement lentes. – Brad