Diody w rytm muzyki

0

Witam,
usiłuję napisać program, który zapalałby mi diody w rytm muzyki, podobnie jak jest na tym filmiku:
Wiem, że to jest z elektrody, jednak chce napisać coś swojego.

O ile w QT odtworzenie pliku dźwiękowego nie jest wielkim problem to nie wiem jak określić natężenie dźwięku, aby móc zapalić odpowiednią ilość diod?

1

Trochę googlowania:

w bibliotece QtMultimedia
http://doc.qt.nokia.com/4.6-snapshot/qtmultimedia.html
jest coś, co nazywa się QAudioFormat
http://doc.qt.nokia.com/4.6-snapshot/qaudioformat.html
a tam częstotliwość (frequency).

0

Dzięki, szukałem ciągle w dokumentacji 4.7, a w niej tego nie ma. Niestety problem nadal zostaje otwarty: QtMultimedia najwyraźniej pozwala odtworzyć tylko pliki *.wav. Zatem czy jest jakaś metoda pozwalająca zrobić to samo w Phonon-ie?

sampleRate() z Phonon::AudioDataOutput niestety ciągle zwraca mi wartość -1. Coś źle robię?

1

Chcesz odczytać natężenie dźwięku, czy częstotliwość próbkowania (która jest stała)? Jeśli to pierwsze, to stanowczo nie "frequency", ani "samplerate".
Jeśli możesz się dobrać do PCM, to wartość próbki określa amplitudę. Przy s16le i floatle amplituda rośnie dla rosnących wartości dodatnich i malejących ujemnych. Przy u8le rośnie proporcjonalnie do wartości. Przy stereo próbki masz rozłożone w kolejności (lewy,prawy), przy większej ilości kanałów musisz sobie googlnąć kolejność, bo nie pamiętam.

0

Sorry, ale jest coś takiego pod delphi?

0

Co do diod to wiem jak je obsługiwać. Nie wiem tylko jak odczytać natężenie dźwięku i czy przy pomocy QT jest to w ogóle możliwe.

1

Qt nie ma takich informacji, bo to nie jest framework do niskopoziomowej obsługi dźwięku. Nawet Phonon tego pewnie nie wie, bo on nie dekoduje strumieni lecz wykorzystuje backend (Xine, GStreamer, ...), który zajmuje się dekodowaniem i kierowaniem PCMki do karty (może jest jakaś pętla zwrotna, sprawdź w dokumentacji).
Jeśli to Linux, to IMHO najrozsądniej byłoby podpiąć się jeszcze niżej, czyli do ALSA (nie wiem czego się używa pod Windows). Kiedyś z narzędziami do tego sterownika przychodził prosty spektrometr. Poszukaj, zobacz jak on się podpina, zaadaptuj.
Nie zrobisz wszystkiego przy pomocy klas Qt.

0

Pod windowsem najprościej będzie użyć biblioteki BASS, która jest stosunkowo prosta w obsłudze.

0

Dziękuję za pomoc, tak więc użyję biblioteki BASS.

0
tomepaw napisał(a)

Dziękuję za pomoc, tak więc użyję biblioteki BASS.

nie lepiej fmod?

1 użytkowników online, w tym zalogowanych: 0, gości: 1