Przetwarzanie sygnału

0

Witam,

Od dłuższego czasu zacząłem interesować się dsp.
I dlatego pytam, co muszę umieć(programy/algorytmy)
aby móc pracować w firmie która się takimi rzeczami zajmuje ?

Chyba najbardziej kręciłaby mnie modyfikacja plików
i przetwarzanie w czasie rzeczywistym.

0

Zacząłeś się interesować to co konkretnie w tym kierunku zrobiłeś?

Z literatury: na dzień dobry chyba Lyons jest taką podstawową książką, nie mówię żeby go znać na pamięć, ale warto byłoby kojarzyć co gdzie i po co

0

"co konkretnie w tym kierunku zrobiłeś"

pulseaudio w C (wczytanie dźwięku z mikrofonu i wyrzucenie na line-out)
w C generowanie pliku WAV z dźwiękiem o określonej częstotliwości.

Dobrze byłoby dla mnie wiedzieć jakie są wiodące programy
na rynku dsp / dźwiękowym / muzycznym(gui oraz konsola)

0

Do DSP na pewno MATLAB (sporo tam narzędzi do projektowania/analizy filtrów, generowania FFT itp.), warto też zainteresować się LabVIEW.

0

Ew. Python zamiast Matlaba. Proponuję napisać jakiś phaser, flanger czy inny rotary speaker, wtedy zobaczysz czy serio Cię to kręci.

0

Mam zamiar napisać właśnie jakiegoś phasera, tylko jeszcze nie wiem w czym.
Bo w takim pulseaudio, playback(odczyt z mikrofonu i wyrzucenie na line out) ma opóźnienie rzędu 1.2 sekundy,
A co dopiero ten sygnał przetworzyć.
Czy taka manipulacja sygnałem z nie zauważalnym opóźnieniem jest w ogóle możliwa na PC ?

0

Googlaj za ASIO4ALL.

0
alagner napisał(a):

Googlaj za ASIO4ALL.

Używam Ubuntu więc pewnie nie skorzystam : D
BTW, odpaliłem pierwszy lepszy playback w python+alsa i opoźnienie jest
stosunkowo niewielkie (0,1 sekundy), no ale bez żadnych modyfikacji.
Jak się doedukuję pythona to sprawdzę czy przy modyfikacji tego sygnału latencja
znacząco wzrośnie.

0

Wiem, że w webie mnóstwo jest tutoriali do pulseaudio i przykładowych kodów.
Ale jakoś się nie mogę natkąć na coś co jest jasno wytłumaczone,
co powoduje, że nijak nie mam jak rozwijać tych kodów pod swoje projekty.

To o co mnie najbardziej chodzi, to żeby była dobrze wytłumaczona metoda zapisu danych do bufora.
Najchętniej w pythonie/cpp + pulseaudio. Mogą być też inne interfejsy.
Zna ktoś jakieś dobre/wyczerpujące tutki?

0

To tak w ramach zamykania tematu.
Jakby ktoś krok po kroku wytłumaczył dostęp do bufora na poniższym przykładzie:
http://stackoverflow.com/questions/12428281/record-audio-store-in-buffer-and-then-write-bytes-to-sound-card-via-pulseaudio

Wygląda to tak jak gdyby bufor miał 16 elementów a każdy z tych 16 elementów był buforem
o rozmiarze 44100. Z tego wnioskuję, że funkcja pa_simple_read zapisuje za jednym zamachem cały element(czyli 44100 sampli). Nie ?

No i teraz pozostaje kwestia organizacji odczytu i wyrzucenia sygnału.
Jako że są dwa wątki(zapewne dla uzyskania mniejszego opóźnienia), jeden czyta, drugi pisze.
Tylko dlaczego funkcja pa_simple_write nie korzysta z i'tego elementu tablicy która jest w strukturze ale ze zwykłej tablicy buf ?

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