DIY USB DJ Controller
Många människor får in DJ dessa dagar, antingen som ett sätt att uttrycka sig själv eller ett sätt att tjäna extra pengar. Jag njuta av DJ eftersom det ger en mer intressanta inblandade och interaktiv musik-lyssnande erfarenhet, vare sig i sällskap av vänner eller i privat.
Hårdvara DJ styrenheter är traditionellt nästa steg efter att få fötterna blöta en mjukvaran-baserat DJ styrenhet. Och de är också traditionellt dyrt. Jag är bara en hobby DJ och ville verkligen inte spendera en massa pengar på min första DJ-Controller. De är ute för runt $100 USD, men jag är också i DIY! Jag har en passion för både musik och elektronik och ville ha ett sätt att kombinera två, så jag beslöt att bygga en egen DJ-controller med billig och snabb konstruktion i åtanke.
DJ-Controller jag kommer att bygga i detta Instructable ger dig bara ett exempel på vad du kan bygga med hjälp av kod, struktur, och bearbetar att jag visar här. Om du skulle ta denna idé och expandera det och polera det, kan du sluta med en riktigt fin och/eller helt olika MIDI-enhet. Min favorit aspekt av detta projekt är hur öppet det är modifieringen. Den slutliga produkten är helt enkelt något som tar analoga och digitala ingångar och ger en unik och enkel metod att förvandla dem till MIDI-utgångar. Se avsnittet om vad jag vill kalla "quasi MIDI" senare i denna introduktion. Jag bygger min controller när Numark Mixtrack II.
Min specifika DJ-Controller använder en tidig översyn av en mikrokontroller utvecklingsplattform känd för sin låga priset ($10) och hobby efter TI MSP430 startfönstret. Mikrokontroller koden jag ger är skrivet med Energia och kan överföra till Arduino med liten ansträngning, andra microcontrollers kan behöva ha koden portas till dem specifikt, vilket inte skulle vara alltför svårt. En bättre mikrokontroller med mer stift skulle kunna stödja fler ingångar, något att ha i åtanke om du ska bygga detta projekt annorlunda. Jag kommer att inkludera en mer omfattande lista över material som behövs, färdigheter och programvara senare i Instructable.
Vad är en DJ-Controller?
Rolig fråga. En DJ-Controller är en fysisk enhet som du kan ansluta till en dator som är utrustad med en programvara baserad musik-blandning program. En musik-blandning program kan en DJ att spela låtar och lägga till effekter, "scratch" spåret, kontrollera ljud equalizer, volymen, spela loopar och samplingar, och viktigast, blanda flera låtar tillsammans för att sömlöst växla från en låt till en annan. Allt detta händer live och är ganska imponerande om DJ är bra (se denna video, Varning: innehåller explicit språk. Hon använder flera DJ domänkontrollanter i den här videon för att blanda fyra låtar på en gång), ibland liknar spelar ett instrument! DJ-Controller ger DJ ett fysiskt gränssnitt till snabbt utföra alla dessa åtgärder. Med mus och tangentbord till DJ snabbt blir begränsa efter en tid, om du har använt en mjukvaran-baserat DJ-Controller för en tid, du vet vad jag menar.
På maskinvarunivå är nybörjar DJ styrenheter mycket enkel enheter. De läser indata från en massa sensorer (knappar, reglage, rattar, etc) och konvertera indata till kontrollmeddelanden för DJ-program. Ett populärt format för dessa meddelanden är MIDI, vilket är ganska mycket vad vi kommer att använda här.
Detta projekt är dock inte jämförbara med high-end professionell nivå DJ styrenheter som är mycket mer komplex och andra funktioner (pre-cueing, integrerade ljudkort, etc). Detta projekt också inte har jogwheels (Jag vet inte var man kan få delar, jag personligen använder inte dem, och de skulle göra projektet kosta mycket mer).
Ange detta projekt
Detta projekt ger en relativt enkel och billig anpassade gränssnitt för att utföra grundläggande uppgifter DJing. Det är kul att bygga, anpassningsbara, utbyggbar, och en ingångsnivå DJ styrenhet för hobby DJs! av hur coolt det vore att ha egna, handgjorda DJ-controller upp på bordet på fester, och vet att det faktiskt fungerar!
Funktioner:
- Låg kostnad (runt $75 totalt)
- Anpassningsbara (särskilt med en 3D-skrivare! ;))
- Utbyggbar och omkonfigurerbara
- USB-ansluten (kräver inga externa MIDI-kablar/converter)
- Cool Laser skär fallet!
- Relativt enkel och lätt att göra
- Cross-plattform på Windows, Mac och Linux (oprövad, men mer om detta senare)
- Kan användas med många av de mest populära professionella DJ programvara (mer om detta senare)
- Hur jag bygger den, finns det mer än 80 möjliga ingångar!
Hur många och vilka kontroller har detta DJ-Controller?
Den här domänkontrollanten har en hel del kontroller på den. Eftersom jag bara använder en 20-pin mikrokontroller, beslöt jag att använda två av samma mikrokontroller och även en extra 8-kanals Analog till Digital omvandlare till få mest ute om min lilla MSP430G2553s. Min permutation av den här domänkontrollanten har:
- 11 rattar
- 3 reglagen
- 5 knappar
- En Rotary Encoder med integrerad knappen
- En 12-siffrig knappsats som har 3 olika lägen och kan påverka antingen däck (12 X 3 X 2 = 72 olika funktioner!)
- Växeln däck också skickar kommandon så att programmet kan välja aktiv däck /PFL
Dessa kontroller kan programmeras att göra vad du vill! Min konfiguration visas senare men det är i princip:
Knoppar - bas/Mid/diskant/FX 1/FX 2 för varje däck, och sedan en "master något"
Skjutreglage - Crossfader, däck 1 volym och däck 2 volym
Knappar - Play/Pause och Sync för varje däck, och sedan ett "!" knappen (vad du vill)
Rotary Encoder/knapp - används för att bläddra bland musik insamling och välja låtar
Knappsats - läget 1 är för loopar, Mode 2 är för effekter, läge 3 är för prover
Vad detta Instructable kommer att täcka
I detta Instructable, kommer jag presentera dig för en hel del elektronik lektioner som kommer att kombinera för att skapa den färdiga produkten! En grov lista över några saker du kan lära dig/praxis genom att bygga detta:
- Metoder för snabbt prototyping ett projekt som omfattar en mikrokontroller och seriell kommunikation
- Med hjälp av Energia, en Integrerad utvecklingsmiljö (IDE) för TI startfönstret och ladda upp koden till en mikrokontroller
- Med hjälp av behandling, en programmering språk och IDE som är perfekt för att snabbt ställa in seriell kommunikation med ett sådant här projekt
- Ansluta och tolka digital (knappar) och analog (rattar och reglage kallas potentiometrar) ingång
- Läsa en 12-siffrig knappsats (användbart i andra projekt också!)
- Läsa indata från en Rotary Encoder
- RAW binära seriell kommunikation mellan en dator och en mikrokontroller och mellan två mikrokontroller
- Skapa en anpassad låg-data kommunikationsprotokoll (tung användning av binär matematik, god praxis för digital logik studier!)
- SPI kommunikation mellan två ICs (nämligen en MSP430G2553 och MCP3008 Analog-till-digital-omvandlare)
- Byggandet av kretsar på perfboard
Och möjligen mer!
Vänligen notera detta projekt var mycket svårt att montera så bara försöka om du är bra med en lödkolv eller har råd att göra några misstag!
Översikt över material som behövs
Denna lista kommer att ändras beroende på hur du specifikt bygga detta projekt, men det ger en allmän översikt över vad du bör förvänta dig att behöva. Specifika listor av delar för varje steg kommer att ingå med följande steg. Länkar finns för referens.
För elektronik:
- Roterande potentiometrar (x11, 10kOhm, linjär taper, variabel-motstånd)
- Rattar för potentiometrar (x11, jag fick 7 röd, 2 blåoch 2 vita)
- Skjut potentiometrar (jag fick en stor och två medium)
- Toppar för Skjut potentiometrar (x3)
- Tryckknapp växlar (x5)
- Växlar (1 x tvåvägs, 1 x tre-vägs [kommer från gamla väckarklocka])
- En 12-siffrig knappsats (x1)
- Rotary Encoder (x1)
- TI Launchpad eller jämförbara microcontroller utvecklingsplattform
- MSP430G2553 eller jämförbara mikrokontroller (två av dem, kan du få dem från TI som gratisprover! Se till att beställa förpackningstypen kallas "PDIP" eller annars det brukar passa i din Launchpad!)
- MCP3008 (x1), en 10-bit, 8-kanals Analog till Digital omvandlare
- Massor av 22ga Hookup wire (solid kärna, inte blir strandsatta!)
- Ett par grindar att skära upp och använda
- Några kvinnliga/manliga headers (silvertejp av elektronik, plocka upp en hel del på ebay!)
- Några motstånd (du inte behöver 500)
- Du kanske vill sätta lysdioder i det färdiga projektet så att det ser super cool, prova dessa (video)
För fallet:
Behöver du tillgång till en laserskärare att använda min design. De topp och botten panelerna vi använde 1/8" plywood, och sidopaneler och ilägg vi använde 1/8" plexiglas. Detta bör kunna anskaffas på den laserskurna shop. Du behöver också superlim (jag rekommenderar både gel kontroll och flytande Loctite). Du kanske vill prova plexiglas lim så det kommer ut klart, men jag hittade det inte var tillräckligt stark.
Och det är det!
Översikt över verktyg/utrustning behövs:
Några verktyg är inte helt nödvändiga, men de gör konstruktionen gå mycket snabbare. Jag använde:
- Tillgång till laserskärare
- Olika handverktyg (tång nål näsa, spola avbitare, rakblad, skruvmejslar, etc)
- Wire strippor
- Roterande verktyg (IE: Dremel, en lämplig en kan fås för $20 eller mindre. Min favorit verktyg!)
- Lödkolv (passar en för $20)
- Kolofonium Core elektronik löda
- Olika lödning leveranser (desoldering fläta, flux, etc)
- Helping Hands (Jag använde bara min housemate)
- Sandpapper (600/fint grus, 100/grovt grus)
- Glasögon :)
Översikt av färdigheterna
Jag ska försöka göra detta projekt som lätt att följa som möjligt, men vissa saker du bör ha en grundläggande förståelse för inkludera:
- Lödning färdigheter (tutorial här)
- Kompilera och ladda upp programvara till din specifika microcontroller plattform (tutorials för Energia kan hittas här, överväga att göra några enklare projekt först om du är obekant)
- Med hjälp av ett DJ program, som vad jag kommer att använda: Virtual DJ
- Programmering erfarenhet är ett plus, som min kod inte fungerar direkt med din konfiguration
- Förståelsen av bitvis matematik
Vad är "Quasi MIDI"?
Kvasi MIDI, är som jag vill kalla det, något jag gjorde upp för det här projektet. När jag kom först upp med hur du länkar maskinvaran till DJ mjukvaran på det snabbaste och enklaste sättet, tänkte jag på MIDI omedelbart. Nästan varje större DJ program stöder det, den kan användas för andra projekt och det är ett ganska enkelt protokoll i sin egen rätt. Dock den arkaiska kontakten som används är inte längre finns på moderna datorer och ofta behövs en MIDI till USB omvandlare som lägger extra kostnad och eventuell oförenlighet till projektet. MIDI-enheter som faktiskt uppfyller branschens standard också kräver ytterligare kretsar (optoisolators, etc, mer komplicerat!) och bara i allmänhet svårare att snabbt prototypen med. Så kom jag upp med idén att använda ett par förmedlande program. En översikt över hur det fungerar är detta:
1. de viktigaste mikrokontroller tar emot hårdvara input
2. de viktigaste Microcontroller skickar ett specialiserade meddelande till datorn via en USB-seriell anslutning
3. värd program på datorn skrivs med bearbetning lyssnar på porten och tar emot meddelandet
4. bearbetningsprogram omvandlar detta meddelande till ett MIDI-meddelande och skickar det här meddelandet över en virtuell MIDI-anslutning (mer om detta senare). Den virtual MIDI-anslutningen varierar enligt plattform, men på Windows använde jag loopMIDI av Tobias Erichsen. Den här funktionen är inbyggd på Mac och Linux...
5. DJ program tar emot MIDI-meddelandet via virtual MIDI-anslutningen och en specifik funktion har mappats till MIDI-meddelandet.
Jag ska göra mitt bästa för att utveckla särskilda stegen i denna process senare i Instructable. Detta är långt ifrån robust men det fungerar utan att behöva någon extra maskinvara, ett definitivt plus med tanke på de ursprungliga målen med mitt projekt. Du kan ta detta dataflöde och modifiera den för att passa alla MIDI-baserade projekt du kan komma med! Vill du göra din egen anpassade digital MIDI trumset? Eller något ännu konstigare som vad renhet ringen använder? Du kan enkelt göra det med den här metoden!
Poäng:
- Elektronik och kod - mig!
- Fall Design, de flesta av konstruktionen, och hålla allt medan jag lödda det - min housemate Eric
- Raketen Logo - min vän Philip
- DJ Demo - min vän Kyle
Musik i videon:
Merce ft. Farisha - regn staden
- Attak (Feat. Danny Brown) - Rustie
- Rulle - herr Carmack
- Göra det Bun mark - Skrillex
- Berätta för mig (Feat. Vad så inte) - RL smuts
- Förra året - Borgore
- Sömnlösa - vattenrännan
Bröd och sånt
Jag skulle vilja ta ett par bröd till alla domare som utvärderar detta Instructable för flera tävlingar jag vill ange :).
Formlabs tävling:
Gör så för ett elektronik projekt har alltid varit den svåraste delen för mig. Hur allt passar ihop? Hur kommer jag kablar? Hur kommer gränssnittet ser ut och passar med elektronik? Sista projektet endast skulle bli en breadboarded krets på en bit kartong, men min housemate berättade han kunde designa en laser skär fallet så jag gick alla ut. Svåraste var fortfarande att sätta den i mål samtidigt som det ser bra ut. En laserskärare kan bara få dig hittills... 2 dimensioner. En 3D-skrivare öppnar upp en helt ny nivå av anpassning. Jag gillar att göra elektronik med musik och de ska se lika bra som de låter.
Min sambo med detta projekt är även arkitekt och skulle kunna dra stor nytta av en 3D-skrivare. Hans modeller väcks till liv av hög kvalitet 3D utskrifter från en kåda 3D skrivare.
Jag är också i återställa bilar (särskilt en 1980 MGB just nu) och jag tror att din 3D-skrivare skulle tillåta mig att göra högkvalitativ reproduktion plastdetaljer för bilar som är annars riktigt dyra eller otillgängliga nya. En MGB community jag isär skulle definitivt gynnas de reproduktion delar som jag kunde producera. Jag kan också göra en massa häftiga uppgraderingar/fästen och grejer för bilar.
Plus, jag har alltid velat lära sig CAD och en 3D-skrivare skulle ge mig lite motivation :)
MicroController tävling sponsrad av Radioshack:
Detta projekt omfattar inte bara en mikrokontroller, men den har två! Det är två gånger det nödvändiga antalet microcontrollers! Jag vill också påpeka att jag använt en mer underrepresenterade microcontroller plattform (TI MSP430), främst på grund av dess låg initialkostnad och mångsidighet. Detta projekt visar verkligen hur du kan sträcka de begränsade stiften på denna plattform att göra ganska mycket.
Det är också värt att notera att den dataflöde som används i detta projekt kan någon följetong-aktiverade microcontroller för att bli hjärnan hos ett MIDI-instrument, inte bara MCUS med inbyggd HID/USB-maskinvara.
Tech tävling sponsras av Littlebits:
Detta projekt och littlebits delar ett gemensamt mål: prototyper. Uppfinningsrikedom och rätt verktyg gå långt när du arbetar mot en fungerande prototyp, således "quasi MIDI" metoden som jag kom med. Jag också försökt att införa läsarna till prototyper med en av mina favorit programmering verktyg, bearbetning.
Återigen, det är värt att notera att den dataflöde som används i detta projekt kan någon följetong-aktiverade microcontroller för att bli hjärnan hos ett MIDI-instrument, inte bara MCUS med inbyggd HID/USB-maskinvara.
Tack för din överväganden!