Obsah:
- Krok 1: Problém
- Krok 2: Kontext projektu
- Krok 3: Potřebné díly / nástroje
- Krok 4: Technická strategie
- Krok 5: Kód
- Krok 6: Video
Video: NeckCrusher (efektový pedál namontovaný na kytaru): 6 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:18
Dale Rosen, Carlos Reyes a Rob Koch
DATT 2000
Krok 1: Problém
Kytarové pedály omezují hudebníka na pedálovou platformu. Řešení: Vytvořte a vložte funkci kytarových pedálů do samotné kytary. To umožňuje hudebníkovi volně se pohybovat po jevišti a používat krk jako rozhraní místo toho, aby byl omezen na umístění pedalboardu. Tento koncept prozkoumáme vytvořením zařízení s efektem bitcrusher/vzorkovací frekvence.
Krok 2: Kontext projektu
Hudebníci používají mnoho kytarových pedálů k manipulaci se zvukem svých kytar. Většina z nich je obvykle v jednotkách založených na racku nebo dupačkách, což omezuje ovládání efektů na umístění efektové jednotky. Upevnění zařízení na kytaru umožňuje hráčům ovládat parametry efektu kdekoli na jevišti. To znamená, že nebudou omezováni a mohou mít svobodu pohybu za svým výkonem.
Protože Arduino je schopné pouze 8bitového zvuku, není možné provádět zpracování signálu s vysokou věrností. Proto jsme vybrali efekty, které jsme udělali, protože jsou založeny na vytváření zkresleného zvuku s nízkou věrností. Toto jsou jediné efekty, které jsou u Arduina rozumně možné.
Krok 3: Potřebné díly / nástroje
● Příklepová vrtačka
● Nůžky na drát
● Odizolovače drátu
● Páječka
● Horká lepicí pistole
● Odpájecí čerpadlo
● Kytara ● Kryt
● Pájka
● Horké lepidlo
● Arduino
● Protokol
● Potažený drát
● Audio konektory (x2)
● Potenciometry (x3)
● Kondenzátory: 2,2 uF (x2)
● Odhalený měděný drát
● Šrouby (M3,5 *8)
● Rezistory: 1 k, 10 k, 1,2 k, 1,5 k, 390 k
● * Op Amp (LM358) / * Transistor (2N3442)
Krok 4: Technická strategie
Vnitřní obvod
Vstup výstup
Potřebujeme převést zvukový signál přicházející z kytary na něco, co arduino může použít a upravit. Poté budeme muset převést signál přicházející z arduina zpět na zvukový signál. Arduino čte napětí od 0V do 5V, zvukové signály jsou od -1V do 1V. Tyto převody se provádějí pomocí odporů. Signál bude také převeden do výstupního obvodu.
Knihovna Arduino: ArduinoDSP
Popis projektu (rozhraní)
Knoflíky Knoflík 1: Vzorkovací frekvence
Knob 2: Bit Crusher
Knob 3: Bit Shifter
Krok 5: Kód
#include "dsp.h"
#define cbi (sfr, bit) (_SFR_BYTE (sfr) & = ~ _BV (bit)) #define sbi (sfr, bit) (_SFR_BYTE (sfr) | = _BV (bit))
booleovský div32; booleovský div16;
volatile boolean f_sample; volatile byte badc0; volatile byte badc1; volatile byte ibb;
int fx1; int fx2; int fx3; int fx4;
int cnta; int icnt; int icnt1; int icnt2; int cnt2; int iw; int iw1; int iw2; bajt bb;
byte dd [512]; // 8bitové pole zvukové paměti
neplatné nastavení () {setupIO ();
// znovu načíst vlnu po 1 sekundě fill_sinewave ();
// nastavit adcal prescaler na 64 pro vzorkovací frekvenci 19kHz cbi (ADCSRA, ADPS2); sbi (ADCSRA, ADPS1); sbi (ADCSRA, ADPS0); // 8bitový ADC v ADCH Register sbi (ADMUX, ADLAR); sbi (ADMUX, REFS0); cbi (ADMUX, REFS1); cbi (ADMUX, MUX0); cbi (ADMUX, MUX1); cbi (ADMUX, MUX2); cbi (ADMUX, MUX3); // Režim Timer2 PWM nastaven na rychlý PWM cbi (TCCR2A, COM2A0); sbi (TCCR2A, COM2A1); sbi (TCCR2A, WGM20); sbi (TCCR2A, WGM21); // Nastavení pro Timer2 cbi (TCCR2B, WGM22); // Timer2 Clock Prescaler to: 1 sbi (TCCR2B, CS20); cbi (TCCR2B, CS21); cbi (TCCR2B, CS22); // Timer2 PWM Port Enable sbi (DDRB, 3); // cli (); cbi (TIMSK0, TOIE0); sbi (TIMSK2, TOIE2); iw1 = badc1;
}
prázdná smyčka () {
// kontrola stavu efektového potenciometru a otočného přepínače readKnobs ();
// ************ // // *** Normální *** // *************
if (fx1 == 0 && fx2 == 0 && fx3 == 0 && fx4 == 0) {byte input = analogRead (vlevo); výstup (vlevo, vstup); }
// ************ // // *** Phasor *** // *************
if (fx4> 100) {
fx1 = 0; fx2 = 0; fx3 = 0;
while (! f_sample) {// čekejte na ukázkovou hodnotu z ADC} // cyklus 15625 KHz = 64uSec PORTD = PORTD | 128; f_sample = false; bb = badc1; dd [icnt1] = bb; // zápis do bufferu fx4 = iw * badc0 / 255; // škálování zpožděného vzorku potenciometrem iw1 = dd [icnt2]; // číst zpožďovací vyrovnávací paměť badc0 = badc0 / 20; // limitní hodnota na 512 icnt1 ++; icnt2 = icnt1 - badc0; icnt2 = icnt2 & 511; // limitní index 0.. icnt1 = icnt1 & 511; // limitní index 0..511 iw2 = iw1 + bb; iw2 = iw2 / 2; bb = iw2; OCR2A = bb; // Ukázka hodnoty pro výstup PWM
PORTD = PORTD ^ 128; výstup (vlevo, PORTD); // Výstup }
// ************ // // *** Flanger *** // ************* if (fx3> 100) {
fx1 = 0; fx2 = 0; fx4 = 0;
while (! f_sample) {// čekejte na ukázkovou hodnotu z ADC} // cyklus 15625 KHz = 64uSec
PORTD = PORTD | 128; f_sample = false; bb = dd [icnt]; // přečtěte vyrovnávací paměť zpoždění iw = 127 - bb; // odečíst offset fx3 = iw * badc0 / 255; // škálování zpožděného vzorku potenciometrem iw1 = 127 - badc1; // odečtení ofsetu od nového vzorku iw1 = iw1 + iw; // přidat zpožděný vzorek a nový vzorek if (iw1 127) iw1 = 127; // Omezovač zvuku bb = 127 + iw1; // přidat offset dd [icnt] = bb; // uložení ukázky do zvukové vyrovnávací paměti icnt ++; icnt = icnt & 511; // limit bufferindex 0..511 OCR2A = bb; // Ukázka hodnoty pro výstup PWM
PORTD = PORTD ^ 128; výstup (vlevo, PORTD); // Výstup
} }
void readKnobs () {fx1 = analogRead (1); fx2 = analogRead (2); fx3 = analogRead (3); fx4 = analogRead (4);
}
neplatné fill_sinewave () {float pi = 3.141592; float dx; float fd; float fcnt; dx = 2 * pi / 512; // vyplňte 512 bajtovou vyrovnávací paměť pro (iw = 0; iw <= 511; iw ++) {// 50 tečkami sinewawe fd = 127 * sin (fcnt); // základní tón fcnt = fcnt + dx; // v rozsahu 0 až 2xpi a 1/512 přírůstcích bb = 127 + fd; // přidat DC offset do sinewawe dd [iw] = bb; // zapište hodnotu do pole
} }
// *************************************************** ****************** // Služba přerušení Timer2 na 62,5 KHz // zde je audio a pot signál vzorkován rychlostí: 16Mhz / 256 /2 /2 = 15625 Hz ISR (TIMER2_OVF_vect) {
PORTB = PORTB | 1;
div32 =! div32; // rozdělit časovač2 frekvence / 2 až 31,25kHz if (div32) {div16 =! div16; if (div16) {// střídavě kanál 0 a 1, takže každý kanál je vzorkován s 15,6 kHz badc0 = ADCH; // získat ADC kanál 0 sbi (ADMUX, MUX0); // nastavit multiplexer na kanál 1} else {badc1 = ADCH; // získat ADC kanál 1 cbi (ADMUX, MUX0); // nastavit multiplexer na kanál 0 f_sample = true; } ibb ++; ibb--; ibb ++; ibb--; // krátké zpoždění před zahájením převodu sbi (ADCSRA, ADSC); // zahájení další konverze}
}
Krok 6: Video
Potenciální problémy ● Snímač je na napájecí obvod příliš slabý - potřebujete operační zesilovač. - Ve videu jsme použili zesilovač signálu. (Šedý box ležící na stole.)
Doporučuje:
Znalosti analogových obvodů - DIY a tikající hodiny Zvukový efektový obvod bez IC: 7 kroků (s obrázky)
Znalosti analogových obvodů - udělejte si vlastní obvod zvukových efektů s tikajícími hodinami bez IC: Tento obvod se zvukovými efekty s tikajícími hodinami byl postaven pouze s tranzistory a odpory a kondenzátory, které neobsahují žádnou součást IC. Je ideální, abyste se tímto praktickým a jednoduchým obvodem naučili základní znalosti obvodu. Nezbytná podložka
Chord zobrazující chytrou kytaru: 8 kroků (s obrázky)
Chord Displaying Smart Guitar: Jsem povoláním elektrotechnický inženýr a koníčkem kytarista. Chtěl jsem vyrobit kytaru, která sama může ukázat začátečníkovi, jak hrát na akordy, tím, že ji zobrazí na pražcovém prkně. Rozhodl jsem se tedy upravit svoji akustickou kytaru tak, aby
ATMega1284P Kytarový a hudební efektový pedál: 6 kroků (s obrázky)
Kytarový a hudební efektový pedál ATMega1284P: Přenesl jsem pedál Arduino Uno ATMega328 Pedalshield (vyvinutý společností Electrosmash a částečně na základě práce v Open Music Lab) do ATMega1284P, který má osmkrát více RAM než Uno (16 kB proti 2 kB). Další nečekanou výhodou je
Sestavte si vlastní elektrickou kytaru!: 8 kroků (s obrázky)
Sestavte si vlastní elektrickou kytaru !: Už jste se někdy podívali na kytaru a říkali si: „Jak to dělají?“Nebo si řeknete: „Vsadím se, že bych si mohl postavit vlastní kytaru“, ale ve skutečnosti jste to nikdy nezkusili? Za ta léta jsem vyrobil několik elektrických kytar a zkušební a
DIY Rat Clone Distortion Kytarový efektový pedál - The Dead RAT: 5 kroků (s obrázky)
DIY Rat Clone Distortion Guitar Effect Pedal - the Dead RAT: This is not no Mickey Mouse distortion pedal! Tento pedál je klonem jednoho z mých oblíbených efektových pedálů z 80. let … ProCo's RAT Distortion. Je to základní zkreslovací pedál OpAmp využívající klasický IC čip LM308N, který je poměrně jednoduchou konstrukcí pro