2011-06-26 28 views
10

Tôi muốn có một thư viện nhạc cụ (ví dụ, một đối tượng piano) mà tôi có thể sử dụng để chuyển đổi danh sách ghi chú và thời lượng thành âm thanh. Ví dụ: một cái gì đó như:Tổng hợp nốt nhạc (với âm thanh piano) trong Python

import Piano 

pn = Piano() 
pn.play([note, note, ..., note], duration) 

Có điều gì đó như thế này tồn tại cho python 2.7 không? Tôi muốn thực hiện nó nếu nó không. Tôi hiện đang có một cái gì đó sử dụng audiere, nhưng nó chỉ sóng sin để nó có vẻ khủng khiếp. Có cách nào để móc vào một cây đàn piano midi hay cái gì đó như thế-tôi đang sử dụng windows 7? Có bất kỳ bước triển khai nào mà tôi có thể không mong đợi không?

+0

thể trùng lặp của [Làm thế nào để tổng hợp âm thanh?] (Http://stackoverflow.com/questions/790960/how-to-synthesize-sounds) –

Trả lời

8

Một tập hợp con của @Marcelos câu trả lời: http://code.google.com/p/mingus/

Mingus là một gói phần mềm cho Python sử dụng bởi các lập trình viên, nhạc sĩ, nhà soạn nhạc và các nhà nghiên cứu để thực hiện và điều tra âm nhạc. Tại cốt lõi của mingus là lý thuyết âm nhạc, bao gồm các chủ đề như khoảng thời gian, hợp âm, quy mô và tiến triển.

Gói MIDI có thể lưu và tải các tệp MIDI, và -last nhưng không kém phần quan trọng - cung cấp trình tự mục đích chung cho tất cả các vùng chứa và lớp con sequence FluidSynth. Điều này cho phép bạn chơi tất cả các cấu trúc dữ liệu của bạn trực tiếp từ Python chỉ bằng một vài dòng. Hầu hết thời gian icky và mã MIDI đã được trừu tượng hóa cho bạn, để lại một API đơn giản, tương đối đơn giản.

+0

Cảm ơn bạn, điều đó thực sự trả lời câu hỏi. Đối với các bên quan tâm, tôi đã kết thúc việc xây dựng những gì tôi muốn với [midiutil] (http://code.google.com/p/midiutil/) –

+0

Đây là một thư viện tuyệt vời. Cảm ơn câu trả lời! –

1

Hãy xem here để biết thêm thông tin bạn muốn biết về cách phát nhạc bằng Python.

11

Một sinh viên của tôi đã chỉ mới bắt đầu sử dụng Mingus làm chỉ này hướng dẫn vì vậy đây là nhanh về cách để có được đi trên Linux (ubuntu):

Install fluidsynth và Mingus nếu bạn không có họ đã :

$ sudo apt-get install fluidsynth

$ sudo easy_install Mingus

Bây giờ bạn sẽ có có thể mở trăn và gõ:

>>> from mingus.midi import fluidsynth 
>>> fluidsynth.init('/usr/share/sounds/sf2/FluidR3_GM.sf2',"alsa") 

Điều này nhập khẩu những thứ cần thiết từ mingus và khởi tạo fluidsynth để chơi qua alsa (không phải là giắc cắm mặc định). Sau đó:

>>> fluidsynth.play_Note(64,0,100) 

... và bạn sẽ nghe thấy ghi chú phát trên đàn piano (đối số là: số ghi chú, số kênh và vận tốc).

Để biết thêm thông tin hãy vào đây:

https://code.google.com/p/mingus/wiki/tutorialFluidsynth

+0

+1 cho ví dụ về mã! – qed

Các vấn đề liên quan