No i z niedzieli zrobił się wtorek. W każdym razie,
Duddie napisał/a:Nie rozważałem jeszcze w jaki sposób rozszerzyć format .CAS tak, aby możliwe było stosowanie zabezpieczeń zapisu. Może faktycznie będzie to zapis surowych impulsów, chociaż to zajmie więcej miejsca.
Właśnie takie rozwiązanie przyjąłem - do formatu CAS dodałem nowy typ rekordu (obok istniejących 'data' i 'baud'): 'fsk ', który zawiera długości kolejnych impulsów w milisekundach (16 bitów na każdy impuls). Podczas kodowania do CAS każdy blok którego nie uda się rozpoznać jako 'data', jest zapisywany w formie 'fsk '.
Takie rozwiązanie w zupełności wystarczało w przypadku zabezpieczeń, na które się natknąłem - a natknąłem się tylko na jeden typ: gdy pomiędzy normalnymi rekordami na taśmie znajduje się sekunda albo dwie ciągłego sygnału '0'. Taki sygnał zapisuję w bloku 'fsk ' jak poniżej:
66 73 6B 20 ; nagłówek 'fsk '
02 00 ; długość bloku, 2 bajty
00 00 ; pomijane - każdy nagłówek w CAS ma 8 bajtów
5F 06 ; 1631 milisekund sygnału '0'
Być może to rozwiązanie nie wystarczy dla bardziej zmyślnych zabezpieczeń (rozdzielczość w milisekundach może być za mała), ale jeszcze takich nie widziałem.
Zapis surowych impulsów oczywiście zajmuje więcej miejsca, ale ma tę zaletę, że da się to prosto oprogramować. Praktycznie bowiem nie ma 100% skutecznej metody rozpoznawania typu rekordu ('data' czy jakiegokolwiek innego) - gdy napotkasz na jakiś nietypowy rekord, warto mieć w zanadrzu możliwość zapisania go w formie czystych impulsów.
Zresztą ten wzrost zajmowanego miejsca nie jest tak tragiczny. Np. taka "Misja" Avalonu ma ponad 300 rekordów, po konwersji do CAS zajmuje ok. 40 KB. Ale plik ten zawiera ok. 200000 impulsów, czyli gdyby zakodować go w formie "surowej" po 2 bajty na impuls, to mielibyśmy ok. 400 KB, więc wzrost rozmiaru jest raptem 10x. I ciągle jest to mniej niż choćby nagranie mp3.
Duddie napisał/a:Do niezabezpieczonych programów może być zwykły .CAS. Odtwarzanie muzyki, która znajduje się na prawej ścieżce? Czemu nie, podłączenie urządzenia do Audio In nie stanowi problemu. Tylko pytanie, jak je przenieść na kartę SD. Bezpośrednio z Atari to się nie uda, kompresja .mp3 odbywałaby się na PC, ale.... jak to później zsynchronizować z lewą ścieżką?
Zastanawiałem się nad tym kiedyś, ale dobrego rozwiązania jeszcze nie mam. Może trzymać w pliku CAS jakieś dodatkowe bloki, informujące o tym ile sampli należy przeczytać, zanim skończy się następny rekord 'data'? Wtedy gdy podczas odtwarzania okaże się, że rekord się "skończył" zanim wszystkie sample zostały odczytane, można by po prostu wstawić dłuższą przerwę IRG. Alternatywnie, gdyby wcześniej skończyły się sample, można by zapewnić, że następny rekord będzie odczytany z prędkością powiedzmy 1.05x szybszą niż oryginalna; albo wstrzymać na chwilę odtwarzanie WAV-a.
Duddie napisał/a:Całość na pewno sprzętowo będzie dość podobna do SIO2SD. Krótki, czekam w takim razie na Twoje uwagi odnośnie nowego formatu - i oczywiście trzymam Cię za słowo, że zajmiesz się oprogramowaniem tegoż.... :)
Żeby nie było nieporozumień - jestem w stanie przygotować bibliotekę, które będzie odczytywać z formatu CAS/XCAS/Wav pojedyncze impulsy oraz zakodowywać owe impulsy do ww. formatów, ale to jak Ty ten mój kod wciśniesz na płytkę drukowaną to jest osobna sprawa, na tym się zupełnie nie znam.
A8CAS - narzędzie do 100% archiwizacji kaset Atari