Obsah:

Micro Midi syntezátor: 5 kroků (s obrázky)
Micro Midi syntezátor: 5 kroků (s obrázky)

Video: Micro Midi syntezátor: 5 kroků (s obrázky)

Video: Micro Midi syntezátor: 5 kroků (s obrázky)
Video: Tutorials | MicroFreak - Episode 4: Sequencer 2024, Listopad
Anonim
Micro Midi syntezátor
Micro Midi syntezátor
Micro Midi syntezátor
Micro Midi syntezátor
Micro Midi syntezátor
Micro Midi syntezátor

Tento návod ukazuje použití čipu VLSI VS1053b Audio a Midi DSP v režimu Midi v reálném čase. V tomto režimu funguje jako 64hlasý polyfonní midi syntetizátor GM (General Midi). Samostatné mikro Arduino Uno ovládá OLED displej, tři tlačítka (výběr funkcí a nahoru nebo dolů a přenáší datový tok Midi do zvukového DSP. Jako hudební deska byla vybrána deska pro kodek Adafruit VS1053, ale deska pro oddělování hudby Sparkfun byl také úspěšně testován. Místo mnohem větší knihovny SFEMP3 byly použity knihovny Adafruit VS1053b (doporučeno Sparkfunem, i když mají také vlastní sadu knihoven), protože jsem zjistil, že kód Adafruit je snáze pochopitelný.

Většina kódu používaného k ovládání audio/midi DSP byla vyvinuta pomocí Arduino Uno připojeného k audio/midi breakout desce pomocí prkénka. Poté, co bylo shledáno, že funkce fungují uspokojivě, byl Uno použit jako programátor pro samostatný ATmega 328, který byl poté nasazen na malý Veroboard o velikosti 30x20 spolu s optoizolátorem 6N139 požadovaným na vstupní zásuvce Midi (5kolíkový DIN). Také byl připojen malý (64x48) OLED štít, tři tlačítka, LED aktivita Midi a +5 voltový barel konektor pro napájení a audio stereo výstupní konektor přidán. Požadavky na napájení jsou velmi skromné - asi 20 mA při 5 voltech.

Krok 1: Seznam dílů

ATmega328 Micro 28 pin DIP + 28 pin DIP socket 6N138 or 6N139 optoisolator + 4 pin DIP socketWemos 64x48 I2C OLED Display or similarAdafruit VS1053b Codec breakout board 3 miniature buttons, 5 pin DIN Midi socket PCB mount prefered Small LED any coloreSoft zásuvka pro připojení zesilovače nebo sluchátek Rezistory: 7 x 10k, 2 x 470 ohmů, 2 x 220 ohmů Kondenzátory: 0,1uF 50v plast, 10uf 25v elektrolytický, 2 x 27 pF keramika Malé kousky Veroboard (30 pásků po 20 sloupcích a 4 proužky o 16 sloupců), ABS plastový kryt o rozměrech 85x55x25mm, kabeláž a několik šroubů, matic a podložek.

Krok 2: Stavba

Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce
Konstrukce

Ve víku skříně je umístěn OLED displej, tři tlačítka, která jsou namontována na dalším malém kousku Veroboard, a konektor pro napájení hlavně. Hlavní obvodová deska Vero má dva otvory pro upevnění desky Breakout Music nad ATmega328. Podrobnosti o připojení najdete ve schématu desky Fritzing.

Naprogramovaný ATmega328 (kód najdete v další části) se poté vloží do zásuvky a následně 6N139 a vše se připojí.

LED dioda se používá jako indikátor aktivity Midi a byla namontována na přední stranu skříně. Je připojen k výstupu D2 ATmega328 přes odpor 470 ohmů.

Displej OLED využívá k napájení 3,3 voltový výstup z desky Adafruit - vyžaduje méně než 20 mA.

Pokud při prvním použití syntezátoru neslyšíte žádný zvuk, zkuste je vyměnit.

Krok 3: Software

Podrobnosti o skice, která by měla být nahrána do ATmega328, jsou uvedeny v MidA.ino. K dispozici je sedm funkcí:

Možnost P: Změnit program - změňte nástroj GM Midi z 1 na 128 (použil jsem 0 až 127), například zvuk Piano nebo Synth. Možnost B: Změňte banku nástrojů mezi melodickým (banka 0) a perkuse (banka 1). Možnost V: Upravte hlasitost od 1 do 10. Možnost C: Změňte kanál Midi, na který bude syntezátor reagovat. Na výběr jsou kanál 0, kanál 1, kanál 9 (bicí), kanál 0 a 9 a kanál 1 a 9. Možnost R: Zapnutí nebo vypnutí efektu Reverb. Možnost S: Uložení aktuálních parametrů do paměti Eeprom (nahoru) nebo jej přečtěte (dolů) z paměti Eeprom. Důvodem je, že při vypnutí se nastavení jinak neukládají. Možnost X: Odeslání zprávy o vypnutí všech poznámek (Midi Reset).

Osmá možnost ještě není implementována - to obejde ATmega jako filtr Midi a připojí výstup optoizolátoru přímo na pin Rx desky DSP.

Všimněte si toho, že VS1053b se spouští v režimu Midi v reálném čase načtením 1039 bajtů komprimované opravy během spouštění - to také zvyšuje velikost vyrovnávací paměti Midi a filtruje systém exkluzivních datových bajtů Midi. Podrobnosti o této opravě lze nalézt na webových stránkách VLSI.

Mírně upravená verze knihovny Adafruit Graphics byla použita k zajištění rozlišení 64 x 48 pixelů OLED displeje - viz odkazy uvedené na konci pro pana Mcausera. Seznam požadovaných knihoven je uveden v kódu skici.

Důležité je, že když je skica poprvé spuštěna na ATmega328, ať už je na Uno nebo samostatně, kód načte předvolby parametrů z ATmega328 Eeprom, které nemusí být platné. V takovém případě můžete buď zapsat všechny nuly do Eeprom pomocí možnosti X pomocí tlačítka dolů, nebo okomentovat řádek ve funkci neplatného nastavení, která načte hodnoty z Eepromu při jeho prvním spuštění, upravte své nástroje atd. podle libosti a poté uložte své předvolby tlačítkem S možností Nahoru.

Kredit je věnován všem uvedeným osobám a entitám za jejich kód a knihovny.

Krok 4: Odkazy

VLSI:

Adafruit:

Github VS1053b:

Grafika Github:

Oled:

Sparkfun:

Krok 5: Použití desky Sparkfun s knihovnami Adafruit

Použití desky Sparkfun s knihovnami Adafruit
Použití desky Sparkfun s knihovnami Adafruit

Tabulka na obrázku vysvětluje, jak propojit buď Adafruit nebo Sparkfun Music Boards a použít jinou knihovnu.

Doporučuje: