- Zvuková ukázka původní hudby.
- Zvuková ukázka bez předmagnetizace, 70 μs preemfáze 16 dB odstup od „šumu“ (kvantizačního zkreslení), 5 úrovní, 70 μs preemfáze, 192 kbps MP3. Hudba je silně zkreslená a hodně vynechává.
- Zvuková ukázka s předmagnetizací, 70 μs preemfáze 16 dB odstup od šumu, 5 úrovní, 70 μs preemfáze, 192 kbps MP3. Hudba má nulové harmonické zkreslení a obsahuje neměnný aditivní šum, který s hudbou nekoreluje.
- Pouze pro zajímavost: Zvuková ukázka s ditheringem70 μs preemfáze 16 dB odstup od šumu, 5 úrovní, 70 μs preemfáze, 192 kbps MP3. Šum je drsný, řezavý, je přerušován (modulován) v rytmu hudby, jeho hlasitost koreluje s hlasitostí hudby. Poslech připomíná špatně naladěné FM rádio.
Skladba: Last Day On Earth(UK)/Peter McCormick: Fear Of Falling, CC-BY-SA 4.0 International

S předmagnetizací (analogizací)
Všechny čtyři mají stejné parametry: 16 dB odstup od šumu, 5 úrovní, 70 μs preemfáze.
Závěr: předmagnetizací (analogizací) jsme schody na přenosové charakteristice krásně vyžehlili, ještě lépe než je krásně vyžehlila střídavá předmagnetizace na magnetofonu: máme totiž zkreslení 0%!
Volba výstupního formátu kompatibilního s mediálními přehrávači
Jako výstupní formát bych měl nejradši 32-, 48– nebo dokonce 64-bitový celočíselný (LPCM - lineární PCM). IEEE 754 floatový formát je složitější na portabilní vstup a výstup, protože počítač nemusí interně IEEE 754 formát používat.
Nejdříve zkusím v Soxu překódovat 16-bitový WAV na vyšší počet bitů. Netestuji s programy aplay
a paplay
, protože jsem u nich nenašel možnost převíjení, která si myslím bude pro posluchače kazety důležitá.
Příkaz | Výsledný formát | MPV | mplayer | VLC |
---|---|---|---|---|
sox vstup.wav -b 24 vystup.wav |
celočíselný 24-bit signed little endian | přehraje | přehraje | přehraje |
sox vstup.wav -b 32 vystup.wav |
celočíselný 32-bit signed little endian | přehraje | přehraje | přehraje |
sox vstup.wav -b 40 vystup.wav |
nejde – sox: „sox WARN formats: wav can't encode to 40-bit“ | |||
sox vstup.wav -b 48 vystup.wav |
nejde – sox: „sox WARN formats: wav can't encode to 48-bit“ | |||
sox vstup.wav -b 56 vystup.wav |
nejde – sox: „sox WARN formats: wav can't encode to 56-bit“ | |||
sox vstup.wav -b 64 vystup.wav |
float 64-bit little endian | přehraje | šum a rachocení | přehraje |
sox vstup.wav -b 64 -e signed-integer vystup.wav
|
nejde – sox: „sox WARN formats: wav can't encode Signed Integer PCM to 64-bit“ | |||
sox vstup.wav -b 64 -e unsigned-integer vystup.wav
|
nejde – sox: „sox WARN formats: wav can't encode Unsigned Integer PCM to 64-bit“ |
Nejpřesnější všude podporovaný formát je 32 bitů LPCM.
Jaký bude odstup signálu od kvantizačního nelineárního zkreslení (je to korelované se signálem, někdo to eufemicky nazývá šumem)? 32-bitová LPCM (celočíselná) bitová hloubka má 194.42 dB. Práh slyšitelnosti je 0dB, řvaní naplno přímo do ucha je 135 dB, balónek propíchlý přímo u ucha 155 dB, petarda na 0,5 m je 171 dB, Krakatoa ze 160 km 172 dB, a nejhlasitější možný tón, kdy by ještě výchylky nešly fyzikálně nemožně do mínusového tlaku pod vakuum, 194 dB.
Čili vidíme, že u 32bitového formátu LPCM můžeme neanalogovost zanedbat.
Problematické znaky
- Znak 0 se používá v C pro ukončení řetězců, pokud se do zdrojáku někdo podívá, špatně napsaný editor by mohl krachovat nebo zobrazovat špatně.
- Znaky 13 CR a 10 LF jsou pro konce řádek
- Uvozovka " 34 0×22 řetězec v C do kterého data budeme dávat
- Obrácené lomítko \ 92 0×5C v C řetězcích
- Otazník ? 63 0×3F kterým začíná noční můra jménem trigrafy
- Defaultní vstupní znaková sada GCC (
-finput-charset=
) je UTF-8 (viz man gcc). To neumožňuje využít bajty 128–255 pro 1-bajtové sekvence
Komprese zdrojáku
Ukazuje se, že pokud zdroják budeme komprimovat gzipem nebo bzipem, použití částečné znakové sady moc nevadí. Testoval jsem na 10 000 000 bytech z /dev/random
a měřil jsem velikost zakomprimovaného souboru. Gzipu nejvíc chutná 63 a Bzipu 64:
Počet znaků | Znaky | Overhead gzip | Overhead gzip –9 | Overhead bzip | Overhead bzip –9 |
---|---|---|---|---|---|
2 | 01 | 21.174% | 19.356% | 28.094% | 28.137% |
10 | 0–9 | 12.987% | 12.977% | 3.770% | 3.745% |
16 | 0–9A-F | 13.846% | 13.848% | 1.789% | 1.812% |
26 | A-Z | 8.117% | 8.119% | 1.759% | 1.749% |
36 | 0–9A-Z | 4.686% | 4.682% | 1.304% | 1.315% |
62 | 0–9A-Za-z | 0.945% | 0.942% | 0.853% | 0.843% |
63 | 0–9A-Za-z+ | 0.828% | 0.830% | 0.781% | 0.780% |
64 | 0–9A-Za-z+/ | 0.899% | 0.897% | 0.702% | 0.706% |
65 | 0–9A-Za-z+/= | 0.969% | 0.969% | 0.745% | 0.739% |
72 | 0–9A-Za-z.,:;()[]{} | 1.296% | 1.294% | 0.987% | 0.979% |
80 | 0–9A-Za-z.,:;{}<>[]()*/_=+ – | 1.432% | 1.429% | 1.106% | 1.108% |
92 | !#->@-[]-~ | 1.352% | 1.356% | 1.099% | 1.096% |
Spektra hudby
V článku Long-term Average Spectrum in Popular Music and its Relation to the Level of the Percussion [PDF] píšou, že zhruba od 100 Hz do 15 kHz je sklon 6 dB/oktávu což odpovídá filtru prvního řádu, a proto se při analogovém záznamu nebo vysílání používá preemfáze prvního řádu – prakticky to znamená, že tam je pouze jedna kombinace odporu a kondenzátoru. Spektrum na kazetě se tak lépe využije.
Kazeta má normálně ještě spodní preemfázi 3180 μs (50 Hz, BASF str. 3 vlevo a přehledová tabulka IASA) , tu jsem ale neimplementoval protože by to byla námaha navíc a již v roce 1962 argumentovali, že nedává smysl, šířka pásma pod 50 Hz je malá a tedy i energie ušetřeného šumu bude malá, a navíc dnešní taneční hudba má dle mé zkušenosti někdy silné basy (Elvis tehdá nedával dubstep bass drop), které by se touto preemfází mohly zesílit že by vystupovaly nad hudbu a potřebovaly redukovat nahrávací hlasitosti, aby se páska nepřebudila, a z toho by plynulo plýtvání odstupem signálu od šumu.
Oddechová analogová ukázka: Tajemné ruské krátkovlnné stanice UVB-76 4,625 MHz a Píp 3,756 MHz
Bzučák 4625 kHz je slavná a podle mě nejbizarnější a nejtajemnější rádiová stanice vysílající 24 h denně minimálně 41 let, a proto jsem ji samozřejmě neopomněl v 2023–04–27T22:00:13Z nahrát na SDR univerzity UTwente v Nizozemí s demodulací horního postranního pásma (USB) a spodní okraj jsem protáhl těsně pod nosnou frekvenci pro lepší basy.
Teorie, že je to stanice pro špióny nebo spuštění jaderné války v případě zničení, jsou vyvráceny detailnější analýzou. Opar bizarnosti a tajemna doplní kódová slova a termíny „monolit“, „uzor“, „komanda“, „debut“, „Naděžda“, „Sudak“ a „vulkan“. Můžete fantazírovat, co by tajemství mohlo být, a pustit si k tomu pravý autentický analogový záznam:
Nahrál jsem mým VACem také sesterskou stanici Píp na přijímači ve Finsku, která místo bzučáku pípá, a občas také vyšle tajuplnou mluvenou zprávu v ruštině.
_______________________________________________________ (+) _______________________________________________ (+) | / UVB-76 Bzučák 4625 kHz 27. 4. 2023 22:00:13 \ | | | UTC, horní postranní pásmo cca. 4 kHz šířka, | | | | Nizozemí, Enschede, Univerzita Twente WebSDR | | | | http://websdr.ewi.utwente.nl:8901/ | | | | _________________________________ | | | | / _________ \ | | | | | A " A | | A " A | | | | | | ( ) | | | | ( ) | | | | | | v , v |_________| v , v | | | | | 70 μs \_________________________________/ | | | | | | | | VIRTUAL ANALOG CASSETTE BY KAREL KULHAVÝ | | | |_________________________________________________| | | / (+) \ | | / _ _ \ | | / _ (_) (_) _ \ | (+)_______/___(_)_______________________(_)___\_______(+) |
Předchozí lokalita tajemného vysílače Bzučák UVB-76 (public domain) |
Kompilace přímo ze zakomprimovaného zdrojáku
bzip2 -dc buzzer_112.c.bz2 | cc -O3 -x c - -lm -o recording && ./recording 0 | mpv -
Zakomprimovaný zdroják ke stažení | Délka souboru zakomprimovaná | Odstup analogového signálu od šumu analogové nahrávky analogizované na digitální nosič | Preemfáze | Modulační procesor | Počet symbolů digitálního nosiče analogové nahrávky | Bitová rychlost ve zkomprimovaném stavu | Bitová rychlost zdroje | Délka min:sec | vzorkovací frekvence | Počet kanálů | Kvalita zdroje | SHA256 .c.bz2 souboru |
---|---|---|---|---|---|---|---|---|---|---|---|---|
buzzer_112.c.bz2 |
1 090 478 B | 43 dB | 70 μs | žádný | 112 | 43 kbps | 228 kbps | 3:22 | 8 kHz | mono | 16-bit WAV 14,238 kHz | 6723BA7C435F0887ED6CE78A69EEC570 3E2F8A9D2BA79D642871963930446947 |
buzzer_56.c.bz2 |
742 010 B | 37 dB | 70 μs | žádný | 56 | 29 kbps | 228 kbps | 3:22 | 8 kHz | mono | 16-bit WAV 14,238 kHz | B4D4152B066A8C894669565B64F05FD3 CDC8647FF87DB5DC96F12EEAD4BE4F83 |
buzzer_28.c.bz2 |
560 543 B | 31 dB | 70 μs | žádný | 28 | 22 kbps | 228 kbps | 3:22 | 8 kHz | mono | 16-bit WAV 14,238 kHz | DE71C3CF10EEC591C91AF2D234BAF503 56A71C0A50E027CB8E0DE3D6EA947EAA |
pip_92.c.bz2 |
2 327 763 B | 41 dB | 120 μs | žádný | 92 | 34 kbps | 192 kbps | 9:02 | 6 500 Hz | mono | 16-bit WAV 12 kHz | 6546FD6C5184BAA6DB8F8EEE56B6E1AD C760093C169CD31336D49F58C80E2799 |
pip_32.c.bz2 |
1 557 108 B | 32 dB | 120 μs | žádný | 32 | 23 kbps | 192 kbps | 9:02 | 6 500 Hz | mono | 16-bit WAV 12 kHz | 4DAA5B06805052790A42C118029EEEF7 8E032B258A3AFB20C237AD85C32AA4E8 |
Příště budeme vysvětlovat, jak funguje nahrávání.