Polyfoniska köket (6 / 8 steg)

Steg 6: Koden: bearbetning



i vår bearbetning kod, vi hakas upp ingångarna fått från den seriella porten till en ljudfil. Om att vissa sensor går av, börjar ljudet. Du kan märka en viss fördröjning i uppstarten av ljudet. Detta beror på att vi har räknat ut det så att ljudet kommer att börja på beat och arbeta med varandra.

Zip-filen har båda datafilerna (ljudklipp) och bearbetning skissen i rätt mapphierarki så bara ladda ner zip-filen, extrahera mappen med dess som innehåller filer ut och öppna upp bearbetning skissen! (Om något hände det, se bara till att både mappen och filen .pde är inne i mappen med samma namn som filen .pde.)

Anteckningar om koden:
1) den seriella porten definieras i den här koden måste matcha den seriella porten du har anslutit din Arduino att. I setup-funktionen, ställer vi in variabla porten till en seriell objekt som representerar den port som används för att läsa data. För närvarande, det är satt till den första tillgängliga porten, men om det inte fungerar, ändra det andra argumentet till namnet på den port som din Arduino är ansluten till.
2) vi har i förväg två genrer av musik. Om du vill växla mellan två, måste du ställa in i varierande tempo och räkna till rätt nummer enligt definitionen i kommentarerna.

Bearbetar koden:

/*
Polyfoniska köket
Sara Montoro
Karl Landin
Alice Lee
Noah Pitts

University of California, Berkeley
CNM290/CS294-85
Kritiska göra: Material, protokoll och kultur

Lämna oss en kommentar om du har förslag och andra idéer!
*/

import processing.serial.*;
import ddf.minim.*;

int [] mag = {0,0,0,0}.
int [] pot = {0,0,0,0,0}. Potentiometrar lagras inte i ordning. I mitten
ansluten till pin A3 är faktiskt matas in följetongen efter
alla de andra potentiometrar. Det kommer att bli det sista värdet av
denna array (pot[4]).
float volumeCab;

int mot = 0; rörelsesensor. (används inte)
int keps;

ljudfiler
String [] låtar;
String [] reggae = {"t75bass1.wav","t75drums1.wav","t75horn1.wav","t75guitar1.wav","t75keys1.wav","t75synth1.wav","t75vocals1.wav","t75backup1.wav"};
String [] flamenco = {"t120bass1.wav", "t120drums1.wav", "t120guitar1.wav", "t120guitarSolo1.wav", "t120percusA1.wav", "t120percusB1.wav", "t120piano1.wav", "t120vocals1.wav"};

booleska minimStarted = false;

Om du vill välja en annan genre, ändra den nedan två variabler med dem på den musik du vill.
REGGAE, tempo = 75, count = 1
FLAMENCO, tempo = 120, count = 1
int tempo = 75.
int count = 1;

int slå, beatSum, lastMillis, fel, mspb, bps;

Seriell port;

Minim minim;
AudioPlayer [] spelare = nya AudioPlayer [8].

void setup() {
mspb = antal * 60000/tempo;
bps = tempo/60.
storlek (512, 200, P3D);

Observera: det andra argumentet i denna uppmaning skall namnet på serieporten som
din Arduino kommunicerar med datorn via. (På din Arduino skiss,
gå till Verktyg > Serial Port. Den markerade porten är den din Arudino använder.)
Om du vill se en lista över tillgängliga portar, kommentera bort den under linjen.
println(Serial.list());
Port = ny följetong (denna, Serial.list() [0], 9600);

att kunna nå datakatalogen
Minim = nya Minim(this);

Switch(tempo) {
fallet 100:
println ("Tempo: 100 - nr Media tillgängliga"); tempo = 100
bryta;

fall 120:
FLAMENCO temp = 120
låtar = flamenco;
bryta;

fall 140:
println ("Tempo: 140 - nr Media tillgängliga"); tempo = 140
bryta;

REGGAE tempo = 75
fall 75:
låtar = reggae;
bryta;
}

loadfiles från datamappen och mappen skiss
för (int x = 0; x < songs.length; x ++) {
spelare [x] = minim.loadFile(songs[x]);
}

Begära värden direkt
port.write(65);

för (int jag = 0; jag < 4; i ++) {
Players[i].loop();
Players[i].setGain(-80);
}
Minim.start(this);
}

void draw() {
Background(0);
stroke(255);
frameRate(120);

Ändra volymen på spisen
för (int jag = 0; jag < 4; i ++) {
Players[i].setGain(Map(float(Pot[i]),0,1023,-80,14));
}

volumeCab = map(float(pot[4]),0,1023,-80,14);

för (int jag = 0; jag < 4; i ++) {
Players[i+4].setGain(volumeCab);
}

hålla musikalisk tid
IF(Millis() > = lastMillis + mspb) {
lastMillis = millis ()-6.
IF(Beat == 32) {
slå = 0;
}
fel = lastMillis % mspb;
Print(Beat);
skriva ut ("," + beatSum);
println (", fel:" + fel + "ms");

för (int jag = 0; jag < 4; i ++) {
om (mag [i] == 1 & &! players[i+4].isPlaying()) {
spelare [1 + 4] .setLoopPoints (0, 5);
Players[i+4].Play(0);
println ("spelare" (jag + 4) + "bara sovit");
}
Players[i+4].setGain(volumeCab);
}

Lägg till att slå räknas
slå = slå + count;
beatSum = beatSum + count;
println ("cap:" + Integer.toString(cap));
}
}

Stäng alla ljudspelare och minim
void stop() {
för (AudioPlayer p: spelare) {
p.Close();
}
Minim.stop();
Super.stop();
}

anropas när det finns något availble att läsa
void serialEvent(Serial port) {
Läsa data
Sträng input = port.readStringUntil('*');
om (input! = null) {
Skarva strängen i en matris av heltal
int [] vals = int (splitTokens (ingång, ", *"));

kolla alla värden finns
om (vals.length! = 10) {
println ("fel: bara fått" + vals.length + "värderingar.");
hemkomst.
}

Tas värdena i variablerna
om (cap! = int(vals[0])) {
Cap = int(vals[0]);
Starta/stoppa minim
}

för (int jag = 1; jag < = 5; i ++) {
om (pot [i-1]! = vals[i]) {
Se upp! Mellersta potentiometern skrivs ut sista och kommer att potten [4]
eftersom det var ugnen i vår prototyp och inte en spisen brännare som den
övriga 4 potentionmeters
potten [i-1] = vals [i];
}
}

för (int jag = 6; jag < = 9; i ++) {
om (mag [i-6]! = vals[i]) {
mag [i-6] = vals [i];
}
}
}
handskakning
port.write(65);
}

Se Steg
Relaterade Ämnen

Ekologiska feriliser från köket vägra

med hjälp av vardagliga ekologiska kök vägrar jag ska gå över ett par olika sätt du kan distribuera överblivna frågan till trädgården. I huvudsak återanvändning av avfall från köket att göra mat.Om du inte redan kompost, är vad du behöver ett sätt at...

DIY köket Pot Rack

jag gillar att laga mat, och när jag lagar mat, jag hatar behöva gräva igenom skåp på jakt efter vad matlagning genomföra jag är i behov av. Jag gillar att kunna nå ut och ta tag i allt jag behöver när jag behöver.Jag har alltid velat ha en av dessa...

DIY vakuumkammare för sous vide och köket

detta är mitt första försök till en DIY hem vakuumkammare för sous vide och marinering mat i köket. Jag tillbringade omkring $170 inklusive kostnaden för en ny vakuumpump. Här är en demonstration:Kammaren är en platt bit av hög kvalitet plast (polyka...

Matlagning grunderna: Några Tips för att vara Smart i köket

Damer i våra hem tillbringade större delen av sin tid i köket för att förbereda mat för familjen. Som en äldsta barn brukade jag hjälpa min mamma att hushållssysslor när jag var ung. Nu även jag hjälpa min fru i köket på vissa sätt som skära grönsake...

Hur man gör spöket från Pac-Man av lera

1. Detta är min skapelse av spöket från Pac-Man2. material: Röd, svart och vit lera,och lera Sculpting verktygSteg 1: Kroppen Andens 1. med hjälp av röd lera, rulla upp till ungefärligt 1.4 inches bred, ochoch ca 2,7 inches i längd.2. för huvudet gör...

Hur du använder köket på TechShop San Francisco

Om du är medlem på TechShop, har du antagligen tagit fördel av obegränsat kaffe och popcorn. Du har kanske även använt mikron för att "laga" vissa ramen nudlar? Men har någon någonsin gå igenom alla köket hur-till och etikett att göra dig en awe...

Laptop hyllan - använda Keter Alpha

Ingen plats att sätta din bärbara arbetsdator? Inga problem!Detta instructable visar hur konvertera Keter's Alpha låda i en laptop låda/hyllaProduktsidaSteg 1: Skär den! Teckna själva lådan.Sedan förkorta "benen" på hyllan, så att den bärbara da...

Med sex mynt för att fixa det trasiga och fallande filtret täcker av fläkt i köket

det är svårt att hitta och installera nya filter överdrag till den gamla fläkten i köket. Detta är ett enkelt sätt att fixa det med mindre ansträngning.Steg 1: Tillfälligt fastställande filter cover position Använda starka band till tillfälligt fasts...

Säkerhet i köket (skärbräda)

tag i köket, dess mycket viktigt att ha ett stabilt underlag när du klipper.du behöver:en tvätt trasaen skärbrädaSteg 1: våt trasa grundligt och ringer det ut Placera trasan där du ska att skära.Steg 2: plats i styrelsen på toppen detta görs för att...

Hur göra använda av trånga utrymmen överblivna i köket...

Detta var mitt komplement till min Ikea-kök. Jag hade ett 220mm mellanrum mellan skafferiet och kylskåpet, och var inte säker på hur man kan fylla den. Detta var min lösning! Lagras min kvast och sugslang och olika andra bitar.Vad du behöver:2 platt/...

Knäppa bilder med Wolfram språket på Raspberry Pi (författare: Arnoud Buzing)

Detta inlägg visar hur man använder standard Raspberry Pi kameran med Wolfram språket på en Raspberry Pi.Ursprungliga inlägget: http://community.wolfram.com/groups/-/m/t/157704Steg 1: hårdvaraFör att återskapa detta experiment behöver du följande hår...

Hur man gör en polyfonisk musik installation utlöses av kapacitiv touch pekar med en Arduino

Under ett projekt på KISD gjorde vi en interaktiv musik anläggning som var spelbara på ett ställe som kollektivtrafik. Utseendet på det var inspirerad av de färgglada metro planer som avgränsar varje tåglinje med en annan färg. För linjerna använde v...

DIY köket extractor hood

Varje kök behöver ett sätt att ta bort lukter och ånga. Det är lätt att köpa en extractor huva från IKEA men varför inte bygga en själv?När du ställer in vårt nya kök hade vi allt utom extractor huven. Vi grävde många affärer för en perfekt en. De fl...

Bofink uppstoppning (1: a försöket, grafiska bilder, du har blivit varnade!)

Så jag bestämde mig efter knäckt dolly huvuden, skallar och ben, jag skulle ha en gå på uppstoppade djur. Och den dagen en bofink sjönk död i min föräldrar trädgård. Efter en månad i min frys beslutade jag att ge det en chans. Så jag tog väsentligenw...

Programmera Arduino Uno i C-språket

Hej vänner,I detta instructable, har jag visat hur man programmerar Arduino Uno i C-språket.Arduino använder sitt eget språk till programmet Arduino styrelser, eftersom dess programmeringsspråk som är lätt att förstå.Men den kan också programmeras i...

Språket i regn - An Arduino-baserad regnrock med ljud och LED

Vi kommer att göra en magisk regnrock som kunde översätta språket i regnet med hjälp av en LED stripe och ett ljudkort.Människor har en blandning av känslomässiga reaktioner till regnet. Vissa människor njuta av det, medan andra inte gör. Men om du a...

SPRÅKET av färger

se språket i färg i ansiktet...

Hatt Box spöket kostym * uppdaterad *

hat box ghost är en av Disneys 999 glad tillhåll han är förmodligen mest kända spöken i Manson eller från herrgården?? Vi ska vad gör han göra?? Huvudet försvinner i till en låda som han håller i sin hand kallas en hatt låda Walt Disney säger detta o...

Hur till hålla din familj av köket!

Du vet att det är sommar när AC körs 24/7 och utanför termometern läser 80 grader vid midnatt.Det sista du vill göra är värme upp huset matlagning en måltid... men ingen är på humör för en annan chef sallad.Ta det utanför!Visst, BBQ grilla är bra......