Inhoudsopgave:

Een elektronisch orgel MIDI maken: 6 stappen
Een elektronisch orgel MIDI maken: 6 stappen

Video: Een elektronisch orgel MIDI maken: 6 stappen

Video: Een elektronisch orgel MIDI maken: 6 stappen
Video: #LES 1 - Piano leren spelen zonder het lezen van noten in 10 minuten 2024, November
Anonim
Een elektronisch orgel MIDI maken
Een elektronisch orgel MIDI maken

Deze instructable begeleidt je bij het nemen van dat oude onbeminde elektronische orgel dat je in je garage of kelder hebt, en omzetten in een modern muziekinstrument. We zullen niet te veel stilstaan bij de details van het specifieke orgel dat je hebt, behalve om te zeggen dat het typische muzikale toetsenbord in wezen een set toetsen is die, wanneer ze worden ingedrukt, worden aangesloten op een gewone bus. In de oude wereld bestonden er naast de toetsen aanzienlijke schakelingen die ervoor zorgden dat een uitgang werd doorgegeven aan de bus, die op zijn beurt werd versterkt en doorgegeven aan een audiosysteem. Tegenwoordig is het toetsenbord een set sensoren; we lezen de status van de individuele toetsen en sturen de wijzigingen naar een softwaresynthesizer, die wordt aangestuurd door MIDI-commando's.

De instructable omvat een groot deel van het betrokken proces, van het verzamelen van de digitale status van de toetsen, het beheren met een Arduino-microprocessor, het bouwen van een MIDI-gegevensstroom en het doorgeven aan een computer (inclusief Raspberry Pi) waarop de synthesizer draait.

Stap 1: Het toetsenbord geabstraheerd

Het volgende vertegenwoordigt een geabstraheerd elektronisch orgel, waarbij elke rij een reeks toetsen of registers of andere bedieningsschakelaars is. De 0 kolomingangen vertegenwoordigen individuele toetsen, en de - een bus waarmee de toets is verbonden wanneer deze wordt ingedrukt. Het Great Manual met 61 toetsen kan de eerste rij zijn, de Swell Manual de tweede rij, de pedalen de derde en de stops enz. de vierde. De rijen bevatten eigenlijk 64 elementen vanwege de digitale betekenis als macht van 2 voorbij 61. Binnen de toetsenbordrijen volgen de toetsen de normale muzikale conventie met C aan de linkerkant.

Bus 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 1 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 2 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Bus 3 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0……………….. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Elke bus is onafhankelijk en elektrisch geïsoleerd van zijn collega's. De eerste 8 elementen zijn vetgedrukt, met 8 van dergelijke blokken in de bovenstaande opstelling. De volgende stap beschrijft een printplaat die werkt op de vetgedrukte elementen en de andere 7 blokken ervan.

De toetsen zijn hierboven weergegeven als nullen. We kunnen een beetje verder gaan en zeggen dat een toets een digitale 1 is als hij wordt ingedrukt, en anders een 0. En toetsen kunnen conventionele muzikale witte flats of zwarte kruizen zijn, of orgelpedalen, of orgelregisters, of een reeks draaischakelaars die ons een saxofoonklank kunnen geven. We beschouwen het instrument eenvoudig als een set schakelaars op een set bussen, en in wezen een digitale stroom van 0 en 1's.

Stap 2: Bedrading vanaf de toetsenborden

Bedrading vanaf de toetsenborden
Bedrading vanaf de toetsenborden
Bedrading vanaf de toetsenborden
Bedrading vanaf de toetsenborden

Om te helpen bij het bedraden van de toetsenborden, is een printplaat geconstrueerd met behulp van Eagle CAD. De afmeting is ongeveer 96 mm x 43 mm en er zijn 8 nodig, die zich uitstrekken over de achterkant van de orgelklavierassemblages.

Laten we deze Printed Circuit Board (PCB) in detail bekijken. De linker afbeelding is de voorkant van de print waarop componenten zijn gemonteerd, en de rechter is de achterkant waar we de componenten solderen.

Ten eerste zijn de 2X3-componenten aan de bovenkant bedoeld om verbinding te maken met de toetsen hierboven, met de bovenste twee aansluitingen bus 0 en 1, het volgende paar 2 en 3, en het onderste paar ook bussen 2 en 3. Het bleek dat een PCB 2X3-header was stijf genoeg om enkelstrengige aansluitdraad van de toetsen op te nemen die eenvoudig in de header werden geduwd, vergelijkbaar met Arduino-schildbedrading. De aansluitdraad die ik gebruikte werd teruggevonden van het originele orgel; het heeft een diameter van 0,75 mm.

Dus elke 2X3 Header herbergt een kolom van de vet gemarkeerde toetsen, of in algemene termen één noot. Het bord heeft dus 8 van deze headers nodig. De afbeelding bevat een van deze vrouwelijke headers linksboven. Het middelste gedeelte van het bord is gevuld met 32 diodes (1N4148 of vergelijkbaar), die elk overeenkomen met een van de rode ingangen. De polariteit van de diode is zoals aangegeven op het bord, met kathode (zwarte band) aan de bovenkant van het bord. Een enkele diode wordt geïllustreerd op positie 4. Ten slotte bevolkt een enkele 2X5 mannelijke header het laagste deel van het bord. De bovenste 2 pinnen zijn niet aangesloten. Pin 1 bevindt zich in de rechterbenedenhoek en wordt aangesloten op de meest linkse 4 diodes, Pin 2 op diodes 5-8 en tenslotte 29-32 op pin 8. De header kan worden gesneden uit een langere DIL-sectie, zoals geïllustreerd op het bord. De bedrading tussen de verschillende componenten wordt in de PCB zelf gedragen, waarbij alleen de diodes en headers moeten worden gesoldeerd.

8 van deze complete platen worden direct onder de manualen gemonteerd met behulp van de meegeleverde montagegaten, die zich gemakkelijk over het orgel uitstrekken. De functie van dit bord is dus om een blok van 8 sleutels over 4 bussen te voeren en het te presenteren aan een mannelijke header waarop een 10-wegs lintkabel wordt aangesloten voor overdracht naar de volgende fase. Het bordontwerp kan worden gedownload van het meegeleverde zipbestand.

Stap 3: Toetsenborduitgangen consolideren in schuifregisters

Toetsenborduitgangen consolideren in schuifregisters
Toetsenborduitgangen consolideren in schuifregisters

Er zijn nog twee PCB's nodig, zoals hierboven weergegeven. Ze staan bekend als DIN R5 en zijn populair in de MIDI-wereld, hoewel ze gewoon een schuifregisterfunctie bieden. Ten eerste ziet u in het bovenste horizontale gedeelte 4 2X5 mannelijke headers, die via een lintkabel worden aangesloten op de 2X5-tegenhanger op de 8 boards hierboven. We hebben twee DIN-kaarten nodig voor onze 8 van dergelijke kabels.

Verderop op het bord bevinden zich IC-chips die een 32-bits schuifregister vormen, en tot slot van belang voor ons zijn nog 2 2X5-headers, waarvan één (J2) gangs naar verdere DIN-kaarten (onze tweede), en de andere J1 naar onze Arduino of Arduino-achtige microprocessor.

Samenvattend hebben we -

  • Tot 4 bussen met 64 toetsen die worden ingevoerd in
  • 8 kaarten met 32 ingangen, 8 uitgangen per bus
  • deze 64-uitgangen worden ingevoerd in 2 32-bits schuifregisters
  • de Arduino-microprocessor fietst over de bussen

Stap 4: De hardware samenstellen

De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen
De hardware samenbrengen

De verbindingen tussen Arduino, de twee DIN-kaarten en de lintkabels van het orgeltoetsencomplex worden geïllustreerd in de bovenstaande afbeelding. Merk op dat de J2 van de tweede DIN gewoon leeg is gelaten.

De connectoren maken gebruik van IDC-technologie (isolatie-verplaatsingscontact) en de draden hoeven niet te worden gestript of gescheiden. Ze worden op de kabel aangebracht met een compressietool die verkrijgbaar is bij hobbyisten. Aan de linkerkant kan het uiteinde van de gekrompen kabel worden afgemaakt met een scheermesje; in het midden biedt de onderkant van de connector een 2X5 vrouwelijke aansluiting; en rechts een bovenaanzicht van de connector.

De DIN-borden en de aangepaste printplaten werden bevestigd aan het orgelhoutwerk met behulp van messing houtschroeven met ronde kop en afstandhouders. Een gedeeltelijk aanzicht van de aangepaste printplaten die in het orgel zijn gemonteerd, is hierboven afgebeeld. De bovenste aansluitkabels verbinden stops of bedieningselementen met de boards, en de massa aan de linkerkant komt van de pedalen. Ten slotte heeft het verwijderen van de toongenerators en andere diverse functies van het originele orgel het mogelijk gemaakt dat de leegte van de kast opnieuw kan worden gebruikt voor wijnopslag.

Stap 5: Het Arduino-complex

Het Arduino-complex
Het Arduino-complex
Het Arduino-complex
Het Arduino-complex
Het Arduino-complex
Het Arduino-complex
Het Arduino-complex
Het Arduino-complex

Het Arduino-complex dat links van de twee DIN-kaarten hierboven te zien is, wordt nu besproken. Het bestaat uit drie verschillende lagen, onderling verbonden als Arduino-schilden. De PCB's waaruit de lagen bestaan, zijn toevallig blauw, groen en rood gekleurd.

De blauwe laag (bovenaan) is een schild geproduceerd door Freetronics, dat een 16X2 liquid crystal karakterweergave biedt. (2 rijen van 16 tekens). Het is niet strikt noodzakelijk, maar is uiterst nuttig bij het controleren van de werking van keyboards, pedalen en registers. Het wordt aangestuurd door de LiquidCrystal-bibliotheek en andere hardwarevarianten kunnen gemakkelijk worden vervangen.

De rode laag (onderaan) is een Teensy 3.2 gemonteerd op een Sparkfun Teensyduino-bord. De Teensy biedt directe MIDI-ondersteuning en gedraagt zich verder als een Arduino UNO. Dus het gebruik van de Teensy bespaart componenten stroomafwaarts. De aansluiting voor de voeding (5V 2A) bevindt zich linksonder en de USB-connector die seriële of MIDI-uitgang ondersteunt, bevindt zich links in het midden. De headers aan de boven- en onderkant bieden standaard Arduino-schildfunctionaliteit.

De groene laag (ingeklemd tussen blauw en rood) is een op maat gemaakte printplaat. Het doel is in grote lijnen om stukjes en beetjes te ondersteunen, zoals een koppeling naar de DIN-kaarten, en om externe bedrading te verminderen. Een deel van de functionaliteit is overbodig. Het bevat een aantal circuits voor het ondersteunen van MIDI via een standaard Arduino UNO. Het biedt ook een 2X5 mannelijke header voor lintkabelverbinding met de J1-header op het eerste DIN-bord. Andere functionaliteit omvat ondersteuning voor volumeregeling; het originele orgel gebruikte een 10K potentiometer (pot) aangedreven door een voetschoen.

De vier horizontale headers bieden standaard Arduino-schildconnectiviteit met het Teensy-bord eronder en het Liquid Crystal-display. De opdruk die lijkt op een busstation in de linkerbenedenhoek is een overblijfsel en de lange verticale kop links biedt connectiviteit met de vier bussen, volumeregeling en aarde.

Het aangepaste bord is ontwikkeld met Eagle CAD en zip-bestanden van het Gerber-complex die naar PCB-fabrikanten zijn gestuurd, zijn beschikbaar in het PCB2-zipbestand.

Stap 6: De Arduino-software

De software is oorspronkelijk ontwikkeld voor een Arduino UNO en is later met zeer weinig wijzigingen aangepast om de Teensy te gebruiken. Het pingebruik is ongewijzigd.

Het Liquid Crystal-display gebruikt een half dozijn pinnen en er werd besloten om de analoge pinnen in digitale modus te gebruiken om een blok aangrenzende pinnen voor de bussen te krijgen. De volumeregeling gebruikt een andere analoge pin in de analoge modus.

Veel van de software houdt zich bezig met het lezen van het individuele toetsenbord, pedaal en stoptoetsen door elke bus om de beurt in te schakelen en de bitwaarden uit de schuifregisters van de DIN-kaarten te marcheren.

De downstream-omgeving omvat doorgaans een processor met Windows, UNIX of Linux en een Software Synthesizer zoals FluidSynth, die op zijn beurt door jOrgan kan worden beheerd. FluidSynth wordt uiteindelijk aangedreven door een of meer Soundfont(s), die specificeren welk geluid wordt gegenereerd wanneer een bepaald MIDI-commando wordt ontvangen. Er is enige analogie met lettertypen voor tekstverwerking. Voor het toetsenbord en de pedalen zal een wijziging ten opzichte van de vorige scan resulteren in het genereren van een MIDI-noot aan of noot uit-reeks. De meest linkse toets is MIDI 36, en neemt toe over het toetsenbord. De busindex biedt gemakkelijk ruimte voor het MIDI-kanaalnummer. Voor de stoptoetsen worden MIDI-programmabesturingssequenties gegenereerd, of het kan verstandig zijn om Note On/Off te genereren en het aan jOrgan of vergelijkbare MIDI-downstream-software over te laten om te interpreteren, aan te passen en uit te breiden. Welke koers ook wordt gevolgd, de uiteindelijke beslissing wordt opgelegd door de definitie van de downstream Soundfont(s). De software is in verschillende gedaanten gebruikt om MIDI via USB te genereren naar Windows met de Wurlitzer-applicatie en FluidSynth, en naar een Raspberry Pi met FluidSynth en een General MIDI Soundfont. Deze beschrijving is weliswaar summier, maar iedereen die bekend is met de Arduino-omgeving of C zal er geen moeite mee hebben om deze voor eigen doeleinden aan te passen; er is redelijke interne documentatie en redelijke modulariteit.

De Arduino-software bevindt zich in organino.zip.

Aanbevolen: