Агуулгын хүснэгт:

Гитар баатар Ардуино төсөл: 12 алхам (зурагтай)
Гитар баатар Ардуино төсөл: 12 алхам (зурагтай)

Видео: Гитар баатар Ардуино төсөл: 12 алхам (зурагтай)

Видео: Гитар баатар Ардуино төсөл: 12 алхам (зурагтай)
Видео: ОГУРЕЧНОЕ ПИАНИНО | огуркофон? | электроогурцы? | собрал на arduino 2024, Арваннэгдүгээр
Anonim
Гитар баатар Ардуино төсөл
Гитар баатар Ардуино төсөл
Гитарын баатар Ардуино төсөл
Гитарын баатар Ардуино төсөл
Гитар баатар Ардуино төсөл
Гитар баатар Ардуино төсөл

Wij zijn Maarten Vrebos, Justin Cavanas en Wannes Stroobandt, бид мультимедиа, харилцаа холбооны технологийг судалж үздэг. Аудио-визуал ба мэдээллийн технологийн зарчмууд нь гитар баатар-гитар болон бусад MIDI-хянагчийг дэмждэг. Хет нь интернэтэд дадлагажигчаар ажиллах боломжтой болсон. Онцгой хянагч нь өргөн уудам бүсэд байдаг. Aangezien we iets hebben gehackt hebben бид нэмэлт мэдээлэл авах боломжтой.

Хязгааргүй тохиолдолд та энэ програмыг ашиглах боломжтой болно.

Wij hebben ons voor dit project gebaseerd op volgende bronnen:

slapyak.wordpress.com/guitar-hero-midi-con…

www.instructables.com/id/Converting-a-rescu…

gizmodo.com/391834/turn-your-guitar-hero-g…

Benodigdheden дуу хоолой төсөл

  • 6 клейн товчлуур
  • 7 1 кох резистор
  • 1 гэрэл LED 1
  • blauwe LED
  • 1 Arduino Uno R3
  • 1 гэрэл LED
  • 2 морьтой LED
  • 1 швифшакелаар
  • 1 талхны самбар
  • 1 потенциометр
  • 1 протобар
  • 1 гитар баатар гитар
  • Voldoende орондоо хэвтэж байна
  • Materiaal om te solderen/dremelen/
  • Шровендрайер

Алхам 1: Бүрэлдэхүүн хэсгүүд

Бүрэлдэхүүн хэсгүүд
Бүрэлдэхүүн хэсгүүд

Voor ons прототип (op breadboard) hebben we volgende componenten gebruikt:

6 товчлуур

7 1 кох резистор

1 шар LED

1 цэнхэр LED

1 Arduino Uno R3

1 Ногоон LED

2 улаан LED

1 Шуйфшакелаар

1 Талхны самбар

1 потенциометр

Алхам 2: Bouwen прототип

Bouwen прототип
Bouwen прототип
Bouwen прототип
Bouwen прототип
Bouwen прототип
Bouwen прототип

Төмөр замын эх хавтангийн прототип нь бид талхны самбар дээр суурилсан, талхны самбарыг туршиж үзэхээс гадна тест хийх боломжийг олгодог. Энэ загварыг tinkercad.com -ээр дамжуулан олж авах боломжтой бөгөөд бид өөрсдийнхөө загварыг танилцуулж байна.

5 -ийн түлхүүрийг дарах нь мөөгөнцөрөөс гадна 5 -р товчлуурыг дарах нь комбинацид ороход маш чухал үүрэг гүйцэтгэдэг. LED-чийдэнгийн аль алиныг нь хянах боломжтой бөгөөд энэ нь харилцан үйлчлэлийг амжилттай гүйцэтгэдэг.

Алхам 3: Кодын прототип

Кодын прототип
Кодын прототип

Глобал төрөл

Ганцаараа бол кодыг эхлүүлэх боломжтой.

// zet pin number waar mainButton (snaar) en andere button aan verbonden zijn: const int mainButton = A1; // gitaar snaar const int lightSensor = A0; const int buttonPin1 = 2; // тооны машины товчлуур1 const int buttonPin2 = 3; // тооны машины товчлуур2const int buttonPin3 = 4; // тооны машины товчлуур3const int buttonPin4 = 5; // тооны машины товчлуур4const int buttonPin5 = 6; // nummer ван товчлуур 5

Hierna worden er twee arrays aangemaakt voor de namen van de pushbuttons en hun pinnummer.

const int aantalKnoppen = 5; const String namenKnoppen [aantalKnoppen] = {"knop 1", "knop 2", "knop 3", "knop 4", "knop 5"}; const int knopPinnen [aantalKnoppen] = {2, 3, 4, 5, 6};

Тохиргоог өөрчилж болно.

const int ledPin1 = 13; // LED зүү 13

const int ledPin2 = 12; // LED зүүний тоо 12 const int ledPin3 = 11; // LED зүүний тоо 11 const int ledPin4 = 10; // LED зүүний тоо 10 const int ledPin5 = 9; // LED зүү 9 const int potPin = A5 тоо; // LED зүү A5 тоо

Дэлхийн өнцөг булан бүрээс өөр өөр мужуудын мэдрэгч (диетийн потенциометр, личценсор).

// initialiseer buttonStates эсвэл knoppen (inietrukt of niet) int mainButtonState = 0; int товчState1 = 0; int товчState2 = 0; int buttonState3 = 0; int buttonState4 = 0; int товчState5 = 0; int lightSensorState = 0; int potValue = 0; int lightValue = 0;

Тохируулах

Хүчин төгөлдөр бус тохируулах функц. Deze is van het type void (geeft geen waarde terug) гэсэн зааварчилгаа нь 1 -ээс дээш тооны заавар юм.

Bij elke functie нь коммент бичихэд хялбар байдаг. Functie concreet doet -ээс илүү нэмэлт мэдээлэл авах боломжтой.

void setup () {// нэг секундын өгөгдлийн хурд (baud) voor seriele өгөгдөл дамжуулах Serial.begin (9600); // LEDPin -ийн анхны хувилбар нь pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT); pinMode (ledPin3, OUTPUT); pinMode (ledPin4, OUTPUT); pinMode (ledPin5, OUTPUT); // initialiseer alle pushbuttons als input: pinMode (mainButton, INPUT); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); pinMode (buttonPin5, INPUT); pinMode (potPin, INPUT); pinMode (lightSensor, INPUT); }

Хоосон хүчин зүйл

Na de setup () functie volgt de loop () functie, зааварчилгаа нь үхэх болно.

void loop () {// lees de staat van de pushbuttons uit (niet of ingedrukt) mainButtonState = digitalRead (mainButton); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); buttonState3 = digitalRead (buttonPin3); buttonState4 = digitalRead (buttonPin4); buttonState5 = digitalRead (buttonPin5);

// бүх массив дахь бүх товчлуурын статус

int buttonStates = {buttonState1, buttonState2, buttonState3, buttonState4, buttonState5};

// leest de waarde uit van de potentiometer en de lichtsensor

potValue = analogRead (potPin); lightValue = analogRead (lightSensor);

// mainstates en geef die de standaard waarden 0 in.

int mainStates = {0, 0, 0, 0, 0};

// array гаруй давталт aantalKnoppen

for (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); // initialiseer alle knopPinnen als input digitalRead (knopPinnen ); // lees de waarde van alle knoppinnen uit // indien de mainswitch (snaar) ingedrukt is, all al knopnamen, alle buttonstates if (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.println (buttonStates ); }}

Алхам 4: Uittesten прототип

Nadat het прототип gebouwd нь volgens ons загвар бөгөөд код нь geschreven нь Боловсруулалтад байдаг, гэхдээ энэ нь туршилтын загвар юм. Видео бичлэг нь маш энгийн бөгөөд маш сайн хослуулан ашиглах боломжтой юм.

Твид видео нь боловсруулалтанд ихээхэн хохирол учруулж буй потенциометр юм.

Алхам 5: "Онтмантэлэн" -г идэвхжүүлэх нь хамгийн чухал хэсэг юм Гебрукт Гаан Ворден

Биеэ авч явах
Биеэ авч явах
Биеэ авч явах
Биеэ авч явах
Биеэ авч явах
Биеэ авч явах
Биеэ авч явах
Биеэ авч явах

Алс код нь зөв хийгдсэн бөгөөд бид "гитарчин" гитар баатартай "ontmantelen" уулзсан. We hebben de gitaar opengemaakt enen schroevendraaier en bekeken welke originele componenten we eventueel nog zouden kunnen hergebruiken voor onze controller. Uiteindelijk hebben бид de bestaande товчлуурууд дээр eigen pushbuttons onze gekregen (zie volgende үдээс). We hebben de tremolo ook gebruikt voor ons eindproduct en voor onze hoofdbutton (эхлүүлэх товчлуурууд нь бүгд өөр өөр хослолууд юм) hebben we ook de originele twee button gebruikt (zie vierde foto). LED LED -ууд үнэн зөв байгаа эсэхийг шалгаарай.

Алхам 6: Werking Originele Buttons + Dremelen

Werking Originele товчлуурууд + Dremelen
Werking Originele товчлуурууд + Dremelen

Оп де bijhorende видео нь de wijze te zien waarop de twee originele knoppen werken als een soort van schakelaar die wij gebruiken om een effect te genereren bij combinatie van knoppen юм.

Ум onze eigen товчлуурууд ver verken in de originele knoppen hebben бид де бинненкант ван де оригенэл гротендельс uitgehaald zoals te zien is op de foto.

Алхам 7: Хэвтэж буй гагнуур + товчлуурууд

Унтлагын гагнуур + товчлуурууд Vastlijmen
Унтлагын гагнуур + товчлуурууд Vastlijmen
Унтлагын гагнуур + товчлуурууд Vastlijmen
Унтлагын гагнуур + товчлуурууд Vastlijmen
Унтлагын гагнуур + товчлуурууд Vastlijmen
Унтлагын гагнуур + товчлуурууд Vastlijmen

Omdat we niet meer met een breadboard werken moeten de draden gesoldeerd worden om zo de verschillende componenten met elkaar te verbinden. Nadat dit gebeurd is kundnen we de button vastlijmen zoals te zien is op de foto's. Eens dit gebeurd is kunnen we doorgaan naar de volgende stap.

Алхам 8: Де Бехуизинг дэх Макеныг дуудаж үзээрэй

Де Бехуизин дэх Макеныг дуудаж байна
Де Бехуизин дэх Макеныг дуудаж байна
Де Бехуизин дэх Макеныг дуудаж байна
Де Бехуизин дэх Макеныг дуудаж байна
Де Бехуизин дэх Макеныг дуудаж байна
Де Бехуизин дэх Макеныг дуудаж байна

Omdat dit Guitar Hero-model redelijk krap was om mee te werken hebben we extra plaats moeten maken d.m.v. dremelen. Zo hebben we uit de achterkant van de gitaar een hele strook verwijderd zodat er meer plaats ontstaat voor de bedrading in de gitaar. Omdat er overal in de binnenkant obstakels waren, waaronder veel buisjes om de vijzen in te bevestigen, hebben we die ook verwijderd om optimaal van de gegeven ruimte gebruik te kunnen maken. Диск дээр дарсан гэрэл зургийн товчлуурууд нь аль хэдийн дарагдсан байдаг. Дахин хэлэхэд, бид маш их зүйлийг мэддэг байсан.

Алхам 9: Орны хорхойг тайлах Aansluiten Op Protobord

Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord
Унтраах Aansluiten Op Protobord

Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах Om alle componenten met elkaar te verbinden hebben we gebruik gemaakt van een protobord. Энэ бол нандин борлуулалт, үр дүнгийн талбар юм. Бид маш их үнэ цэнэтэй зүйл гэж үздэг. Dord bord is het centrale punt van waaruit al onze verbindingen vertrekken en samenkomen (зураг 2).

Алхам 10: Верстевиген

Верстевиген
Верстевиген

Алс дуусгах нь илүү тогтвортой байх болно. Op deze foto is te zien hoe we het deel dat we er hebben uitgehaald d.m.v. dremelen achteraan де товчлуурууд нь картонтой танилцсан.

Алхам 11: Code Voor Het Communiceren Reaper -тэй уулзав

Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа
Code Voor Het Communiceren Reaper -тэй уулзлаа

Deze кодыг twee delen -д opgedeeld, het eerste дээлийг de arduino IDE (интерактив хөгжлийн орчин) ашиглах боломжтой. Die code wordt geüpload naar arduino zelf en dient om alle waarden van de sensors van de midi controller uit te lezen en door te sturen naar боловсруулах.

Боловсруулалтыг хийх ёстой. Deze code dient om alles wat arduino doorstuurt te ontvangen en door te sturen naar Reaper.

Ардуино

/* Энэ код нь Цуваагаар дамжуулж боловсруулахтай харилцах үндсэн ноорог юм.

Энэ бол өөрийн кодоо оруулах боломжтой зураг төсөл юм

өөрийн товчлуур, потенциометр эсвэл мэдрэгчид зориулагдсан болно.

Энэ нь холбоо барьж байгаа эсэхийг шалгахын тулд гар барих явдал юм

мөн бидний харилцаж буй хэлбэрийг шийддэг

Зурвасыг яг ийм байдлаар бүтээх нь чухал юм.

Тиймээс боловсруулалт нь үүнийг хэрхэн задалж, OSC-ийн зөв мессежийг манай DAW руу илгээхийг мэддэг

werkcollege AV&IT -д зориулж хийсэн

2017 оны аравдугаар сар

*

/ дохионы түвшин

const long baudRate = 115200;

// тээглүүр хүртэлх санал асуулгын хооронд хүлээх цаг

const int loopPauseTime = 200; // милл секунд

// Цуваа дээр илгээсэн зурвасын эхлэл ба төгсгөлийн утга

const String startString = "*", endString = "#";

const char contactCharacter = '|';

// таних тэмдэг

// бусад дэлхийн хувьсагчид

const int aantalKnoppen = 5; const String namenKnoppen [aantalKnoppen] = {"knop 1", "knop 2", "knop 3", "knop 4", "knop 5"}; const int knopPinnen [aantalKnoppen] = {2, 3, 4, 5, 6}; const int mainButton = A1;

int mainButtonState = 0;

int potValue = 0;

// аналог мэдрэгч

const int potPin = A5; // тремоло

// Боловсруулалтын тоймтой холбоо тогтооход бидэнд энэ функц хэрэгтэй

// Үүнийг энд void байлга, installContact () {while (Serial. // тэмдэгт илгээж хариу хүлээнэ үү … саатал (loopPauseTime); } Serial.read (); }

хүчингүй тохиргоо () {

// pinModes -ийг бүх тээглүүрт тохируулах (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); } pinMode (mainButton, INPUT); // хэрэв та 5V -ийн оронд 3V дээр ажилладаг мэдрэгч ашигладаг бол тайлбар өгөхгүй бол та 'ext' pin -ийг 3.3V -тэй холбох хэрэгтэй болно // analogReference (EXTERNAL);

// Serial comms -ийг эхлүүлэх

Цуваа.begin (baudRate); байхад (! Цуваа); // гар барихыг хүлээнэ үү installContact (); }

void loop () {

// 1 -Р АЛХАМ: READ TUTTONS // бүх тээглүүрээс санал асуулга авч, уншилтыг int buttonStates [aantalKnoppen] тохирох мужид байршуулна уу; /* buttonStates [0] = digitalRead (knopPinnen [0]); buttonStates [1] = digitalRead (knopPinnen [1]); buttonStates [2] = digitalRead (knopPinnen [2]); buttonStates [3] = digitalRead (knopPinnen [3]); buttonStates [4] = digitalRead (knopPinnen [4]); */ mainButtonState = digitalRead (mainButton); for (int i = 0; i <aantalKnoppen; i ++) {buttonStates = digitalRead (knopPinnen ); } potValue = analogRead (potPin); // жишээ: // float v0 = газрын зураг (bpm, 0, 1023, 60, 250); // хэрэв та хэвийн хөвөгч (жишээ нь эзлэхүүний хувьд) ашиглахыг хүсч байвал // float v1 = map (analogRead (pin2), fromMin, fromMax, 0, 100) / 100.0;

// АЛХАМ 2: МЕССЕЖ БИЧИХ

Serial.print (startString); // (int i = 0; i <aantalKnoppen; i ++) {if (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.print (buttonStates ); if (i <aantalKnoppen - 1) {Serial.print (","); }} өөр {buttonStates = 0; Цуваа.хэвлэх (namenKnoppen ); Serial.print (","); Serial.print (buttonStates ); if (i <aantalKnoppen - 1) {Serial.print (","); }}} Serial.print (","); Serial.print ("tremolo"); Serial.print (","); Цуваа.хэвлэх (газрын зураг (potValue, 0, 1023, 0, 100)); // мессежийн төгсгөлийг бичих Serial.print (endString);

// түр хүлээгээрэй..

саатал (loopPauseTime); }

Боловсруулж байна

Disclaimer: Niet alle code all deoding sketch staat hier in geschreven, voor de volledige code zie het bestand: ProcessingSoundControl_handout_v6_1.pde in bijlage

Зааварчилгаа зааварчилгаа өгсөн (Энэтхэгийн):

// Baudrate moet hetzelfde zijn zoals in de arduino тойм зураг

final int baudRate = 115200;

// Хадуур дарагч дахь IP хаяг (zij дэлгэцийн зургууд

// Боловсруулж байна.

// эцсийн String remoteIP = "192.168.1.43"; // жишээ нь. "127.0.0.1";

эцсийн String remoteIP = "10.3.209.60";

// sendPort -ийг анхаарч, үүнийг Reaper дээр бөглөнө үү.

// Энэ бол Processing -ийн илгээдэг, Reaper -ийн сонсдог порт юм.

final int listenPort = 12000, sendPort = 12000;

// Энд байгаа listenPort нь идэвхтэй дибаг хийх болно.

// portNames нь дибаг хийхээр энд байна.

// эцсийн String portName = "/dev/ttyACM0";

эцсийн String portName = "COM5"; // "/dev/ttyUSB0";

/////////////////////// Хэрэглэгчийн параметрүүдийн төгсгөл ///////////////////////// ////

импорт боловсруулах.сериал.*;

java.util импортлох.*;

oscP5 импортлох.*;

netP5 импортлох.*;

OscP5 oscP5;

NetAddress myRemoteLocation;

Цуваа коммпорт; // Цуваа порт

boolean messageArrived = false;

Ирж буй мөр = "", IncomingOSCMessage = "";

эцсийн char startChar = '*', endChar = '#'; final char contactCharacter = '|';

// Бид зөвхөн өөрчлөгдөж буй параметрүүдийг (утга) илгээдэг эсэхийг шалгахын тулд

// эдгээр глобал хувьсагчдыг энд устгадаг боловч // энд эхлүүлэх ёсгүй! HashMap oldParams, newParams, toSendParams;

// Бид зурвасыг таслал бүрт хуваах хэрэгтэй

void processIncoming () {String resVec = incoming.split (","); // бид нэр+утгын хосыг авдаг // тиймээс нэр бүрийн хувьд (+2)… оролдох {for (int i = 0; i <resVec.length; i+= 2) {float value = Float.parseFloat (resVec [i+) 1]); // тэдгээрийг шинэ Hashtable newParams.put -д оруулах (resVec , утга); }} // хэрэв алдаа гарвал түүнийг барьж харуулъя. catch (Exception ex) {println ("Exception Message:" + ex); printArray (resVec); гарах(); }}

// Бидний зурвасыг шүүх

/ * Оролтын мессеж (Цуваа) өөрчлөгдөх үед бид зөвхөн OSC-аас гарах мессеж байгаа эсэхийг шалгадаг. Энэ нь хэрэв бид товчлуурыг эргүүлж/дарвал утга өөрчлөгддөг. * Тиймээс бид үнэндээ өөрчлөгдөж буй ирж буй утгыг шүүж авдаг * тэмдэглэл: жишээлбэл, хурдатгал хэмжигч эсвэл зайны мэдрэгчээс авсан утгуудын үсрэлтээс зайлсхийхгүй * та тэдгээрийг Arduino -д өөрөө тэгшлэх хэрэгтэй болно */ void filterParams () {toSendParams = new HashMap (); for (String key: newParams.keySet ()) {// хэрэв түлхүүр аль хэдийн байгаа бол (oldParams.containsKey (key)) {// түлхүүр байгаа бөгөөд утга нь ижил биш бол, хэрэв (! oldParams.get (key)).equals (newParams.get (key))) {toSendParams.put (key, newParams.get (key))); }} өөр {// түлхүүр нь хуучин параметрүүдэд байдаггүй тул үүнийг хэлээрэй! toSendParams.put (түлхүүр, newParams.get (түлхүүр)); } oldParams.put (түлхүүр, newParams.get (түлхүүр)); }}

хүчингүй болгох makeOSC () {

for (String key: toSendParams.keySet ()) {OscMessage myMessage = шинэ OscMessage ("/"+ түлхүүр); myMessage.add (toSendParams.get (түлхүүр)); / * мессеж илгээх */ oscP5.send (myMessage, myRemoteLocation); }}

хүчингүй translateMessage () {

processIncoming (); filterParams (); makeOSC (); } // Бид цонх руу хэвлэхийг хүсвэл void ShowIncoming () {// HashMap текстэд заасан "" ирж буй мессежийг харахын тулд ("Arduino -аас ирсэн", 20, 20); int y = 20; for (String key: newParams.keySet ()) {y = y+20; текст (түлхүүр, 20, у); текст (newParams.get (түлхүүр), 300, y); }}

void showOsc () {

текст (IncomingOSCMessage, 300, 200); IncomingOSCMessage = ""; }

хүчингүй тохиргоо () {

хэмжээ (1000, 800); // Шатны хэмжээг бөглөх (255); дэвсгэр (0); oldParams = шинэ HashMap (); newParams = шинэ HashMap (); // printArray (Serial.list ()); commsPort = шинэ цуваа (энэ, portName, baudRate);

/ * oscP5 -ийг эхлүүлж, ирж буй мессежийг сонсох */

oscP5 = шинэ OscP5 (энэ, listenPort);

/* myRemoteLocation бол NetAddress юм. NetAddress нь 2 параметрийг агуулдаг.

* IP хаяг ба портын дугаар.myRemoteLocation нь osc пакетуудыг өөр компьютер, төхөөрөмж, * програм руу илгээхдээ * oscP5.send () дахь параметр болгон ашигладаг. хэрэглээг доороос үзнэ үү. Туршилтын зорилгоор сонсох порт * болон алслагдсан байршлын хаягийн порт нь адилхан тул та энэ зурган дээр зурвас илгээх болно. */ myRemoteLocation = шинэ NetAddress (remoteIP, sendPort); }

хүчингүй сугалаа () {

if (messageArrived) {background (0); translateMessage (); ShowIncoming (); messageArrived = худал; } showOsc (); }

хүчингүй serialEvent (Serial commsPort) {

// цуваа портоос байтыг уншина уу: char inChar = commsPort.readChar (); switch (inChar) {case contactCharacter: commsPort.write (contactCharacter); // илүү их println асуух ("эхэлж байна …"); завсарлага; case startChar: ирж буй = ""; завсарлага; case endChar: messageArrived = үнэн; // println ("msg -ийн төгсгөл"); завсарлага; анхдагч: ирж буй += inChar; завсарлага; }}

/* ирж буй Оскар мессежийг oscEvent арга руу дамжуулдаг. */

void oscEvent (OscMessage theOscMessage) {float value = theOscMessage.get (0).floatValue (); // Оскарын 1 -р аргументыг авах

IncomingOSCMessage += "\ n" +

String.format ("### osc зурвас хүлээн авсан:" + "addrpattern:" + theOscMessage.addrPattern () + ": %f", утга); println (IncomingOSCMessage); }

Алхам 12: Uittesten хянагч

Nu alles бол aangesloten, alle code is geschreven en alles is gedubbelcheckt is het eindelijk tijd om de controller z'n werk te laten doen. Reaper -ийн хамгийн сайн хувилбар бол гитар баатар MIDI хянагч юм.

Зөвлөмж болгож буй: