MIDI kontrollerad analog FM synt (4 / 4 steg)

Steg 4: Speltid



Med en MIDI-controller ansluten till din Arduino och ljud ansluten till produktionen av Digital Potentiometer, kör kod (klistras/länkade nedan) och du är redo att rocka.

Här är en video demonstration av vad min bygga lät som när du använder en batteridriven förstärkare: http://youtu.be/JzKzRq4mcdk

//____________________________________________________
/*

write_pot (0, 0); 7555car ingång,
write_pot (1, 0); 7555car ansvarsfrihet,
write_pot (2, 0); 7555car volym,
write_pot (3, 0); 7555mod vol, effektivt modulering index
write_pot (4, 0); Tröskelvärde för 7555mod
write_pot (5, 0); 7555mod ansvarsfrihet

När tröskeln och ansvarsfrihet flyttas tillsammans på ett chip (transportören eller modulator)
de kontrollerar frekvens, när flyttas oberoende av varandra, de styr tonhöjd men med förändrade
puslewidth eller plikt cicle. Detta ändrar klangfärg i produktionen.

*/

Trim förinställningar.
skala 0-127 genom detta mycket för varje pott, volym skalas olikt än andra parametrar.
int data_scale [] = {2, 2, 1,25, 1,25, 2, 2};

Du kan behöva spela med detta nummer för att få din controller nummer uppradade med 6 parametrar.
int controllerOffSet = 0; Detta nummer är specfic till novation MIDI-controller

int DATAOUT = 11;
int DATAIN = 12. MISO - inte används, men en del av inbyggda SPI
int SPICLOCK = 13. SCK
int SLAVESELECT = 10; SS
int incomingByte = 0;
int Obs = 0;
int vel = 0;
int controller = 0;
int värde = 0;

byte motstånd = 0;
heltal index;
int outdex;

void setup()
{
Ställ in MIDI-baud-hastighet:
Serial.BEGIN(31250);
Debugger, eller seriell styrning baud
Serial.BEGIN(9600);

byte jag = 0;
byte clr = 0;

setup stift att arbeta med SPI
pinMode (DATAOUT, OUTPUT);
pinMode (DATAIN, indata);
pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
digitalWrite(SLAVESELECT,HIGH); Inaktivera enheten
SPCR = 01010000
avbryta inaktiverad, spi aktiverat, msb 1st, master, clk låg när sysslolös,
prov på framkanten av clk, system klocka/4 (snabbast)
SPCR = (1 << SPE) | (1 << MSTR);
CLR = SPSR;
CLR = SPDR;
Delay(10);

en LED flash och flash varje digital potten adress (för felsökning) och att tysta kretsen

Ange alla krukor till minsta/högsta antal motstånd och tillbaka igen
för (jag = 0; jag < 6; i ++)
{
digitalWrite (2, hög).
Delay(100);
write_pot(i,0);
digitalWrite (2, låg).
Delay(100);
}
Delay(1000); vänta en sekund

för (jag = 0; jag < 6; i ++)
{
digitalWrite (2, hög).
Delay(100);
write_pot (i, 255);
digitalWrite (2, låg).
Delay(100);
255 = full motstånd...
}

}

huvudprogrammet
void loop()
{

om (Serial.available() > 0) {
incomingByte = Serial.read();

om det finns ett visst meddelandeformat, om en viss MIDI status byte identifieras sedan
behandla de nästa två inkommande byte som data-byte
//
om (incomingByte == 176) {/ / status meddelande för midi cc kanal 1
Delay(1);
spela in den nästa byten som controller-nummer
Controller = Serial.read() - controllerOffSet;
Delay(1);
spela in den tredje byten som controller-data eller värde
värde = Serial.read();

}
Om styrenheten är inom rätt,
använda controller nummer Ange adressen (1 av 6 motstånd) och
Använd värdet av styrenheten att ställa in motståndet av nämnda adress

om (controller < 6 & & controller > = 0) {

vissa av parametrarna behöver skalning,
write_pot (controller, ((värde * data_scale[controller])));

slå på en LED när data skickas (för användaren feedback/felsökning)
digitalWrite (2, hög).
Delay(1);
} / / end om controller
} / / end om seriell

Delay(1);
digitalWrite (2, låg).
} / / end huvudloop

//-----------------------------------------------------------custom function calls--------------------

funktion för att skicka data till en viss adress
byte write_pot (int adress, int värde)
{
digitalWrite(SLAVESELECT,LOW);
2 byte opcode
spi_transfer(Address);
spi_transfer(Value);
digitalWrite(SLAVESELECT,HIGH); släppa chip, signalera slutet överföring
}

funktion för att överföra data över SPI
char spi_transfer (flyktiga röding data)
{
SPDR = data; Starta överföringen
tag (!. (SPSR & (1 << SPIF))) Vänta till slutet av överföringen
{
};
returnera SPDR; returnera den mottagna byten
}

Se Steg
Relaterade Ämnen

MIDI-kontrollerad Analog musik Synthesizer

För min elektroteknik projektkurs, bestämde jag mig på att utforma en synthesizer analog musik med MIDI-kontroll. Jag måste erkänna, detta var vad jag ville göra sedan gymnasiet och var mitt slutmål som musiker, artist, DIY person, och ingenjör. Dett...

Zeta Reticuli: MIDI kontrollerat 10-bands EQ och flera externa effekt gränssnittet

ungefär halva min livstid (20 år) sedan jag brukade ha bokstavligen drillions & drillions av idéer som jag fortfarande känner är inte ett fullständigt slöseri med tid. En av dessa lysande idéer var att kunna styra en gitarr wah pedalen från min dator...

Bygga MIDI bas pedaler för omkring $150

MIDI bas pedaler, liknar pedaler organists spela basen noterar med, men istället brukade spela en MIDI-synt eller ljudmodul, har varit populärt under de senaste årtiondena. Förutom tangentbord spelare, har många elektriska basister, som Geddy Lee av...

Skicka och ta emot MIDI med Arduino

Detta instructable visar dig hur du använder en Arduino att skicka och ta emot en mängd olika MIDI-meddelanden så att du kan börja bygga din egen MIDI-controllers och instrument. Första jag ska prata lite om MIDI-protokollet, om du bara letar exempel...

Musikaliska Melodyian MIDI Robot

Hälsningar jorden! Detta Instructable visar dig hur man bygger din egen Melodyian - en Arduino-baserad, 3D-printable robot som kan flytta, lyser upp och göra musik! Det är också en MIDI-robot och trådlöst kan styras via MIDI via Bluetooth.Denna robot...

Sandstorm Box

Denna box är i huvudsak en sample pad, försedd med tre potentiometrar för manipulering av vissa element som användaren har valt.Steg 1: 1. Ställa in patchar För detta instrument att arbeta, användes Makey Makey som styrelsen från vilka alla programme...

Arduino "Atom" golvuret

Jag ville ha en elektromekanisk golvuret som inte kräver slingrande och korrigera varje vecka men det såg och lät så original som möjligt.se min sida här Longcase klocka hemsidaDetta Instructable visar hur du lägger till Arduino kontrollerade analoga...

Speech Synthesis sköld för Arduino

när du använder Arduino för att göra roboten eller interaktiva projekt, är det trevligt att ha dem tala? Nu finns det en sköld baserat på iFLYTEK XFS505 tal syntes chip som hjälper dig att lösa problemet. Arduino kan kommunicera med modulen tal synte...

Förvandla din Arduino till en 4 röst wavetable synth med endast ett fåtal komponenter...

Flera synthesizer projekt har gjorts för Arduino, men få har kunnat utnyttja den fulla kraften av Arduino processorn. DZL från GeekPhysical skrev en 4 röst wavetable synthesizer som är en av de mer avancerade mjukvara baserad synthar för Arduino. Det...

Flamma kontrollerade MIDI-Controller

En stor fråga i världen av digital musikproduktion är att hålla det analog värme (som genljöd från rullbandspelare system och rör) i dagens moderna digitala musik. Många svär att analoga system har ett ljud som aldrig kan replikeras av bits, och hopp...

Antik lampa orgel - MIDI/OSC kontrollerade

skapa din egen antik lampa orgel för att lägga till nostalgisk atmosfär midi instrument!12 glödlampor motsvarar de 12 tonerna i en oktav (minus oktav tonen). Rektangulära rutan utspelar sig om du vill placera ljuskällorna vertikalt för display, medan...

Bluetooth kontrollerad LED med analoga LDR ingång för TfCD

Paul Bosch - 4154746Duygu Guroglu - 4519191Detta projekt är en variant på RFduino Test och Android prov App från Iann (Iann RFDuino Test App)Vi skrev om det befintliga testprogrammet för RFduino och test ansökan om Android för att komma till önskat r...

Dub Cadet: Holografiska MIDI & LED-Controller för Arduino - del 1

Jag tror holografisk musikinstrument blir vardagsmat i framtiden, visar överallt från skolor (Skolverket), hem (på skoj), till media kontor (för kreativitet), och i musik studios (för produktion). Anledningen är enkel: den holografiska musikinstrumen...

Programmerbara MIDI Synth med Intel Edison och Csound

En MIDI-controller är som en dators tangentbord, men istället för att skicka tecken till datorn, det skicka anteckningar (och en hel del ytterligare information om hur tonen spelas). Du kan läsa mer om MIDI-Controllers här.Vanligtvis en MIDI-controll...

Enkel MIDI-flöjt/inspelare Controller (EWI)

Som barn (ca 30 år sedan) började jag min musiklektioner på flöjten (en domare att vara exakt) och nu vill jag ha en modern elektronisk version av detta instrument (en Electronic Wind Instrument som det kallas, förkortat EWI). De är tillgängliga, men...

Konvertera en räddade leksak till en MIDI-controller

i detta Instructable, jag kommer att gå igenom processen att konvertera ett räddade buller-making barnleksak till ett faktiskt användbara musikaliska instrument med MIDI! Ta en stund att bara kasta en blick över titlarna på stegen i detta Instructabl...

Arduino MIDI fot Pedal tangentbord

UrsprungMin pappa är en musiker. Han kan spela många olika instrument. Men han bara har två armar, men han har också ben! Det är när vi bestämde oss att vi vill återanvända pedaler från en gammal orgel och omvandla dem till en arduino powered MIDI-ke...

13 Observera MIDI Laser harpa

Laser Harpan är ett elektroniskt instrument som spelas av blockerar laserstrålar. Flera laserstrålar produceras, och en notering spelas när en av balkar är blockerad av spelare, liknar plockning en pinne på en riktig harpa. Enheten måste därför produ...

K-9 2.0. WiFi kontrollerade och autonom Robot hund.

OBS:I steg 22, har jag postat en uppdatering, förklarar några senaste förändringar/förbättringar som jag har gjort, främst på K-9's elsystem och sensor array som du kan ha nytta.FunktionerRobust trä (MDF) och akryl designHelt mikroprocessorstyrda anv...