python演奏音乐

今天早晨闲来无事逛b站,看到有大佬用c++演奏了很多歌曲,然后心血来潮,就想着用python做一个,无奈,自己早年间学过的吉他的乐理知识早就忘得一干二净了,没办法,开展cv大法,找到了一首大佬编写的lemon,特此记录一下。

import mido


mid = mido.MidiFile()
track = mido.MidiTrack()
mid.tracks.append(track)

#bpm = \frac{60000000}{tempo}
def music(note,base_num,base_time):
    
    #meta_time = 60 * 60 * 10 / bpm
    major_notes = [0, 2, 2, 1, 2, 2, 2, 1]
    base_note = 60
    track.append(mido.Message('note_on', note=base_note+base_num*12 + sum(major_notes[0:note]), velocity=96, time=0,channel=1))
    track.append(mido.Message('note_off', note=base_note+base_num*12 + sum(major_notes[0:note]), velocity=96, time=int(480*base_time),channel=1))
    #track.append(mido.Message('note_on', note=base_note, velocity=96, time=0))
    #track.append(mido.Message('note_off', note=base_note, velocity=96, time=480*base_time))
    
def lemon_music():
    #1
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)
    #2
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(1,1,0.5)

    music(5,0,2)
    music(4,0,1)
    music(3,0,0.75)
    music(4,0,0.25)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(6,0,0.5)

    music(5,0,3)
    #
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)
    #
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    #
    music(5,0,1)
    music(4,0,0.5)
    music(5,0,0.5)

    music(3,0,1)
    music(5,0,1)
    music(1,1,1)
    music(3,1,1)

    music(2,1,1.5)
    music(2,1,0.5)
    music(2,1,0.5)
    music(1,1,1)
    music(1,1,0.5)

    music(1,1,4)
    #加空白
    track.append(mido.Message('note_on', note=0, velocity=0, time=0))
    track.append(mido.Message('note_off', note=0, velocity=0, time=480*7))

    
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)

    #
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(1,1,0.5)

    music(5,0,2)
    music(4,0,1)
    music(3,0,0.75)
    music(4,0,0.25)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(6,0,0.5)

    music(5,0,3)
    #
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)
    #
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    music(5,0,1)
    music(4,0,0.5)
    music(5,0,0.5)

    music(3,0,1)
    music(5,0,1)
    music(1,1,1)
    music(3,1,1)

    music(2,1,0.5)
    music(2,1,1.5)
    music(2,1,0.75)
    music(1,1,1.25)

    music(1,1,4)
    #
    music(6,0,1.5)
    music(7,0,0.5)
    music(1,1,1)
    music(7,0,0.5)
    music(6,0,0.5)

    music(5,0,1)
    music(3,1,1)
    music(3,1,2)
    #

    music(2,1,1.5)
    music(3,1,0.5)
    music(4,1,1)
    music(3,1,0.5)
    music(2,1,0.5)

    music(1,1,1)
    music(2,1,1)
    music(5,0,2)
    #
    music(4,0,1.5)
    music(5,0,0.5)
    music(6,0,1)
    music(5,0,0.5)
    music(4,0,0.5)
    
    music(3,0,1)
    music(1,1,1)
    music(1,1,1)
    music(1,1,1)

    #
    music(7,0,2)
    music(6,0,1)
    music(7,0,1)

    music(1,1,1)
    #加空白
    track.append(mido.Message('note_on', note=0, velocity=0, time=0))
    track.append(mido.Message('note_off', note=0, velocity=0, time=480*1))
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#/

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#\

    music(5,1,0.125)
    music(6,1,0.375)
    music(5,1,1.5)

    music(5,1,0.5)
    music(1,2,1.5)

    music(7,1,0.5)
    music(5,1,1.5)
    music(3,1,0.5)
    music(5,1,1)
    music(2,1,0.5)

    music(2,1,2)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)
    #
    music(2,1,0.5)
    music(1,1,1.5)
    music(1,1,0.75)
    music(1,1,0.25)
    music(2,1,0.75)
    music(3,1,0.25)

    music(4,1,0.75)
    music(3,1,1.25)#\
    music(3,1,0.125)
    music(2,1,0.875)#\
    music(7,0,1)

    music(1,1,3)
    #
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(3,0,1)#\
    music(5,0,1)

    music(6,0,0.75)
    music(2,1,1.25)
    music(7,0,0.75)
    music(1,1,1.25)

    music(1,1,3)
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(1,1,1)#\
    music(2,1,1)

    music(3,1,0.75)
    music(4,1,1.25)
    music(2,1,0.75)
    music(1,1,1.25)

    music(1,1,3)
    #Kongbai
    #
    music(3,1,1)
    music(1,1,1)
    music(5,1,1)
    music(1,1,1)
    music(1,1,1)
    music(2,1,1)
    music(5,1,1)
    music(1,1,1)
    music(1,1,1)
    music(2,1,1)
    music(5,1,1)
    music(1,1,1)
    music(1,1,1)
    music(2,1,1)
    music(3,1,1)
    music(1,1,1)
    music(2,1,2)
    music(5,1,1)
    music(1,1,1)
    music(1,1,1)
    music(2,1,1)
    music(5,1,1)
    music(1,1,1)
    music(2,1,2)
    music(1,1,2)
    music(2,1,3)
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)

    #
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(1,1,0.5)

    music(5,0,2)
    music(4,0,1)
    music(3,0,0.75)
    music(4,0,0.25)

    music(4,0,2)
    #
    music(1,1,1)
    music(7,0,0.5)
    music(6,0,0.5)

    music(5,0,3)
    #
    music(1,1,0.5)
    music(2,1,0.5)

    music(3,1,1)
    music(1,1,0.5)
    music(6,0,1.5)
    music(2,1,1)

    music(7,0,1)
    music(5,0,0.5)
    music(3,0,1.5)
    music(7,0,1)

    music(6,0,1)
    music(5,0,0.5)
    music(1,0,1.5)
    music(5,0,1)

    music(3,0,3)
    #
    music(2,0,0.5)
    music(3,0,0.5)

    music(4,0,2)
    music(5,0,1)
    music(4,0,0.5)
    music(5,0,0.5)

    music(3,0,1)
    music(5,0,1)
    music(1,1,1)
    music(3,1,1)

    music(2,1,0.5)
    music(2,1,1.5)
    music(2,1,0.75)
    music(1,1,1.25)

    music(1,1,4)
    #
    music(6,0,1.5)
    music(7,0,0.5)
    music(1,1,1)
    music(7,0,0.5)
    music(6,0,0.5)

    music(5,0,1)
    music(3,1,1)
    music(3,1,2)
    #

    music(2,1,1.5)
    music(3,1,0.5)
    music(4,1,1)
    music(3,1,0.5)
    music(2,1,0.5)

    music(1,1,1)
    music(2,1,1)
    music(5,0,2)
    #
    music(4,0,1.5)
    music(5,0,0.5)
    music(6,0,1)
    music(5,0,0.5)
    music(4,0,0.5)
    
    music(3,0,1)
    music(1,1,1)
    music(1,1,1)
    music(1,1,1)

    #
    music(7,0,2)
    music(6,0,1)
    music(7,0,1)

    music(1,1,1)
    #加空白
    track.append(mido.Message('note_on', note=0, velocity=0, time=0))
    track.append(mido.Message('note_off', note=0, velocity=0, time=480*1))
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#/

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#\

    music(5,1,0.125)
    music(6,1,0.375)
    music(5,1,1.5)

    music(5,1,0.5)
    music(1,2,1.5)

    music(7,1,0.5)
    music(5,1,1.5)
    music(3,1,0.5)
    music(5,1,1)
    music(2,1,0.5)

    music(2,1,2)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)
    #
    music(2,1,0.5)
    music(1,1,1.5)
    music(1,1,0.75)
    music(1,1,0.25)
    music(2,1,0.75)
    music(3,1,0.25)

    music(4,1,0.75)
    music(3,1,1.25)#\
    music(3,1,0.125)
    music(2,1,0.875)#\
    music(7,0,1)

    music(1,1,3)
    #
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(3,0,1)#\
    music(5,0,1)

    music(6,0,0.75)
    music(2,1,1.25)
    music(7,0,0.75)
    music(1,1,1.25)

    music(1,1,3)
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(1,1,1)#\
    music(2,1,1)

    music(3,1,0.75)
    music(4,1,1.25)
    music(2,1,0.75)
    music(1,1,1.25)

    music(1,1,3)
    #Kongbai
    #
    music(1,1,2)
    music(1,1,1.75)
    music(4,0,0.25)
    music(1,1,2)
    music(7,0,2)

    music(1,1,2)
    music(5,1,2)

    music(6,1,2)
    music(5,1,2)

    music(2,1,2)
    music(4,1,2)

    music(3,1,4)

    music(1,1,2)
    music(3,1,2)

    music(4,1,2)
    music(3,1,2)
    
    music(2,1,2)
    music(7,0,2)

    music(1,1,4)

    music(1,1,2)
    music(5,1,2)

    music(6,1,2)
    music(5,1,2)

    music(2,1,2)
    music(4,1,1)
    music(3,1,1)

    music(3,1,4)

    music(1,1,2)
    music(3,1,2)

    music(4,1,2)
    music(3,1,2)

    music(2,1,2)
    music(7,0,2)

    music(1,1,2)
    #kongbai

    music(6,0,1)
    music(7,0,0.5)

    music(1,1,2)
    music(5,1,2)

    music(6,1,2)
    music(5,1,1)
    music(2,1,1)

    music(2,1,2)
    music(4,1,1)
    music(3,1,1)

    music(3,1,4)

    music(1,1,2)
    music(3,1,2)

    music(4,1,2)
    music(3,1,2)

    music(2,1,2)
    music(7,0,2)

    music(1,1,3)
    music(6,0,0.5)
    music(7,0,0.5)

    music(1,1,2)
    music(5,1,2)

    music(6,1,2)
    music(5,1,2)

    music(7,1,2)
    music(7,1,1)
    music(1,2,1)

    music(1,2,4)

    music(1,2,2)
    music(5,1,2)

    music(4,1,2)
    music(3,1,1)
    music(2,1,1)

    music(2,1,2)
    music(2,1,2)

    music(6,0,2)
    music(1,1,1)
    music(3,2,1)

    music(4,2,4)
    music(4,2,1)
    music(5,2,1)
    music(5,2,1)
    music(6,1,1)
    music(4,2,4)
    music(4,1,1)
    #kongbai
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#/

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)

    music(2,1,0.5)
    music(1,1,1.5)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)#\

    music(5,1,0.125)
    music(6,1,0.375)
    music(5,1,1.5)

    music(5,1,0.5)
    music(1,2,1.5)

    music(7,1,0.5)
    music(5,1,1.5)
    music(3,1,0.5)
    music(5,1,1)
    music(2,1,0.5)

    music(2,1,2)
    #
    music(2,1,0.75)
    music(3,1,0.25)
    music(2,1,0.75)
    music(1,1,0.25)

    music(6,0,0.5)
    music(1,1,1.5)
    music(3,1,0.75)
    music(5,1,1.25)
    #
    music(2,1,0.5)
    music(1,1,1.5)
    music(1,1,0.75)
    music(1,1,0.25)
    music(2,1,0.75)
    music(3,1,0.25)

    music(6,1,0.75)
    music(3,1,1.25)#\
    music(3,1,0.125)
    music(2,1,0.875)#\
    music(7,0,1)

    music(1,1,3)
    #
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(3,0,1)#\
    music(5,0,1)

    music(6,0,0.75)
    music(2,1,1.25)
    music(7,0,0.75)
    music(1,1,1.25)

    music(1,1,3)
    music(1,1,0.75)
    music(7,0,0.25)

    music(6,0,1)
    music(7,0,1)
    music(1,1,1)
    music(2,1,1)

    music(1,1,1)
    music(5,0,1)
    music(4,0,1)
    music(3,1,1)

    music(4,1,0.75)
    music(1,1,1.25)
    music(1,1,0.75)
    music(5,1,1.25)

    music(3,1,3)
    music(3,1,0.75)
    music(2,1,0.25)

    music(1,1,1)
    music(2,1,1)
    music(3,1,1)
    music(4,1,1)

    music(3,1,1)
    music(1,1,1)
    music(5,0,1)
    music(3,0,1)

    music(2,1,0.75)
    music(3,1,1.25)
    music(2,1,0.75)
    music(1,1,1.25)

    music(1,1,2)
    music(4,-2,0.25)
    music(1,-1,0.25)
    music(4,-1,0.25)
    music(5,-1,0.25)
    music(1,0,0.25)
    music(2,0,0.25)
    music(5,0,0.25)
    music(1,1,0.25)

    music(2,1,0.25)
    music(5,1,0.25)
    music(1,2,0.25)
    music(2,2,0.25)
    music(5,2,0.25)
    music(1,3,0.75)
    music(1,1,0.5)
    music(5,1,1.5)
    music(1,1,0.5)
    music(5,1,1.5)
    music(1,1,0.5)
    music(5,1,1.5)
    music(1,1,0.5)
    music(5,1,1.5)
    music(1,1,0.5)
    music(5,1,1.5)
    music(1,1,0.5)
    music(5,1,3.5)




    



lemon_music()

mid.save('a2.mid')

主要的代码如上图,自己再写一个运行mid的文件即可,最后来欣赏一下最终的效果。 以此给女朋友作为礼物送给他

python演奏lemon

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值