Exemple #1
0
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);
}
Exemple #2
0
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);
}
Exemple #3
0
////
//  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" );
}
Exemple #5
0
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;
}
Exemple #6
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;
}