コード例 #1
0
ファイル: volume.py プロジェクト: YiqianZh/msps
    def testGetRealizedA(self):
        from music21 import volume, dynamics

        v1 = volume.Volume(velocity=64)
        self.assertEqual(v1.getRealizedStr(), '0.5')

        d1 = dynamics.Dynamic('p')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.35')

        d1 = dynamics.Dynamic('ppp')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.15')

        d1 = dynamics.Dynamic('fff')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.91')

        # if vel is at max, can scale down with a dynamic
        v1 = volume.Volume(velocity=127)
        d1 = dynamics.Dynamic('fff')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '1.0')

        d1 = dynamics.Dynamic('ppp')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.3')
        d1 = dynamics.Dynamic('mp')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.9')
        d1 = dynamics.Dynamic('p')
        self.assertEqual(v1.getRealizedStr(useDynamicContext=d1), '0.7')
コード例 #2
0
ファイル: prepare.py プロジェクト: aszkid/uh2019-music
def write_song(chords, off=0.0):
    #mod_chs = [chord.Chord(ch) for ch in chords]
    from music21 import chord, harmony, interval  #Chord/Music Theory parsing
    from music21 import midi, volume, stream  #Music Generation

    print(chords)
    # chords = [int(c) for c in chords]
    mod_chs = []
    for ch in chords:
        print(ch)
        try:
            mod_chs.append(chord.Chord(ch))
        except:
            print("failed...")
            pass

    for note in mod_chs:
        note.volume = volume.Volume(velocity=90)
        note.volume.velocityIsRelative = False
        note.offset = off
        off += 1.2

    s = stream.Stream(mod_chs)
    print("Moving chords to stream, memory alloc {}".format(s))
    mf = midi.translate.streamToMidiFile(s)

    #fname = '{}.midi'.format(time.strftime("%Y%m%d-%H%M%S"))
    fname = "output.midi"
    mf.open(fname, 'wb')
    mf.write()
    mf.close()
    print('done writing midi file')

    return fname
コード例 #3
0
ファイル: volume.py プロジェクト: YiqianZh/msps
    def testBasic(self):
        from music21 import volume, note

        n1 = note.Note()
        v = volume.Volume(client=n1)
        self.assertEqual(v.client, n1)
        del n1
        # weak ref does not exist
        self.assertEqual(v.client, None)
コード例 #4
0
ファイル: volume.py プロジェクト: YiqianZh/msps
    def testDeepCopyA(self):
        import copy
        from music21 import volume, note
        n1 = note.Note()

        v1 = volume.Volume()
        v1.velocity = 111
        v1.client = n1

        v1Copy = copy.deepcopy(v1)
        self.assertEqual(v1.velocity, 111)
        self.assertEqual(v1Copy.velocity, 111)

        self.assertEqual(v1.client, n1)
        self.assertEqual(v1Copy.client, n1)
コード例 #5
0
ファイル: volume.py プロジェクト: YiqianZh/msps
    def testGetContextSearchA(self):
        from music21 import stream, note, volume, dynamics

        s = stream.Stream()
        d1 = dynamics.Dynamic('mf')
        s.insert(0, d1)
        d2 = dynamics.Dynamic('f')
        s.insert(2, d2)

        n1 = note.Note('g')
        v1 = volume.Volume(client=n1)
        s.insert(4, n1)

        # can get dynamics from volume object
        self.assertEqual(v1.client.getContextByClass('Dynamic'), d2)
        self.assertEqual(v1.getDynamicContext(), d2)
コード例 #6
0

if __name__ == '__main__':
    from music21 import corpus, converter, note, base, volume, duration, stream, environment
    p = converter.parse('tinynotation: 3/4 c4 d4 e4 f4 g4 a4').makeMeasures()
    s = stream.Score()
    s.insert(0, p)
    p2 = converter.parse('tinynotation: 3/4 A4 B4 c d e f').makeMeasures()
    s.insert(0, p2)
    s = corpus.parse('bwv66.6')

    n = note.Note()
    #s = stream.Stream()

    b = base.Music21Object()
    v = volume.Volume()
    d = duration.Duration()
    dataStr = fillTemplate(s)

    environLocal = environment.Environment()
    ext = '.html'
    fp = environLocal.getTempFile(ext)

    f = open(fp, 'w')
    f.write(dataStr)
    f.close()
    environLocal.launch(ext, fp)

####
# eof