J'ai besoin de conseils sur la programmation Windows, MIDI et WDM. J'essaie d'écrire une petite application qui s'asseoir dans le plateau SYS et sera annoncé au système en tant que périphérique MIDI IN / OUT afin que les programmes MIDI puissent l'envoyer et convertiront les messages en un format différent. Je lisais le livre de WDM de Cant et le récurage des informations sur les pilotes de périphérique d'écriture, mais je ne sais pas si je vais dans le bon chemin. Je ne vois pas encore comment: - p>
a) Enregistrez mon pilote comme Capable MIDI (puis-je coller une référence dans le registre et laisser les appels MIDI directs du système d'exploitation à la fonctionnalité dans une DLL?) P>
B) Données MIDI directes à travers le conducteur à mon application, qui va probablement être trop grand pour être un conducteur lui-même. P>
Des conseils sur les endroits où commencer serait très apprécié. Merci, Pete p>
3 Réponses :
Les périphériques sont énumérés (ou simulés) par des pilotes de périphérique, pas des applications. Ce que vous voyez dans le bac système est une icône d'application. Par conséquent, vous devrez avoir un pilote et une application - vous ne pouvez pas avoir un bit de code compilé agissant à la fois. P>
du côté du conducteur, vous voulez probablement jeter un coup d'œil à Le MSDN Docs . Cela répondra à la partie (a) de la question de YOPUR. P>
En supposant que vous souhaitez toujours continuer, (b) est le meilleur don en laissant votre application tirer les données du pilote. C'est bien plus facile que l'inverse - une application peut trivialement trouver un pilote, mais un conducteur a de gros problèmes à trouver une application spécifique (processus) p>
Merci pour la réponse. J'ai lu plus du carnet de chauffeurs et exécutant les échantillons cet après-midi et je commence à voir un chemin à travers cela. Une chose? Avoir mon application effectuer continuellement une lecture pour tirer des informations du pilote de périphérique semble inefficace. N'y a-t-il pas de moyen facile d'enregistrer mon application avec le pilote à donner un coup de pouce via une forme d'IPC pour vous réveiller et tirer les données? Les choses deviennent plus claires ... lentement. Bravo, Pete
Il suffit d'utiliser un tampon cyclique dans votre pilote. Midi est assez réel; S'il n'y a pas d'application le consommer, le conducteur peut remplacer en toute sécurité les données plus anciennes.
Si vous recherchez un moyen de démarrer un peu plus facile de démarrer, il existe un pilote de bouclage MIDI et les personnes qui le rendent également (ou utilisées pour offrir) une version qui permet à votre programme de communiquer directement avec le conducteur. Cela vous donne le comportement que vous recherchez, où un programme apparaît comme un appareil MIDI. Le pilote de bouclage est chez http://nerds.de/fr/loopbe1.html . Je ne vois plus la page de développeur, mais si vous les contactez, vous pourrez peut-être acheter une licence à un pilote que vous pouvez accéder directement sans bouclage. P>
Malheureusement, ceux-ci sont fortement écartés et ne peuvent pas être utilisés pour apprendre ou même s'étendre à vos propres implémentations.
@ Mike'pomax'kamermans bien sûr ... c'est le coût de quelqu'un d'autre qui fait le travail. En tout cas, E-mail Tobias Erichsen. Tobias-erichsen.de/software/loopMidi.html son conducteur a une belle API pour la mise en place de ports nommés ce que vous souhaitez, dans diverses configurations.
Je sais que cela fait, mais étant donné que son chauffeur est le seul, en tant que développeur open source qui est "super pour mon propre travail audio, mais pas assez bon pour la programmation open source que je dois faire" =)
@ Mike'pomax'kamermans assez juste, mais malheureusement, je pense que c'est la réalité dans ce cas. Sauf si bien sûr, vous connaissez une mise en œuvre open source ... et ce serait génial de voir.
Ce serait, c'est comment j'ai eu ici. Je suis Googling pour obtenir des informations sur la mise en place d'un périphérique et d'un pilote Virtual Midi Win10 Virtual Virtual afin que je puisse cesser de s'appuyer sur Loopbe1 et avoir du code pouvant être maintenu de la communauté passée à ce que j'en ai spécifiquement besoin.
@ Mike'pomax'kamermans s'il vous plaît nous mettre à jour lorsque vous progressez! C'est excitant.
Les pilotes Windows MIDI ne doivent pas nécessairement être mis en œuvre dans le noyau, ils peuvent être implémentés entièrement dans les utilisateursPace comme DLL. P>
MSDN a des informations sur les fonctions dont vous avez besoin pour mettre en œuvre - messages de périphérique audio pour MIDI - Malheureusement est quelque peu manquant. P>
Il y avait un exemple de code pour ce type de pilote, dans le cadre du DDK NT4, mais des versions plus récentes du DDK / WDK n'incluent malheureusement pas plus. p>
Un peu de documentation et de code exemplaire plus ancien) peut encore être trouvé après une recherche sur: p>