C64Power Forum
Hardware => Hardware => Wątek zaczęty przez: dekans89 w 23 Listopada 2008, 17:37
-
witam,
mam dosc spory problem z rozwiazaniem problemu taktowania ramki w SID.
na poczatku sadzilem, ze wejscie ukladu oznaczone jako `fi 2` jest wlasnie wejsciem taktowania 50Hz, ale jednak predko okazalo sie to nieprawda i wiem, ze musze podac tam 1MHz.
pytania mam nastepujace:
1. co podac na wejscia ukladu, by podtrzymac jego dzialanie przez cala dlugosc pojedynczej ramki?
2. jak po ustawieniu rejestrow na odpowiednia nutke `załączyć` ja?
-
prosta matma: 1 000 000 / 50 == 20000 hz == 20 khz. nie bedzie to idealnie 1 ramka ale dokladnosc ponad 99,5% wiec styknie do normalnych zastosowan. zalaczenie nutki ? na programowaniu sida nie znam sie zbyt dobrze ale jak masz ustawiona odpowiednia glosnosc w d418 i wpiszesz cos sensownego w oscylator ktoregos z kanalow to powinno grac.
-
rozumiem, tylko ze nie wiem co wpisywac przez pozostale takty zegara.
na poczatku ustawie wszystko, w jednym takcie, zegar bedzie sobie lecial, a ja nie wiem jakie stany powinien przyjac rej. adresu i danych by podtrzymac dana nutke przez 2ms.
-
sory, powinno byc `w paru taktach` na ustawienie czestotliwosci, adsr itd dla trzech kanalow.
-
tak wogole to uzywasz sida w c64 czy korzystasz z jakiegos zewnetrznego interfejsu (hardsid) ? utrzymanie nutki na 1 ramke nie ma sensu,to 1/50 sekundy:) z czym chcesz to synchronizowac ? w normalnych zastosowaniach chyba wystarczy robic to na oko modyfikujac obwiednie dzwieku(domyslam sie ze chodzi o sustain z adsr).
-
wlasciwie to juz sobie z tym poradzilem.
robie przenosny odtwarzacz sidow, bedzie to dosc proste sterowanie 8580 za pomoca mikrokontrolera.
teoretycznie mam juz wszystko rozwiazane i zaprojektowane, teraz tylko musze zaczac realizacje :)
-
btw. odpowiedzia jest:
wylaczac Chip Select by uklad nie pobieral adresow i danych z wyprowadzen i podtrzymywal ostatnia nutke :]
-
ciekawy projekt. chcesz docelowo odgrywac pliki z hvsc czy tylko poprostu generowac jakies dzwieki z sida ?
-
program siddump zmienia mi pliki sid w stany rejestrow w okreslonych frame`ach. bede puszczac te ramki co 50Hz i teoretycznie powinno grac :P
-
w ten sposob. a co jesli rejestry zmieniaja sie czesciej niz raz na ramke ?:)
-
nie sadzilem, ze jest to mozliwe,
w koncu nutki w PAL z definicji zmieniaja sie raz na 50Hz. jezeli jest inaczej, bede musial troche pozmieniac.
masz konkretne podstawy by tak sadzic?
-
jest dosc sporo utworow ktore aktualizuja rejestry czesciej niz raz na ramke. pierwszy z brzegu przyklad /MUSICIANS/0-9/20CC/van_Santen_Edwin/A_T rip_Into_E-V-Space.sid
-
ale wiem, ze jak sie bawilem na C64 w odpalanie przekonwertowanych sidow to wystarczyla prosta formulka na pare linijek, ktora wykorzystywala 50Hz odswierzania ekranu... chyba jednak wiekszosc zwyczajnych sidow jest na 50Hz.
przynajmniej ja sie nie spotkalem dotychczas z takimi o ktorych piszesz :)
-
po czym poznajesz ze jest tam to czesciej aktualizowane?
-
w procedurze inicjalizujacej ustawiane sa liczniki CIA. w tym przykladzie ktory podalem ustawiane sa one na dlugosc polowy ramki(czyli rejestry sida sa aktualizowane 2x na ramke).
utwory grane wiecej niz raz na ramke mozna poznac po charakterystycznym dzwieku instrumentow. jak przekonwertujesz sida do prg np.programem psid64 to po nacisnieciu shift mozesz zobaczyc ze utwor jest grany >raz na ramke.
sa nawet sidy ktore sa grane raz na 2 ramki(!) ale to juz egzotyka.
-
rozumiem, dziekuje :)
jezeli jest to robione w ten sposob, to rozwiazanie tego problemu nie jest ciezkie :P 2x na ramke bez problemu sobie poradze, nawet gdyby bylo 16x to nie mialby problemow. wazne, ze sie dzieli po rowno, a nie np 3x lub 9x na ramke ;P
-
oj niekoniecznie dzieli sie po rowno. sa rowniez utwory grane po 3x czy 5x na ramke. reguly ze moze byc tylko parzysta ilosc wywolana playera nie ma.
-
no coz,
narazie zrobie do 1:1 a potem moze zajme sie tymi przypadkami gdzie wystepuje czesciej.
ale i tak dzieki za informacje :)