Article View: pl.comp.os.linux.programowanie
Article #60337STK, RtAudio i błędy z ALSY
From: Dzinek
Date: Fri, 04 Nov 2005 01:10
Date: Fri, 04 Nov 2005 01:10
77 lines
3401 bytes
3401 bytes
Witam
Korzystam z biblioteki Synthesis ToolKit in C++ (STK). Zawiera ona w sobie
klasę RtAudio, dostępną także samodzielnie.
Teraz mięsko.
Tworzę urządzenie takim kawałkiem kodu:
Stk::setSampleRate( 48000.0 );
unsigned int channels = 1;
RtDuplex *duplex = 0;
try {
duplex = new RtDuplex(channels,
Stk::sampleRate(),0,RT_BUFFER_SIZE,10);
}
catch (StkError &) {
exit(0);
}
Kompiluję z:
-I/usr/include/alsa -I/usr/include/stk -D__LITTLE_ENDIAN__
-D__LINUX_ALSA__ -D__LINUX_ALSASEQ__ -lasound -lm -ldl -lpthread -lstk
W czasie kompilacji wszystko jest ok, bibliotekę stk mam ze
standardowych, debianowych paczek, wersja 4.2.0
Cuda zaczynają się przy uruchomieniu.
Pierwsza sprawa, nie może otworzyć urządzenia, jeżeli ustawiam
częstotliwość próbkowania na 44100. Musi być 48000 i już. Do tej
pory myślałem, że to jest maksymalna częstotliwość próbkowania
mojej karty... To jest kwestia mojej niewiedzy, proszę o wytłumaczenie.
Druga rzecz, tak jak w kodzie powyżej, chce otworzyć domyślne
urządzenie (0 w konstruktorze RtDuplex) i jeden kanał. Wyrzuca mi taki
wyjątek na konsolę:
RtApiAlsa: channels (1) not supported by device (hw:V8237,0).
Co jak co, ale jeden kanał jest napewno "supported by" to urządzenie,
zresztą dwa kanały również. Próbowałem i przy włączonym amaroku
(jedno z czterech pod-urządzeń zajęte) jak i przy wszystkich
urządzeniach i pod-urządzeniach wolnych.
Na dowód istnienia dwóch kanałów (przy zajętym jednym pod-urządzeniu
przez amaroka):
$cat /proc/asound/card0/pcm0p/sub0/hw_params access:
RW_INTERLEAVED format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1114
buffer_size: 15596
tick_time: 4000
OSS format: S16_LE
OSS channels: 2
OSS rate: 44100
OSS period bytes: 4096
OSS periods: 14
OSS period frames: 1114
Ten sam efekt mam zarówno przy korzystaniu z klas RtDuplex, jak i RtWvIn
i RtWvOut.
Nie miałbym problemu, gdybym miał korzystać tylko z nich, bo po
ściągnięciu oddzielnie biblioteki RtAudio (3.0.1 z 22 marca 2004),
wpakowaniu RtAudio.{cpp,h} i RtError.h program gra i buczy. Urządzenia
się otwierają i jest miło. Ale niestety, jestem zmuszony skorzystać z
kilku pozostałych dobrodziejstw STK. W zasadzie RtDuplex z STK, to ładne
opakowanie na RtAudio.
Ktoś się spotkał z czymś takim? Jak poprosić STK, żeby mi otwierało
urządzenia, albo jak ALSIE kazać mówić prawdziwą ilość kanałów?
--
Dzinek
Technical Details
Message-ID:
<pan.2005.11.04.01.10.17.966297@usunto.o2.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.internetia.pl!not-for-mail From: Dzinek <nowodzinek@usunto.o2.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: STK, RtAudio i błędy z ALSY Date: Fri, 04 Nov 2005 02:10:24 +0100 Organization: Netia Telekom S.A. Lines: 78 Message-ID: <pan.2005.11.04.01.10.17.966297@usunto.o2.pl> NNTP-Posting-Host: 83.238.59.3 Mime-Version: 1.0 X-Trace: nefryt.internetia.pl 1131066626 26971 83.238.59.3 (4 Nov 2005 01:10:26 GMT) X-Complaints-To: abuse@inetia.pl NNTP-Posting-Date: Fri, 4 Nov 2005 01:10:26 +0000 (UTC) X-Tech-Contact: usenet@internetia.pl User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table (Debian GNU/Linux)) X-Server-Info: http://www.internetia.pl/news/ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit