forum speccy.pl

ZX Spectrum => MUZYKA => Wątek zaczęty przez: steev w 2014.12.13, 00:11:54

Tytuł: BTc 1bit encoder
Wiadomość wysłana przez: steev w 2014.12.13, 00:11:54
Linka do niego już kiedyś podawałem : http://www.romanblack.com/picsound.htm
W końcu ciekawość mnie zmogła i znalazłem pięć minut żeby to wypróbować na ZX.
Zakodowałem kawałek WAVe najsłabszym algorytmem BTc1.
Na emulatorze gra, ale rzęzi.
Gdyby kogoś ciekawość ruszyła na tyle, by wrzucić to w realny sprzęt, bardzo bym prosił o info jak to brzmi :)

W załączniku trzy pliki - grające na bicie trzecim portu #FE, na czwartym i na obu.

(uprzedzając pytania - tak, 'player' pisany na kolanie, mający głęboko czasy i T-stejty, a prędkość dobierana na oko w emulatorach - z których każdy odtwarzał to z inną prędkością :) )
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.19, 21:02:10
Ciekawa sprawa z emulatorami.
Tylko ZX Spin odtwarza bit 3 i nie ma słyszalnej różnicy między trzema plikami.
Inne, w których sprawdziłem - Spectaculator, Fuse, RealSpeccy, WJSpeccy - w ogóle nie traktują bitu 3 jako wyjście audio.
Do wgrywania w Unreal zabrakło mi cierpliwości.

A swoją drogą, co to za pieśń?

Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: steev w 2014.12.19, 23:08:43
Victory (https://www.youtube.com/watch?v=SBdC5YT6Vvg)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.22, 23:45:05
Inne, w których sprawdziłem - Spectaculator, Fuse, RealSpeccy, WJSpeccy - w ogóle nie traktują bitu 3 jako wyjście audio.
Dziwne bo u mnie w Spectaculator 8 pliki b34 i b4 działają, tylko w pierwszym b3 nic nie słychać.

Mój klon "Bajt" odtwarza wszystkie trzy pliki  8). Najlepiej plik player_b3 ponieważ trzaski są cichsze niż materiał audio i wyraźniej słychać muzykę :-) dobre  :D  :D

Jeszcze ładniej 'b3' brzmi gdy podłączę zewnętrzny wzmacniacz - magnetofon kasetowy SONY CFS-DW38L i zminimalizuję 4kHz i 10kHz tak aby zostały basy i środek.

W b4 i b34 trzeszczenie jest zbyt głośne.

Możesz napisać w skrócie jak konwertować WAV'y do TAP ? Czy trzeba robić jakieś urządzenie czy wystarczy program z tamtej strony?
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.23, 02:31:12
I tak powinno być, tzn. 2-bitowy beeper. Z testów, które robiłem na Timexie dawno temu, wynikało że bit 3 podawał słabszy sygnał na wyjście audio i brak sygnału na głośnik, a bit 4 full sygnał na oba. 3 i 4 razem nie sprawdzałem. W Spectrum 48 chyba bit 3 idzie też na głośnik (?)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.23, 10:34:36
W Spectrum 48 chyba bit 3 idzie też na głośnik (?)
Nie wiem jak jest w ZX48 ale jeśli chodzi o Spectaculator to prawdopodobnie używasz starej wersji. Dopiero od wersji 7.5 autor wprowadził poprawkę poprawnej emulacji BEEP'era:
Cytuj
Implemented correct beeper emulation with respect to the four voltage levels produced by the ULA. The correct sound is now heard from (the few) programs using both the EAR and MIC bits to drive the speaker. (http://www.spectaculator.com/2011/02/spectaculator-7-5-released/)
W Spectaculatorze 7.5 i nowszych działa bezbłędnie poprawka DD72speaker_fix stworzona na ROM mojego klona "Bajt" która odłącza dźwięk ładowania programów z głośnika. Poprawkę mam też zastosowaną w "Bajcie" - nie wiem czy to ma coś do rzeczy ale te testy odtwarzania są właśnie na komputerze z zastosowaną poprawką.

P.S. W Komputer_1986_06.djvu (ftp://plmag:[email protected]/Czasopisma/Komputer/1986/Komputer_1986_06.djvu) na stronie 14 jest opis bitów dotyczących portu #FE (254):
128
64
32
16
8
4
2
1
bit 7
bit 6
bit 5
bit 4
bit 3
bit2
bit 1
bit 0
SPEAKER
MIC
BORDER
BORDER
BORDER

P.S. Sprawdziłem starszą wersją Spectaculator 7.0.1 i odtwarza dokładnie tak samo jak nowsze wersje - czyli ta poprawka nie ma wpływu na odtwarzanie a tylko ma związek z dźwiękiem ładowania programów z taśmy.
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: steev w 2014.12.23, 12:57:54
Możesz napisać w skrócie jak konwertować WAV'y do TAP ? Czy trzeba robić jakieś urządzenie czy wystarczy program z tamtej strony?
Tylko wynik działania BTc.
Plus kilka wierszy w asm wrzucających kolejne bity na głośniczek.
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.23, 15:20:58
Nie wiem jak jest w ZX48 ale jeśli chodzi o Spectaculator to prawdopodobnie używasz starej wersji. Dopiero od wersji 7.5 autor wprowadził poprawkę poprawnej emulacji BEEP'era
Tak, mam 7 i starsze. Mało kiedy używam.
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.23, 15:31:15
Pobawiłem się chwilę w samplowanie tego VICTORY i już lepiej brzmi w Voice Manipulator 2 czy chociażby w Kmiot-Sampler :-)
Tak, mam 7 i starsze. Mało kiedy używam.
A ja właśnie poniższe pliki .z80 stworzyłem w Spectaculator dzięki opcji Load from Audio Source :-)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.23, 16:15:56
Jaki rozmiar ma wejściowy plik .wav? Jakość oryginału osiągnie się, kiedy 1-bitowe dane sampla załaduje się binarnie do RAM zamiast z wejścia audio. Później tylko dostrojenie szybkości  odtwarzania. 
Więcej o samplach było tutaj (http://speccy.pl/forum/index.php/topic,1378.15.html).
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.23, 20:24:13
Jaki rozmiar ma wejściowy plik .wav? Jakość oryginału osiągnie się, kiedy 1-bitowe dane sampla załaduje się binarnie do RAM zamiast z wejścia audio. Później tylko dostrojenie szybkości  odtwarzania. 
Więcej o samplach było tutaj (http://speccy.pl/forum/index.php/topic,1378.15.html).
Sampling robię bezpośrednio z YT z tego linku co zapodał steev do programu odpalonego w Spectaculator (gdzieś tak od 0:55 minuty) ale z wykorzystaniem wirtualnej karty dźwiękowej Virtual Audio Cable. W rezultacie zapodaję oryginalny dźwięk wprost do programu. Wirtualna karta dźwiękowa ma wejście Wave In czyli nagrywa wszelki dźwięk generowany za pomocą dowolnego odtwarzacza programowego w komputerze. W tym przypadku odtwarzaczem jest Flash Player w Firefox. Wszystko odbywa się cyfrowo bez utraty jakości sygnału źródłowego. Jest to podobne do nagrywania z kanału Stereo Mix ("What You Hear") znanego z kart Sound Blaster ale tylko podobne, o czym pisze autor programu Virtual Audio Cable:
Cytuj
It creates a set of virtual audio devices named "Virtual Cables", each of them consists of a pair of the waveform input/output devices. Any application can send audio stream to an output side of a cable, and any other application can receive this stream from an input side. All transfers are made digitally, providing NO sound quality loss (a bitperfect streaming).

VAC behavior is similar to "What You Hear" (or "What U Hear", "Stereo Mix") feature of Sound Blaster Live! and Audigy cards. But it is only similar, not equivalent. If you simply need a function like "Stereo Mix" under Vista/Win7/Win8, there could be better to try to enable it in your audio adapter. (http://software.muzychenko.net/eng/vac.htm)

P.S. W linku który zapodałeś sam mi dziękujesz za zrobienie sampli w VM2 :-) :-)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.23, 22:40:18
Sample są dobre, ale myślę że mogą być jeszcze lepsze. Co nieciekawe, nawet tak zaawansowany edytor jak Cool Edit Pro, pozwala obniżyć bitdepth jedynie do 8 bitów. Myślę o edytorze audio, który pozwoli obrobić 1-bitowy dźwięk - equalizer do wycięcia zbędnych fal które odbierane są jako szum, median filter i ostatecznie efekty. Później taki dźwięk zapisać jako raw i wgrać binarnie do emulatora, w przypadku VM2 pod adres 23850.

Załadowanie 8-bitowego sampla do VM2 przez Load Binary generuje przypadkowy szum. VM2 czyta bit po bicie, a tutaj bajt po bajcie to dane o głośności. Redukcja do 1-bit pozwoli na stworzenie 8 razy dłuższego sampla.

To dość okrężna droga, bo już sam VM2+Virtual Audio Cable jest właśnie tym konwerterem z dowolnego formatu do 1-bit, tyle że nie ma możliwości post-produkcji.

Dwa załączniki - 8bitowy sampel (rozszerzenie .bin dodałem aby przeszlo jako załącznik. Drugi to .z80 z tym samplem wgranym do VM2.

Powiedz mi jeszcze gdzie skąd ściągnąć ten Picsound? Nie widzę  :(
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.23, 22:44:22
Sample są dobre, ale myślę że mogą być jeszcze lepsze. Co nieciekawe, nawet tak zaawansowany edytor jak Cool Edit Pro, pozwala obniżyć bitdepth jedynie do 8 bitów. Myślę o edytorze audio, który pozwoli obrobić 1-bitowy dźwięk - equalizer do wycięcia zbędnych fal które odbierane są jako szum, median filter i ostatecznie efekty. Później taki dźwięk zapisać jako raw i wgrać binarnie do emulatora, w przypadku VM2 pod adres 23850.

Załadowanie 8-bitowego sampla do VM2 przez Load Binary generuje przypadkowy szum. VM2 czyta bit po bicie, a tutaj bajt po bajcie to dane o głośności. Redukcja do 1-bit pozwoli na stworzenie 8 razy dłuższego sampla.

To dość okrężna droga, bo już sam VM2+Virtual Audio Cable jest właśnie tym konwerterem z dowolnego formatu do 1-bit, tyle że nie ma możliwości post-produkcji.

Dwa załączniki - 8bitowy sampel (rozszerzenie .bin dodałem aby przeszlo jako załącznik. Drugi to .z80 z tym samplem wgranym do VM2.

Powiedz mi jeszcze gdzie skąd ściągnąć ten Picsound? Nie widzę żadnego linku na stronie  :(
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: steev w 2014.12.23, 23:27:00
Nie picsound. Konwerter nazywa się BTc (http://www.romanblack.com/BTcSE30BETA.zip)
Wave 8000Hz mono 8 bit daje po kompresji około 1 s/kB
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.23, 23:56:02
Później taki dźwięk zapisać jako raw i wgrać binarnie do emulatora, w przypadku VM2 pod adres 23850.
Do emulatora może i tak ale do VM2? Nie znam się za bardzo na samplerach ZX Spectrum. Czy mam rozumieć iż sampel nagrany np. w Kmiot da się wczytać do VM2 i ten go poprawnie odtworzy i odwrotnie? Muszę spróbować bo jeszcze tego nie próbowałem :-)
Załadowanie 8-bitowego sampla do VM2 przez Load Binary generuje przypadkowy szum. VM2 czyta bit po bicie, a tutaj bajt po bajcie to dane o głośności. Redukcja do 1-bit pozwoli na stworzenie 8 razy dłuższego sampla.
Nie rozumiem dlaczego wejściowymi danymi ma być sampel 8-bit skoro taki VM2 sampluje jako 1-bit jak sam napisałeś więc nie rozumie on danych 8-bitowych sampla z pliku bin.

Sam napisałeś iż nie ma edytora na PC który zsampluje i zapisze sampel jako 1-bit więc skoro jedynym sposobem utworzenia sampla 1-bit jest sampler uruchomiony na ZX Spectrum np. VM2 to mój sposób jest jedynym i najlepszym sposobem do uzyskania najlepszej jakości dźwięku :-)

Nawet YERZMYEY w temacie ZX Spectrum 48k jako sampler (http://speccy.pl/forum/index.php/topic,416.msg4327.html#msg4327) sam się dziwił, że jego program Kmiot-Sampler potrafi tak świetnie odtwarzać sample gdy zapodałem mu Prognozę pogody :-) którą to nagrałem w ten sam sposób z wykorzystaniem VAC.
Posłuchaj tego jeszcze raz :-) - Prognoza pogody w Kmiot-Sampler (http://speccy.pl/forum/index.php?action=dlattach;topic=416.0;attach=323)

Nie potrzeba nam zaawansowanego edytora typu Cool Edit aby obniżać rozdzielczość do 1-bit. Virtual Audio Cable + emulator Spectaculator z włączoną opcją Load from Audio Source i uruchomionym np. VM2 to jest właśnie nasz sampler 1-bitowy na PC który spełnia znakomicie swoją rolę bez żadnej utraty jakości dźwięku :-)

Myślę o edytorze audio, który pozwoli obrobić 1-bitowy dźwięk - equalizer do wycięcia zbędnych fal które odbierane są jako szum, median filter i ostatecznie efekty. Później taki dźwięk zapisać jako raw i wgrać binarnie do emulatora, w przypadku VM2 pod adres 23850.
Myślę iż nie tędy droga aby edytować 1-bitowy sampel. Aby uzyskać najlepszy efekt trzeba zapodać do samplowania w VM2 odpowiedni materiał źródłowy czyli bez pogłosu (reverb), nie za głośny (nie przesterowany) czyli mówiąc krótko obrobić go w edytorze audio przed zsamplowaniem.

To jest gwarancją sukcesu :-)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.24, 01:38:27
Sprowadziłeś mnie na właściwą drogę ostatnim zdaniem. Przecież 1-bitowy sampel już mamy. Wystarczy go zapisać z emulatora Save Binary 23800,32640 z rozszerzeniem .pcm i otworzyć w edytorze audio. Grał będzie znacznie szybciej i wyżej, bo będzie interpretowany jako 8-bitowy. Stąd z equalizerem nie będzie tak prosto, ale możemy zaszaleć nakładając np. phase shift.

Zmodyfikowany i zapisany plik ma dokładnie tą samą długość, można go z powrotem wgrać do VM2 i sprawdzić co wyszło.

Z VM2 do Kmiot i odwrotnie też można. Kmiot zapisuje dane od 32896, długość 32669 i odtwarza w innym tempie. Łatwiej by było odwrotnie, bo VM ma regulacje szybkości.
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.24, 02:12:48
Albo ja coś źle obliczyłem albo mi wyszły inne adresy dla Kmiot i VM2:

Kmiot-Sampler

56 bajtów 2x28 w DATA czyli 32768+56=32824

32768 - recorder
32796 - player

RANDOMIZE USR play czyli 32796
RANDOMIZE USR record czyli 32768

SAVE zapisuje cały program wraz z danymi nagranymi SAVE ""CODE 32768,32768

dane są od 32824 do końca pamięci RAM ponieważ 65536 - 32824 = 32712

czyli LOAD ""CODE 32824,32712 powinno wczytać dane


Voice Manipulator2   adres 23850, długość 32640. VM2 ma zabezpieczenia przed przypadkowym nadpisaniem danych i aby wczytać dane za pomocą LOAD, lewy marker musi być przewinięty w lewo na pozycję 00000 oraz trzeba wykonać polecenie CLEAR czyli da się wczytać tylko na czyste miejsce. Przesuwanie markerów działa z dokładnością 128 bajtów - ewentualnie da się wczytać w wolne miejsce krótsze dane ustawiając wcześniej odpowiednio markery L i P (1 i 2)

Właśnie zatrzymałem Kmiot i zrobiłem LOAD ""CODE 32824,32712 (dane z VM2) i odtwarza ale coś nie mogę rozpoznać że to VICTORY :-)
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Abrimaal w 2014.12.25, 00:59:57
Właśnie zatrzymałem Kmiot i zrobiłem LOAD ""CODE 32824,32712 (dane z VM2) i odtwarza ale coś nie mogę rozpoznać że to VICTORY :-)
A może on odtwarza od końca? Zdarzają się i takie.
Co do adresu, to szukałem pierwszego zapisanego bajtu, mogłem się pomylić nie analizując procedury w Kmiot.
Tytuł: Odp: BTc 1bit encoder
Wiadomość wysłana przez: Gelip w 2014.12.25, 10:46:07
A może on odtwarza od końca? Zdarzają się i takie.
Właśnie coś jakby od końca ale jak robiłem odwrotnie - dane z Kmiot do VM2 to też jakby tak samo ale VM2 ma opcję REVERSE i po jej zastosowaniu nadal jest coś nie tak. Podsumowując to najlepiej trzymać się jednego programu. Moim faworytem jest Voice Manipulator 2 tylko ten drobny problem z LOAD/SAVE na moim klonie by się przydało rozwiązać o czym pisałem tu: Rosyjski klon - Bajt (http://speccy.pl/forum/index.php/topic,346.msg17300.html#msg17300)