Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode conectar um dispositivo de entrada MIDI diretamente a um dispositivo de saída MIDI para que, quando o dispositivo de entrada receber uma mensagem MIM_DATA, o sistema envie uma mensagem com os mesmos dados de evento MIDI para o driver de dispositivo de saída. Para conectar um dispositivo de saída MIDI a um dispositivo de entrada MIDI, use a função midiConnect.
Para alcançar o melhor desempenho possível com várias saídas, um aplicativo pode optar por fornecer uma forma especial de driver de saída MIDI, chamado de driver através. Embora o sistema permita que apenas um dispositivo de saída MIDI seja conectado a um dispositivo de entrada MIDI, vários dispositivos de saída MIDI podem ser conectados a um driver de passagem. Uma aplicação em tal sistema poderia conectar o dispositivo de entrada MIDI a este dispositivo MIDI thru e conectar o dispositivo MIDI thru a tantos dispositivos de saída MIDI quanto necessário. Para obter mais informações sobre os drivers "thru", consulte a documentação sobre drivers de dispositivos do Windows.
Usando mensagens para gerenciar a gravação MIDI
As mensagens a seguir podem ser enviadas para uma janela ou procedimento de retorno de chamada de thread para gerenciar a gravação MIDI.
| Valor | Significado |
|---|---|
| MM_MIM_CLOSE | Enviado quando um dispositivo de entrada MIDI é fechado usando a função midiInClose. |
| MM_MIM_DATA | Enviado quando uma mensagem MIDI completa é recebida. (Esta mensagem é usada para todas as mensagens MIDI, exceto mensagens exclusivas do sistema.) |
| MM_MIM_ERROR | Enviado quando uma mensagem MIDI inválida é recebida. (Esta mensagem é usada para todas as mensagens MIDI, exceto mensagens exclusivas do sistema.) |
| MM_MIM_LONGDATA | Enviado quando uma mensagem completa exclusiva do sistema MIDI é recebida ou quando um buffer foi preenchido com dados exclusivos do sistema. |
| MM_MIM_LONGERROR | Enviado quando uma mensagem exclusiva do sistema MIDI inválida é recebida. |
| MM_MIM_MOREDATA | Enviado quando uma aplicação não está a processar as mensagens MIM_DATA com rapidez suficiente para corresponder ao driver do dispositivo de entrada. |
| MM_MIM_OPEN | Enviado quando um dispositivo de entrada MIDI é aberto usando a função midiInOpen. |
Um parâmetro wParam e um parâmetro lParam estão associados a cada uma dessas mensagens. O parâmetro wParam sempre especifica o identificador de um dispositivo MIDI aberto. O parâmetro lParam não é usado para as mensagens MM_MIM_CLOSE e MM_MIM_OPEN.
Para a mensagem MM_MIM_LONGDATA, lpMidiHdr especifica um endereço de uma estrutura de MIDIHDR que identifica o buffer para mensagens exclusivas do sistema. O buffer pode não estar completamente preenchido, porque o tamanho das mensagens exclusivas do sistema geralmente não é conhecido antes de ser gravado e porque os buffers cujo tamanho total pode conter a maior mensagem esperada devem ser alocados. Para determinar a quantidade de dados válidos presentes no buffer, utilize o membro dwBytesRecorded da estrutura MIDIHDR.
Usando uma função de retorno de chamada para gerenciar a gravação MIDI
Pode definir a sua própria função de call back para gerir a gravação para dispositivos de entrada MIDI. A função callback está documentada como MidiInProc.
As mensagens a seguir podem ser enviadas para o parâmetro wMsg da função de retorno de chamada do MidiInProc.
| Valor | Significado |
|---|---|
| MIM_CLOSE | Enviado quando o dispositivo é fechado usando a função midiInClose. |
| MIM_DATA | Enviado quando uma mensagem MIDI completa é recebida (esta mensagem é usada para todas as mensagens MIDI, exceto mensagens exclusivas do sistema). |
| MIM_ERROR | Enviado quando uma mensagem MIDI inválida é recebida (esta mensagem é usada para todas as mensagens MIDI, exceto mensagens exclusivas do sistema). |
| MIM_LONGDATA | Enviado quando uma mensagem completa exclusiva do sistema MIDI é recebida ou quando um buffer foi preenchido com dados exclusivos do sistema. |
| MIM_LONGERROR | Enviado quando uma mensagem exclusiva do sistema MIDI inválida é recebida. |
| MIM_MOREDATA | Enviado quando uma aplicação não está a processar mensagens MIM_DATA suficientemente rápido para acompanhar o driver do dispositivo de entrada. |
| MIM_OPEN | Enviado quando o dispositivo de entrada MIDI é aberto usando a função midiInOpen. |
Essas mensagens são semelhantes às enviadas para funções de procedimento de janela, mas os parâmetros são diferentes. Um identificador do dispositivo MIDI aberto é passado como um parâmetro para a função de retorno de chamada, juntamente com a palavra dupla de dados de instância que foi passada usando midiInOpen.
Para a mensagem MIM_LONGDATA, lpMidiHdr especifica um endereço de uma estrutura MIDIHDR que identifica o buffer para mensagens exclusivas do sistema. O buffer pode não estar completamente preenchido. Para determinar a quantidade de dados válidos presentes no buffer, use o membro dwBytesRecorded da estrutura MIDIHDR.
Depois que o driver de dispositivo terminar com um bloco de dados, você poderá limpar e liberar o bloco de dados.
Tópicos relacionados