forum speccy.pl
ZX Spectrum => MUZYKA => Wątek zaczęty 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ą :) )
-
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śń?
-
Victory (https://www.youtube.com/watch?v=SBdC5YT6Vvg)
-
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?
-
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 (?)
-
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:
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.
-
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.
-
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.
-
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 :-)
-
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).
-
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:
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 :-) :-)
-
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ę :(
-
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 :(
-
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
-
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 :-)
-
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.
-
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 :-)
-
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.
-
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)