手把手教你用python演奏音乐(以富士山下为例)

这篇具有很好参考价值的文章主要介绍了手把手教你用python演奏音乐(以富士山下为例)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.代码

2.文本

3.效果图 


这两天,我非常无聊,琢磨出了十二平均律,并利用mido库进行编写,实现了利用python演奏音乐。废话不多说了,直接上代码,供诸位大佬把玩。

1.代码

import os
import threading
import time

import mido
import pygame

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


def play_midi(file):
    freq = 44100
    bitsize = -16
    channels = 2
    buffer = 1024
    pygame.mixer.init(freq, bitsize, channels, buffer)
    pygame.mixer.music.set_volume(1)
    clock = pygame.time.Clock()
    try:
        pygame.mixer.music.load(file)
    except:
        import traceback
        print(traceback.format_exc())
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        clock.tick(30)


KEY = 1
neg_SPEED = 1.2  # 数值越小速度越快


# bpm = \frac{60000000}{tempo}
def music(note, base_num, base_time):
    base_num, base_time = base_num + KEY, base_time * neg_SPEED
    # mid = mido.MidiFile()
    # track = mido.MidiTrack()
    # mid.tracks.append(track)
    # 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))
    # print('正在合成(',note, base_num, base_time,')音')
    # 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))
    # mid.save('1.mid')
    # play_midi('1.mid')


def lemon_music():
    a = 0
    b = 1
    # 前奏
    # music(1, a+b + 1, 2)

    music(1, a + 1, 1 * 2)
    music(6, a + 0, 0.5 * 2)
    music(1, a + 1, 0.5 * 2)
    music(3, a + 1, 1)
    music(3, a + 1, 0.5)
    music(2, a + 1, 0.5)

    music(3, a + 1, 0.5)
    music(2, a + 1, 0.5)
    music(3, a + 1, 0.5)
    music(2, a + 1, 0.5)
    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)

    music(6, a + 0, 1)
    music(7, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(2, a + 1, 1)
    music(3, a + 1, 0.5)
    music(4, a + 1, 0.5)

    music(5, a + 1, 2)
    music(3, a + 1, 0.5)
    music(5, a + 1, 1)
    music(2, a + 1, 0.5)

    music(3, a + b + 1, 0.25)
    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(3, a + b + 0, 0.25)
    music(3, a + b + 1, 0.25)
    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(3, a + b + 0, 0.25)
    music(3, a + b + 1, 0.25)
    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(3, a + b + 0, 0.25)
    music(3, a + b + 1, 0.25)
    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(3, a + b + 0, 0.25)

    music(2, a + b + 1, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)
    music(2, a + b + 1, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)
    music(2, a + b + 1, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)
    music(2, a + b + 1, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)

    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(4, a + b + 0, 0.25)
    music(1, a + b + 0, 0.25)
    music(1, a + b + 1, 0.25)
    music(6, a + b + 0, 0.25)
    music(4, a + b + 0, 0.25)
    music(1, a + b + 0, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)
    music(7, a + b + 0, 0.25)
    music(7, a + b + 0, 0.25)
    music(5, a + b + 0, 0.25)
    music(2, a + b + 0, 0.25)
    music(7, a + b + 0, 0.25)

    music(1, a + b + 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 * 1))
    music(5, a - 1, 1)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(3, a + 0, 0.5)

    music(3, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(5, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(2, a + 0, 0.5)
    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)

    music(2, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(5, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(6, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(3, a + 0, 0.5)

    music(5, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(6, a + 0, 1)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(2, a + 0, 0.5)
    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)

    music(1, a + 0, 1.5)
    # 副歌
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)

    music(1, a + 1, 0.75)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)

    music(6, a + 0, 0.75)
    music(6, a + 0, 0.75)
    music(6, a + 0, 0.5)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.75)
    music(6, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 1.5)
    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(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(6, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(1, a + 1, 0.75)
    music(1, a + 1, 0.75)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.75)
    music(1, a + 1, 0.5)

    music(6, a + 0, 1.5)
    music(5, a + 0, 1)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)

    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)

    music(6, a + 0, 0.75)
    music(6, a + 0, 0.75)
    music(6, a + 0, 0.5)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.75)
    music(6, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 1.5)
    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(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(6, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 1, 2)
    track.append(mido.Message('note_on', note=0, velocity=0, time=0))
    track.append(mido.Message('note_off', note=0, velocity=0, time=480 * 3))
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(2, a + 0, 1)
    music(1, a + 0, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(1, a + 0, 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 * 1))
    music(5, a - 1, 1)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(3, a + 0, 0.5)

    music(3, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(5, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(2, a + 0, 0.5)
    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)

    music(2, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(5, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(3, a + 0, 1)
    music(6, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(3, a + 0, 0.5)

    music(5, a + 0, 1.5)
    music(5, a - 1, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(6, a + 0, 1)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(3, a + 0, 1)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)

    music(2, a + 0, 0.75)
    music(2, a + 0, 0.75)
    music(2, a + 0, 0.5)
    music(2, a + 0, 0.75)
    music(1, a + 0, 0.75)
    music(6, a - 1, 0.5)

    music(1, a + 0, 1.5)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)

    music(1, a + 1, 0.75)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)

    music(6, a + 0, 0.75)
    music(6, a + 0, 0.75)
    music(6, a + 0, 0.5)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.75)
    music(6, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 1.5)
    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(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(6, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(1, a + 1, 0.75)
    music(1, a + 1, 0.75)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.75)
    music(1, a + 1, 0.5)

    music(6, a + 0, 1.5)
    music(5, a + 0, 1)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)

    music(1, a + 1, 0.5)
    music(7, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, a + 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)

    music(6, a + 0, 0.75)
    music(6, a + 0, 0.75)
    music(6, a + 0, 0.5)
    music(6, a + 0, 0.75)
    music(5, a + 0, 0.75)
    music(6, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 1.5)
    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(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 1)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(3, a + 0, 0.5)

    music(6, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 1, 2)

    # 尾部
    track.append(mido.Message('note_on', note=0, velocity=0, time=0))
    track.append(mido.Message('note_off', note=0, velocity=0, time=480 * 3))
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(6, a + 0, 0.5)
    music(5, a + 0, 1)
    music(5, 0, 0.5)
    music(6, a + 0, 0.5)
    music(5, a + 0, 0.5)
    music(3, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(3, a + 0, 0.5)
    music(2, a + 0, 1)
    music(1, a + 0, 0.5)
    music(6, a - 1, 0.5)
    music(1, a + 0, 0.5)
    music(1, a + 0, 0.5)
    music(2, a + 0, 0.5)

    music(1, a + 0, 2)
    music(1, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(2, a + 1, 0.5)
    music(1, a + 1, 1)
    music(1, a + 1, 0.5)
    music(2, a + 1, 0.5)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)
    music(1, a + 1, 0.5)

    music(3, a + 1, 0.5)
    music(2, a + 1, 1)
    music(1, a + 1, 0.5)
    music(6, a + 0, 0.5)
    music(1, a + 1, 0.5)
    music(2, a + 1, 1)

    music(1, a + 1, 4)


lemon_music()
mid.save('a2.mid')


def play():
    play_midi('a2.mid')


def show():
    for i in f.readlines():
        print("\033[0;34;40m%s\033[0m" % i)
        time.sleep(len(i) / 3)
        os.system('cls')


if __name__ == '__main__':
    f = open('lyrics.txt', 'r', encoding='utf-8')
    t1 = threading.Thread(target=play)
    t2 = threading.Thread(target=show)
    t1.start()
    t2.start()
    os.remove('a2.mid')

2.文本

歌名:富士山下

演唱:陈奕迅

作词:林夕

作曲:泽日生

代码编写:***

联系方式:***********

拦路雨偏似雪花 饮泣的你冻吗

这风褛我给你磨到有襟花

连掉了渍也不怕 怎么始终牵挂

苦心选中今天想车你回家

原谅我不再送花 伤口应要结疤

花瓣铺满心里坟场才害怕

如若你非我不嫁 彼此终必火化

一生一世等一天需要代价

谁都只得那双手 靠拥抱亦难任你拥有

要拥有必先懂失去怎接受

曾沿着雪路浪游 为何为好事泪流

谁能凭爱意要富士山私有

何不把悲哀感觉 假设是来自你虚构

试管里找不到它染污眼眸

前尘硬化像石头 随缘地抛下便逃走

我绝不罕有 往街里绕过一周 我便化乌有


情人节不要说穿 只敢抚你发端

这种姿态可会令你更心酸

留在汽车里取暖 应该怎么规劝

怎么可以将手腕忍痛划损

人活到几岁算短 失恋只有更短

归家需要几里路谁能预算

忘掉我跟你恩怨 樱花开了几转

东京之旅一早比一世遥远

谁都只得那双手 靠拥抱亦难任你拥有

要拥有必先懂失去怎接受

曾沿着雪路浪游 为何为好事泪流

谁能凭爱意要富士山私有

何不把悲哀感觉 假设是来自你虚构

试管里找不到它染污眼眸

前尘硬化像石头 随缘地抛下便逃走

我绝不罕有 往街里绕过一周 我便化乌有

你还嫌不够 我把这陈年风褛 送赠你解咒

感谢收听!

3.效果图 

手把手教你用python演奏音乐(以富士山下为例),python,pygame,开发语言

 文章来源地址https://www.toymoban.com/news/detail-655344.html

到了这里,关于手把手教你用python演奏音乐(以富士山下为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你用python一键抢12306火车票(附代码)

    哈喽,哈喽~,一年一度的抢火车票大战正式拉开序幕… 然饿大多数人碰到的是这种情况:当你满心期待摩拳擦掌准备抢票的时候,你会发现一票难求!想回趟家真难! 那么作为程序猿的你,当然要用程序猿的方式来抢票!下面分享用python来抢票! 城市cookie可根据具体需求自

    2024年02月15日
    浏览(72)
  • 手把手教你用Python编一个《我的世界》 2.材质及第一人称

    本次,我们将实现这样一个效果: 首先,导入ursina模块 创建app 定义Block类,继承自Button 然后,我们需要一个天空 定义Sky类 因为我们所有的方块包括天空都需要图片材质,所以我们在程序开头写以下代码: 然后咱们先创建一个超平坦地形,厚度就只有1层吧,因为方块多了很

    2024年02月04日
    浏览(66)
  • 手把手教你用代码画架构图

    作者:京东物流 覃玉杰 本文将给大家介绍一种简洁明了软件架构可视化模型——C4模型,并手把手教大家如何使用 代码 绘制出精美的C4架构图。 阅读本文之后,读者画的架构图将会是这样的: 注:该图例仅作绘图示例使用,不确保其完整性、可行性。 C4是软件架构可视化

    2024年02月04日
    浏览(49)
  • 手把手教你用AirtestIDE无线连接手机

    一直以来,我们发现同学们都挺喜欢用无线的方式连接手机,正好安卓11出了个无线连接的新姿势,我们今天就一起来看看,如何用AirtestIDE无线连接你的Android设备~ 当 手机与电脑处在同一个wifi 下,即可尝试无线连接手机了,但是这种方式受限于网络连接的稳定性,可能会出

    2023年04月18日
    浏览(53)
  • 快收藏!手把手教你用AI绘画

    点个关注👆跟腾讯工程师学技术 最近看到一篇有趣的文章,一副名为《太空歌剧院》(如下图)的艺术品在某美术比赛上,获得了第一名的成绩, 有意思的是这件作品是通过AI来实现的画作, 顿时觉得非常神奇。结合近期科技媒体频频报道的AI作画爆火现象,深入了解了下

    2024年02月09日
    浏览(47)
  • 手把手教你用 Jenkins 自动部署 SpringBoot

    CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。 CI/CD 的核心概念可以总结为三点: 持续集成 持续交付 持续部署 CI/CD 主要针对在集成新代码时所引发的问题(俗称\\\"集成地狱\\\")。 为什么会有集成地狱这个“雅称”呢?大家想想我们一个项目部署的

    2024年02月02日
    浏览(49)
  • 手把手教你用jmeter做压力测试(详图)

    压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步骤,下面我带大家来使用一款压力测试工

    2024年02月02日
    浏览(46)
  • 手把手教你用video实现视频播放功能

    哈喽。大家好啊 今天需要做一个视频播放列表,让我想到了video的属性 下面让我们先看看实现效果 这里是我的代码 width是当前播放页面的宽度 height是当前播放页面的高度 Controls属性用就是控制栏那些了 比如播放按钮 暂停按钮 autoplay是指的是自动播放 poster是指的是初始化进

    2024年02月12日
    浏览(50)
  • 手把手教你用UNet做医学图像分割系统

    兄弟们好呀,这里是肆十二,这转眼间寒假就要过完了,相信大家的毕设也要准备动手了吧,作为一名大作业区的UP主,也该蹭波热度了,之前关于图像分类和目标检测我们都出了相应的教程,所以这期内容我们搞波新的,我们用Unet来做医学图像分割。我们将会以皮肤病的数

    2024年02月03日
    浏览(72)
  • 手把手教你用MindSpore训练一个AI模型!

    首先我们要先了解深度学习的概念和AI计算框架的角色( https://zhuanlan.zhihu.com/p/463019160 ),本篇文章将演示怎么利用MindSpore来训练一个AI模型。和上一章的场景一致,我们要训练的模型是用来对手写数字图片进行分类的LeNet5模型 请参考( http://yann.lecun.com/exdb/lenet/ )。 图1 M

    2024年02月04日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包