Dyskretyzacja/tablicowanie pliku audio

0

hej,mam ogromny problem:
Powiedzmy że mam dowolny plik audio, najłatwiej niech to będzie wave
jak z niego zrobić tablice próbek?
powiedzmy tab[100][100]??
prosiłbym o jakomkolwik pomoc, pilne!!!

0

Jesli WinGroza to:
Jesli chcesz zupelnie dowolny to poszukaj na msdn w kategorii DirectShow. Jesli wystarczy wave to poczytaj o funkcjach z grupy wave* (tj waveOutPrepareHeader, waveOutWrite itd). Np na msdn.

Jesli *nix to:
nie pamietam nazw ale jest masa bibliotek to tego typu zabawy. Po prostu poszukaj w menedzerze pakietow jakiejs biblioteki z sound w srodku :D

0

jak z niego zrobić tablice próbek?
powiedzmy tab[100][100]??

A dlaczego tablica dwuwymiarowa?

Może tu coś znajdziesz: Beta-testing WinWave.

crow6 napisał(a)

Jesli wystarczy wave to poczytaj o funkcjach z grupy wave* (tj waveOutPrepareHeader, waveOutWrite itd). Np na msdn.

Te funkcje niewiele mają wspólnego z plikami. Jeśli już, to funkcje z rodziny mmio*.

0

napisałem tab[100][100] po prostu, to nie wymóg, tylko chciałem pokazaćże tablica, ale oczywiście może być wektor:)

0

tutaj na 4p masz artykuł w którym jest ładnie omówiony format wave

temat wymaga także dobrej znajomości C++(ew. WinAPI) i rozumienia technicznego działania pamięci...

Jak chcesz to ci udostępnię kod biblioteki o której mowa w poście 0x666, ale znajomość WinAPI to zrozumienia kodu wymagana

0

Jeśli dobra znajomość C/C++ wystarczy to z chęcią się ort!:) A to wszystko potrzebne mi do stworzenia filtru cyfrowego, np środkowoprzepustowego Soi, czyli przepuszczane będzie tylko pewne pasmo częstotliwości, skończyłem 3 rok informatyki na polibudzie na wydziale elektrycznym, i na takim technicznym poziomie się czuję ;) Naprawdę chciałbym zrobić ten filtr, bo to dość ciekawe i inne wyzwanie niż dotąd.

Otóż konkretnie mój projekt ma wyglądać tak:
1.mam plik wave
2.wczytuję tablicę próbek
3.filtruję i na bieżąco zapisuje drugą "odfiltrowaną" tablicę
4.zapisuje nowy "odfiltrowany" plik wave

dzięki za pomoc, z góry :-)

0

po 1:
Odtwarzanie i rejestrowanie dźwięku na niskim poziomie. PARTIII [WinApi][CBuilder]
tutaj masz budowę wave
druga część jest o wysyłaniu dźwięku do urządzenia, też warto przeczytać

tutaj masz projekt(VC++ 2008), w którym bawiłem się wave, dołączyłem króciutki opis
http://lublin.webd.pl/crayze/winaudio.rar

pyrek napisał(a)

skończyłem 3 rok informatyki na polibudzie na wydziale elektrycznym, i na takim technicznym poziomie się czuję ;) Naprawdę chciałbym zrobić ten filtr, bo to dość ciekawe i inne wyzwanie niż dotąd.

heh a ja nie skończyłem ani jednego roku, bo się nie dostałem :P co nie znaczy, że nie jestem w temacie :P

0

pewnie że to nic nie znaczy, napisałem tak tylko żeby zobrazować mój poziom wiedzy technicznej, powiem szczerze że widząc niektórych gości z roku to stwierdzam że poziom ort! nic nie mówi o człowieku i odwrotnie, serio...

0

chłopaki, a dlaczego gdy prubuje użyć biiblioteki mmsystem to dostaje komunikat :

C:\Documents and Settings\Pablo\Pulpit\filtr\main.cpp|4|mmsystem: No such file or directory|
== Build finished: 1 errors, 0 warnings ===

i nie moge wykorzystać waveformatexa i innych funkcji tej klasy a patrzyłem w include i tam ta biblioteka sobie jest(folder z bibliotekami...)

0

Nie sądzisz, że dałeś zbyt mało informacji? Pliki systemowe załączaj używając <>, a nie "".

Tyle na razie można powiedzieć...

0

tak właśnie robie #include <mmsystem> jak dodam .h to pisze ze nie zgone z konwencją c++ a jak bez .h to taki komunikat jak wcześniej, da się to jakoś obejść lub zadeklarować inaczej, i jeszcze jedna ciekawostka, sprawdzałem ze 3 kompilatory i w każdym kod tej biblioteki wygląda inaczej, jest to możliwe?? dev, vb, i codeblocks <-- kompilatory o których mowa

0

jak dodam .h to pisze ze nie zgone z konwencją c++

To niech sobie pisze. Nikt nie powiedział, że mmsystem.h to plik specjalnie pisany dla c++.

0

dodałem .h ...
odpowidź:

More errors follow but not being shown.
Edit the max errors limit in compiler options...
== Build finished: 50 errors, 0 warnings ===

lol....

0

Akurat to co wkleiłeś niewiele mówi. Dołączyłeś winmm.a do projektu?

0

a co to i jak to się robi?

0

zależy w jakim IDE

//EDIT:

pyrek napisał(a)

skończyłem 3 rok informatyki na polibudzie na wydziale elektrycznym

i nie wiesz co to biblioteka statyczna :O

* może trzeci rok pierwszego roku... * deus

0
pyrek napisał(a)

tak właśnie robie #include <mmsystem> jak dodam .h to pisze ze nie zgone z konwencją c++ a jak bez .h to taki komunikat jak wcześniej

#include <mmsystem.h> <- musi byc z h bo taka jest nazwa pliku i już

pyrek napisał(a)

da się to jakoś obejść lub zadeklarować inaczej, i jeszcze jedna ciekawostka, sprawdzałem ze 3 kompilatory i w każdym kod tej biblioteki wygląda inaczej, jest to możliwe?? dev, vb, i codeblocks <-- kompilatory o których mowa

żadna ciekawostka, witaj w praktycznym programowaniu :> nigdzie nie jest powiedziane że muszą być takie same, ważne że z poziomu ich dokumentacji się z nich tak samo korzysta(teoretycznie :>)...

zaraz, zaraz jeszcze raz bo już się pogubiłem, rozumiem że problem leży w poprawnym skompilowaniu, podaj log kompilacji, jeśli jest dużo błędów to daj początek(kilka kilkanaście pierwszych, często następne wynikają z pierwszych, aha no i jakiego IDE używasz...

aha i jeszcze ta sprawa biblioteki statycznej(wyręczymy oświatę), pliki nagłówkowe, które dołączasz przez #include mają swoje odpowiedniki w bibliotekach statycznych *.lib lub *.a, w przypadku dołączania standardowych plików czy to WinAPI czy C++, IDE samo automatycznie dołączy za ciebie te biblioteki, nawet tych których nie używasz, po prostu ma swój standardowy zestaw(niestety), jednak gdy korzysta się z plików niestandardowych, takich jak mmsystem.h, należy ręcznie dołączać biblioteki, których ten plik potrzebuje, a mmsystem.h potrzebuje biblioteki winmm.lib (libwinmm.a dla devC++/codeblocks[linker mingw]), więc trzeba ją dołączyć w opcjach projektu, to jak się to robi zależy już od konkretnego IDE.
Ale jeżeli na razie masz błędy na etapie kompilacji, to trzeba je rozwiązać, bo linkowanie jest już po poprawnej kompilacji...

0

nie, no spoko stary :) już wszystko działa, dodałem po prostu biblioteke windows.h i pomogło:) a teraz z innej beczki, mam tablice prubek wbuforze, terazmuszę zrobić splot, niestety w drugim wektorze są liczby typu 0,453125 czyli muszę każdy element bufora pomnorzyć prze liczbę wielokrotnej precyzji, przypominam że bufor jest typu char i wynik też powinien taki być... nie wiem jak torozwiązać...

0

Wszystko było TU.

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