Exemplo n.º 1
0
    def testMidiInstrumentNoName(self):
        i = instrument.Instrument()
        i.midiProgram = 42
        s = converter.parse('tinyNotation: c1')
        s.measure(1).insert(i)
        sc = stream.Score(s)
        scExporter = ScoreExporter(sc)

        tree = scExporter.parse()
        mxScoreInstrument = tree.findall('.//score-instrument')[0]
        mxMidiInstrument = tree.findall('.//midi-instrument')[0]
        self.assertEqual(mxScoreInstrument.get('id'),
                         mxMidiInstrument.get('id'))
Exemplo n.º 2
0
    def addMarkerPartFromExisting(self, existingPartName, newPartName, newPartTitle="",
                                  direction="below", rhythmType="copy", color=None):
        partNum = self.pn[existingPartName]

        self._partOffsetsToPartIndecies()

        existingPart = self.modifiedExercise.parts[partNum]
        existingPartOffset = existingPart.offset
        if rhythmType == "chordify":
            existingPart = self.originalExercise.chordify()
        newPart = copy.deepcopy(existingPart.getElementsByClass('Measure'))
        firstNote = True
        inst = instrument.Instrument()

        for  m in newPart:
            previousNotRestContents = copy.deepcopy(m.getElementsByClass('NotRest'))
            measureDuration = m.duration.quarterLength

            m.removeByClass(['GeneralNote']) # includes rests
            m.removeByClass(['Dynamic'])
            m.removeByClass(['Stream']) # get voices or sub-streams
            m.removeByClass(['Dynamic'])
            m.removeByClass(['Expression'])
            m.removeByClass(['KeySignature'])

            if rhythmType == "quarterNotes":
                for i in range(int(measureDuration)):
                    markerNote = note.Note('c4')
                    markerNote.notehead = 'x'
                    markerNote.quarterLength = 1
                    if color is not None:
                        markerNote.color = color
                    if firstNote:
                        markerNote.lyric = '>'
                        firstNote = False
                    m.append(markerNote)
            else:
                for oldNotRest in previousNotRestContents:
                    markerNote = note.Note('c4')
                    markerNote.offset = oldNotRest.offset
                    markerNote.notehead = 'x'
                    markerNote.quarterLength = oldNotRest.quarterLength
                    if color is not None:
                        markerNote.color = color
                    if firstNote:
                        markerNote.lyric = '>'
                        firstNote = False
                    m.insert(oldNotRest.offset, markerNote)
        inst.instrumentName = newPartTitle
        newPart.insert(0, inst)
        for ks in newPart.flat.getElementsByClass('KeySignature'):
            ks.sharps = 0
        for c in newPart.flat.getElementsByClass('Clef'):
            c.sign = "C"
            c.line = 3
        self._updatepn(partNum,direction=direction)
        if direction == "above":
            insertLoc = existingPartOffset - 0.5
            self.pn[newPartName] = partNum
        elif direction == "below" or direction is None:
            insertLoc = existingPartOffset + 0.5
            self.pn[newPartName] = partNum + 1
        self.modifiedExercise.insert(insertLoc,newPart)
        #self.modifiedExercise.show('text')
        # Somehow needed for sorting...
        self.modifiedExercise._reprText()
        self._partOffsetsToZero()
        return newPart
Exemplo n.º 3
0
from music21drums.drumsnotes import Snare, HiHat, OpenHiHat, PedalHiHat, Kick, Crash, Ride, HighTom, MiddleTom, LowTom
from music21drums.drumsnotes import drumsPart, showDrums

#
#
#
Logging.basicConfig(level=Logging.INFO)
Logging.warning('Watch out!')

aPart0 = drumsPart()
aPart0.metadata = metadata.Metadata()
aPart0.metadata.title = 'music21drumsnotes'
aPart0.metadata.composer = '*****@*****.**'

# add a dummy Instrument to avoid musecore warn
aInstrument = instrument.Instrument()
# aInstrument.midiChannel = 9, 10, whatever
aPart0.insert(aInstrument)
#

aMeasure0 = stream.Measure()
aMeasure0.append(Chord([Crash(), Kick()]))
aMeasure0.append(HiHat())
aMeasure0.append(Chord([HiHat(), Snare()]))
aMeasure0.append(HiHat())
aMeasure0.append(Chord([Ride(), Kick()]))
aMeasure0.append(HiHat())
aMeasure0.append(Chord([HiHat(), Snare()]))
aMeasure0.append(Chord([HiHat(), Kick()]))
aPart0.append(aMeasure0)