Mục lục:

Một hộp MIDI đến CV khác: 7 bước (có hình ảnh)
Một hộp MIDI đến CV khác: 7 bước (có hình ảnh)

Video: Một hộp MIDI đến CV khác: 7 bước (có hình ảnh)

Video: Một hộp MIDI đến CV khác: 7 bước (có hình ảnh)
Video: Em Thích Bông Hoa Này à #duyvanpham #shorts #duyphuong 2024, Tháng bảy
Anonim
Một hộp MIDI đến CV khác
Một hộp MIDI đến CV khác

Một hộp MIDI to CV khác là một dự án mà tôi đã phát triển khi một chiếc Korg MS10 gõ cửa và diễn ra trong phòng thu của tôi. Do thiết lập của tôi liên quan nhiều đến MIDI để tự động hóa và đồng bộ hóa tất cả các nhạc cụ, khi tôi mua MS10, vấn đề đầu tiên tôi phải đối mặt là làm thế nào để thực hiện điều khiển như vậy.

Korg MS20 / 10 không phải là synth dễ nhất để triển khai MIDI: trước hết, chúng dựa vào điều khiển Hz / V (tương quan tuyến tính giữa điện áp điều khiển và tần số nốt), thay vì oct / V (1V mỗi quãng tám); thứ hai, để cắt một nốt nhạc, bạn phải gửi tín hiệu cổng âm và nối ngắn đầu vào xuống đất (S-Trig), không phải tín hiệu +5 V (V-trig).

Ngày nay có rất nhiều giải pháp thương mại khác nhau để điều khiển các nhạc cụ như vậy (ví dụ như Arturia Beatstep Pro, Korg SQ-1, Kenton Solo) nhưng tôi là một tên khốn rẻ tiền và thậm chí 100 euro cũng là quá nhiều cho một thiết bị "không có âm thanh":).

Sau đó, chúng ta đang ở đây: hãy để tôi chỉ cho bạn cách tạo hộp MIDI đến CV ngân sách thấp để điều khiển / tự động hóa cao độ, cổng, tốc độ và tần số cắt của hệ thống MIDI trước với bộ điều khiển MIDI bên ngoài (Bàn phím, DAW, bộ thu âm hoặc bất cứ thứ gì).

"Thế còn MS20 mini mới?"

Như hầu hết mọi người đều biết, MS20 mới thực sự đã sẵn sàng MIDI: IN với đầu nối MIDI 5 cực và IN / OUT với đầu nối USB.

"Vì vậy, nếu tôi có một MS20 mini, thứ này là vô dụng!"

Ồ không. MS20 mini chỉ nhận dạng tin nhắn bật / tắt ghi chú và bàn phím không nhạy cảm với tốc độ. Không có cách nào để khắc phục điều này với bàn phím cổ điển hoặc mini MS10 / 20, nhưng với hộp midi và bàn phím nhạy cảm với tốc độ thì bạn thật tuyệt vời. Ngoài ra, với hộp MIDI, bạn có thể tự động cắt bộ lọc (hoặc bất kỳ thông số điều khiển điện áp nào khác) hoặc điều chỉnh nó bằng ghi chú MIDI đến về vận tốc. Một lần nữa, kênh MIDI duy nhất mà MS20 mini đáp ứng là kênh 1. Với hộp này, bạn cũng có thể vượt qua giới hạn này.

"Nếu tôi có synth tháng 10 / V thì sao?"

Không vấn đề gì! Mã tôi đã viết có thể tương thích với các bộ tổng hợp Oct / V (chưa được kiểm tra, nhưng tôi tin rằng nó sẽ hoạt động hiệu quả;)).

Bước 1: !! Lưu ý Thận trọng - Tuyên bố từ chối trách nhiệm !

Thiết bị của bạn rất có giá trị và không nên được sử dụng để thực hiện các bài kiểm tra.

Việc đùa giỡn với điện có thể làm hỏng thiết bị của bạn hoặc gây hại cho chính bạn.

Tôi không chịu trách nhiệm về những thiệt hại đối với thiết bị / phần cứng của bạn hoặc thậm chí chính bạn đến từ bất kỳ phần mềm hoặc chương trình hoặc thông tin hoặc liên kết nào mà tôi đã báo cáo trong hướng dẫn này.

Bạn đã được cảnh báo!

Bước 2: Kỹ thuật phần cứng

Arduino rất hữu ích khi xử lý các dự án như thế này. Sự tồn tại của một Cộng đồng lớn và các thư viện rất tốt trải dài hầu hết mọi nhiệm vụ thông thường khiến nó trở thành một lựa chọn đúng đắn. Tại đây bo mạch sẽ được lập trình để nó đọc dữ liệu MIDI đến và sau đó sẽ gửi điện áp thích hợp đến ổ đĩa:

- Pitch, bằng cách chuyển đổi đầu ra pwm thành điện áp tương tự để điều khiển VCO thông qua bộ chuyển đổi kỹ thuật số sang tương tự (DAC)

- Vận tốc, bằng cách lọc đầu ra pwm để điều khiển VCA với bộ lọc RC đơn giản

- Lọc Tần số ngắt, bằng cách lọc đầu ra pwm để điều khiển VCF với bộ lọc RC đơn giản

- Cổng, trực tiếp từ đầu ra kỹ thuật số trong trường hợp V-trig (đặt 1Kohm mắc nối tiếp với đầu ra để giảm dòng điện) hoặc bằng công tắc bóng bán dẫn pnp đơn giản ra khỏi đầu ra kỹ thuật số (xem sơ đồ đính kèm với bước sơ đồ).

Arduino không có khả năng tạo ra điện áp ổn định trực tiếp mà là các xung 0 / + 5 V với các chu kỳ khác nhau (PWM). Chúng tôi đang cần bộ chuyển đổi kỹ thuật số sang tương tự (DAC) cho thiết bị đổ bộ. Bộ lọc RC là DAC dễ dàng nhất mà tôi có thể nghĩ đến. Một bộ lọc RC là phù hợp cho bộ khuếch đại và bộ lọc được điều khiển bằng điện áp (VCA và VCF). Các bộ lọc RC được điều chỉnh để tạo ra tần số cắt <20Hz (tần số âm thanh thấp nhất).

Tôi đã thực hiện một số thử nghiệm với tụ điện không phân cực công suất thấp và tôi đã kết thúc với giá trị dung lượng 0,1uF là phù hợp nhất. Đã kiểm tra tốt trên MS20 MKII.

Thật không may, chúng tôi không thể dựa vào bộ lọc RC để điều khiển bộ dao động điều khiển điện áp (VCO) vì nó sẽ không chính xác (tính theo thang Hz / V, ở đầu dưới hai nửa cung đoạn tuyến chênh lệch nhau dưới 0,02V; tính bằng V / oct hai bán nguyệt liền kề khác nhau 0,083 V); chúng tôi sẽ sử dụng một IC DAC (MPC4725) cho việc này.

Giới hạn đã biết

Giới hạn điện áp ổ đĩa ở mức 5V (điện áp đầu ra của Arduino), phạm vi đầy đủ từ 0 đến 5V được bao phủ cho vận tốc; điểm cắt bị che một nửa (-5V đến + 5V); phạm vi VCO được bao phủ một phần vì tính bằng Hz / V, điện áp 8 V sẽ được yêu cầu để đạt được 440 Hz A4. Với giới hạn đầu ra 5V, chúng ta có thể đưa bộ dao động lên đến tần số D4 tính bằng Hz / V.

Bước 3: Danh sách thành phần

Danh sách thành phần
Danh sách thành phần
Danh sách thành phần
Danh sách thành phần
Danh sách thành phần
Danh sách thành phần

Bạn đang cần:

1X Arduino UNO (hoặc nano)

Bo mạch DAC 1X MPC4725

4X 1/8 "hoặc 1/4" đầu nối mono

Đầu nối 1X MIDI

Bộ ghép quang 1X 6N138

1X 1N4148 diode

1X 220 ohm 1/4 W điện trở

Điện trở 1X 470 ohm 1/4 W

Điện trở 1X 10K ohm 1/4 W

Điện trở 4X 1K ohm 1/4 W

Tụ điện 2X 0,1 uF

1X BC547 bóng bán dẫn pnp (trong trường hợp S-trig)

Hộp ABS 1X (ít nhất 55 x 70 x 100 mm)

… Và rõ ràng là breadboard hoặc perfboard, sắt hàn, dây hàn và cáp (nên đủ 2 mét 28 AWG).

Lưu ý rằng trong các hình trên nguyên mẫu của tôi gắn các nắp điện cực 100 uF, nhưng chúng quá chậm do thời gian sạc dung lượng. Điện dung 0,1uF là lựa chọn phù hợp.

Tôi đã sử dụng một đầu nối bổ sung để cung cấp điện cho arduino của mình; Không nhất thiết bạn có thể sử dụng bộ vi điều khiển trực tiếp thông qua đầu nối USB mini trên bo mạch.

Bước 4: Kết nối / Sơ đồ

Kết nối / Sơ đồ
Kết nối / Sơ đồ
Kết nối / Sơ đồ
Kết nối / Sơ đồ
Kết nối / Sơ đồ
Kết nối / Sơ đồ

MIDI TRONG

Mạch MIDI IN đơn giản và được mô tả tốt trên mạng. Ví dụ như bài hướng dẫn tuyệt vời NÀY về MIDI và Arduino của Amanda Gassaei. Tôi đã thực hiện sơ đồ thứ n về vấn đề này.

Lưu ý rằng tôi đã thêm một công tắc trong lược đồ MIDI IN (công tắc 1): điều này là cần thiết khi tải bản phác thảo mới lên Arduino vì opto can thiệp vào dòng RX ngay cả khi không có thông báo midi đến. Bạn phải mở công tắc trước khi tải lên bản phác thảo của mình nếu không IDE sẽ không tải lên bản phác thảo mới.

Cuối cùng, bạn có thể sửa đổi bản phác thảo để sử dụng giao tiếp phần mềm nối tiếp.

DAC, Bộ lọc RC, Bộ tổng hợp

Kết nối cho bộ lọc DAC, RC và Synth (cao độ, cổng và vận tốc) được hiển thị trong sơ đồ trên cùng. Tôi đã tham khảo bảng vá lỗi Korg MS20, nhưng tôi cũng đã thử nghiệm mọi thứ trên MS10. Kết nối trực tiếp của CV vận tốc với điểm vá "độ lợi ban đầu" của VCA không có hiệu lực (tôi phải tìm hiểu kỹ hơn về điều này) nhưng nếu bạn kết nối nó với điểm vá "Tổng" và tăng tổng số chậu bên ngoài của bạn (MG / T. EXT), bạn sẽ nghe thấy các biến thể âm sắc đẹp như một chức năng của vận tốc nốt nhạc.

Các sơ đồ của tôi (và cả nguyên mẫu của tôi nữa) không sử dụng điện trở hạn chế dòng điện ở đầu ra DAC, nhưng bạn nên đặt một điện trở để đảm bảo tuổi thọ lâu dài cho mạch của bạn. Một điện trở 220 ohm sẽ đủ.

Lưu ý rằng trong các sơ đồ trên 100 mũ điện cực uF được báo cáo, nhưng chúng quá chậm do thời gian sạc dung lượng. Mũ không phân cực, 0,1uF là sự lựa chọn phù hợp.

Cửa ra

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 có thể sử dụng mạch chuyển đổi PNP đơn giản (xem sơ đồ đính kèm).

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

Phần mềm
Phần mềm

Tôi đã cố gắng giữ cho bản phác thảo rõ ràng và "dễ đọc" nhất có thể.

Tôi đã làm việc trên một bảng calc đơn giản mà tôi tìm thấy TẠI ĐÂY để lấy đường cong Điện áp Vs Note # và sử dụng trực tiếp phương trình trong bộ vi điều khiển. Phương trình được hiển thị trong đồ thị trên cùng. Tôi đã sử dụng C2 làm ghi chú tham chiếu để có được quan hệ ghi chú Điện áp Vs tuân thủ Arp / Korg (C0 - 0,25V, C1 - 0,5V, C2 - 1V, C3 - 2V, C4 - 4V, C5 - 8V, v.v.).

Tôi đã phải xác định một số biến để đùa giỡn để có được điều chỉnh tốt… hãy dành thời gian của bạn để tìm các giá trị chính xác. Một bộ chỉnh là cần thiết.

Chúng tôi sẽ tăng tần số pwm của Bộ định thời / Bộ đếm để giảm gợn sóng điện áp đầu ra (dễ dàng như một dòng mã).

Để giữ cho mã phản hồi với các byte đến, mã phụ thuộc rất nhiều vào các hàm gọi lại.

Bạn đang cần thư viện "Adafruit_MCP4725.h" của Sparkfun và Bốn mươi bảy hiệu ứng / Francois Best "MIDI.h" của thư viện để biên dịch! (Rất cám ơn những người này: nếu không có nỗ lực của họ thì dự án này sẽ không bao giờ thành hiện thực!).

Tôi sẽ cho rằng bạn đã có Arduino IDE sẵn sàng trong PC và bạn biết cách tải bản phác thảo vào bảng Arduino của mình.

Tôi không phải là một lập trình viên trong cuộc sống thực, vì vậy rất có thể bản phác thảo có thể được viết theo cách tốt hơn. Tôi sẵn sàng đón nhận các đề xuất (tôi luôn học được điều gì đó khi nhìn vào mã của người lập trình;))

Ghi chú bổ sung được viết trong đoạn mã dưới đây. Cài đặt hai thư viện, mở mã đính kèm trên IDE của bạn, kết nối bảng của bạn, chọn loại bảng và tải lên.

Bước 6: Khắc phục sự cố

Ngay cả khi dự án ở cấp thấp, có rất nhiều thứ có thể xảy ra sai sót. Nếu bạn đang gặp sự cố khi cố gắng tạo hộp MIDI đến CV của riêng mình, hãy làm theo các bước sau:

1. Đảm bảo rằng Arduino đang nhận thông báo MIDI một cách chính xác

Kiểm tra kênh đầu ra mà bàn phím hoặc DAW hoặc Sequencer của bạn đang xuất ra các thông điệp MIDI. Arduino đang nghe kênh 1 theo mặc định. Tải lên "TEST_MIDI_IN.ino" để đọc một tin nhắn ghi chú đến.

2. Kiểm tra kỹ hệ thống dây điện của bạn

… Hoặc thậm chí tốt hơn: kiểm tra ba lần! Giữ thời gian của bạn cho việc này.

3. Kiểm tra địa chỉ và đầu ra DAC

DAC có thể được thiết lập để nhận dữ liệu trên một địa chỉ khác với địa chỉ tôi đã đặt trong bản phác thảo. Kiểm tra địa chỉ bằng cách chạy "I2C_scanner.ino". Nếu lỗi "không tìm thấy thiết bị" xảy ra, hãy kiểm tra dây DAC của bạn (đầu vào SDA và SCL khác nhau trên các bo mạch Arduino khác nhau!). Nếu bạn có một máy hiện sóng (ngay cả những máy hiện sóng kỹ thuật số 15 euro đó cũng là điều nên làm … và rất thú vị khi chơi đùa!), Bạn có thể kiểm tra đầu ra của DAC bằng cách tải lên ví dụ về máy phát sóng tam giác đi kèm với cài đặt thư viện DAC.

Hãy nhớ rằng khi một optocoupler được kết nối với đầu vào RX của bo mạch arduino của bạn, bạn sẽ không thể tải lên bản phác thảo mới !! Đặt một công tắc (nó có thể là một jumper đơn giản) trước chân RX.

Hầu hết các bản phác thảo thử nghiệm này không phải của tôi hoặc ít nhất là dựa trên tài liệu trực tuyến hiện có.

Điều này nghe có vẻ lạc điệu với tôi !?

Đây không phải là một vấn đề thực tế: phương trình rút ra cho điều khiển Hz / V là "lý tưởng". Một số sai lệch so với hành vi lý tưởng có thể tăng từ + 5V bạn đang cung cấp không phải là 5.000V, từ DAC và từ chính thiết bị. Để giải quyết, bạn phải thao tác trên chiết áp điều chỉnh đồng bộ / tinh chỉnh của mình và "voilà" một điều khiển MIDI được tinh chỉnh hoàn hảo;)

Bước 7: Liên kết hữu ích

en.wikipedia.org/wiki/CV/gate

www.instructables.com/id/Send-and-Receive-…

www.songstuff.com/recording/article/midi_me…

pages.mtu.edu/~ Suit/NoteFreqCalcs.html

espace-lab.org/activites/projets/en-arduin…

learn.sparkfun.com/tutorials/midi-shield-h…

provideyourown.com/2011/analogwrite-conver…

www.midi.org/specification/item/table-3-c…

arduino-info.wikispaces.com/Arduino-PWM-Fr…

sim.okawa-denshi.jp/en/PWMtool.php

Đề xuất: