Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Arduino MIDI-arpeggiator

Componenten en benodigdheden

Arduino Nano R3
× 1
Draaipotentiometer (generiek)
× 7
SparkFun Drukknopschakelaar 12 mm
× 7
MIDI-poort
× 1
Weerstand 221 ohm
× 4
LED (generiek)
× 2

Over dit project

Update 11.03.2019

Hallo, ik heb een nieuwe firmware voor de arpeggiator gemaakt, de broncode is volledig herschreven. Dankzij de modulaire structuur kunt u de arpeggio's nu op verschillende platforms uitvoeren, niet alleen op Arduino. Er zijn ook nieuwe interessante functies zoals Euclidische rijmpjes toegevoegd. Ik kom later terug met de gedetailleerde beschrijving!

https://github.com/raszhivin/arpeggio2

Het hardwaregedeelte blijft vergelijkbaar, de nieuwe bronnen zijn compatibel met de fritzting-schets van onderaf.

Update 25.06.2019

Nieuwe hardware is door mij gebouwd, check de nieuwe video:

Inleiding

Elektronische muziek is mijn hobby en ik speel met veel plezier met mijn Korg Volca Keys. Enige tijd geleden heb ik de webtoepassing "Chord Progression Arpeggiator" ontmoet, en ik was onder de indruk van de kracht en eenvoud van de muzikale algoritmen. Besteed een paar minuten aan de app en je zou begrijpen waarom ik zo geïnspireerd was door het idee om arpeggio's op mijn Korg te genereren. De video “Korg Volca Keys mooie arps! (en 128-note sequence)” toont handmatig ingevoerde arpeggio-noten, maar het is te ingewikkeld en inflexibel om alle noten met de hand in te voeren.

Omdat ik een softwareontwikkelaar ben, heb ik besloten om het op Arduino gebaseerde apparaat te maken, dat arpeggio's genereert in de vorm van MIDI-berichten en de berichten verzendt via de DIN (MIDI)-poort. De arpeggiator kan natuurlijk samen met andere hardware- of softwaresynthesizers worden gebruikt, maar dat doe ik niet heb er nog een één.

Basis muziektheorie

(De onderstaande tekst is afkomstig uit reddit, veel dank aan gebruiker kmeerts)

Er is dus een heel spectrum aan geluiden. Het blijkt dat al die geluiden een fundamentele frequentie hebben, hoe snel de lucht beweegt. Een lagere frequentie klinkt, nou ja, lager, en een hogere frequentie onderscheiden we als een hogere toon. Twee verschillende instrumenten die tegelijkertijd spelen, kunnen heel verschillend klinken, maar ze zullen voor ons nog steeds als dezelfde noot verschijnen. Dit verschil wordt timbre genoemd en het is hoe je onderscheid kunt maken tussen fluit en cello's die dezelfde noot spelen. Hierdoor kunnen heel verschillende instrumenten harmonieus samen spelen.

Op het hoogste niveau is dit spectrum opgedeeld in octaven. Een octaaf is een interval tussen een noot en een andere met een dubbele frequentie. Dit is de meest elementaire onderverdeling in muziek. Noten die een aantal octaven verschillen (d.w.z. waar de frequenties een macht van twee aan elkaar gerelateerd zijn) krijgen dezelfde naam:een piano en een viool spelen misschien allebei een C, maar de een een stuk lager dan de ander. Waarom doen we dit? Nou, omdat ze harmonieus samen klinken, zoals zelfs de meest toondove persoon kan horen.

Het octaaf zelf is onderverdeeld in 12 noten, die we hebben genoemd:

[A, A#, B, C, C#, D, D#, E, F, F#, G, G#]

Dit zijn de meest elementaire noten in de westerse muziek, en ze komen overeen met de witte en zwarte toetsen op de piano. Je kunt zien dat na elke 12 toetsen het patroon zich herhaalt. Waarom 12? Het is ingewikkeld en heeft een lange geschiedenis, maar de essentie is dat het het beste klinkt. De meest aangename intervallen worden goed weergegeven door het 12-toetsensysteem, op een manier die ze niet zouden hebben met meer of minder toetsen (hoewel mensen het wel proberen).

Uit deze 12 noten worden toonladders gevormd. Een toonladder is een verzameling noten die, nou ja..., samen goed klinken. Mijn arpeggiator heeft alleen heptatonische diatonische toonladders, modi genoemd. Heptatonic betekent dat elke toonladder 7 noten heeft, en vrijwel alle westerse muziek is hierop gebouwd. Diatonisch is gerelateerd aan de volgorde van de intervallen tussen noten. De C-majeur-toonladder is bijvoorbeeld alleen de noten zonder scherpe tekens die beginnen bij C:[ C D E F G A B ]. Elke toonladder is voortgekomen uit een grondtoon. Er is ook een majeur toonladder geworteld in D:[ D E F# G A B C# ]. De toonladders worden bepaald door patronen waarvan noten moeten worden overgeslagen. De majeur toonladder is [ W W H W W W H ], waarbij W betekent "neem een ​​notitie en sla er een over" en H betekent "neem een ​​notitie". De andere modi hebben andere patronen voor het maken en overslaan van notities.

Voor elk van die zeven noten zijn er een heleboel akkoorden. De akkoorden die hier worden gebruikt zijn eenvoudig:begin met een noot, neem drie noten en sla er elke keer één over in de toonladder die we gebruiken. Dus in onze eenvoudige C majeur toonladder (CDEFGAB), zou het V-akkoord (V =vijf, dus op de vijfde noot) G zijn (sla A over) B (loop rond, sla C over) D, dus GBD. Dit patroon kan worden herhaald, een octaaf hoger (6 noten:GBDGBD). Een arpeggio (Italiaans voor 'gebroken') is simpelweg die noten één voor één spelen, in plaats van allemaal tegelijk.

Wat een nummer definieert, is meestal de akkoordprogressie. De componist kiest een modus, kiest een grondtoon en kiest vervolgens 8 (of meer of minder) akkoorden uit de toonsoort die door die grondtoon wordt gedefinieerd. Er zijn natuurlijk enkele regels voor welke akkoorden je moet kiezen, maar het is nog steeds een kunst. In een echt nummer, op dit akkoord is de rest gebouwd, er kunnen natuurlijk allerlei afwijkingen van deze structuur zijn, allerlei versieringen, maar vaak zul je de akkoorden nog in die volgorde kunnen herkennen.

Schema's

Het schema van mijn arpeggiator is vrij eenvoudig, het bestaat uit 7 potentiometers, 7 knoppen, MIDI-poort, 2 LED's en 4 weerstanden. Het kan eenvoudig op een breadboard worden gemonteerd, zoals hieronder wordt weergegeven, maar als je een beginner bent in de arduino-wereld, zou het veel beter zijn als je eerst met de volgende tutorials begint:

https://www.arduino.cc/en/main/howto

https://www.arduino.cc/en/Tutorial/Blink

https://www.arduino.cc/en/Tutorial/InputPullupSerial

https://www.arduino.cc/en/tutorial/potentiometer

https://www.arduino.cc/en/Tutorial/Midi

Bediening

Potentiometers:

  • Octaaf van de grondtoon (0..7)
  • Octaaf van het akkoord (0..7)
  • Vertraging tussen de noten in de progressie (slagen per minuut)
  • Tonische / grondtoon (C...B)
  • Arpeggiostappen (1...5)
  • Muziekmodus (Ionisch, Dorisch...)
  • Arpeggiostijl (stijgend, dalend, stijgend+dalend, willekeurig)

Knoppen:door op een knop te drukken wordt de bijbehorende akkoordprogressie gespeeld.

Demonstratie

In de eerste video beschrijf ik de functionaliteit van het apparaat en de bedieningselementen:

De tweede video toont de kleine jam met de arpeggiator:

Synchronisatie

U kunt het tempo van de arpeggio's synchroniseren met Korg Volca:sluit de audio-aansluiting van de arpeggiator aan op de "SYNC OUT" van de synthesizer. Zorg ervoor dat u de broncode op de juiste manier configureert in arpeggiator.ino :

// Synchronisatie:kies een van de twee mogelijke opties:

#define EXT_SYNC

//#define INT_SYNC

Verwijder commentaar EXT_SYNC voor synchronisatie via SYNC IN, of INT_SYNC voor tempocontrole via poti.

Ik zal blij zijn met elke feedback en opmerking, als je een idee hebt hoe je het apparaat kunt verbeteren, laat dan de opmerking achter.

Veel plezier en succes!

Code

Broncode
https://github.com/raszhivin/arpeggiator

Schema's

voor Fritzing arpeggiator_LICtzK2a2Q.fzz

Productieproces

  1. Arduino digitale dobbelstenen
  2. Unopad - Arduino MIDI-controller met Ableton
  3. Iron Man
  4. Vind mij
  5. USB-BLE draadloze MIDI-adapters
  6. Arduino 3D-geprinte robotarm
  7. Arduino-luchtbevochtigerbediening
  8. Contactloze temperatuurbewakingspoort
  9. NeoMatrix Arduino Pong
  10. Arduino-joystick
  11. Arduino TEA5767 FM-radio-ontvanger