Arduino తో MIDI కంట్రోలర్‌ని ఎలా తయారు చేయాలి

Arduino తో MIDI కంట్రోలర్‌ని ఎలా తయారు చేయాలి

సంగీత వాయిద్యాలు మరియు శబ్దం పెట్టెలను సేకరించిన సంగీతకారుడిగా, వినయపూర్వకమైన ఆర్డునో కస్టమ్ మిడి కంట్రోలర్‌ను రూపొందించడానికి సరైన సాధనం. రాస్‌ప్‌బెర్రీ పై ఇంటర్నెట్ ఆఫ్ థింగ్స్ (IoT) ప్రాజెక్ట్‌లకు కిరీటాన్ని తీసుకున్నప్పటికీ, ఒక సాధారణ Arduino Uno (వివిధ రకాల Arduino ఏమిటి?) ఈ ప్రాజెక్ట్ కోసం తగినంత శక్తిని కలిగి ఉంది.





ఆర్డునోను ఉపయోగించడం మొదటిసారి? చింతించకండి, మేము పూర్తి చేశాము ఆర్డునో బిగినర్స్ గైడ్ మీరు ఈ ప్రాజెక్ట్‌ను పరిష్కరించే ముందు చదవండి.





MIDI అంటే ఏమిటి?

MIDI అంటే మ్యూజికల్ ఇన్‌స్ట్రుమెంట్ డిజిటల్ ఇంటర్‌ఫేస్. సంగీత పరికరాలు ఒకదానితో ఒకటి సంభాషించడానికి ఇది ఒక ప్రామాణిక మార్గాన్ని వివరిస్తుంది. మీరు ఎలక్ట్రానిక్ కీబోర్డ్ కలిగి ఉంటే మీకు బహుశా MIDI ఇంటర్‌ఫేస్ ఉండవచ్చు. MIDI అమలులో కొన్ని సాంకేతిక వివరాలు ఉన్నప్పటికీ, MIDI ఆడియో కాదని గుర్తుంచుకోవడం ముఖ్యం! MIDI డేటా అనేది ఒక సాధారణ సూచనల సమితి (ఒక సూచనను 'సందేశం' అని పిలుస్తారు) వివిధ ధ్వనులు లేదా నియంత్రణ పారామితులను రూపొందించడానికి మరొక పరికరం అమలు చేయవచ్చు.





MIDI 16 ఛానెల్‌లకు మద్దతు ఇస్తుంది. దీని అర్థం ప్రతి కేబుల్ ఒకదానితో ఒకటి స్వతంత్రంగా కమ్యూనికేట్ చేసే 16 విభిన్న పరికరాలకు మద్దతు ఇస్తుంది. 5-పిన్ DIN కేబుల్ ఉపయోగించి పరికరాలు కనెక్ట్ చేయబడ్డాయి. DIN అంటే 'జర్మన్ ఇనిస్టిట్యూట్ ఫర్ స్టాండర్డైజేషన్', మరియు ఇది కేవలం కనెక్టర్ లోపల ఐదు పిన్‌లతో కూడిన కేబుల్. USB తరచుగా 5-పిన్ DIN స్థానంలో ఉపయోగించబడుతుంది, లేదా USB-MIDI ఇంటర్‌ఫేస్ ఉపయోగించవచ్చు.

MIDI- కేబుల్-పురుషుడు



నియంత్రణ మార్పు మరియు ప్రోగ్రామ్ మార్పు

MIDI సందేశంలో రెండు ప్రధాన రకాలు ఉన్నాయి: నియంత్రణ మార్పు మరియు ప్రోగ్రామ్ మార్పు.

కంట్రోల్ చేంజ్ (CC) మెసేజ్‌లలో కంట్రోలర్ నంబర్ మరియు 0 మరియు 127 మధ్య విలువ ఉంటుంది. వాల్యూమ్ లేదా పిచ్ వంటి సెట్టింగ్‌లను మార్చడానికి CC మెసేజ్‌లు తరచుగా ఉపయోగించబడతాయి. MIDI ని అంగీకరించే పరికరాలు డిఫాల్ట్‌గా ఏ ఛానెల్‌లు మరియు సందేశాలు సెటప్ చేయబడుతున్నాయో మరియు వాటిని ఎలా మార్చాలో వివరించే మాన్యువల్‌తో రావాలి (MIDI మ్యాపింగ్ అని పిలుస్తారు).





ప్రోగ్రామ్ మార్పు (PC) సందేశాలు CC సందేశాల కంటే సరళమైనవి. PC సందేశాలు ఒకే సంఖ్యను కలిగి ఉంటాయి మరియు పరికరంలో ప్రీసెట్ లేదా ప్యాచ్‌ను మార్చడానికి ఉపయోగించబడతాయి. PC సందేశాలను కొన్నిసార్లు 'ప్యాచ్ చేంజ్' అని పిలుస్తారు. CC సందేశాల మాదిరిగానే, తయారీదారులు ఒక నిర్దిష్ట సందేశం ద్వారా ఏ ప్రీసెట్‌లు మార్చబడ్డాయో వివరించే పత్రాన్ని అందించాలి.

మీకు ఏమి కావాలి

  • ఆర్డునో
  • 5-పిన్ DIN మహిళా సాకెట్
  • 2 x 220 ఓం రెసిస్టర్‌లు
  • 2 x 10k ఓం రెసిస్టర్‌లు
  • 2 x క్షణిక స్విచ్‌లు
  • హుక్ అప్ వైర్లు
  • బ్రెడ్‌బోర్డ్
  • MIDI కేబుల్
  • MIDI పరికరం లేదా USB ఇంటర్‌ఫేస్
నీరు & చెక్క 5 PC లు DIN 5 పిన్ PCB మౌంట్ ఫిమేల్ సాకెట్లు PC కీబోర్డ్ కోసం ఇప్పుడు అమెజాన్‌లో కొనండి

బిల్డ్ ప్లాన్

ఈ ప్రాజెక్ట్ చాలా సరళంగా ఉంటుంది. మీరు మీ అవసరాలకు తగినట్లుగా మరిన్ని బటన్‌లు లేదా హార్డ్‌వేర్‌లను జోడించవచ్చు. దాదాపు ఏదైనా Arduino అనుకూలంగా ఉంటుంది - ఈ ఉదాహరణకి కేవలం మూడు పిన్‌లు మాత్రమే అవసరం. ఈ ప్రాజెక్ట్ ప్రోగ్రామ్‌ను నియంత్రించడానికి రెండు బటన్‌లు, డేటాను పంపడానికి ఒక MIDI పోర్ట్ మరియు సందేశాలను స్వీకరించడానికి ఒక పరికరాన్ని కలిగి ఉంటుంది. ఈ సర్క్యూట్ ఇక్కడ బ్రెడ్‌బోర్డ్‌పై నిర్మించబడింది, అయితే దీనిని బలమైన పరిష్కారం కోసం ప్రాజెక్ట్ బాక్స్ మరియు టంకం చేసిన కనెక్టర్లకు బదిలీ చేయడం సాధ్యపడుతుంది.





సర్క్యూట్ అసెంబ్లీ

ఆర్డునో-మిడి-కంట్రోలర్-సర్క్యూట్

MIDI కనెక్షన్

MIDI-Pinout

మీ MIDI సాకెట్‌ను క్రింది విధంగా వైర్ చేయండి:

  • MIDI పిన్ 5 నుండి Arduino ట్రాన్స్మిట్ (TX) 1 వరకు 220 ఓం రెసిస్టర్ ద్వారా
  • MIDI పిన్ 4 నుండి Arduino +5V వరకు 220 ఓం రెసిస్టర్ ద్వారా
  • ఆర్డినో గ్రౌండ్‌కు MIDI పిన్ 2

బటన్ కనెక్షన్

Arduino 'చూస్తుంది' నిరోధకతను మార్చడం ద్వారా బటన్లు పని చేస్తాయి. Arduino పిన్ నేరుగా భూమికి స్విచ్ ద్వారా వెళుతుంది ( తక్కువ ) 10k ఓం రెసిస్టర్ ద్వారా ('పుల్ డౌన్' నిరోధకం, విలువ తక్కువగా ఉండేలా చూస్తుంది). బటన్ నొక్కినప్పుడు, ఒక నిరోధకం లేకుండా సర్క్యూట్ ద్వారా కనిపించే విలువ +5v కి మారుతుంది ( అధిక ). Arduino దీనిని ఉపయోగించి ఈ మార్పును గుర్తించగలదు డిజిటల్ రీడ్ (పిన్) కమాండ్ Arduino డిజిటల్ ఇన్‌పుట్/అవుట్‌పుట్ (I/O) పై 6 మరియు 7 పిన్‌లకు బటన్‌లను కనెక్ట్ చేయండి. రెండు బటన్‌లను కనెక్ట్ చేయండి:

  • బటన్ యొక్క ఎడమ వైపు +5V కి
  • 10k ఓం రెసిస్టర్ ద్వారా ఆర్డునో గ్రౌండ్‌కు బటన్ కుడి వైపు
  • Arduino పిన్‌కి బటన్ యొక్క కుడి వైపు (6 లేదా 7)

MIDI పరీక్ష

ఇప్పుడు అన్ని హార్డ్‌వేర్ పూర్తయింది, దీనిని పరీక్షించడానికి సమయం ఆసన్నమైంది. మీకు USB-MIDI ఇంటర్‌ఫేస్ (చాలా ఆడియో ఇంటర్‌ఫేస్‌లు దీన్ని చేయగలవు) మరియు MIDI కేబుల్ అవసరం. బ్రెడ్‌బోర్డ్‌లో వైర్‌డ్ చేయబడిన MIDI పోర్ట్ డేటాను పంపుతోంది, కనుక ఇది అవుట్‌పుట్. మీ కంప్యూటర్ డేటాను స్వీకరిస్తోంది, కనుక ఇది ఇన్‌పుట్. ఈ ప్రాజెక్ట్ అద్భుతమైన Arduino ని ఉపయోగిస్తుంది MIDI లైబ్రరీ v4.2 నలభై ఏడు ప్రభావాల ద్వారా. మీరు లైబ్రరీని ఇన్‌స్టాల్ చేసిన తర్వాత, వెళ్లడం ద్వారా మీరు దానిని మీ కోడ్‌లో చేర్చవచ్చు స్కెచ్> లైబ్రరీని చేర్చండి> MIDI .

ఇన్‌కమింగ్ MIDI డేటాను పర్యవేక్షించడానికి మీకు ప్రోగ్రామ్ కూడా అవసరం:

మీ కంప్యూటర్‌కు Arduino ని కనెక్ట్ చేయండి మరియు కింది టెస్ట్ కోడ్‌ను అప్‌లోడ్ చేయండి (నుండి సరైన బోర్డు మరియు పోర్ట్‌ను ఎంచుకోవడం మర్చిపోవద్దు ఉపకరణాలు> బోర్డు మరియు టూల్స్> పోర్ట్ మెనులు).

#include
#include
#include
#include
#include
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
Serial.begin(31250); // setup serial for MIDI
}
void loop() {
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(1000); // wait 1 second
midiOut.sendProgramChange(12,1); // send a MIDI PC -- 12 = value, 1 = channel
delay(1000); // wait 1 second
}

ఈ కోడ్ CC సందేశాన్ని పంపుతుంది, 1 సెకను వేచి ఉండండి, PC సందేశాన్ని పంపండి, ఆపై 1 సెకను నిరవధికంగా వేచి ఉండండి. ప్రతిదీ సరిగ్గా పనిచేస్తుంటే, మీ MIDI మానిటర్‌లో ఒక సందేశం కనిపిస్తుంది.

ఏమీ జరగకపోతే, భయపడవద్దు! ట్రబుల్షూటింగ్ ప్రయత్నించండి:

  • అన్ని కనెక్షన్‌లు సరైనవని నిర్ధారించుకోండి
  • MIDI పోర్ట్ సరిగ్గా వైర్ చేయబడిందో లేదో తనిఖీ చేయండి - బయటి అంచులలో 2 విడి పిన్‌లు ఉండాలి
  • సర్క్యూట్ సరైనదని రెండుసార్లు తనిఖీ చేయండి
  • సర్క్యూట్ ఒక MIDI కేబుల్‌తో USB-MIDI ఇంటర్‌ఫేస్‌కు కనెక్ట్ చేయబడిందని ధృవీకరించండి
  • మీ MIDI కేబుల్ కనెక్ట్ అయ్యిందో లేదో తనిఖీ చేయండి ఇన్పుట్ మీ USB-MIDI ఇంటర్‌ఫేస్‌లో
  • ఆర్డునోకు పవర్ ఉందని నిర్ధారించుకోండి
  • మీ USB-MIDI ఇంటర్‌ఫేస్ కోసం సరైన డ్రైవర్‌ని ఇన్‌స్టాల్ చేయండి

మీరైతే ఇప్పటికీ సమస్యలు ఉంటే మీ బ్రెడ్‌బోర్డ్‌ని తనిఖీ చేయడం విలువైనదే కావచ్చు. చౌకైన బోర్డులు కొన్నిసార్లు చాలా అస్థిరమైనవి మరియు తక్కువ-నాణ్యతతో ఉంటాయి-ఈ ప్రాజెక్ట్‌లో పని చేస్తున్నప్పుడు ఇది నాకు జరిగింది.

బటన్ టెస్టింగ్

ఇప్పుడు బటన్‌లు సరిగ్గా పనిచేస్తున్నాయా అని పరీక్షించే సమయం వచ్చింది. కింది పరీక్ష కోడ్‌ని అప్‌లోడ్ చేయండి. ఈ భాగాన్ని పరీక్షించడానికి MIDI ని కనెక్ట్ చేయడం అవసరం లేదు.

const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
void setup() {
Serial.begin(9600); // setup serial for text
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
}
void loop() {

if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
Serial.println('Button One Works!'); // log result
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
Serial.println('Button Two Works!'); // log result
delay(250);
}
}

}

ఈ కోడ్‌ని అమలు చేయండి (కానీ USB కేబుల్‌ని కనెక్ట్ చేయండి) మరియు సీరియల్ మానిటర్‌ను తెరవండి ( ఎగువ కుడి> సీరియల్ మానిటర్ ). మీరు ఒక బటన్‌ను నొక్కినప్పుడు మీరు 'బటన్ వన్ వర్క్స్!' లేదా 'బటన్ టూ వర్క్స్!' మీరు నొక్కిన బటన్‌ని బట్టి.

ఈ ఉదాహరణ నుండి తీసివేయడానికి ఒక ముఖ్యమైన గమనిక ఉంది-సాఫ్ట్‌వేర్ డి-బౌన్స్. బటన్‌ని తనిఖీ చేయడం మరియు బటన్‌ని మళ్లీ తనిఖీ చేయడం మధ్య ఇది ​​10 మిల్లీసెకన్ల (ఎంఎస్) ఆలస్యం. ఇది బటన్ ప్రెస్ యొక్క ఖచ్చితత్వాన్ని పెంచుతుంది మరియు ఆర్డునోను ప్రేరేపించే శబ్దాన్ని నిరోధించడంలో సహాయపడుతుంది. ఇది సిఫార్సు చేయబడినప్పటికీ మీరు దీన్ని చేయవలసిన అవసరం లేదు.

నియంత్రికను సృష్టించడం

ఇప్పుడు ప్రతిదీ వైర్ చేయబడింది మరియు పని చేస్తోంది, పూర్తి నియంత్రికను సమీకరించే సమయం వచ్చింది.

ఈ ఉదాహరణ నొక్కిన ప్రతి బటన్ కోసం వేరే CC సందేశాన్ని పంపుతుంది. OS X లో అబ్లెటన్ లైవ్ 9.6 ని నియంత్రించడానికి నేను దీనిని ఉపయోగిస్తున్నాను. కోడ్ పైన ఉన్న రెండు పరీక్షా నమూనాలను పోలి ఉంటుంది.

#include
#include
#include
#include
#include
const int buttonOne = 6; // assign button pin to variable
const int buttonTwo = 7; // assign button pin to variable
MIDI_CREATE_INSTANCE(HardwareSerial,Serial, midiOut); // create a MIDI object called midiOut
void setup() {
pinMode(buttonOne,INPUT); // setup button as input
pinMode(buttonTwo,INPUT); // setup button as input
Serial.begin(31250); // setup MIDI output
}
void loop() {
if(digitalRead(buttonOne) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonOne) == HIGH) { // check button state again
midiOut.sendControlChange(56,127,1); // send a MIDI CC -- 56 = note, 127 = velocity, 1 = channel
delay(250);
}
}

if(digitalRead(buttonTwo) == HIGH) { // check button state
delay(10); // software de-bounce
if(digitalRead(buttonTwo) == HIGH) { // check button state again
midiOut.sendControlChange(42,127,1); // send a MIDI CC -- 42 = note, 127 = velocity, 1 = channel
delay(250);
}
}
}

గమనిక - మీరు ఉపయోగించలేరు Serial.println () MIDI అవుట్‌పుట్‌తో.

మీరు CC కి బదులుగా PC మెసేజ్ పంపాలనుకుంటే కేవలం భర్తీ చేయండి:

midiOut.sendControlChange(42,127,1);

దీనితో:

midiOut.sendProgramChange(value, channel);

చర్యలో

క్రింద ఒక కంట్రోలర్‌గా ప్రదర్శన ఉంది అబ్లేటన్ లైవ్ ( ప్రతి బడ్జెట్ కోసం ఉత్తమ DJ సాఫ్ట్‌వేర్ ). ఎగువ కుడివైపు ఆడియో మీటర్‌లను చూపుతుంది, మరియు ఎగువ మధ్యలో ఇన్‌కమింగ్ మిడి సందేశాలను చూపుతుంది (ద్వారా MIDI మానిటర్ OS X లో).

కమాండ్ ప్రాంప్ట్ విండోస్ 10 కొరకు ఆదేశాలు

మీరు MIDI కంట్రోలర్‌గా చేశారా?

అనుకూల MIDI కంట్రోలర్ కోసం చాలా ఆచరణాత్మక ఉపయోగాలు ఉన్నాయి. మీరు విస్తారమైన ఫుట్-కంట్రోల్డ్ యూనిట్ లేదా సొగసైన స్టూడియో కంట్రోలర్‌ను నిర్మించవచ్చు. మీరు ఒకదాన్ని కొనుగోలు చేయడానికి ఆసక్తి కలిగి ఉంటే, మీరు కొనుగోలు చేయగల ఉత్తమ USB MIDI కంట్రోలర్లు ఇక్కడ ఉన్నాయి.

చిత్ర క్రెడిట్: Shutterstock.com ద్వారా కీత్ జెంట్రీ

మేము సిఫార్సు చేసిన మరియు చర్చించే అంశాలు మీకు నచ్చుతాయని మేము ఆశిస్తున్నాము! MUO అనుబంధ మరియు ప్రాయోజిత భాగస్వామ్యాలను కలిగి ఉంది, కాబట్టి మీ కొన్ని కొనుగోళ్ల నుండి మేము ఆదాయంలో వాటాను స్వీకరిస్తాము. ఇది మీరు చెల్లించే ధరను ప్రభావితం చేయదు మరియు ఉత్తమమైన ఉత్పత్తి సిఫార్సులను అందించడంలో మాకు సహాయపడుతుంది.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ ఇది విండోస్ 11 కి అప్‌గ్రేడ్ చేయడం విలువైనదేనా?

Windows పునesరూపకల్పన చేయబడింది. విండోస్ 10 నుండి విండోస్ 11 కి మారడానికి మిమ్మల్ని ఒప్పించడానికి ఇది సరిపోతుందా?

తదుపరి చదవండి
సంబంధిత అంశాలు
  • DIY
  • DJ సాఫ్ట్‌వేర్
  • ఆర్డునో
  • ఎలక్ట్రానిక్స్
  • మధ్యాహ్న
రచయిత గురుంచి జో కోబర్న్(136 కథనాలు ప్రచురించబడ్డాయి)

జో UK లోని లింకన్ విశ్వవిద్యాలయం నుండి కంప్యూటర్ సైన్స్‌లో గ్రాడ్యుయేట్. అతను ఒక ప్రొఫెషనల్ సాఫ్ట్‌వేర్ డెవలపర్, మరియు అతను డ్రోన్‌లను ఎగురవేయనప్పుడు లేదా సంగీతం వ్రాయనప్పుడు, అతను తరచుగా ఫోటోలు తీయడం లేదా వీడియోలను ఉత్పత్తి చేయడం చూడవచ్చు.

జో కోబర్న్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి
వర్గం Diy