Ejemplo n.º 1
0
 def send_midi_data(self, data, midi_time, recovery=1, timestamp=1):
     """
     Sends MIDI data through the RTP session.
     """
     if DEBUG:
         print("Sending data", data)
     #Witness
     self.sending_data = 1
     #midi Cmd List
     midi_list = data
     #Saving packet
     packet = OldPacket(self.seq, midi_list, 0)
     chunk = ""
     recovery_journal = ""
     if recovery:
         #Recovery Journal (can be empty)
         #TODO customize it for each member of the feed
         if self.recovery_journal_system is not None:
             recovery_journal = self.recovery_journal_system.content
             if recovery_journal == "":
                 recovery = 0
     #Packing All
     #Testing length of midi list ( in nb notes )
     if len(midi_list) < 1:
         return
     #Formating commands for network
     midi_list_formated, length = \
         MidiCommand().encode_midi_commands(midi_list)
     #Creating Header
     header = MidiCommand().header(0, recovery, 0, 0, length)
     #Building Chunk
     chunk = header + midi_list_formated + recovery_journal
     #Timestamp care (TS == temps midi ecouler depuis la creation de rtp)
     ts = midi_time - self.last_midi_time_sent
     self.last_midi_time_sent = midi_time
     #sending data to rtp session
     RTPSession.send_data(self, chunk, ts)
     self.sending_data = 0
     #Updating Recovery Journal
     if self.recovery:
         self.recovery_journal_system.update(packet)
Ejemplo n.º 2
0
 def send_midi_data(self, data, midi_time, recovery=1, timestamp=1):
     """
     Sends MIDI data through the RTP session.
     """
     if DEBUG:
         print "Sending data", data
     #Witness
     self.sending_data = 1
     #midi Cmd List
     midi_list = data
     #Saving packet
     packet = OldPacket(self.seq, midi_list, 0)
     chunk = ""
     recovery_journal = ""
     if recovery:
         #Recovery Journal (can be empty)
         #TODO customize it for each member of the feed
         if self.recovery_journal_system is not None:
             recovery_journal = self.recovery_journal_system.content
             if recovery_journal == "":
                 recovery = 0
     #Packing All
     #Testing length of midi list ( in nb notes )
     if len(midi_list) < 1:
         return
     #Formating commands for network
     midi_list_formated, length = \
         MidiCommand().encode_midi_commands(midi_list)
     #Creating Header
     header = MidiCommand().header(0, recovery, 0, 0, length)
     #Building Chunk
     chunk = header + midi_list_formated + recovery_journal
     #Timestamp care (TS == temps midi ecouler depuis la creation de rtp)
     ts = midi_time - self.last_midi_time_sent
     self.last_midi_time_sent = midi_time
     #sending data to rtp session
     RTPSession.send_data(self, chunk, ts)
     self.sending_data = 0
     #Updating Recovery Journal
     if self.recovery:
         self.recovery_journal_system.update(packet)