Mục lục:

Trạm vòng lặp MIDI đa rãnh Arduino: 6 bước
Trạm vòng lặp MIDI đa rãnh Arduino: 6 bước

Video: Trạm vòng lặp MIDI đa rãnh Arduino: 6 bước

Video: Trạm vòng lặp MIDI đa rãnh Arduino: 6 bước
Video: Mountz Euro Torque Webinar: Testing Dynamic Torque for Power Tools 2024, Tháng bảy
Anonim
Trạm vòng lặp MIDI đa rãnh Arduino
Trạm vòng lặp MIDI đa rãnh Arduino
Trạm vòng lặp MIDI đa rãnh Arduino
Trạm vòng lặp MIDI đa rãnh Arduino
Trạm vòng lặp MIDI đa rãnh Arduino
Trạm vòng lặp MIDI đa rãnh Arduino

Trạm lặp, hay máy lặp, về cơ bản là một công cụ để phát lại trong thời gian thực các đoạn riff (vòng lặp) của nhạc cụ của bạn. Nó không nhằm mục đích như một phương tiện ghi âm, mà là một công cụ để định hình nguồn cảm hứng mà không bị phân tâm (và cuối cùng là biểu diễn trực tiếp…).

Có rất nhiều trạm ghi âm thanh vòng lặp trên mạng, cả dưới dạng phần cứng chuyên dụng (hầu hết mọi nhà sản xuất bàn đạp guitar đều có sản phẩm của riêng mình) hoặc phần mềm máy tính (Linux Sooper Looper tuyệt vời hoặc windows Mobius, để trích dẫn những thứ được biết đến nhiều nhất). Tôi chỉ có thể tìm thấy một số dự án về bộ lặp MIDI không phải âm thanh nhưng tự làm, nghĩa là một công cụ để ghi lại các sự kiện MIDI và phát lại chúng ngay lập tức trong một vòng lặp; hầu hết các dự án này (tất cả chúng, tôi nên nói) đều bị bỏ hoang hoặc bị mất … tốt, chúng ta đang ở đây với một dự án hoàn chỉnh cho tất cả mọi người!

Trạm vòng lặp Arduino MIDI này chỉ đơn giản là theo dõi các sự kiện MIDI đến và phát lại chúng. Bạn chỉ phải nhấn bàn đạp ghi âm, tạo đoạn riff tốt nhất từ trước đến nay và dừng ghi âm bằng cách nhấn lại bàn đạp. Siêu dễ:)

Dự án này dựa trên phần cứng mở dễ tìm (Arduino DUE), phần mềm (phần sụn và Arduino IDE của riêng tôi) và có thể được tùy chỉnh để phản ánh sở thích của bạn.

Hãy làm nó!

PS: vâng, nó siêu rẻ!

Bước 1: Giới hạn

Trước khi bạn bắt đầu mua các bộ phận phần cứng cho dự án, hãy để tôi cho bạn biết đâu là giới hạn của nó để bạn có thể quyết định tiếp tục hay dừng lại ở đây.

- do giới hạn phần cứng (về cơ bản là bộ nhớ Aduino DUE), độ dài tối đa mặc định của cụm từ bạn có thể ghi được giới hạn trong 46 giây.

- các vòng lặp không thể được lưu trữ và phát lại sau khi tắt. Tuy nhiên, bạn có thể gửi chúng đến PC và lưu chúng.

- không có lượng tử hóa ghi chú.

- Đồng hồ MIDI được hỗ trợ, nhưng ở giai đoạn sơ bộ tại thời điểm này.

- Các thông báo MIDI được ghi lại là ghi chú bật, tắt ghi chú, điều khiển thay đổi và uốn cong cao độ; các thông báo MIDI khác như sau khi chạm, thay đổi chương trình, SysEx, v.v. bị bỏ qua.

- Đa âm tối đa được đặt thành 10 theo mặc định (một lần nữa, giới hạn bộ nhớ Aduino DUE).

Mặt tích cực, các luồng MIDI từ nhiều nhạc cụ khác nhau, mỗi nhạc cụ truyền trên kênh riêng của nó, đều được hỗ trợ; điều này có nghĩa là bạn có thể ghi nhiều nhạc cụ MIDI cùng một lúc, nhiều lớp hoặc với bản nhạc của riêng chúng (nhiều ưu điểm hơn ở bước tiếp theo;)).

Nếu sống với những hạn chế này có vẻ hợp lý (và đó là đối với tôi), bạn sẽ có một khoảng thời gian rất tốt với điều này;)

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

Trạm vòng MIDI ở đây hoạt động rất đơn giản. Nó hoạt động theo cách tương tự như các trạm lặp âm thanh phần cứng mà mọi nhà sản xuất bàn đạp guitar đều có trong danh mục riêng của mình.

1) Chọn bản nhạc bạn muốn ghi lại chuỗi MIDI của mình. Theo mặc định, "một" bản nhạc được chọn, nhưng bạn có thể thay đổi nó bằng cách nhấn một trong các nút bản nhạc (một nút cho mỗi bản nhạc).

2) Khi bạn nhấn công tắc "GHI" / bàn đạp chân lần đầu tiên, bộ lặp sẽ hoạt động. Đèn LED màu xanh lá cây sáng lên. Nó sẽ đợi cho đến khi ghi chú đầu tiên của bạn được nhận trước khi bắt đầu ghi lại trình tự / đoạn trích thực tế.

3) Khi bạn đã hoàn thành trình tự của mình, hãy nhấn lại công tắc "GHI" / bàn đạp chân để xác định độ dài thực của riff. Đèn LED màu xanh lá cây tắt. Bộ lặp sẽ bắt đầu tái tạo chuỗi MIDI của bạn ngay lập tức. Nếu bạn đạt đến thời gian tối đa, quá trình ghi sẽ tự động dừng và trình tự sẽ bắt đầu được tái tạo trong một vòng lặp.

4) Bây giờ, bạn có thể quyết định ghi quá trình tự của mình trên bản nhạc hiện tại hoặc chọn một bản nhạc mới và ghi lại trên đó, bằng cách nhấn công tắc / bàn đạp chân "REC". Trong cả hai trường hợp, đèn LED màu vàng sẽ sáng, ngay cả khi bản nhạc mới trống vì đó là bản nhạc "nô lệ" (bổ sung cho bản nhạc đầu tiên được ghi lại). Nhấn một lần nữa để dừng quá mức (đèn LED màu vàng tắt).

Đối với những người bạn có thể kết nối với các trạm lặp âm thanh, tiến trình MIDI này được gọi là "REC / PLAY / OVERDUB" và là bước duy nhất được hỗ trợ.

Nếu bất kỳ lúc nào bạn cảm thấy rằng lần đăng quá mức gần đây nhất của mình không ổn, bạn có thể xóa bằng cách nhấn công tắc "hoàn tác" / bàn đạp chân. Bạn có thể xóa toàn bộ bản nhạc hiện tại bằng cách nhấn bàn đạp "REC" trong hơn 3 giây; bạn có thể đặt lại bộ lặp (đặt lại phần mềm) bằng cách nhấn ba nút bản nhạc đầu tiên cùng lúc hoặc bằng cách xóa tất cả các bản nhạc đã sử dụng.

Bạn có thể tắt tiếng / bật tiếng một bản nhạc bằng cách nhấn vào nút theo dõi của bản nhạc hiện tại.

Bạn có thể gửi một PANIC! bằng cách nhấn nút hoảng sợ. Bạn thậm chí có thể gửi một PANIC! bằng cách nhấn hai nút bản nhạc đầu tiên cùng một lúc.

Bộ lặp có một máy đếm nhịp đơn giản được tích hợp sẵn: một nốt trên thông báo MIDI cho nốt số "64" được gửi ở mức 100 BPM trên kênh 10 (kênh mà bạn có thể có máy đánh trống của mình đang nghe). Bạn có thể tăng hoặc giảm nhịp độ bằng cách điều chỉnh bộ mã hóa quang học; bằng cách nhấn nút chuyển bộ mã hóa quang học, bạn có thể bật / tắt máy đếm nhịp. Lưu ý rằng máy trống của bạn phải được đặt để phát âm thanh (tiếng lục cục, âm trầm hoặc bất kỳ âm thanh nào bạn thích) khi nhận được nốt MIDI "64" nếu không máy đếm nhịp sẽ bị tắt tiếng.

Một phiên bản xương sống của máy trạm MIDI này có thể được tạo ra với một công tắc chân duy nhất để bắt đầu và dừng ghi âm. Giữ công tắc được nhấn trong hơn 3 giây sẽ khởi động lại trạm vòng lặp.

Nếu bạn muốn đầu tư thêm thời gian để phát triển phần cứng, việc thêm công tắc và nút sẽ làm cho trạm lặp linh hoạt hơn. Trong hình là cách tôi đã cấu hình bốn bản nhạc của mình (hỗ trợ tối đa năm bản nhạc) trạm vòng lặp đầy đủ tính năng.

LƯU Ý QUAN TRỌNG: phần cứng trong ảnh của tôi là nguyên mẫu. Tôi đã sử dụng nhiều ổ cắm giắc cắm hơn mức cần thiết nhưng chỉ có bốn nút cho các bản nhạc. Điều này là do khi tôi bắt đầu dự án, tôi không hoàn toàn chắc chắn những yêu cầu cuối cùng sẽ là gì.

Các nút và công tắc chân tương đương nhau về mặt điện tử và bạn có thể sử dụng cái này thay cho cái kia; vì nhu cầu của tôi, vì luôn có quá ít không gian sàn (bàn đạp hiệu ứng chết tiệt;)), tôi đã hạn chế bàn đạp chân ở chức năng REC duy nhất.

Bước 3: 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
Phần cứng
Phần cứng

Hóa đơn nguyên vật liệu:

Trạm vòng lặp MIDI 5 rãnh đầy đủ tính năng

1x Arduino DUE

7x nút nhấn tạm thời

1x vỏ nhựa (tôi đã sử dụng vỏ 150 x 110 x 70 mm)

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

Ổ cắm giắc cắm gắn bảng điều khiển 1x 6,3 mm

1x bảng điều chỉnh lỗ 50x70 mm hai mặt

Đèn LED 5x 3 mm (xanh lục)

1x 3 mm LED (vàng)

1x bộ mã hóa quang học

1x optocoupler H11L1

1x 1N4148 diode

Điện trở 3x 1000 ohm

Điện trở 3x 220 ohm

Điện trở 10x 470 ohm

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

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

Tại sao không phải là UNO?

Các bài kiểm tra đầu tiên (và mã làm việc bắt đầu) được viết trên bảng arduino UNO "thông thường". Bo mạch này có giới hạn RAM buộc tôi phải giảm đa âm xuống "4", độ dài tối đa xuống dưới 4 giây và độ phân giải tối đa là 40 ms. Điều này không có xử lý đa kênh. Bằng cách loại bỏ theo dõi vận tốc, tôi có thể tăng thời gian ghi lên đến 7 giây.

Với UNO, bạn có thể nhận ra một trạm vòng lặp MIDI "đang hoạt động" sau đó, nhưng rất hạn chế.

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

Phần mềm chủ yếu dựa vào thư viện FortySevenEffects MIDI. Thư viện này rất tuyệt và làm cho loại dự án này có thể thực hiện được ngay cả đối với những người không phải lập trình viên như tôi.

Arduino IDE và cộng đồng của nó là một phần quan trọng khác của "thành công" này.

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 IDE, vui lòng đọc phần này trước.

Tôi đã viết hai phiên bản khác nhau của mã, dựa trên hai cách tiếp cận hoàn toàn khác nhau.

Nguyên tắc hoạt động của phiên bản 1 là trong quá trình ghi hoặc ghi quá mức, Arduino DUE sẽ kiểm tra và lưu trữ trong bộ nhớ (dễ bay hơi) của nó các sự kiện MIDI được hỗ trợ (ghi chú bật, tắt ghi chú, điều khiển thay đổi và uốn cong cao độ); trục thời gian được lượng tử hóa trong các bước 20 ms và các tin nhắn đã nhận được lưu trữ trong các khe đó tương ứng. Trong khi phát, các tin nhắn MIDI đã lưu trữ được gửi trở lại hệ thống tổng hợp tương ứng với lượng tử hóa thời gian.

Thay vào đó, nguyên tắc làm việc của phiên bản 2 là "đơn giản" ghi lại sự kiện midi và thời gian mà sự kiện đó phải được kích hoạt. Phiên bản 2 có các giới hạn khác với phiên bản 1 (được liệt kê ở bước trước). hãy thử cả hai và sử dụng cái phù hợp hơn với bạn.

Cũng có xử lý Đồng hồ sơ bộ, nhưng nó sẽ cần một số chỉnh sửa để hoạt động như bình thường. Mã giả định rằng bạn ghi một vòng lặp 4/4 - 4 ô nhịp (16 nhịp).

Bạn có thể tắt đồng hồ bên ngoài bằng cách nhấn nút "hoảng sợ" khi bật bộ lặp.

Các mã được tải lên TẠI ĐÂY. Nhận xét được đặt trên tất cả chúng, vì vậy bạn có thể bẻ cong phần sụn đó theo ý muốn của mình;)

Bước 5: 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 mạch MIDI IN và MIDI OUT được báo cáo trong các bức ảnh đính kèm. Lưu ý rằng TX1 và RX1 được sử dụng, không phải TX0 và RX0.

Chân đầu vào Arduino DUE không thể xử lý 5V, nhưng 3.3V; đây là lý do tại sao bộ ghép quang H11L1 được sử dụng thay vì 6N138 phổ biến hơn. Tôi có bằng chứng rằng việc sử dụng 6N138 được kết hợp với bộ chia điện áp để giảm điện áp tín hiệu đến TX1, như trong nguyên tác đầu tiên của tôi, có thể hoạt động thất thường trong một số thiết lập.

Đèn LED được kết nối với chân đầu ra Arduino DUE thông qua điện trở 470 Ohm. Bạn có thể sử dụng điện trở lên đến 1K ohm để giảm dòng điện đến đèn LED và giảm độ sáng của chúng.

Các nút / công tắc / giắc cắm được kết nối trực tiếp với các chân đầu vào của Arduino nhờ các điện trở pullup đầu vào, được kích hoạt trong bản phác thảo. Không cần điện trở bên ngoài (kéo xuống).

Bộ mã hóa quang được kết nối với GND và + 5V. Nó đi đến các chân đầu vào Arduino đi qua 2 điện trở 480 ohm, một cho mỗi đầu ra dữ liệu quang.

Arduino DUE được cấp nguồn trực tiếp từ chân 5V và nối đất thông qua trung tâm DC + 5V.

Tất cả các căn cứ đều gắn liền với nhau.

Kèm theo đó là một bảng với các kết nối từ chân arduino đến thiết bị ngoại vi IN / OUT. Số pin Arduino phản ánh những số đó trong phần cứng mẫu của tôi và có thể trông (một cách nào đó chúng là…) ngẫu nhiên. Bạn có thể dễ dàng sửa đổi vị trí ghim trong bản phác thảo theo ý muốn của mình;)

Bước 6: Điều gì xảy ra nếu tôi có nhiều hơn một nguồn MIDI?

Điều gì xảy ra nếu tôi có nhiều hơn một nguồn MIDI?
Điều gì xảy ra nếu tôi có nhiều hơn một nguồn MIDI?

Sau một thời gian ngắn tìm kiếm sự hợp nhất MIDI, tôi thấy rằng giải pháp thiết thực nhất (và rẻ) là một bộ chuyển đổi MIDI.

Bộ chuyển đổi MIDI là một thiết bị thụ động cho phép nguồn MIDI và tắt tất cả các nguồn khác. Đơn giản như vậy.

Trái tim của bộ chuyển MIDI là công tắc đa vị trí (của tôi là 6 vị trí), công tắc 2 cực. Điều rất quan trọng là số lượng cực là "2" vì mọi ổ cắm MIDI phải được cắt hoàn toàn nếu không được chọn và không giao tiếp với các ổ cắm khác. Đính kèm là một bức ảnh mà tôi nhận ra để sử dụng cho riêng mình.

Tại LINK NÀY, một chương trình.

Đề xuất: