Inhoudsopgave:
- Stap 1: Probleem
- Stap 2: Projectcontext
- Stap 3: Benodigde onderdelen/gereedschappen
- Stap 4: Technische strategie
- Stap 5: Coderen
- Stap 6: Video
Video: NeckCrusher (op gitaar gemonteerd effectpedaal): 6 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dale Rosen, Carlos Reyes en Rob Koch
DATT 2000
Stap 1: Probleem
Gitaarpedalen beperken de muzikant tot het pedaalplatform. Oplossing: bouw en integreer een functionaliteit voor gitaarpedalen in de gitaar zelf. Hierdoor kan de muzikant vrij over het podium bewegen, waarbij de gitaarhals als interface wordt gebruikt in plaats van beperkt te zijn tot de locatie van het pedaal. We zullen dit concept onderzoeken door een bitcrusher/sample rate-effectapparaat te maken.
Stap 2: Projectcontext
Er zijn veel gitaarpedalen die door muzikanten worden gebruikt om het geluid van hun gitaren te manipuleren. De meeste hiervan bevinden zich meestal in rack-gebaseerde of stompbox-eenheden, waardoor de controle van de effecten wordt beperkt tot de locatie van de effecteenheid. Door het apparaat op de gitaar te monteren, kunnen spelers de parameters van het effect overal op het podium regelen. Dit betekent dat ze niet worden beperkt en de vrijheid hebben om te bewegen voor hun prestaties.
Aangezien Arduino alleen 8-bits audio kan, is het onmogelijk om high-fidelity-signaalverwerking uit te voeren. Dit is de reden waarom we de effecten hebben gekozen die we hebben gemaakt, omdat ze zijn gebaseerd op het creëren van een vervormd geluid met lage getrouwheid. Dit zijn de enige effecten die redelijkerwijs mogelijk zijn met een Arduino.
Stap 3: Benodigde onderdelen/gereedschappen
● Klopboormachine
● Draadknippers
● Draadstrippers
● Soldeerbout
● Heet lijmpistool
● Desoldeerpomp
● Gitaar● Behuizing
● Solderen
●Hete lijm
Arduino
●Protobord
● Gecoate draad
● Audio-aansluitingen (x2)
● Potentiometers (x3)
● Condensatoren: 2,2 uF (x2)
●Blootgestelde koperdraad
● Schroeven (M3.5 *8)
● Weerstanden: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Stap 4: Technische strategie
Interne circuits
Invoer uitvoer
We moeten het audiosignaal dat van een gitaar komt, converteren naar iets dat de Arduino kan gebruiken en wijzigen. We zullen dan het signaal dat van de arduino komt terug moeten omzetten in een audiosignaal. Arduino leest spanningen van 0V tot 5V, audiosignalen zijn van -1V tot 1V. Deze conversies worden gedaan met behulp van weerstanden. Het signaal wordt ook omgezet in het uitgangscircuit.
Arduino-bibliotheek: ArduinoDSP
Projectbeschrijving (Interface)
Knoppen Knop 1: Sample Rate
Knop 2: Bit Crusher
Knop 3: Bit Shifter
Stap 5: Coderen
#include "dsp.h"
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
booleaanse div32; booleaanse div16;
vluchtige booleaanse f_sample; vluchtige byte badc0; vluchtige byte badc1; vluchtige byte ibb;
int fx1; int fx2; int fx3; int fx4;
intcnta; int ict; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; byte-bb;
byte dd[512]; // Audiogeheugenarray 8-bit
void setup() { setupIO();
// herlaad wave na 1 seconde fill_sinewave();
// stel adc prescaler in op 64 voor 19 kHz bemonsteringsfrequentie cbi (ADCSRA, ADPS2); sbi(ADCSRA, ADPS1); sbi(ADCSRA, ADPS0); // 8-bits ADC in ADCH-register sbi (ADMUX, ADLAR); sbi(ADMUX, REFS0); cbi(ADMUX, REFS1); cbi(ADMUX, MUX0); cbi(ADMUX, MUX1); cbi(ADMUX, MUX2); cbi(ADMUX, MUX3); // Timer2 PWM-modus ingesteld op snelle PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Setup voor Timer2 cbi (TCCR2B, WGM22); // Timer2 Klok Prescaler naar: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM-poort sbi inschakelen (DDRB, 3); //cli(); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
lege lus() {
// controleer de status van de effectpotentiometer en draaischakelaar readKnobs ();
// ************* // ***Normaal*** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (links); uitvoer (links, invoer); }
// ************* // ***Phasor*** // *************
als (fx4 > 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (!f_sample) {// wacht op voorbeeldwaarde van ADC} // Cyclus 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = onwaar; bb = badc1; dd[icnt1] = bb; // schrijf naar buffer fx4 = iw * badc0 / 255; // schaal vertraagd monster met potentiometer iw1 = dd[icnt2]; // lees de vertragingsbuffer badc0 = badc0 / 20; // grenswaarde tot 512 icnt1++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limietindex 0.. icnt1 = icnt1 & 511; // limietindex 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Voorbeeldwaarde naar PWM-uitvoer
POORT = POORT ^ 128; uitgang (links, PORTD); // Uitgang}
// *********** // ***Flanger*** // *********** if (fx3 > 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (!f_sample) {// wacht op voorbeeldwaarde van ADC} // Cyclus 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = onwaar; bb = dd[icnt]; // lees de vertragingsbuffer iw = 127 - bb; // aftrekken offset fx3 = iw * badc0 / 255; // schaal vertraagd monster met potentiometer iw1 = 127 - badc1; // trek offset af van nieuwe steekproef iw1 = iw1 + iw; // voeg uitgesteld monster en nieuw monster toe als (iw1 127) iw1 = 127; // Audiobegrenzer bb = 127 + iw1; // voeg offset toe dd [icnt] = bb; // bewaar sample in audiobuffer icnt++; icnt = icnt & 511; // grens bufferindex 0..511 OCR2A = bb; // Voorbeeldwaarde naar PWM-uitvoer
POORT = POORT ^ 128; uitgang (links, PORTD); // Uitgang
} }
void readKnobs() { fx1 = analogRead(1); fx2 = analoog lezen (2); fx3 = analoog lezen (3); fx4 = analoog lezen(4);
}
void fill_sinewave() { float pi = 3.141592; zweven dx; vlotter fd; vlotter fcnt; dx = 2 * pi / 512; // vul de 512 byte bufferarry voor (iw = 0; iw <= 511; iw++) {// met 50 perioden sinewawe fd = 127 * sin (fcnt); // grondtoon fcnt = fcnt + dx; // in het bereik van 0 tot 2xpi en 1/512 stappen bb = 127 + fd; // voeg dc offset toe aan sinewawe dd [iw] = bb; // schrijf waarde in array
} }
//************************************************** **************** // Timer2 Interrupt Service op 62,5 KHz // hier wordt het audio- en potsignaal gesampled met een snelheid van: 16Mhz / 256 / 2 / 2 = 15625 Hz ISR(TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 = !div32; // deel timer2-frequentie / 2 tot 31,25 kHz als (div32) { div16 =! div16; if (div16) {// sample kanaal 0 en 1 afwisselend zodat elk kanaal wordt gesampled met 15,6 kHz badc0 = ADCH; // haal ADC-kanaal 0 sbi (ADMUX, MUX0); // zet multiplexer op kanaal 1 } else {badc1 = ADCH; // haal ADC-kanaal 1 cbi (ADMUX, MUX0); // zet multiplexer op kanaal 0 f_sample = true; } ibb++; ibb--; ibb++; ibb-; // korte vertraging voor start conversie sbi (ADCSRA, ADSC); // start volgende conversie}
}
Stap 6: Video
Mogelijke problemen ● Pickup is iets te zwak om het circuit van stroom te voorzien - een opamp nodig. - In de video hebben we een signaalversterker gebruikt. (De grijze doos ligt op de tafel.)
Aanbevolen:
Gitaar Fuzz-pedaal: 6 stappen (met afbeeldingen)
Gitaar Fuzz-pedaal: Dus, handen omhoog, wie houdt er van fuzz? Iedereen? Mooi zo. Ik weet dat ik dat doe. Er gaat niets boven het geluid van vuile fuzz om mijn dag op te fleuren. Gitaar, bas of zelfs elektrische ukelele, alles profiteert van zware diode-gedreven vervorming. Ik hou ervan om dingen bijna
Akoestische gitaar pickup: 8 stappen (met afbeeldingen)
Akoestische Gitaar Pickup: Verander je akoestische gitaar in een akoestische/elektrische gitaar! Dit is een eenvoudig en goedkoop ontwerp dat u thuis kunt maken om dat speciale, unieke geluid te krijgen waarnaar u op zoek was
DIY Rat Clone Distortion Gitaar Effectpedaal - The Dead RAT - Ajarnpa
DIY Rat Clone Distortion Gitaareffectpedaal - de Dead RAT: Dit is geen Mickey Mouse-vervormingspedaal! Dit pedaal is een kloon van een van mijn favoriete effectpedalen uit de jaren 80… ProCo's RAT Distortion. Het is een standaard OpAmp-distortionpedaal met de klassieke LM308N IC-chip die vrij eenvoudig is gebouwd voor t
Een Korg Kaossilator-gitaar maken: 12 stappen (met afbeeldingen)
Maak een Korg Kaossilator-gitaar: Ik kwam op het idee voor dit project toen ik een video zag van Wayne Coyne van The Flaming Lips. Hij had zijn Kaossilator op een gitaar gemonteerd en de hals van een videogamecontroller ernaast afgeplakt om het te laten lijken alsof hij de noten aan het vingeren was. L
Acryl Gitaar LED Mod: 4 stappen (met afbeeldingen)
Acryl Gitaar LED Mod: Ik heb een reeks van ASDA's beste goedkope LED's in mijn acryl gitaar gestoken Gebruikte spullen: - Acryl Gitaar - Blauwe LED's van ASDA ( 3,50) - Een tuimelschakelaar gered van een kapotte laptop voeding - Een stel Icicle sticks die werden opgespaard (ik wist dat ze m