یکی از دوستانم میخواست Cubase ، نرمافزار ضبط صدا خود را با یک دکمه کنترل کند تا بتواند از راه دور ضبط را متوقف کند و بدون نیاز به رفتن به رایانه و تایپ کردن روی صفحه کلید، ضبط را از راه دور شروع کند. ممکن است بتوانید این کار را در نرم افزارهای ضبط دیگر انجام دهید، ما فقط از Cubase استفاده می کنیم.
مرحله 1: آنچه شما نیاز دارید
به طور معمول دکمه های فشاری را باز کنید (یکی برای هر عملی که می خواهید انجام دهید )
مقاومت 10 کیلو اهم (یکی برای هر دکمه)
آردوینو با 5 ولت جامد خوب. من مجبور شدم به صورت خارجی منبع تغذیه معدن را تامین کنم (من از نسخه بدون استخوان استفاده می کنم که Diecimila را اجرا می کند) آن را از اینجا دریافت کنم
تخته نان بدون لحیم ( مانند این یکی )
جک MIDI (شما فقط به یکی نیاز دارید، زیرا تمام کاری که انجام می دهید ارسال مانند دیس است )
220 -مقاومت اهم (برای جک MIDI)
رایانه ای که Cubase یا برخی نرم افزارهای ضبط دیگر
کابل MIDI را اجرا می کند ( اینجا یک 20'er است )
ممکن است به ورودی USB به MIDI نیاز داشته باشید، من استفاده کرده ام و دوست داشته ام، این و این یکی
مرحله 2: راه اندازی سخت افزار
شماتیک و عکس پیوست شده است توجه: شماتیک کار ITP Physical Computing است
اساساً برای سوئیچ 5 ولت، سوئیچ به پایه کنترل، مقاومت 10K از پایه کنترل به GND
برای جک MIDI، پایه 5 به پین سریال، پین 4 تا 5 ولت از طریق مقاومت 220 است.
طرح زیر را در آردوینو بارگیری کنید:
{{{
/* Convert Arduino به یک کنترلر MIDI با استفاده از ورودی های دیجیتال
* به تعداد مورد نیاز.
*
* این طرح برای ارسال 2 یادداشت MIDI در کانال MIDI 5 تنظیم شده است،
* اما می توان آن را به راحتی برای یادداشت ها و کانال های دیگر پیکربندی کرد
*
* ایجاد شده در 3 نوامبر 2008
* توسط Hyeki Min
*
* اصلاح شده در 14 مه 2009
* توسط Petyr Stretz
* تغییر منطق سوئیچ به طوری که پین کم و زیاد باعث می شود
* نت ها مانند یک صفحه کلید پخش شوند، پین های غیر ضروری حذف شوند،
* کانال MIDI خروجی به 5
*/ تغییر کند.
// پین هایی را که استفاده می کنیم تعریف کنیم، پورت MIDI همیشه روی پین آردوینو 1 (TX)
int switchPin1 = 2 است.
int switchPin2 = 3;
// نت های میدی عمومی
char note1 = 60; //Middle C
char note2 = 62; //د
// متغیرهای
int switchState1 = LOW;
int switchState2 = LOW;
int currentSwitchState1 = LOW;
int currentSwitchState2 = LOW;
void setup() {
// حالت های پین های ورودی/خروجی را تنظیم کنید:
pinMode(switchPin1, INPUT);
pinMode (switchPin2، INPUT)؛
// تنظیم نرخ باود MIDI:
Serial.begin(31250);
}
void loop() { //switchPin1
currentSwitchState1 = digitalRead(switchPin1);
if(currentSwitchState1 == HIGH && switchState1 == LOW ) // فشار
//یادداشت در کانال 5 (0x94)، مقداری نت (توجه)، سرعت متوسط (0x45):
noteOn(0x94، note1، 0x45);
if(currentSwitchState1 == LOW && switchState1 == HIGH ) // انتشار
//یادداشت در کانال 5 (0x94)، مقداری نت (توجه)، سرعت بی صدا (0x00):
noteOn(0x94، note1، 0x00);
switchState1 = currentSwitchState1; //switchPin2
currentSwitchState2 = digitalRead(switchPin2);
if(currentSwitchState2 == HIGH && switchState2 == LOW ) // فشار
//یادداشت در کانال 5 (0x94)، مقداری نت (توجه)، سرعت متوسط (0x45):
noteOn(0x94، note2، 0x45);
if(currentSwitchState2 == LOW && switchState2 == HIGH ) // انتشار
//یادداشت در کانال 5 (0x94)، مقداری نت (توجه)، سرعت بی صدا (0x00):
noteOn(0x94، note2، 0x00);
switchState2 = currentSwitchState2;
}// یک پیام یادداشت روشن/خاموش MIDI ارسال کنید.
void noteOn(char cmd, char data1, char data2) {
Serial.print(cmd, BYTE);
Serial.print(data1, BYTE); Serial.print(data2, BYTE);
}
}}}
تخته نان بدون لحیم کاری را به صورت خارجی تامین کنم