Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 19. červen 2012, 15:12:06 Předmět: |
|
|
Pokud vím, oni to mají navržený na streamování ze souboru, já už mám soubor načtený v paměti, takže veškeré čtení ze souboru musím nahradit čtením z pěměti a to bude ještě víc prásácký než ten jejich kód...
Raději si to napíšu sám...když už nic jiného, tak se aspoň naučím novou věc a mohu to hned naučit další lidi (viz. časopis).
Rozbalovat do paměti to nehodlám, to bych rovnou mohl použít WAV...
OT: Překladač dělám úplně vlastní, teď pracuji na sémantické analýze...budu překládat trochu upravené C (já mu říkám C--) pro procesory H8S a MIPS. _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 19. červen 2012, 15:20:24 Předmět: |
|
|
VODA napsal: |
Pokud vím, oni to mají navržený na streamování ze souboru, já už mám soubor načtený v paměti, takže veškeré čtení ze souboru musím nahradit čtením z pěměti a to bude ještě víc prásácký než ten jejich kód...
Raději si to napíšu sám...když už nic jiného, tak se aspoň naučím novou věc a mohu to hned naučit další lidi (viz. časopis).
Rozbalovat do paměti to nehodlám, to bych rovnou mohl použít WAV...
OT: Překladač dělám úplně vlastní, teď pracuji na sémantické analýze...budu překládat trochu upravené C (já mu říkám C--) pro procesory H8S a MIPS. |
No můžeš použít ov_open_callbacks, jak jsem psal. Tam ti to bude volat tvoje funkce pro read, seek, tell atd., takže se soubory to pracovat nutně nemusí.
OT: Tak to je úlet, klobouk dolů Já jsem se zmohl jenom na vlastní interpret skriptu, do něčeho takového bych asi nešel. |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 19. červen 2012, 15:24:49 Předmět: |
|
|
mar napsal: |
No můžeš použít ov_open_callbacks, jak jsem psal. Tam ti to bude volat tvoje funkce pro read, seek, tell atd., takže se soubory to pracovat nutně nemusí.
|
Pravda, to mě nenapadlo, uvidíme, ale jak jsem řekl, když se to naučím sám, mohu to naučit další lidi... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 20. červen 2012, 22:43:06 Předmět: |
|
|
Ha, už mi to hraje tak jak potřebuji, sice jsem nakonec OGG zahodil a spokojil jsem se s obyčejným WAVem, ale naimplementoval jsem si to sám a funguje to tak, jak jsem přesně potřeboval...
Takže, žádné knihovny navíc...
Tak, ještě to trochu zkulturnit a mohu začít dodělávat poslední mizivá procenta enginu... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 20. červen 2012, 22:48:48 Předmět: |
|
|
Jako že máš nakonec hudbu ve wavu a celou v paměti? |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1552
|
Zaslal: 20. červen 2012, 23:21:10 Předmět: |
|
|
To zní jako fail. _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 20. červen 2012, 23:31:04 Předmět: |
|
|
No primárně je ten soundsystem postaven na přehrávání krátkých zvukových efektů, ale také krátké hudby. Uznávám, že WAV si schramstne v případě hudby docela hodně paměti (3 minuty hudby = cca 14 MB).
Výhoda mého řešení je v tom, že v OpenAL nevytvářím pro celý zvuk jeden buffer, ale "streamuji" to z paměti. Takže až přijdu na to, jak rychle komprimovat a dekomprimovat zvuk nějakým hybridním způsobem, mám na to připravené rozhraní...
Také bych raději, kdyby mi to běhalo s Ogg, ale v dekódování jsem se nedostal moc daleko. Pochopil jsem jak jsou data v souboru organizována, dokonce jsem měl mechanizmus na načítání dat z jednotlivých paketů/stránek, jen se mi už nepovedlo ty data dostat do požadovaného tvaru...snad někdy příště. _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1533 Bydliště: u Prahy
|
|
Návrat nahoru |
|
|
franz
Založen: 30. 07. 2007 Příspěvky: 1325
|
Zaslal: 21. červen 2012, 09:11:43 Předmět: |
|
|
když už bych tam měl SDL a zlib1, tak by další dll nevadila |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 21. červen 2012, 10:11:43 Předmět: |
|
|
VODA napsal: |
Uznávám, že WAV si schramstne v případě hudby docela hodně paměti (3 minuty hudby = cca 14 MB).
Výhoda mého řešení je v tom, že v OpenAL nevytvářím pro celý zvuk jeden buffer, ale "streamuji" to z paměti. Takže až přijdu na to, jak rychle komprimovat a dekomprimovat zvuk nějakým hybridním způsobem, mám na to připravené rozhraní...
|
No kdysi jsem používal vlastní realtime kompresi (4 bity na sampl), v podstatě obdoba ADPCM ale bez tabulek, prostě některé kódy akorát měnily shift a dvojnásobek nebo polovinu. Myslím, že jsme v bexerovi měli takhle uložené samply. Už ale nevím, jestli se to realtime mixovalo, ale myslím, že to šlo. Samozřejmě tohle dost šumí a zhoršuje se kvalita se snižováním samplerate. Je to sice lepší než 8-bit samply, ale i tak už to dávno nepoužívám. Na hudbu jedině oggy. Zvuky 22kHz by mělo stačit.
Mimochodem 3 minuty hudby, 44100 Hz, stereo, 16-bit je 30MB. Pokud tedy nechceš 22kHz, což je škoda, protože přijdeš o výšky.
Z paměti to bude samozřejmě nejrychlejší, i když to je IMHO plýtvání.
VODA napsal: |
Také bych raději, kdyby mi to běhalo s Ogg, ale v dekódování jsem se nedostal moc daleko. Pochopil jsem jak jsou data v souboru organizována, dokonce jsem měl mechanizmus na načítání dat z jednotlivých paketů/stránek, jen se mi už nepovedlo ty data dostat do požadovaného tvaru...snad někdy příště. |
Tak tomu říkám masochismus |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1533 Bydliště: u Prahy
|
Zaslal: 21. červen 2012, 11:22:58 Předmět: |
|
|
Ručně loadovat obsah OGGů - to může klidně do projektu vložit zdrojáky té BSD knihovny na OGGy . Vlastně jsem to tak i jednou použil na libjpeg, taky jsem nechtěl externí DLL a licence to umožnuje (dnes už bych to nedělal). _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 21. červen 2012, 11:42:42 Předmět: |
|
|
No ono parsovat ogg by byla ta jednodušší část, o poznání složitější by bylo dekódovat vorbis |
|
Návrat nahoru |
|
|
VODA
Založen: 29. 07. 2007 Příspěvky: 1721 Bydliště: Plzeň
|
Zaslal: 21. červen 2012, 13:44:16 Předmět: |
|
|
mar napsal: |
No ono parsovat ogg by byla ta jednodušší část, o poznání složitější by bylo dekódovat vorbis |
No právě.
Celou noc jsem přemýšlel nad tím, jak zkomprimovat pcm z wav. Asi po 6 hodinách jsem konečně na něco přišel. Dokáži to zkomprimovat na 50 % původní velikosti. Ve zvuku není šum, ale jako by bylo v pozadí slyšet vysokofrekvenční "duch" původního signálu. Zatím se mi to nepovedlo odstranit, ale i tak je 50 % docela velký úspěch. Rovněž to jde realtime dekódovat. Problém je, že se to po delší době s tím vysokofrekvenčním hvízdáním nedá poslouchat... _________________ Opravdovost se pojí s trýzní... |
|
Návrat nahoru |
|
|
Spytihněv
Založen: 05. 04. 2011 Příspěvky: 541 Bydliště: Praha
|
Zaslal: 21. červen 2012, 14:13:16 Předmět: |
|
|
Já do Tábora použil Bass, který streamovat ogg z paměti umí - taky jsem to potřeboval. Pro free projekty je zdarma a licence pro nezávislé vývojáře vyjde jen na 125 EUR (a lze ji použít i ve všech budoucích projektech). |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 602
|
Zaslal: 21. červen 2012, 14:25:12 Předmět: |
|
|
VODA napsal: |
No právě.
Celou noc jsem přemýšlel nad tím, jak zkomprimovat pcm z wav. Asi po 6 hodinách jsem konečně na něco přišel. Dokáži to zkomprimovat na 50 % původní velikosti. Ve zvuku není šum, ale jako by bylo v pozadí slyšet vysokofrekvenční "duch" původního signálu. Zatím se mi to nepovedlo odstranit, ale i tak je 50 % docela velký úspěch. Rovněž to jde realtime dekódovat. Problém je, že se to po delší době s tím vysokofrekvenčním hvízdáním nedá poslouchat... |
No hvízdání jsem kdysi měl taky, ale to jsem si hrál s FFT a zkoušel jsem to kvantizovat a pak znovu poskládat. A taky byl problém pak navazovat bloky, musel jsem dělat crossfade, aby z toho byl nakonec souvislý signál. Jenom nechápu, jestli ti ten frekvenční šum dělal tvůj dekodér vorbisu, nebo jestli sis psal něco úplně svého.
Našel jsem teď zdrojáky k tomu "adpcm" bez tabulek, co jsem psal, ale je to 12 let starý kód, takže to dávám jako public domain. Pokud by ti to pomohlo, link je tady: http://www.mediafire.com/?926csi60y5kvv8k.
Zkomprimuje to na 25% a dekomprese je prakticky okamžitá, ale i tak to je relativně mnohem větší s nižší kvalitou, než vorbis.
Upřímně si myslím, že na tomhle zbytečně plýtváš svým talentem. A přitom by stačilo nalinkovat tremor nebo libvorbis, jak psal Ladis |
|
Návrat nahoru |
|
|
|