zaloguj się | nie masz konta?! zarejestruj się! | po co?
rockmetal.pl - rock i metal po polsku poniedziałek, 29 kwietnia 2024

mp2 - kompresja muzyki

Uwaga! Ponizszy artykul jest baaardzo stary. Nie wszystkie informacje w nim zawarte sa nadal aktualne!

Ponizej garsc informacji na temat samplowania i odtwarzania muzyki na komputerze.

Jeszcze rok temu bylem przekonany, ze karta muzyczna do niczego nie jest mi potrzebna. Dlaczego? Wiedzialem, ze dzwiek z jakoscia CD (gorasza nigdy nie wchodzila w gre...) zajmuje ogromne ilosci miejsca ("The End" trwajace 11 minut to okolo 123MB!), a moje twarde dyski zawsze nalezaly do zapchanych. Poza tym cena 16bitowej karty do zachecajacych nie nalezala.

Potem stala sie jasnosc, a wlasciwie dzwiecznosc. Dotarly do mnie cale utwory (kilkuminutowe!) o bardzo rozsadnej wielkosci (czyli ponizej 2MB!). Rewolucyjna zmiana zostala spowodowana zastosowaniem kompresji MPEG do dzwieku. Wiadomo, ze obrazki w formacie JPEG sa ladne, ale nie nadaja sie do druku na przyklad, podobnie z dzwiekiem, brzmi wspaniale, ale pewnie nie da sie go w tej postaci obrabiac. Tyle, ze mnie interesuje sluchanie calych muzyczek, a nie ich tworzenie lub modyfikacje. I jak milo uslyszec fragmenty plyt, ktorych nie posiadam, dzieki znajomym uzytkownikom internetu.

Wystarczy agitacji. Co jest potrzebne do uzywania mp2 (takie jest standardowe rozszerzenie w nazwie pliku zawierajacego muzyke w formacie MPEG)? Oczywiscie komputer (mam 486 66dx2 8mb ram) i karta dzwiekowa (sound blaster 8 to jakosc magnetofonu, sound blaster 16 jakosc CD - mam klona sb16 zwacego sie vibra 16). Przydatny jest takze CDROM do sciagania muzyki bezposrednio z kompaktow (mam SONY x2 - archaiczny). No i oczywiscie potrzebne sa programy, wiekszosc znajdziesz ponizej.


Najpierw oprogramowanie dzialajace pod linuxem, ktorego to sam uzywam. Do samplowania za pomoca karty dzwiekowej wystarczy dobrze skonfigurowany "goly" linux. Zaklecie typu "cp /dev/dsp nazwa_pliku" zalatwia sprawe. Lepiej jednak skorzystac z programow umozliwiajacych zmiane czestotliwosci i rozdzielczosci probkowania np. srec z pakietu snd-util-3.5 (60KB). Odegrac dzwiek w tej postaci mozna tak: "cp nazwa_pliku /dev/dsp" albo za pomoca np vplaya z tegoz pakietu. Ogolnie malo przydatne, biorac pod uwage wielkosc tak otrzymanych plikow.

Jezeli jestes w posiadaniu CDROMa, mozesz sprobowac zapisac na twardy dysk dzwiek bezposrednio z plyty kompaktowej. Z powodzeniem uzywam cdda2wav (55KB). Potrafi zapisywac dzwiek w formacie .wav z roznymi czestotliowsciami i rozdzielczosciami. Mnie interesuje oczywiscie stereo 16bit 44.1kHz. Tak otrzymane wave'y sa ogromne, ale o tym poniezej.

Teraz gwozdz programu. Program do kompresji dzwieku, skutecznej na tyle, ze przekonala mnie do dzwieku na komputrach. Oto nadchodzi ampeg-3.9t-r (160KB). Istotny jest program encode, ktorego skompilowana wersja siedzi sobie w katalogu encodsrc. Polecam popatrzenie na Makefile i dolaczone dokumentacje. Decode do niczego wlasciwie nie jest potrzebny, tables sa niezbedne do kompresji, patrz opisy i pomoc samego encode. Uwaga! encode dziala baaaardzo wolno.

Tak otrzymane dane odtworzyc mozna za pomoca maplay (47KB), konieczny jest niestaty dosc szybki sprzet do grania stereo przy transferze z dysku 64kbit/s. Ale to naprawde dziala!

Oszukalem, mowiac o gwozdziu programu, dopiero teraz najciekawsze. A przy tym pokazujace dlaczego warto uzywac unixa. Wave'y nagrane za pomoca cdda2wav zajmuja dziesiatki megabajtow, a tych nie mialem nigdy na zbyciu zbyt wielu. Cdda2wav umozliwia jednak zapis danych do standardowego wyjscia, a drobna przerobka ampega zmusila go do czytania ze standardowego wejscia. Czyli zaklecie: cdda2wav -D /dev/cdrom -x -t numer_sciezki -|encode -b 64 stdin plik.mp2 jest panaceum. Ostatni parametr cdda2wav kieruje dane do stdout, a slowo stdin zamiast nazwy pliku zrodlowego powoduje, ze encode czyta dane wlasnie z stdin. Oczywiscie nie ma nic za darmo, a kosztem jest czas...


Nie masz linuxa? To pech. Ale nie placz, pod dosem rowniez mozna sie pobawic. Zwykle samplowanie i odtwarzanie wave'ow za pomoca karty dzwiekowej zostalo opisane w wielu miejscach, lepiej ode mnie to zrobiono.

Za pomoca da2wav (167KB) mozna sciagac dzwiek z CDROMa do .wav - skuteczne na kilku testowanych cdromach, na kilku nie dziala. W tym przypadku mozna sprobowac cdgrab20 (42KB). Mamy ogromnego wave'a.

Dosowa wersja programu sluzacego do kompresji dzwieku do formatu .mp2 zwie sie (niespodzianka ;) ampeg (200KB) - wersja wykonywalna. Dokumentacja dosowej wersji ampega.

Do odtwarzania uzywam programu chodzacego pod Windows: mpgaudio (104KB). Jesli masz odgrywaczke dosowa, mozesz dac znac.

Moze da sie samplowac z kompresja w locie pod dosem? Nie probowalem...

autor: rick