Teensy jako karta dźwiękowa na USB

Karta dźwiękowa USBDziś zajmiemy się tematem prostym, a zarazem bardzo ciekawym. Wykorzystamy naszą płytkę Teensy z Audio Boardem jako kartę dźwiękową na USB. Będzie to artykuł krótki, ale bardzo ważny z perspektywy dalszych projektów, które będę opisywał na blogu.

Najpierw zależności

Jak zwykle należy zacząć od ułożenia kilku prostych zależności w graficznym interfejsie przygotowanym przez producenta Teensy. Nie ma tu nic skomplikowanego, wystarczy połączyć to w ten sposób:

audio-design

Oba kanały wejścia USB podłączamy do wyjścia i2s, dodajemy bloczek od kontrolera sgtl5000 i voila!

Teraz trochę kodu

#include <Audio.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <SerialFlash.h>

// GUItool: begin automatically generated code
AudioInputUSB usb; //xy=430.2000274658203,242.1999969482422
AudioOutputI2S i2s; //xy=626.2000274658203,242.1999969482422
AudioConnection patchCord1(usb, 0, i2s, 0);
AudioConnection patchCord2(usb, 1, i2s, 1);
AudioControlSGTL5000 sgtl5000_1; //xy=531.1999969482422,288.1999969482422
// GUItool: end automatically generated code

void setup() {
 AudioMemory(15);
 sgtl5000_1.enable();
 sgtl5000_1.volume(0.9);
}

void loop() {
 
}

Na początku wklejamy kod wygenerowany przez GUI, później pozostaje nam już tylko ustalić ilość pamięci przeznaczoną na bufor audio oraz włączyć kontroler sgtl5000 i ustawić głośność na np. 0.9. Jak widać nie dzieje się tu nic przesadnie skomplikowanego. Producent zadbał o to, żeby biblioteki były jak najbardziej wysokopoziomowe, a użytkownik końcowy nie musiał martwić się o samodzielne włączanie wszystkich peryferiów na bardzo niskim poziomie.

Kompilacja

Przed wgraniem programu na płytkę należy pamiętać, żeby przestawić USB Type na Audio lub inną opcję, która zawiera tryb Audio (np. „All of the Above”).

usb-audio

Uruchomienie

Po wgraniu skompilowanego kodu na płytkę Teensy nasz system operacyjny wykryje nową kartę dźwiękową. Od teraz dźwięk będzie wydobywał się nie z głośników komputera lecz z głośnika podpiętego do Audio Boarda.

windows-teensy-audio-2

windows-teensy-audio

UWAGA: Możemy sterować poziomem głośności z poziomu systemu operacyjnego pod warunkiem, że nie jest to Windows. Sprawdziłem to na Windows 10, Ubuntu 16.04, macOS 10.12 i niestety na tym pierwszym Teensy nie reagowało na zmianę głośności suwakiem systemowym.