Exemplo n.º 1
0
 def build(self, opts = {}):
     writer = IO_Bit()
     self._buildChunk(writer, self.header, opts)
     for track in self.tracks: 
         self._buildChunk(writer, track, opts)
     if self.xfinfo:
         self._buildChunk(writer, self.xfinfo, opts)
     if self.xfkaraoke:
         self._buildChunk(writer, self.xfkaraoke, opts)
     
     return writer.output()
Exemplo n.º 2
0
 def _buildChunk(self, writer, chunk, opts):
     type = chunk['type']
     writerChunk = IO_Bit()
     if type == 'MThd':
           self._buildChunkHeader(writerChunk, chunk['header'], opts)
     elif type == 'MTrk':
           self._buildChunkTrack(writerChunk, chunk['track'], opts)
     elif type ==  'XFIH':
           self._buildChunkXFInfo(writerChunk, chunk['xfinfo'], opts)
     elif type == 'XFKM':
           self._buildChunkXFKaraoke(writerChunk, chunk['xfkaraoke'], opts)
     else:
           raise Exception("Unknown chunk (type=type)\n")
     chunkData = writerChunk.output()
     length = len(chunkData)
     writer.putData(type , 4)
     writer.putUI32BE(length)
     writer.putData(chunkData, length)