Mục lục:

Arduino MIDI Rhythm Section Sequencer: 8 Step (with Hình ảnh)
Arduino MIDI Rhythm Section Sequencer: 8 Step (with Hình ảnh)

Video: Arduino MIDI Rhythm Section Sequencer: 8 Step (with Hình ảnh)

Video: Arduino MIDI Rhythm Section Sequencer: 8 Step (with Hình ảnh)
Video: Polyphonic MIDI Synth on an ATtiny2313 2024, Tháng mười một
Anonim
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer
Arduino MIDI Rhythm Section Sequencer

Ngày nay, có một máy trống phần mềm tốt thì dễ và rẻ nhưng sử dụng chuột giết chết niềm vui đối với tôi. Đây là lý do tại sao tôi nhận ra những gì ban đầu được dự định là một bộ tuần tự trống MIDI phần cứng 64 bước có khả năng kích hoạt lên đến 12 phần tử trống (bộ phận) khác nhau, nhưng sau đó được phát triển trong một bộ tuần tự phần nhịp điệu…

… Chúng ta bắt đầu!

Bước 1: Cách thức hoạt động

Phần cứng này không thể tự tạo ra âm thanh mà chỉ trình tự phần cứng bên ngoài thông qua MIDI. Điều này có nghĩa là bạn sẽ cần một bộ tạo âm thanh của âm trống (bộ lấy mẫu hoặc bộ tổng hợp trống hoặc PC với phần mềm trống yêu thích của bạn hoặc bất kỳ thứ gì bạn thích) có khả năng được kích hoạt bởi các thông báo ghi chú MIDI.

Nó chủ yếu bao gồm ma trận 4 x 4 nút (với đèn LED), một nút cho mỗi bước của thanh. Toàn bộ chuỗi 64 bước được tạo thành bởi 16 bước nhân 4 thanh. Mỗi bước là 1/16 của một nốt nhạc.

Có hai chế độ hoạt động: chế độ trực tiếp và chế độ chỉnh sửa.

Trong chế độ chỉnh sửa, bạn thực sự có thể chỉnh sửa từng bước trình tự của mình bằng cách xác định trống nào sẽ phát trong mỗi bước.

Dụng cụ phần cứng bên ngoài của bạn ("trống") được kích hoạt bằng cách gửi thông báo "ghi chú trên" MIDI cho các "số ghi chú MIDI" khác nhau trên số kênh "10". Theo mặc định, những số ghi chú này là

trống # 1 (tức là kick) -> nốt MIDI số "60"

trống # 2 (tức là snare) -> nốt MIDI số "62"

trống # 3 (tức là vỗ tay) -> nốt MIDI số "64"

trống # 4 (tức là Hihat) -> nốt MIDI số "65"

trống # 5 -> nốt MIDI số "67"

trống # 6 -> nốt MIDI số "69"

trống # 7 -> nốt MIDI số "71"

trống # 8 -> nốt MIDI số "72"

trống # 9 -> nốt MIDI số "74"

trống # 10 -> nốt MIDI số "76"

trống # 11 -> nốt MIDI số "77"

trống # 12 -> nốt MIDI số "79"

Bạn có thể thay đổi các giá trị này (và kênh MIDI) trong bản phác thảo nếu muốn.

Trong chế độ trực tiếp bằng cách nhấn các nút bước, bạn có thể chơi trực tiếp trống liên quan đến từng bước bằng cách gửi tin nhắn MIDI thông qua nối tiếp. Bạn có thể ghi trực tiếp các lần nhấn nút và / hoặc các tin nhắn MIDI đến.

Cả ở chế độ trực tiếp và chế độ chỉnh sửa, bạn có thể tắt tiếng (hoặc bật tiếng) trống, "cuộn phát" trống hiện đang hoạt động và "xoay" chuỗi của bạn.

Phần tiết tấu?

Hầu hết các trình tự trống hoàn toàn là bộ kích hoạt bộ phận trống MIDI, với một số nốt MIDI cố định cho mỗi âm trống. Trong trường hợp này, chúng tôi có một "bộ tuần tự phần nhịp điệu" hơn một "bộ trình tự trống" thuần túy vì bạn thậm chí có thể trình tự các bộ tổng hợp.

Đọc HƯỚNG DẪN BẮT ĐẦU NHANH để biết thêm chi tiết và danh sách đầy đủ các tính năng.

Bước 2: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Dự án này được thực hiện xung quanh một bảng Arduino DUE. Tôi đã cố gắng giữ cho phần cứng càng đơn giản càng tốt, tức là bằng cách tránh sử dụng trình điều khiển LED. Arduino DUE có thể không phải là bảng thích hợp nhất để xử lý một loạt đèn LED mà không có trình điều khiển LED vì nó có giới hạn dòng điện đầu ra (từ 5 mA đến 15 mA, tùy thuộc vào chân cắm), nhưng đó là Arduino nhanh nhất và thời gian là tất cả mọi thứ khi xử lý với trình tự. Vì vậy, hãy nhớ rằng cấu hình phần cứng NÀY có thể đẩy Arduino DUE của bạn đến giới hạn của nó và có thể làm hỏng nó về lâu dài.

Điều này đang được nói, phần cứng chủ yếu là 16 nút, 16 đèn LED (một cho mỗi bước) với 5 nút bổ sung cho các chức năng và 3 chiết áp. Tôi cũng đã thêm một đèn LED màu đỏ sau khi thêm chức năng ghi trực tiếp.

Đây là hóa đơn vật liệu:

- 1x Arduino DUE

- 16x nút nhấn tạm thời, không chốt với đèn LED tích hợp (bạn có thể sử dụng đèn LED bên ngoài nếu bạn thích, nhưng hãy nhớ sử dụng đèn LED công suất thấp !!)

- 1x LED đỏ (công suất thấp!)

- 5x nút nhấn tạm thời, không chốt

- 3x 10K một lượt, tuyến tính, chiết áp

- Giắc cắm mono jack cắm trên bảng điều khiển 3x 6,5 mm

- Vỏ nhựa 1x (Tôi đã sử dụng vỏ 190x140x70 mm)

- 2x đầu nối ổ cắm gắn bảng điều khiển DIN nữ 5 chân 5 chân (MIDI)

- 1x bảng điều chỉnh độ rộng 70x90 mm hai mặt

- Dải tiêu đề đầu ghim một hàng đơn nam 2x 40 pin (2,54 mm), tốt hơn nếu được mạ vàng

- 1x optocoupler H11L1

- 1x 1N4148 diode

- Điện trở 23x 1000 ohm

- Điện trở 3x 220 ohm

- 2x bóng bán dẫn BC547 pnp

… Dây hàn, một số dây cáp, trạm hàn, dụng cụ khoan… và thời gian rảnh rỗi:)

Xin lưu ý rằng các nút trong hình đã được thay thế bằng một loại nút ấn khác (thậm chí rẻ hơn…) vì độ nảy quá mức…

Thời gian cần thiết để hoàn thành dự án: 8 - 10 giờ

CẢNH BÁO: LUÔN LUÔN đeo kính và găng tay bảo vệ khi khoan! Các mảnh vật liệu nóng có thể chiếu vào mắt bạn hoặc tiếp xúc với da của bạn và gây bỏng hoặc thậm chí tổn thương nghiêm trọng hơn cho bạn hoặc những người xung quanh bạn

Bước 3: Dây

Dây điện
Dây điện
Dây điện
Dây điện
Dây điện
Dây điện

Các nút bước được kết nối trực tiếp với các chân Arduino từ 22 (bước 1) đến 37 (bước 16). Các nút nối đất là daisy chuỗi và được kết nối với mặt đất DUE của Arduino. Không cần thiết phải có điện trở kéo lên hoặc kéo xuống vì các điện trở kéo lên tích hợp Arduino được kích hoạt phần mềm (xem bản phác thảo).

Điều này cũng đúng với 5 nút bổ sung (chân Arduino 2, 3, 4, 5 và 6), được sử dụng cho các chức năng khác với các bước. Tôi cũng đã đặt một đầu nối giắc cắm cái 6,5 mm song song với nút "bắt đầu" để có thể phát và dừng các chuỗi của tôi từ xa.

Các đèn LED được kết nối với mặt đất (daisy chain) và các chân Arduino DUE từ 38 (bước # 1) đến 53 (bước # 16) nối tiếp với một điện trở 1K ohm mỗi chân để hạn chế việc tiêu hao dòng điện và bảo vệ vi điều khiển.

Chiết áp được kết nối như trong hình đính kèm. Chú ý rằng điện áp tham chiếu là 3,3V, không phải 5V. Đầu vào được sử dụng là A0, A1 và A2.

Tôi cũng triển khai hai đầu ra kích hoạt cho tín hiệu arpeggio, giống như những đầu ra cần thiết để khởi động synth cũ của những năm 80 như Korg Polysix và Roland Juno 6/60. Chúng được kết nối với chân A3 và A4, nhưng bạn có thể sử dụng chân kỹ thuật số nếu bạn thích là tín hiệu kỹ thuật số. Trong trường hợp bạn sắp xếp thứ tự một hệ thống tương thích với tín hiệu V-Trig (kích hoạt điện áp), thì một điện trở nối tiếp 1k ohm để giảm dòng điện tiêu hao là đủ; trong trường hợp có synth S-Trig (kích hoạt công tắc), bạn sẽ cần một mạch chuyển đổi pnp đơn giản (xem sơ đồ đính kèm).

Các mạch MIDI IN và OUT được mô tả trong các hình đính kèm. Lưu ý rằng, trái với hầu hết các arduinos, Rx1 và Tx1 được sử dụng theo mặc định trên các bo mạch DUE thay vì Rx0 và Tx0. Điều này thật tuyệt vì bạn có thể tải lên bản phác thảo của mình mà không cần phải ngắt kết nối Rx mỗi lần. Cũng lưu ý rằng tôi đã sử dụng bộ ghép quang H11L1 vì tôi không thể chạy vì nó phải là 6N138 phổ biến trong giới hạn 3.3V của Arduino DUE.

Bước 4: Phần mềm

Bản phác thảo đã được viết trong Arduino IDE và phải được tải lên bảng Arduino DUE của bạn. Tôi sẽ không đi vào chi tiết về cách tải bản phác thảo lên arduino DUE của bạn. Nếu đây là trải nghiệm đầu tiên của bạn với Arduino DUE, hãy đọc phần này. Nếu đây là trải nghiệm đầu tiên của bạn với arduino IDE, vui lòng đọc phần này.

Bạn có thể tải xuống firmwareHERE đã cập nhật (liên kết github).

Bản phác thảo dựa trên thư viện FortySevenEffects MIDI tuyệt vời. Bạn sẽ cần cài đặt thư viện trong IDE arduino của mình.

Các ghi chú ra MIDI được gán cho mỗi trống được xác định bởi biến drumNote [STEPS_NUM] trong bản phác thảo. Bạn có thể thay đổi chúng theo ý mình.

Số kênh đầu ra MIDI cho trống được đặt thành "10" theo mặc định.

Tôi không phải là một lập trình viên trong cuộc sống thực và chắc chắn có nhiều cách tốt hơn để viết mã những gì chúng ta đang cần ở đây. Nếu bạn là một lập trình viên với bất kỳ gợi ý, bạn được hoan nghênh! Vui lòng gửi cho tôi bất kỳ biến thể nào có thể làm tăng hiệu quả / hiệu quả của mã và tôi sẽ đưa nó vào bản phác thảo chính (rõ ràng là trích dẫn Người đóng góp!).

Bước 5: Hướng dẫn Bắt đầu Nhanh

DRUMS: KÉO DÀI BƯỚC THEO BƯỚC

Ngay sau khi bạn khởi động trình tự sắp xếp của mình (hoặc đặt lại nó), một trình tự trống sẽ được tải. Trình tự động khởi động ở chế độ chỉnh sửa, với thanh đầu tiên được giữ / khóa và trống đầu tiên (tức là kick) được chọn. Điều này có nghĩa là chỉ cần nhấn nút bước bất kỳ, bạn sẽ ngay lập tức gán "kick" cho các bước đó. Âm lượng mà trống sẽ được kích hoạt được đặt bằng vị trí của chiết áp "âm lượng" khi gán trống cho bước. Bằng cách nhấn lại nút bước đã chỉ định trước đó, bạn sẽ bỏ gán trống hiện tại ở bước đó.

Nếu bạn nhấn nút "bắt đầu", bạn sẽ thấy đèn LED chạy từ trái sang phải, từ trên xuống dưới, phát "kick" bất cứ khi nào vượt qua một bước kick.

Bằng cách nhấn giữ nút "shift", bạn sẽ thấy đèn LED bước thứ nhất trên hàng thứ nhất được bật (nghĩa là trống đầu tiên được chọn) và đèn LED bước đầu tiên trên hàng thứ tư (nghĩa là bạn bị khóa ở thanh đầu tiên). Bây giờ bạn có thể thay đổi trống mà bạn muốn trình tự bằng cách nhấn nút bước khác trong khi vẫn nhấn "shift". Sau khi chọn trống mới, nhả "shift". Tất cả các đèn LED sẽ tắt (vì bạn chưa gán trống mới cho bất kỳ bước nào) và bạn có thể bắt đầu gán trống mới cho các bước. Lặp lại tất cả các trống bạn cần (tối đa 12 trống).

Bây giờ bạn đã tạo một mẫu đẹp, hãy tiếp tục nhấn "shift" và tắt bước được căn chỉnh cao ở hàng dưới cùng (nó phải là bước đầu tiên của hàng thứ 4 nếu bạn đã áp dụng cùng một bố cục mà tôi đã sử dụng): bạn vừa " đã mở khóa "chuỗi giờ sẽ chạy trên tất cả 4 thanh. Các đèn LED thô phía dưới sẽ bắt đầu "di chuyển", cho biết thanh nào hiện đang được phát (tiến trình thanh). Bạn sẽ nhận thấy rằng chỉ khi ở thanh đầu tiên, một chuỗi sẽ phát, với tất cả 3 thanh còn lại không phát ra âm thanh. Điều này là do bạn đã chỉ định trống cho thanh đầu tiên, các thanh khác được để trống. Bạn có thể điền chúng bằng tay (chọn một thanh mới bằng cách nhấn một trong 4 nút bước cuối cùng trong khi vẫn nhấn "shift", chọn một trong các trống, điền các bước, v.v.) hoặc sao chép và dán chuỗi thanh bạn đã tạo vào tất cả các thanh bằng cách vào chế độ chỉnh sửa (khóa lại thanh đầu tiên) và nhấn "ghi" (hiện đảm nhận chức năng "dán") trong khi vẫn nhấn "shift". Thực hiện dễ dàng hơn đã nói.

DRUMS: CHẾ ĐỘ CHƠI TRỰC TIẾP

Khi khởi động trình tự sắp xếp ở chế độ chỉnh sửa. Để thoát khỏi chế độ chỉnh sửa, bạn phải tiếp tục nhấn "shift" và nhấn nút thanh hiện đang được giữ / khóa (nút bước trên hàng thứ 4 được bật). Thao tác này sẽ tắt đèn LED của thanh đã khóa trước đó và mở khóa trình tự. Bây giờ bạn đang ở chế độ chơi trực tiếp.

Trong chế độ phát trực tiếp, bằng cách nhấn bất kỳ nút bước nào, trống liên kết với nút đó sẽ được kích hoạt.

Nếu bạn muốn ghi trực tiếp trình tự của mình, hãy bắt đầu trình tự bằng cách nhấn "phát", sau đó nhấn nút "ghi" (chỉ ở chế độ phát trực tiếp). Đèn LED màu đỏ sẽ bật. Việc bạn chơi trên bảng điều khiển bảng điều khiển trình tự trống hoặc bất kỳ thông báo ghi chú MIDI nào đến (tức là từ bàn phím MIDI bên ngoài) sẽ được ghi lại.

Cac chưc năng khac

Bằng cách nhấn nút "cuộn", trống hiện đang hoạt động sẽ được phát ở mỗi bước (trong một cuộn). Điều này hoạt động ở cả chế độ "từng bước" và "phát trực tiếp".

Bằng cách nhấn bất kỳ nút nào trong khi vẫn nhấn nút "tắt tiếng", trống liên quan đến bước đó sẽ bị tắt tiếng (hoặc bật tiếng). Điều này hoạt động ở cả chế độ "từng bước" và "phát trực tiếp".

Bạn có thể xóa một chuỗi trống cụ thể bằng cách nhấn nút bước tương đối trong khi vẫn nhấn nút "GHI".

Bạn có thể xóa toàn bộ trình tự (thiết lập lại mềm) bằng cách giữ nguyên nút "bắt đầu" trong hơn 3 giây.

Bạn có thể "xoay" chuỗi của mình bằng cách xoay chiết áp "xoay".

Bạn có thể tắt / bật tiếng vọng MIDI bằng cách nhấn nút "mute" trong khi vẫn nhấn nút "shift". Khi bật tiếng vọng MIDI (mặc định), bất kỳ thông tin nào hiện diện ở giắc MIDI INPUT sẽ được gửi đến giắc MIDI OUTPUT (chỉ có nốt MIDI bật, tắt nốt, uốn cong cao độ, cảm ứng sau và thay đổi điều khiển mới được lặp lại).

Cả đầu vào và đầu ra đồng hồ MIDI đều được triển khai và kích hoạt theo mặc định. Trong trường hợp không nhận được đầu vào đồng hồ, nhịp độ được đặt bằng chiết áp chuyên dụng. Trong trường hợp nhận được đầu vào đồng hồ MIDI, nhịp độ sẽ được tính từ đó và chiết áp nhịp độ sẽ không phản hồi. Đồng hồ MIDI luôn được gửi đến MIDI ra.

Bước 6: Phần Nhịp điệu

Ý tưởng ban đầu là một bộ trình tự trống MIDI 64 bước "thuần túy" để trình tự lên đến 12 bộ phận trống độc lập. Sau một số thử nghiệm, tôi nhận thấy rằng việc kiểm soát dòng âm trầm cũng rất tuyệt và tôi đã chỉ định tính năng thay đổi cao độ trên mỗi bước cho trống mới nhất. Sau đó, tôi sửa đổi mã một lần nữa để tôi có thể thay đổi cao độ trong mỗi trống và điều khiển tối đa 12 bộ tổng hợp. Một bản sửa đổi sau đó tôi đã thêm polyphony (polyphony per-synth giới hạn ở 3 theo mặc định).

Tóm lại:

- trong khi ở chế độ TRỰC TIẾP, nếu ghi âm TRỰC TIẾP được thực hiện và bắt đầu trình tự, bạn có thể ghi lại các tin nhắn ghi chú MIDI đến, đa âm. Thông tin quảng cáo chiêu hàng và âm lượng sẽ được lưu trữ. Thông tin bẻ lái và hộp số sau bị mất. Điều khiển MIDI Các thông báo thay đổi sẽ được lưu trữ. Hãy nhớ rằng bạn chỉ có một vị trí CC cho mỗi kênh, mỗi bước.

- Nếu trình tự bị dừng, bạn có thể ghi lại tối đa 3 giá trị cao độ (hợp âm) cho một bước cụ thể của một thanh cụ thể bằng cách nhấn giữ nút bước đích và nhấn (đồng thời hoặc từng phím một) các phím mong muốn trên bàn phím kết nối với cổng MIDI IN.

Thông báo rằng:

- ghi chú được kích hoạt trên một bước sẽ bị "giết" ở bước tiếp theo. Để tăng độ dài ghi chú, hãy hành động trên tham số VCA "phát hành" của bộ tổng hợp của bạn.

- trái với trống, không thể chơi các nốt trong một cuộn bằng cách nhấn nút "cuộn".

- Khi ghi LIVE, dữ liệu kênh MIDI đến được lưu trữ trong bước "trống" tương đối (kênh MIDI # 1 -> "trống" # 1, v.v.).

Bạn có thể xóa một chuỗi tổng hợp cụ thể bằng cách nhấn nút bước "trống" tương đối trong khi vẫn nhấn nút "GHI". Nhấn lại lần nữa sẽ xóa chuỗi trống. Nếu một chuỗi CC được ghi lại, đó sẽ là chuỗi đầu tiên bị xóa, sau đó theo thứ tự CC -> Synth -> Drum

Bước 7: Kích hoạt Arpeggio

Các synth trước MIDI đầu những năm 80 thường được trang bị một đầu vào đôi khi được gọi là "đầu vào kích hoạt arpeggio". Bằng cách gửi tín hiệu trig 2,5 đến 5,0 V (V-trig hoặc "bộ kích hoạt điện áp") hoặc bằng cách nối đất đầu vào bộ kích hoạt arpeggio (S-Trig hoặc "bộ kích hoạt công tắc"), bạn có thể yêu cầu bộ tổng hợp tiến thêm một bước trên chuỗi arpeggio. Điều này có thể khó quản lý với bộ tuần tự mà không có bộ kích hoạt chuyên dụng (đôi khi âm thanh "rimshot" từ một đầu ra chuyên dụng / được sử dụng như một bộ xử lý cho V-trig synths) nhưng với bảng vi điều khiển, bạn có thể dễ dàng quản lý tín hiệu và điều khiển như vậy synth arpeggio của bạn như ý nghĩa của nó đối với nhà máy.

Bộ tuần tự phần nhịp điệu này bao gồm khả năng kích hoạt bộ phối âm của hai bộ tổng hợp khác nhau, một cách độc lập.

Việc sử dụng rất dễ dàng: chọn trống 11 hoặc 12 (nhấn bước 11 hoặc 12 trong khi nhấn "shift") và kích hoạt các bước bạn muốn arpeggiator di chuyển một bước. Bằng cách này, bạn có thể "lập trình" rất chặt chẽ 1/16 của một nốt nhạc hợp âm rải thông thường bằng cách kích hoạt tất cả các bước, hoặc 1/8 bằng cách kích hoạt mọi bước khác. Ngoài ra, bạn có thể lập trình hợp âm rải phức tạp hơn bằng cách kích hoạt các bước theo một đường dẫn không thông thường.

Tùy thuộc vào loại tín hiệu kích hoạt được hỗ trợ bởi synth bạn muốn điều khiển, bạn sẽ cần sửa đổi phần cứng đơn giản: trong trường hợp V-trig (tức là synths Roland), hãy đặt một điện trở 1 Kohm nối tiếp với đầu ra kích hoạt arduino. Trong trường hợp có S-trig (tức là synths Korg), hãy sử dụng shematic được gắn vào bước "đấu dây" để kích hoạt công tắc an toàn.

Bước 8: Nếu mọi thứ không hoạt động…

Ngay cả một dự án tương đối đơn giản như thế này rất có thể sẽ không hoạt động 100% trong lần đầu tiên bạn bật nó lên. Ở đây, Ví dụ: sự tương phản giữa các nút và đèn LED là rất quan trọng và một hệ thống dây điện không được quản lý sẽ làm cho bộ tuần tự không được sử dụng.

Để kiểm tra tất cả các thành phần khác nhau tạo nên bộ tuần tự, tôi đã viết một bản phác thảo thử nghiệm đơn giản (xem phần đính kèm).

Bạn có thể tải xuống phần mềm thử nghiệm mới nhất TẠI ĐÂY (liên kết GitHub).

Bản phác thảo thử nghiệm hoạt động như sau:

- nhấn nút bước: đèn LED tương ứng sẽ bật và ghi chú MIDI trên kênh 10 sẽ được gửi đến đầu ra MIDI.

- nhấn một nút chức năng: một trong 5 đèn LED đầu tiên sẽ bật.

- vặn chiết áp: LEDS sẽ sáng tương ứng (nồi thứ nhất -> hàng đèn LED thứ nhất, nồi thứ hai -> hàng đèn LED thứ hai, nồi thứ ba -> hàng đèn LED thứ ba).

- nếu nhận được ghi chú MIDI bật, đèn LED đầu tiên sẽ nhấp nháy.

Hãy nhớ rằng tiếng vọng MIDI được bật theo mặc định. Điều này có nghĩa là nếu bạn có một vòng lặp MIDI giữa một synth và MRSS, điều này có thể gây ra sự cố (tôi đã gặp phải tình trạng một nốt kép có thể đoán trước được kích hoạt hầu hết các lần, nhưng cũng có những nốt rất thấp được kích hoạt và bàn phím tích hợp thường không phản hồi với synth có MIDI hoạt động như MIDI Throu… nó phụ thuộc vào hệ thống). Nếu đúng như vậy, hãy tắt tiếng vọng MIDI bằng cách nhấn nút "mute" trong khi vẫn nhấn nút "shift".

Đề xuất: