在Python上播放do-re-mi音符(每个持续1秒)

时间:2014-11-15 02:23:18

标签: python audio-player

我的儿子演奏的弦乐器听起来非常不合时宜。我更希望他学习一些简单的Python编程来播放真正听起来像是重新制作mi-mi的音符。

首先,我想在Python上持续1秒的持续时间播放do-re-mi。这可以在Python上轻松完成吗?容易意味着代码可以解释给一个10岁的孩子,或者至少不是那么困难以至于他被推迟。

我在Windows 7上使用Python 2.7。

2 个答案:

答案 0 :(得分:3)

听起来你正在尝试使用python编写合成器...这不是一个简单的任务。但是,如果您不需要从一个音符到下一个音符的任何平滑过渡,并且没有节奏变化等,即只是让节目背诵第三类音符中的音符"时尚,我想你可以将数字音符存储在常规声音文件中。拥有这些文件名的数组,按照您想要播放它们的顺序,然后只需发出一个命令,一次播放一个音符,中间等待。有许多python声音库:Snack声音,pyMedia,pyglet,winsound(内置于windows python),pygame,wxPython(可能还有更多)

我喜欢pygame的简单性:

import pygame
import time
notes = ['note1.mp3', 'note2.mp3', 'note3.mp3', 'note4.mp3']
pygame.init()

for note in notes:
    pygame.mixer.music.load(note)
    pygame.mixer.music.play()
    time.sleep(2)

答案 1 :(得分:3)

这里可能需要一点点学习,但请尝试PyAudio。您可能必须使用某些函数来生成声波(由字符串表示)。其他选项包括winsound, Nsound, sunau, etc,这取决于您想要播放声音的方式。