Taula de continguts:

El Synthfonio: un instrument musical per a tothom: 12 passos (amb imatges)
El Synthfonio: un instrument musical per a tothom: 12 passos (amb imatges)

Vídeo: El Synthfonio: un instrument musical per a tothom: 12 passos (amb imatges)

Vídeo: El Synthfonio: un instrument musical per a tothom: 12 passos (amb imatges)
Vídeo: Franco Molina - Victima del Viento (Video Oficial) | BAJ 2024, Juliol
Anonim
Image
Image
Esquema de cablejat
Esquema de cablejat

M’agraden els sintetitzadors i els controladors MIDI, però sóc terrible tocant teclats. M’agrada escriure música, però per tocar aquesta música cal haver après a tocar un instrument. Això requereix temps. Temps que molta gent no té i que normalment els dissuadeix de continuar practicant. Intento canviar això. Aquest projecte és un intent d’escurçar la bretxa entre el moment “M’agradaria aprendre a jugar a X” i el de “M’agrada jugar a X”. Sé que la majoria de nosaltres estàvem o somiem amb els segons, però ens vam quedar atrapats en els primers, i també sé el moment en què vaig poder dur a terme i gaudir de les meves primeres cançons bàsiques de quatre acords a la guitarra, va ser el moment en què realment vaig Vaig començar a aprendre l'instrument i mai no m'he desistit d'ell

Que és això

Es tracta d’un instrument fàcil d’aprendre, senzill d’operar, orientat a la improvisació i amb una infinita possibilitat de sons (com a controlador MIDI). Inclou 2 conjunts de tecles, una per definir acords i signatures de claus i una altra per tocar les notes. Qualsevol acord que es premi a les tecles del coll dels instruments definirà el to de les tecles del mànec de l'instrument, de manera similar a una guitarra, un violí i altres instruments de corda; amb l'avanç afegit que aquest és un dispositiu intel·ligent que pot interpretar l'escala que es toca a partir d'una sola nota o parell de notes.

Com funciona

Senzill. Voleu tocar un acord E? només heu de prémer la tecla E al coll (vegeu el diagrama del pas 11) i feu disparar tot el que vulgueu a les tecles de la maneta. No us preocupeu, estarà en sintonia. Podeu utilitzar les tecles de control per reproduir acords, melodies i arpegis en qualsevol tonalitat que vulgueu, només prement la tecla corresponent al coll. De la mateixa manera, prement la tecla A al coll juntament amb la tecla C (terç menor d'A) s'activarà una tonalitat menor A per a les tecles de control.

Això pot permetre a qualsevol reproductor executar una melodia de 4 acords (la música més popular és de 4 acords), acompanyament o fins i tot improvisació; amb no més d’uns quants dits en posició.

Aquest instrument pot funcionar com a controlador MIDI i he incorporat un simple sintetitzador incorporat per tocar sense equip extern. Depenent de la placa arduino que trieu utilitzar, aquest projecte també podria funcionar com a controlador MIDI USB o controlador MIDI sobre BLE.

Les meves exempcions de responsabilitat habituals: - No sóc anglès, de manera que és possible que s'hagin comès errors. - A més, sóc autodidacta en electrònica, codificació i música, de manera que, de nou, és possible que s'hagin comès errors. - Aquest és un "instrument per tocar tothom", no necessàriament per construir. Necessiteu una mica de coneixement en electrònica i codificació per treballar en aquest projecte.

_

Subministraments

-Un Arduino: qualsevol arduino hauria de funcionar. Us recomano una placa amb capacitats USB, com les plaques basades en ATmega32U4 (Leonardo, micro, etc.), de manera que pugueu utilitzar aquest projecte com a controlador MIDI USB. He utilitzat un MKR1010, perquè també té funcions bluetooth i un port sèrie de maquinari secundari.

-ATmega328 en una taula de proves (opcional): és per al sintetitzador integrat. Es podria fer servir una placa UNO adequada, però he optat per un sistema més senzill.

-Mòduls multiplexors: 2 d'ells, un per a les claus de mànec i un altre per a les claus del coll.

-Mòdul de carregador de bateria: recomano alguna cosa semblant a l’enllaç, perquè té protecció contra sobrecàrrega / descàrrega.

-18650 bateria

-Mòdul elevador de tensió: compte amb això! Assegureu-vos que el mòdul que trieu pugui prendre tensions d’entrada inferiors a 5v. Els mòduls de carregador de bateria solen sortir als voltants de 4v i, si alimenteu aquest voltatge a un mòdul stepup que no està qualificat per a aquest voltatge, podeu tenir problemes. Vaig utilitzar un mòdul que necessitava almenys un voltatge d’entrada de 5 V i vaig fregir el meu arduino. (algun projecte per reutilitzar, reciclar un tauler fregit? Si us plau, deixeu un comentari)

-1/4 Connector d'àudio femení

-Potencióòmetre estèreo de 10k

Potenciòmetre de 10 k (x2)

-x2 commutadors: els recomano, però qualsevol commutador que mantingui la seva posició ho farà.

-x14 Interruptors tàctils: per a les tecles del coll.

-x9 Comutadors de límit: tecles de maneig (7) i commutadors de transposició (2)

-1k ohm resistència

-x2 resistència de 220 ohm (si feu una sortida MIDI de 5v)

-Resistències de 33 ohms i 10 ohms (si feu una sortida MIDI de 3,3 v)

-Paneres petites: tantes com vulgueu! Ho construeixo tot sobre taules de suport de 170 punts.

-Cables de pont: no en pots tenir prou

Per què dos arduinos separats ?: Sí, hauria de ser possible escriure un esbós únic executant un sintetitzador digital, amb MIDI USB, MIDI sobre BLE i funcions MIDI normals, a la mateixa placa. Hauria de ser, potser sí, però no podria. La cosa és; la majoria de les biblioteques de sintetitzadors estan dissenyades per a ATmega328, que no té funcions USB. D’altra banda, les poques plaques basades en ATmega32U4 (capacitats USB) que executen llibreries de sintetitzadors ho fan amb problemes. Oblideu-vos del MIDI a través de BLE, per a això necessiteu alguna cosa com l’MKR1010 (pel que he llegit, un mòdul hm-10 no farà MIDI), però la família MKR utilitza una arquitectura diferent i ni tan sols compileu esbossos amb qualsevol de les biblioteques de sintetitzadors que he trobat en línia. Per tant, són dos microcontroladors separats per a mi. El tauler principal fa totes les coses de detecció, interpretació i midi; i un segon per al sintetitzador integrat, que només llegeix les dades midi del principal i produeix so. només un sol tauler. Per exemple, un únic ATmega32U4 com a controlador MIDI USB amb la biblioteca de sintetitzadors menys buggy que podeu executar-hi (però no hi ha MIDI BLE), o un únic ATmega328 que executa qualsevol biblioteca de sintetitzadors que vulgueu (però no hi ha MIDI USB).

Pas 1: Esquema de cablejat

Aquí teniu l’esquema complet del projecte. Recordeu, no cal que utilitzeu una placa MKR, la majoria de taules funcionaran, només heu de ser conscients de les possibilitats que té cada placa (compatible amb USB, compatible amb BLE, etc.) i ajustar el voltatge alimentat al pin vin. Ara vegem cada secció amb més detall:

Pas 2: Esquema de cablejat: controlador MIDI i multiplexors

Esquema de cablejat: controlador MIDI i multiplexors
Esquema de cablejat: controlador MIDI i multiplexors
Esquema de cablejat: controlador MIDI i multiplexors
Esquema de cablejat: controlador MIDI i multiplexors

-He compartit gairebé tots els pins entre ambdós multiplexors, per reduir encara més el nombre de pins arduino utilitzats. Realment, només els pins de senyal de cada mòdul de multiplexors necessiten tenir el seu propi pin arduino dedicat. Aquesta disposició no produeix problemes o interferències entre les tecles, ja que el funcionament de l'esbós és lineal i l'arduino només comprova una entrada a la vegada. Tot el que faci l'altre multiplexor o l'altre pin d'entrada rebut durant aquesta comprovació, s'ignorarà.

-Els dos commutadors etiquetats com a commutadors de transposició són interruptors de límit que s’activen fent lliscar el mànec pel forat de lliscament del cos principal (vegeu els passos “el mànec” i “el cos” per obtenir més detalls) i transposen totes les notes del mànec una octava cap amunt o cap avall.

-Per al control de volum he utilitzat un potenciòmetre estèreo, perquè hem de controlar dos tipus de volums: analògic (sintetitzador integrat) i MIDI.

-El circuit de sortida MIDI té resistències classificades per a la sortida de 3,3 V de la meva placa MKR. Si feu servir una placa de 5v, haureu de canviar la resistència segons el diagrama MIDI de la segona imatge.

Pas 3: Esquema de cablejat: el sintetitzador

Esquema de cablejat: el sintetitzador
Esquema de cablejat: el sintetitzador

-La connexió a OSC2 a l'ATmega328 va (a través d'un condensador) a terra al pin digital 5. Ho vaig fer només per comoditat, de manera que tot queda bé a la taula de treball. Si esteu pensant a fer el mateix, assegureu-vos de declarar sempre el pin 5 com a entrada i mai com a sortida.

-La biblioteca de sintetitzadors que he triat emet so del pin 11, tal com es mostra al meu diagrama. No totes les biblioteques utilitzaran aquest pin, assegureu-vos de canviar-lo en conseqüència. Tanmateix, recomanaria utilitzar sempre la resistència i els taps com a filtres.

-He afegit un commutador al 5v subministrat des de la placa principal, de manera que podria apagar l'ATmega i estalviar energia de la bateria mentre utilitzava l'instrument com a controlador MIDI.

Pas 4: Esquema de cablejat: font d'alimentació

Esquema de cablejat: font d'alimentació
Esquema de cablejat: font d'alimentació

-Sé, totes les plaques MKR tenen un circuit de càrrega Li-Po integrat. El cas és que no he pogut trobar cap bateria lipo (assequible) amb les especificacions necessàries en cap lloc del país on visc (Xile, Amèrica del Sud) i, a més, ja tenia el mòdul de càrrega i un parell de 18650 al voltant, així que els va recollir. A més, crec que la majoria de la gent provarà aquest projecte utilitzant taules més comercials, que normalment no tenen un circuit de càrrega.

-De nou, assegureu-vos que el mòdul que trieu per augmentar la tensió de la bateria sigui capaç de prendre tensions d'entrada inferiors a 5v. Els mòduls de carregador de bateria solen sortir al voltant de 4v i, si alimenteu aquest voltatge a un mòdul intensiu que no està qualificat per a aquest voltatge, podeu fregir la vostra placa. Ho vaig fer. Dues vegades, abans de saber-ho.):

-Recomano col·locar l'interruptor abans del mòdul de pujada de tensió, no després. Realment no entenc tant com funcionen aquestes coses, però mesuro el corrent en ambdues opcions (commutador abans i després) i en col·locar l'interruptor després de l'ascensor de tensió he mesurat una mica de corrent que surt de la bateria, fins i tot quan l'interruptor estava apagat.

Pas 5: la idea del codi

El codi simplement fa una comprovació constant de totes les tecles de control fins que detecta un cop. Quan ho fa, comprova les tecles que es premen al coll i interpreta la postura que es fa i, per tant, la tonalitat musical (si no es prem cap tecla al coll, es mantindrà l'última tonalitat establerta). Això definirà quina nota produirà la tecla de control manejada. Finalment, es comproven els dos commutadors de transposició per tal de transposar la nota una octava cap amunt, una octava cap avall o una octava per defecte; donant a l’instrument un rang de 3 octaves. Basant-se en totes aquestes variables, el Synthfonio produeix l’ordre midi corresponent.

Pel que fa al codi del sintetitzador, feu el que he fet jo i copieu i enganxeu sense vergonya l'esbós d'exemple "midi in" de la biblioteca de sintetitzadors que millor s'adapti a les vostres necessitats. Aquí teniu algunes recomanacions: -The_synth-Mozzi-poly-synth-Noodle-Synth

Ah, per si voleu integrar les funcionalitats MIDI i synth al mateix tauler, us suggeriria el tipus d'esbós que es descriu en aquest enllaç.

Pas 6: el codi

En primer lloc, necessitareu les biblioteques següents: Biblioteca MIDI: https://github.com/FortySevenEffects/arduino_midi_… Biblioteca multiplexer:

A més, si utilitzeu una placa compatible amb USB o el MKR 1010, també podeu experimentar amb aquestes biblioteques: MIDI USB: https://github.com/tigoe/SoundExamples/blob/master…MIDI over BLE:

#incloure

MIDI_CREATE_DEFAULT_INSTANCE (); #include CD74HC4067 my_mux (4, 3, 2, 1); // creeu un nou objecte CD74HC4067 amb els seus quatre pins de control #define mux_handle_pin 5 // defineix un pin per compartir amb els canals des del multiplexor handle #define mux_neck_pin 0 // defineix un pin per compartir amb els canals del multiplexor del coll // defineix els commutadors de transposició #define transposeUp 7 #define transposeDown 6 byte neckKeysNumbers = {12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; byte fingersAmount = 0; byte neckKeyHolded = {0, 0, 0}; arrel de bytes = 48; byte minorThird; byte handleKeyNote = {0, 48, 50, 52, 53, 55, 57, 59}; byte handleKeyNoteSent = {0, 0, 0, 0, 0, 0, 0, 0}; int octava = 0; void setup () {pinMode (LED_BUILTIN, OUTPUT); MIDI.begin (1); // Inicieu MIDI i escolteu el canal 1 pinMode (mux_handle_pin, INPUT_PULLUP); pinMode (mux_neck_pin, INPUT_PULLUP); pinMode (transposeUp, INPUT_PULLUP); pinMode (transposeDown, INPUT_PULLUP); } void loop () {// For-Loop per comprovar totes les tecles (1-7) del HANDLE. for (byte i = 1; i <8; i ++) {my_mux.channel (i); // comprovació de totes les tecles mitjançant el multiplexor // si es prem un commutador (tecla) i si l'estat de la tecla "no es prem" si ((digitalRead (mux_handle_pin) == BAIX) && (handleKeyNoteSent == 0)) {delayMicroseconds (2400); // For-Loop per comprovar les 12 tecles (0-11) del NECK. for (byte k = 0; k 0)) {MIDI.sendNoteOff (handleKeyNoteSent , 0, 1); // Atureu la nota handleKeyNoteSent = 0; // defineix-lo com a retard "no enviat" (18); }}} // Aquesta funció pren la tecla de coll detectada i es basa en això // estableix el número de la nota arrel (en MIDI), // amd també estableix el número de la nota que seria el seu tercer menor buit rootSetting () {switch (neckKeyHolded [0]) {case 12: root = 47; tercer menor = 3; trencar; cas 1: arrel = 48; tercer menor = 4; trencar; cas 2: arrel = 49; tercer menor = 5; trencar; cas 3: arrel = 50; tercer menor = 6; trencar; cas 4: arrel = 51; tercer menor = 7; trencar; cas 5: arrel = 52; tercer menor = 8; trencar; cas 6: arrel = 53; tercer menor = 9; trencar; cas 7: arrel = 54; tercer menor = 10; trencar; cas 8: arrel = 55; tercer menor = 11; trencar; cas 9: arrel = 56; tercer menor = 12; trencar; cas 10: arrel = 57; tercer menor = 1; trencar; cas 11: arrel = 58; tercer menor = 2; trencar; per defecte: root = 48; tercer menor = 4; trencar; }} // Aquesta funció defineix la nota real que tocarà la mà. // primer comprova si la transposició canvia i trasposa l'octava cap amunt o cap avall si cal, // després comprova si la quantitat de dits en posició correspon a un acord major o menor (1 o 2 dits). // Finalment, si es van detectar 2 dits en posició, comprova si els segons es troben a // la tercera nota menor corresponent. Si no, s’ignorarà el segon dit i l’acord // s’interpretarà com un acord major. Si el segon dit juga un tercer menor, la funció definirà // les notes que executaran les tecles de control. void keyConstructor () {if (digitalRead (transposeUp) == BAIX) {octava = 12; } else if (digitalRead (transposeDown) == BAIX) {octava = -12; } else {octava = 0; } // escala major if (neckKeyHolded [1] == 0) {handleKeyNote [1] = root + octava; handleKeyNote [2] = arrel + octava + 2; handleKeyNote [3] = arrel + octava + 4; handleKeyNote [4] = arrel + octava + 5; handleKeyNote [5] = arrel + octava + 7; handleKeyNote [6] = arrel + octava + 9; handleKeyNote [7] = arrel + octava + 11; } // escala menor if (neckKeyHolded [1] == minorThird) {handleKeyNote [1] = root + octava; handleKeyNote [2] = arrel + octava + 2; handleKeyNote [3] = arrel + octava + 3; handleKeyNote [4] = arrel + octava + 5; handleKeyNote [5] = arrel + octava + 7; handleKeyNote [6] = arrel + octava + 8; handleKeyNote [7] = arrel + octava + 11; }}

Pas 7: l'instrument (recinte)

L'instrument (recinte)
L'instrument (recinte)
L'instrument (recinte)
L'instrument (recinte)

Com sempre, realment no tinc plans i mesures de disseny complets i detallats del projecte. Vaig fer canvis, modificacions i vaig dissenyar la cosa a través de tot el procés de construcció real. I la majoria d’aquests canvis es basaven en els materials i components que tenia a l’època.

Dit això, en aquesta ocasió tinc molta més informació i contingut sobre el procés de disseny que en projectes anteriors, perquè he utilitzat serveis d’impressió 3D i tall per làser per crear moltes de les peces. Simplement, no anava a fer tota la mesura i tall de MDF que vaig fer a la meva última màquina. He adjuntat el fitxer que vaig dissenyar per tallar amb làser la majoria de les peces i el model 3D de l’instrument. Tingueu en compte que tots aquests fitxers són majoritàriament els mateixos que he creat, però hi ha discrepàncies, ja que he fet molts canvis després del tall làser original i del modelatge en 3D. Utilitzeu aquests fitxers com a punt de partida per al vostre projecte, no com a plantilla definitiva.

Presteu també atenció a les anotacions que he escrit a les imatges en els passos següents

Pas 8: L'instrument: coll

Image
Image
L’instrument: coll
L’instrument: coll
L’instrument: coll
L’instrument: coll
L’instrument: coll
L’instrument: coll

Es tracta essencialment d’un parell de peces de MDF de tall llarg amb làser apilades unes sobre les altres, per tal de crear un coll prou gruixut, amb prou espai a l’interior per als interruptors tàctils (tecles del coll) i el mòdul multiplexor. I també, 14 peces de tauler MDF tallat amb làser en forma de tecles de piano per cobrir els interruptors. Els commutadors es munten en perfboard i es connecten al multiplexor.

Pas 9: L'instrument: manejar

Image
Image
L’instrument: maneta
L’instrument: maneta
L’instrument: maneta
L’instrument: maneta

Aquesta va ser la part més difícil per a mi. No sé si resolgui totalment aquesta part, però funciona com a mínim. Té 7 interruptors a través d’un multiplexor i pot lliscar pel forat del cos de l’instrument. No intentaré descriure-ho, així que aquí teniu les imatges …

Pas 10: L'instrument: cos

Image
Image
L’instrument: cos
L’instrument: cos
L’instrument: cos
L’instrument: cos

Aquesta és la més simple de totes les parts, només una caixa tallada amb làser en forma que s’assembla a la d’un instrument musical. Fins i tot vaig pensar a fer servir un tipus de tancament de caixa de cigars, però si anés a tallar amb làser, també podria tallar-lo amb làser. Les principals característiques que hauria de tenir el cos són primer, tots els forats dels connectors necessaris, preses, etc. (més un per alimentar els cables al circuit del coll); un forat més gran a la part superior on el mànec pot lliscar-se (com es mostra al primer vídeo i imatges) i, finalment, els dos interruptors de transposició situats a cada extrem del forat lliscant per detectar el moviment del mànec (vegeu el segon vídeo i totes les anotacions de les imatges).

Pas 11: Com es reprodueix

Com es juga
Com es juga
Com es juga
Com es juga

Tocar acords

Intentem tocar alguns acords simples de menor i major, tal com s'explica al principi a la secció "Com funciona". Bàsicament, qualsevol tecla que premeu al coll us proporcionarà l’escala principal d’aquesta nota a les tecles del mànec. També si compteu 3 tecles cap amunt (movent-vos cap al mànec) i premeu aquesta tecla, mantenint premuda l’original, encara tindreu una escala d’aquesta nota original a les tecles de mànec, però aquesta vegada serà una escala menor. Els lectors formats musicalment entendran (de fet, molt millor que jo) que prémer la tercera tecla exacta des de qualsevol nota és el mateix que tocar el seu tercer menor.

A més, si creieu que les 7 notes no us són suficients, podeu simplement lliscar cap amunt o cap avall per tot el mànec pel forat del cos principal i tindreu les mateixes 7 notes una octava cap amunt o cap avall.

Tocar acords (explicació per a principiants)

Els acords són dues o més notes tocades juntes. Penseu en què un pianista o un guitarrista toca un munt de notes (tecles de piano o cordes de guitarra) una vegada al mateix temps i els deixa sonar, canten una petita frase a sobre i, després, toquen un altre conjunt de notes i canten una altra frase. Estan tocant acords i cantant una melodia. Aquesta és l’essència de qualsevol cançó bàsica. Per tant, com ho fem al Synthfonio? senzill. Voleu tocar un acord E? només heu de prémer la tecla E al coll i feu disparar tot el que vulgueu a les tecles del mànec. No us preocupeu, estarà en sintonia. Què passa amb els acords menors? (Acords el nom dels quals acaba amb la lletra "m" com Am, Em, G # m, C # m, etc.) Tocem un acord A menor (Am). Premem la tecla A (vegeu el diagrama adjunt), però també comptem tres tecles cap amunt (movent-nos cap al mànec) i també premem aquesta tecla (en aquest cas una C). Això converteix efectivament l'acord A en un acord Am (A menor).

Reproducció d’una cançó

Ara, com alguns ja podrien saber, hi ha un munt de cançons de 4 acords, generalment construïdes sobre acords majors i menors simples. Perfecte. Busquem "els acords del títol de la cançó", trobem el que desitgem (aquí teniu un parell d'exemples senzills i senzills). Si un acord és important, només hem de prémer aquesta tecla única al coll del Synthfonio i tocar tot el que sentiu. el mànec. Si apareix un acord menor a la cançó, només hem de prémer la tecla corresponent i la tercera tecla cap amunt, i ja estem preparats. Això és. Podeu utilitzar les tecles del mànec per tocar acords i cantar-los, o per tocar melodies, arpegis, etc.

Actualment estic en procés d’incorporar també acords augmentats i disminuïts, col·locant un tercer dit en posició, o fins i tot només els dos dits amb el segon que defineix el cinquè augmentat o disminuït.

Es tracta d’un projecte de treball en curs. Mentrestant, seguiu jugant, experimentant i divertint-vos. Accepto suggeriments (:

Diferents escales

Actualment les claus de control generen les notes 1 a 7 de l'escala declarada. He utilitzat aquesta configuració en aquesta instrucció per facilitar-ne la comprensió. Però això es pot canviar fàcilment per generar una escala diferent modificant la funció keyConstructor (). En realitat estic fent servir una configuració pentatònica per al mànec, perquè em permet tenir la nota arrel una octava més amunt a la mateixa posició de lliscament del mànec. A la configuració actual, heu de lliscar el mànec cap amunt o cap avall per tenir qualsevol nota en una altra octava.

Pas 12: possibles modificacions

Com he esmentat al principi, he intentat que aquest tutorial sigui el més senzill possible, reduint el projecte a la seva forma més bàsica. Per aquest motiu, he omès algunes funcions que he afegit (o penso afegir) al meu propi Synthfonio, en teniu algunes:

-MIDI sobre BLE: si teniu una placa MKR WIFI 1010, és bastant fàcil d’incorporar. Aquesta biblioteca té un exemple midi molt senzill. Podeu afegir les ordres midi d'aquesta biblioteca a les ordres MIDI normals anomenades per l'esbós del Synthfonio. O bé, per estalviar bateria, afegiu un commutador per activar les funcionalitats bluetooth només quan sigui necessari (fer servir interrupcions d’arduinos i un sistema de restabliment automàtic com aquest seria una bona idea).

-PitchBend: tot i que cap de les biblioteques de sintetitzadors pot gestionar ordres MIDI pitch bend, la biblioteca MIDI us permet enviar-les. La cosa és decidir com controlar-lo. Qualsevol potenciòmetre hauria de funcionar bé, però estic pensant en alternatives més interessants, com ara els sensors. proximitat, llum, etc.

Concurs d’instruments
Concurs d’instruments
Concurs d’instruments
Concurs d’instruments

Accèssit al concurs d’instruments

Recomanat: