Drumstick - ALSA的C++封装库


GPL
Linux
C/C++

软件简介

Drumstick 是一个ALSA的音序器 (MIDI 接口)的C++封装库

示例代码:

#include <QApplication>  
#include <drumstick.h>

int main(int argc, char **argv) {  
    QApplication app(argc, argv, false);

    // create a client object on the heap  
    drumstick::MidiClient *client = new drumstick::MidiClient;  
    client->open();  
    client->setClientName( "MyClient" );

    // create the port  
    drumstick::MidiPort *port = client->createPort();  
    port->setPortName( "MyPort" );  
    port->setCapability( SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ );  
    port->setPortType( SND_SEQ_PORT_TYPE_MIDI_GENERIC );  
    // subscribe the port to some other client:port  
    port->subscribeTo( "20:0" ); // or "name:port", like in "KMidimon:0"

    // create an event object on the stack, to send a note on message  
    drumstick::NoteOnEvent ev( 0, 66, 100 ); // (channel, note number, velocity)  
    ev.setSource( port->getPortId() );  
    ev.setSubscribers();   // deliver to all the connected ports  
    ev.setDirect();        // not scheduled, deliver immediately  
    client->output( &ev ); // or outputDirect() if you prefer not buffered  
    client->drainOutput(); // flush the buffer

    // close and clean  
    client->close();  
    delete client;  
    return 0;  
}