HUR MAN GÖR EN ELEKTRONISK DRUM. (inte en MIDI-sampler) aka KIDU (8 / 11 steg)
Steg 8: Källa koden arbetar
Biblioteket som vi använder för att spela ljudet från sd-kortet är
SimpleSDAudio.h., detaljer som jag har förklarat indetail i
stammen förbereder SD-kortet.
Nu i den skiss. har jag endast för 4 trummor och en cymbal.
eftersom jag har inte expained hur man gör pedaler.
Jag ska försöka min maximalt för att ladda upp det asap. Men jag har konverterat ljud
för allt (8 komponenter per trumma stil.) dvs för 4 trummor, 1cymbal,
Öppna highhat & slutna hög hat.and kick.
Som tidigare nämnts., programmet använder trummor för triggring också.
Detta var lite av en chalenge för me.but jag gjorde det till slut.
Du kan märka i källkoden för att jag har gjort den analoga läsa två gånger.,
med 2 trummor med olika namn varje gång.
Den första gången., använder vi trummor snara och tom1 för att välja den trumma.
Virveltrumman används som stil går count.the räkna från 1 till 6
och repetitioner från 1 igen. Du kan lägga till så mycket stilar som storleken på den
SD-kort du använder. Du måste bara ladda upp alla ljud du behöver.
Det finns en annan räkning till loopa igenom nästa uppsättning av analoga avläsningar.
Detta är den utvalda count.wen någonsin du har ställt in räkningen med
ypur virveltrumma, vi confrm den genom tom1 drum.once tom1 trumman är hit.,
Det skulle starta en select count. När Välj räkna är 1, (dvs den första träffen på
tom1 trumma), slinga för att trumma utlösa startar.
Trumma trigering slingan är ganska enkel. Om analog läsning överträffar en thushold
KIDU hörs motsvarande ljudet. Och loop kontinuerliga.
t.ex.: om analogread värde > thrushold & om stylecount == 1
sedan, spela ljudfilen 1_snare.raw för virveltrumma.
PROG t.ex.:
om (snara > 50 & & stylecount == 1)
{
SdPlay.setFile("1_snare.raw");
SdPlay.play();
Serial.println("Snare");
}
Nu för programmet som innefattar sparka ahd high-hat, det är inte mycket svårt.
Allt vi behöver göra är att inkludera del för digital läsning en knapp.
Vi måste använda en enkel mono puls switch och en debouncing funktion, för Spark.
Funktionen debouncing är närvarande i exemplen för
Arduino programmering environment.and för höga hatten., debouncing och switch delarna är samma.
Den om loop kommer att ha ett extra villkor varje för öppna anf stängd.
dvs
om (choke == hög & & highat > thrushold & & stylecount == 1)
{
SdPlay.setFile("1_chh.raw");
SdPlay.play();
Serial.println ("stängda highhat");
}
om (choke == låg & & highat > thrushold & & stylecount == 1)
{
SdPlay.setFile("1_ohh.raw");
SdPlay.play();
Serial.println ("öppna highhat");
}