void MainWindow::start_game(QString music_name) { cur_scene = game; sound_menu->stop(); Phonon::MediaObject *sound_start = new Phonon::MediaObject(this); createPath(sound_start, new Phonon::AudioOutput(Phonon::MusicCategory, this)); sound_start->setCurrentSource(Phonon::MediaSource(":/sound/start.mp3")); sound_start->play(); QDir dir_music(QDir::home().absoluteFilePath(QString(".musicman/songs/%1/").arg(music_name))); music_guitar = new Phonon::MediaObject(this); music_guitar->setCurrentSource(Phonon::MediaSource(dir_music.absoluteFilePath("guitar.mp3"))); music_guitar_output = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::createPath(music_guitar, music_guitar_output); music_song = new Phonon::MediaObject(this); music_song->setCurrentSource(Phonon::MediaSource(dir_music.absoluteFilePath("song.mp3"))); music_song_output = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::createPath(music_song, music_song_output); canvas = new Canvas(this); Midi midi(dir_music.absoluteFilePath("notes.musicman").toStdString()); midi.parse(); canvas->setMidi(midi); canvas->setTotalTime(music_song->totalTime()); canvas->resize(this->size()); canvas->show(); connect(timer, SIGNAL(timeout()), SLOT(redraw_canvas())); timer->start(20); }
void MainWindow::on_playButton_clicked() { hide_buttons(); canvas = new Canvas(this); canvas->resize(this->size()); canvas->show(); music_guitar = Phonon::createPlayer(Phonon::MusicCategory, Phonon::MediaSource("Feelings/guitar.mp3")); music_guitar->play(); music_song = new Phonon::MediaObject(this); music_song->setCurrentSource(Phonon::MediaSource("Feelings/song.mp3")); music_song_output = new Phonon::AudioOutput(Phonon::MusicCategory, this); Phonon::Path path = Phonon::createPath(music_song, music_song_output); music_song->play(); music_song_output->setMuted(true); Midi midi("Feelings/notes.musicman"); midi.parse(); canvas->setMidi(midi); QTimer *timer = new QTimer(this); connect(timer, SIGNAL(timeout()), canvas, SLOT(animate())); timer->start(25); }
//// // Process a midi message void MidiManager::process_midi(char *midi_data){ unsigned int i; MidiMessage midi(midi_data); for(i = 0; i < m_next_index; i++){ // TODO Just give midi to every requestor for now... m_midi_message_requests[i].m_requestor->midi_callback(midi); } }
int main( void ) { bQueue bq; midiParser midi( &bq ); midiMsg msg; uint8_t res; // Enqueue note off message res = bq.enqueue( 0x80 ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); res = bq.enqueue( 0x0A ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); res = bq.enqueue( 0x0B ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); // Enqueue real-time message res = bq.enqueue( 0xF8 ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); // Enqueue note on message res = bq.enqueue( 0x90 ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); res = bq.enqueue( 0x01 ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); res = bq.enqueue( 0x02 ); if ( res == QUEUE_FULL ) printf( "queue full\n" ); printf(" bAvailable: %02x\n", bq.bytesAvailable()); while ( !bq.isempty() ) { if ( midi.hasMsg( &msg ) ) { printf("msg: \n" "\tstatus: %02x\n" "\tchannel: %02x\n" "\tdata[0]: %02x\n" "\tdata[1]: %02x\n", msg.status, msg.channel, msg.data[0], msg.data[1]); } } printf( "complete\n" ); }
int main() { if ( -1 == wiringPiSetupGpio() ) { std::cout << "Could not setup GPIO!" << std::endl; return 0; } /*midiEvent event = {69, NOTE_DOWN, 0}; std::vector<midiEvent> events; events.push_back( event ); //event = {69, NOTE_UP, 1000000} //events.push_back(event); events.push_back( {65, NOTE_DOWN, 500000} ); events.push_back( {69, NOTE_UP, 500000} ); events.push_back( {65, NOTE_UP, 500000} );*/ FloppyPlayer player( {4, 17, 18, 22} ); MidiFile midi( "tetris deep.mid" ); player.Play( &midi ); //player.Play( &events ); return 0; }
int main( void ) { // Initialize m4 things mInit(); //mBusInit(); mUSBInit(); // Set up usb interface bQueue in_q; bQueue out_q; usbIface usb( &in_q, &out_q ); // Initialize midi interface midiParser midi( &in_q ); midiMsg msg; mYellowON; while(1) { usb.readBytes(); /* mWaitms(500); mGreenON; usb.printf( "hello world\n" ); mWaitms(500); mGreenOFF; */ if ( midi.hasMsg(&msg) ) { mGreenTOGGLE; usb.printf("msg: %02x\n", msg.status); usb.printf("channel: %02x\n", msg.channel); usb.printf("data[0]: %02x\n", msg.data[0]); usb.printf("data[1]: %02x\n", msg.data[1]); } // Write data out usb.writeBytes(); } }
int main(int argc, char *argv[]) { char name[256]; char rcfilename[256]; char* home = getenv("HOME"); snprintf(name, 255, "%s", basename(argv[0])); snprintf(rcfilename, 255, "%s/.%src", home, basename(argv[0])); long srate = (long)lopt(argv, "--frequency", -1); int fpb = lopt(argv, "--buffer", 512); int poly = lopt(argv, "--poly", 4); #if MIDICTRL rtmidi midi(name); #endif #ifdef POLY #if MIDICTRL DSP = new mydsp_poly(poly, true); midi.addMidiIn(DSP); #else DSP = new mydsp_poly(poly); #endif #else DSP = new mydsp(); #endif if (DSP == 0) { std::cerr << "Unable to allocate Faust DSP object" << std::endl; exit(1); } QApplication myApp(argc, argv); QTGUI interface; FUI finterface; DSP->buildUserInterface(&interface); DSP->buildUserInterface(&finterface); #ifdef MIDICTRL MidiUI midiinterface(name); DSP->buildUserInterface(&midiinterface); std::cout << "MIDI is on" << std::endl; #endif #ifdef HTTPCTRL httpdUI httpdinterface(name, DSP->getNumInputs(), DSP->getNumOutputs(), argc, argv); DSP->buildUserInterface(&httpdinterface); std::cout << "HTTPD is on" << std::endl; #endif #ifdef OSCCTRL OSCUI oscinterface(name, argc, argv); DSP->buildUserInterface(&oscinterface); std::cout << "OSC is on" << std::endl; #endif coreaudio audio(srate, fpb); audio.init(name, DSP); finterface.recallState(rcfilename); audio.start(); printf("ins %d\n", audio.get_num_inputs()); printf("outs %d\n", audio.get_num_outputs()); #if MIDICTRL midi.start(); #endif #ifdef HTTPCTRL httpdinterface.run(); #ifdef QRCODECTRL interface.displayQRCode(httpdinterface.getTCPPort()); #endif #endif #ifdef OSCCTRL oscinterface.run(); #endif #ifdef MIDICTRL midiinterface.run(); #endif interface.run(); myApp.setStyleSheet(interface.styleSheet()); myApp.exec(); interface.stop(); audio.stop(); finterface.saveState(rcfilename); #ifdef MIDICTRL midi.stop(); #endif return 0; }