2010-02-05 33 views
27

Lưu ý: đây KHÔNG phải là câu hỏi "âm nhạc cho lập trình".Lập trình tổng hợp âm nhạc lập trình?

Câu hỏi của tôi là:

Tôi muốn viết một chương trình máy tính có thể tổng hợp nhịp lặp đi lặp lại (mà tôi có thể kiểm soát thông qua các dòng lệnh) nhạc ống vào tai tôi.

Tôi rất tò mò nếu có các công cụ hiện có để thực hiện việc này (và nếu không, thư viện nào sẽ sử dụng).

Ý tưởng chung là:

1) máy tính biết những gì tôi đang làm (bằng các lệnh Tôi đang chạy - cho dù tôi đang ở trong Vim, cho dù chương trình của tôi đang biên soạn, vv ..)

2) máy tính biết tâm trạng của tôi nói chung (đếm số thất bại biên dịch do 'make'; số segfaults, mã zero thoát không; số git cam kết)

3) máy tính biết trạng thái não của tôi (tùy thuộc vào tỷ lệ nhập; tôi đang viết mã hoặc suy nghĩ)

Tôi muốn sử dụng chúng cho một số loại phản hồi sinh học để kiểm soát âm nhạc.

Đây cũng là lý do tại sao nhạc cần được tổng hợp theo chương trình (thay vì chỉ một số bản nhạc hiện có).

+0

Tuyệt vời. char min fill ... – bsneeze

+0

Wow ... đây là một ý tưởng rất thông minh ... fav. và +1. Tôi quan tâm đến việc xem điều này diễn ra như thế nào. giữ một số cập nhật về tiến độ của bạn hoặc đăng liên kết để biết thêm thông tin ... – IAbstract

+0

Tôi nghĩ rằng tôi thích ý tưởng âm nhạc được sắp xếp theo phần mềm gián điệp :) – Dolph

Trả lời

11

Để biết mặt âm nhạc thực tế của mọi thứ, hãy xem Chuck. Nó cho phép bạn lập trình tổng hợp âm thanh. Here's video trên YouTube hiển thị ví dụ về Chuck tại nơi làm việc. Another video làm nổi bật cách Chuck hoạt động và cách tạo ra âm thanh cơ bản.

+0

+1 cho ChucK ... lý tưởng cho một bằng chứng về khái niệm vì nó có sẵn trong mở nguồn. Mặc dù các nhà phát triển dường như công khai thừa nhận rằng nó có thể nổ tung, bạn có cơ hội để xem những gì bạn đang làm việc và sẽ có thể cải thiện. – IAbstract

+0

Tôi chỉ muốn thẻ âm thanh của tôi không bị hỏng vì vậy tôi có thể nghe các clip YouTube ...:/ – IAbstract

8

Bạn cần phải:

  • thu thập các dữ liệu đầu vào mà bạn sẽ căn âm nhạc của bạn trên.

  • quyết định cách các biến đầu vào sẽ ảnh hưởng đến âm nhạc

  • đưa ra các thuật toán để tạo ra các giai điệu và nhịp điệu

  • mã nó tất cả trong một gói synth nhạc

Các mục của bạn "biết tâm trạng của bạn" và "biết trạng thái não của bạn", có lẽ là vấn đề nghiên cứu mở có giá trị bằng tiến sĩ nếu bạn đã đạt được tiến bộ đáng kể đối với chúng!

Khi bạn đến bước cuối cùng đó, tôi đề xuất Csound.

Csound là một hệ thống thiết kế âm thanh, tổng hợp âm nhạc và xử lý tín hiệu, cung cấp cơ sở vật chất cho các thành phần và hiệu suất trên một loạt các nền tảng. Nó không bị giới hạn trong bất kỳ phong cách âm nhạc nào, đã được sử dụng trong nhiều năm trong việc sáng tác nhạc cổ điển, pop, techno, môi trường xung quanh, thử nghiệm, và (tất nhiên), cũng như âm nhạc cho phim và truyền hình.

Ngoài ra, tôi đã từng có tầm nhìn rằng phòng máy chủ nên phản ánh tình trạng của máy chủ một cách ambiently. Vì vậy, tôi thiết lập chrips cricket với tần số dựa trên tải trung bình, sói howls cho các sự kiện đăng nhập nhìn thấy tailing hệ thống đăng nhập, và cú hoots cho (tại thời điểm tương đối không thường xuyên) trang web truy cập ...

Trong trường hợp đó nó chỉ là tát cùng nhau bằng Python với một số mẩu tin lưu niệm cơ bản ....

0

Tôi không biết làm thế nào tôi làm được, nhưng tôi có thể xem Bootchart, thực hiện một loạt các quá trình giám sát. Có thể điều đó có thể hữu ích trong việc tìm ra những gì đang xảy ra ngay bây giờ.

1

Khám phá Boodler, "công cụ soundscape nguồn mở".

1

JFugue là thư viện mã nguồn mở (Java/JVM) cho "âm nhạc lập trình mà không có sự phức tạp của MIDI". see article

Nó rất dễ dàng để bắt đầu, và có thể phục vụ như là một cơ sở cho chương trình của bạn, cả cho nhịp điệu và giai điệu.

+0

Thực tế, JFugue có một lớp Rhythm có thể cung cấp chính xác những gì bạn cần. –

2

Music as Data là một dự án rất thú vị - dường như được lấy cảm hứng từ SuperCollider và Chuck.

Thiết kế đặc biệt để dễ dàng hack/thử nghiệm trực tiếp - về cơ bản là bộ công cụ để tạo DSL nhạc.

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