MIDI gecontroleerd analoge FM-synthesizer (4 / 4 stap)

Stap 4: Speeltijd


Met een MIDI-controller aangesloten op uw Arduino en Audio aangesloten op de uitgang van de digitale potmeter, uitvoeren van de code (geplakt/gekoppeld hieronder) en u bent klaar om te rocken.

Hier is een video demonstratie van wat mijn lichaamsbouw klonk als bij gebruik van een batterij aangedreven audioversterker: http://youtu.be/JzKzRq4mcdk

//____________________________________________________
/*

write_pot (0, 0);  7555car drempel,
write_pot (1, 0);  7555car de kwijting,
write_pot (2, 0);  7555car Volume,
write_pot (3, 0);  7555mod vol, effectief modulatie index
write_pot (4, 0);  7555mod drempel
write_pot (5, 0);  7555mod kwijting

als drempel en geen kwijting worden verplaatst samen op één chip (vervoerder of modulator)
ze bepalen frequentie, toen onafhankelijk van elkaar bewogen, zij zeggenschap toonhoogte maar met wisselende
puslewidth of duty afstandspercentage.  Hiermee wijzigt u het timbre van de output.

*/

Tuning voorinstellingen.
schaal 0-127 door dit veel voor elke pot, volume anders dan andere parameters wordt geschaald.
int data_scale [] = {2, 2, 1,25, 1,25, 2, 2};

u wellicht om te spelen met dit nummer om uw controller nummers bekleed met de 6 parameters.
int controllerOffSet = 0; Dit nummer is specifieke op de novation midi controller

int DATAOUT = 11;
int DATAIN = 12;      MISO - niet gebruikt, maar een deel van de ingebouwde SPI
int SPICLOCK = 13;    SCK
int SLAVESELECT = 10;  SS
int incomingByte = 0;
int Opmerking = 0;
int vel = 0;
int controller = 0;
int waarde = 0;

byte weerstand = 0;
int index;
int outdex;

VOID Setup
{
Set MIDI baud-rate:
Serial.begin(31250);
Debugger, of seriële controle baud
Serial.begin(9600);

byte ik = 0;
byte clr = 0;

Setup pinnen om te werken met SPI
pinMode (DATAOUT, uitvoer);
pinMode (DATAIN, INPUT);
pinMode(SPICLOCK,OUTPUT);
pinMode(SLAVESELECT,OUTPUT);
digitalWrite(SLAVESELECT,HIGH); apparaat uitschakelen
SPCR = 01010000
Interrupt uitgeschakeld, spi ingeschakeld, msb 1e master, clk lage wanneer nutteloos,
monster op voorrand van clk, systeem klok/4 (snelste)
SPCR = (1 << SPE) | (1 << MSTR);
CLR = SPSR;
CLR = SPDR;
delay(10);

een LED Flash en flash elk digitale pot adres (voor foutopsporing) en om stilte van het circuit

Alle potten ingesteld op minimum/maximum aantal weerstand en weer terug
voor (ik = 0; ik < 6; i ++)
{
digitalWrite (2, HIGH);
delay(100);
write_pot(i,0);
digitalWrite (2, laag);
delay(100);
}
delay(1000);  wacht een tweede


voor (ik = 0; ik < 6; i ++)
{
digitalWrite (2, HIGH);
delay(100);
write_pot (i, 255);
digitalWrite (2, laag);
delay(100);
255 = volledige weerstand...
}

}

hoofdprogramma
void loop
{


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

zien of er een specifieke berichtindeling als een specifieke MIDI status byte wordt gedetecteerd, dan
behandeling van de volgende twee binnenkomende bytes als gegevensbytes
//
Als (incomingByte == 176) {/ / status bericht voor midi cc kanaal 1
delay(1);
de volgende byte opnemen als de controllernummer
controller = Serial.read() - controllerOffSet;
delay(1);
record de derde byte als de gegevens van de domeincontroller of de waarde
waarde = Serial.read();

}
Als de controllernummer binnen het juiste bereik is,
Gebruik de controllernummer om te stellen van het adres (1 van de 6 weerstanden) en
de waarde van deze controller gebruiken om de weerstand van de genoemde adres

Als (controller < 6 & & controller > = 0) {}

Sommige parameters wellicht schalen,
write_pot (controller, ((waarde * data_scale[controller])));

een LED inschakelen wanneer gegevens worden verzonden (voor de gebruiker feedback/foutopsporing)
digitalWrite (2, HIGH);
delay(1);
} / / end als controller
} / / end als seriële

delay(1);
digitalWrite (2, laag);
} / / einde van de hoofdlus

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

functie voor het verzenden van gegevens naar een bepaald adres
byte write_pot (int adres, int value)
{
digitalWrite(SLAVESELECT,LOW);
2 byte opcode
spi_transfer(Address);
spi_transfer(Value);
digitalWrite(SLAVESELECT,HIGH); vrijgeven van de chip, signaal einde overdracht
}

functie voor overzetten gegevens over SPI
char spi_transfer (vluchtige char gegevens)
{
SPDR = gegevens;                    De overdracht starten
terwijl (!. (SPSR & (1 << SPIF)))     Wachten op het einde van de transmissie
{
};
retourneren SPDR;                    retourneren van de ontvangen byte
}

Gerelateerde Artikelen

MIDI-gecontroleerde analoge muziek Synthesizer

MIDI-gecontroleerde analoge muziek Synthesizer

Voor mijn elektrotechniek senior design project besloten heb ik voor het ontwerpen van een analoge muziek synthesizer met MIDI-controle. Ik moet toegeven, dit was wat ik wilde doen sinds de middelbare school en mijn uiteindelijke doel als een musicus
Zeta Reticuli: MIDI gecontroleerd 10-band EQ en meerdere externe effect interface

Zeta Reticuli: MIDI gecontroleerd 10-band EQ en meerdere externe effect interface

ongeveer de helft mijn levensduur (20 jaar) geleden ik gebruikte om letterlijk drillions & drillions van ideeën die ik voel me nog steeds niet zijn een complete verspilling van tijd. Één van deze briljante ideeën moest kunnen controleren een wah-peda
Arduino/Ableton kleur orgel; MIDI gecontroleerd

Arduino/Ableton kleur orgel; MIDI gecontroleerd

** huidige vanaf 6/7/2011: LED wedstrijd post **Dit is hoe ik gebruiken mijn Arduino UNO en de Maxuino-patch in Ableton Live om controle LED's via MIDI. Dit is de eenvoudigste configuratie voor het circuit en geeft voorbeelden op verschillende MIDI-c
Verzenden en ontvangen van MIDI met Arduino

Verzenden en ontvangen van MIDI met Arduino

Dit instructable zal u tonen hoe te een Arduino gebruiken voor het verzenden en ontvangen van een verscheidenheid van MIDI-berichten, zodat u kunt beginnen met het opbouwen van uw eigen MIDI-controllers en instrumenten. Eerst ik zal praten een beetje
Arduino MIDI-controller - techshop met scarff boarduino

Arduino MIDI-controller - techshop met scarff boarduino

ik heb gekeken rond een aantal verschillende arduino oplossingen voor MIDI. Mijn project concept omvat meer dan 100 analoge ingangen dat elk gevoel van snelheid en voorzien van MIDI-uitgang.   Met behulp van de achtergrondinfo die ik kreeg van techsh
Arduino MIDI voet pedaal Keyboard

Arduino MIDI voet pedaal Keyboard

De oorsprongMijn vader is een muzikant. Hij kan een veelheid van instrumenten spelen. Hij heeft slechts twee takken, maar hij heeft ook benen! Dat is toen we besloten dat we opnieuw gebruikt op de voetpedalen van een oude orgel en hen in een arduino
Zet je Arduino in een 4 stem wavetable-synthesizer met alleen een paar onderdelen...

Zet je Arduino in een 4 stem wavetable-synthesizer met alleen een paar onderdelen...

Meerdere synthesizer projecten hebben gedaan voor de Arduino, maar weinigen konden gebruik maken van de volledige kracht van de processor van de Arduino. DZL van GeekPhysical schreef een 4 voice wavetable-synthesizer die behoort tot de meer geavancee
Muzikale Melodyian MIDI Robot

Muzikale Melodyian MIDI Robot

Groeten de aarde! Dit Instructable zal u tonen hoe te bouwen uw zeer eigen Melodyian - een Arduino gebaseerde, 3D-printbaar robot die kan bewegen, oplichten en muziek maken! Het is ook een MIDI-robot, en kan draadloos worden aangestuurd via MIDI via
MIDI Piano Lighting

MIDI Piano Lighting

MIDI gecontroleerd lamp armatuur met vintage stijl "edison" lampen.De schakelkast dient een aantal doeleinden, maar vooral kunt u modi wijzigen:KLASSIEKE - MIDI notities worden toegewezen aan bollen Cn-Bn toegewezen aan bollen 1-12, intensiteit
Arduino xylofoon

Arduino xylofoon

Ik maakte een xylofoon die gebruikmaakt van een Arduino Mega detecteren wanneer er een opmerking is geslagen en genereren van MIDI-uitgang. Dit project is wondeful omdat ik in wezen een xylofoon, een drumkit, en andere MIDI gecontroleerd geluid instr
Spanning maatsoorten Atari Punk Console

Spanning maatsoorten Atari Punk Console

een tijdje geleden, heb ik besloten dat ik wilde bouwen een analoge modulaire synthesizer. Na wat onderzoek gedaan, ontdekte ik dat ik dat alles veel over analoge audio elektronica helemaal niet wist. Dus het beste om te doen was om te beginnen vanaf
Zandstorm vak

Zandstorm vak

Dit vak is in wezen een monster pad, uitgerust met drie potentiometers toe voor het manipuleren van bepaalde elementen die door de gebruiker gekozen.Stap 1: 1. Instellen van de Patches Voor dit instrument om te werken, werd als het boord waaruit alle
Arduino "Atomic" grootvader Klok

Arduino "Atomic" grootvader Klok

Ik wilde een electro-mechanische grootvader Klok die niet meer vereist wikkelen en corrigeren van elke week maar die keek en klonk zo origineel mogelijk.Zie mijn site hier Longcase klok WebsiteDit Instructable laat zien hoe Arduino gecontroleerd anal
Nieuwe software uploaden naar Trinity met behulp van Arduino [Jak nahrát software Ken Trinity with Arduino]

Nieuwe software uploaden naar Trinity met behulp van Arduino [Jak nahrát software Ken Trinity with Arduino]

[ČESKY NÍŽE]Hallo dudes! Hier leert u hoe om te uploaden van nieuwe firmware naar Trinity synth met behulp van de Arduino IDE.Meer info over Trinity is hier: http://www.bastl-instruments.com/Deze methode is om te worden gebruikt voor het bijwerken va