276

Altirra chyba nie ;/ stereo SID-y są, plik audio z muzy stereo masz wyżej zgrany z real hardware. wyślę Ci linki e-mailem.

277 Ostatnio edytowany przez xxl (2014-08-04 01:06:03)

ok. dodalem obsluge stereo. obsluguje tez softwarowa konfiguracje karty.

w katalogu "stereo" jest kilka przykladowych muzyczek

pozdrawiam


---
tu: http://xxl.atari.pl/?page_id=708

http://atari.pl/hsc/ad.php?i=1.

278 Ostatnio edytowany przez seban (2014-08-04 21:20:57)

Dziękuję za kolejny update.

I przy okazji kolejny fajny kawałek demonstrujący możliwości brzmienia SID-ów grających stereo, tym razem zapraszam do posłuchania:

Melanoma Mood by Randall (format FLAC, 16bit, 96KHz)

To jest jeden z tych kawałków który zupełnie inaczej brzmi po zgraniu go nawet w 96KHz, zabawa muzyka filtrami w tym kawałku jest tak ciekawa że mimo iż SID teoretycznie nie może wygenerować tak wysokich częstotliwości to tym razem muzyk w porywie geniuszu (lub przez przypadek :P) zmusił filtry SID-a do wygenerowania tak wysokich harmonicznych że nawet przy 96KHz próbkowania muza brzmi wyraźnie inaczej niż oryginał lecący z SID-a...

Długo siedziałem i słuchałem, wnikałem co jest nie tak z tym kawałkiem, że po zgraniu w 48KHz kawałek brzmiał zupełnie inaczej - powiem wręcz że fatalnie, zresztą w 96KHz też nie brzmi doskonale ;) Ciekawy fenomen jak dla mnie, bo zdawałem sobie sprawę że takie efekty będą występować, i w tej wersji Slight-SID starałem się nie ograniczać SID-owi pasma  ani od dołu ani od góry... i uznałem że to co wypluwa z siebie SID będzie przeniesione 1:1 na wyjście, przyznaję że nie spodziewałem się aż takich różnic pomiędzy brzmieniem oryginalnego SID-a a wersją samplowaną nawet z wysoką częstotliwością, dla niedowiarków analiza widmowa fragmentu w którym szaleje filtr:


http://seban.slight.pl/SlightSID/Melanoma%20Mood.png

ps) Ta muzyka nie ma żadnych sampli, tak gra SID z player-em który wywoływany jest klika razy na ramkę.

279 Ostatnio edytowany przez sOnar (2014-08-05 03:53:13)

Fajne urządzenie. Szacun. Widziałem to coś we wczesnej wersji w akcji u Strykera na SV i brzmiało cool.

Ledwie przebrnąłem przez 12 stron tego tematu ( chaos w nim niezły a jest fakin czwarta rano i aż mnie bania nap... )
ale także byłbym zainteresowany SlightSid-em. Zdonrzyuem?

Tak zadam parę kłeszczyn...

Jak to ma się do SDX? Mono zdziałał ponoć coś.

Czy player pod niego ma obecnie możliwość odgrywania sub-songów w SID?
(powiedzmy, że Noisy Pillars - Jeroena Tela ma 3 sub-songi i interesuje mnie np. posłuchanie trzeciego)

Wrzucam 3 moje ulubieńce w zipie...

Pozdrawiam

Post's attachments

sNr_fav_SID.zip 19.49 kb, liczba pobrań: 6 (od 2014-08-05) 

Tylko zalogowani mogą pobierać załączniki.
[opuściłem to miejsce bezpowrotnie][dziękuję za skasowanie mojego konta]

280 Ostatnio edytowany przez drac030 (2014-08-05 09:43:17)

sOnar napisał/a:

Jak to ma się do SDX? Mono zdziałał ponoć coś.

Czy player pod niego ma obecnie możliwość odgrywania sub-songów w SID?
(powiedzmy, że Noisy Pillars - Jeroena Tela ma 3 sub-songi i interesuje mnie np. posłuchanie trzeciego)

Autor pewnie chętnie sam się wypowie, a ja co prawda się na tym nie znam, ale mam na ten temat własne zdanie i się nim podzielę ;)

Player napisany przez mono działa świetnie, zarówno na SlightSIDzie, jak i na Evie. Ma możliwość odgrywania subsongów, włączania/wyłączania filtrów, i, że się tak konkretnie wyrażę, w ogóle. Po zakończeniu działania wraca gładko do DOS-u. Działa ładnie zarówno na gołym Atari, jak i na takim ulepszonym (np. z Rapidusem).

Statystyka wygląda tak, że póki co na 145 przetestowanych sidów, nie zadziałało 11, w tym niektóre z przyczyn zupełnie obiektywnych, typu brak w Atari pamięci RAM w obszarze $d000-$d7ff.

Jak zwykle kawał znakomitej koderskiej roboty.

PS. Dwa nagrania z Evie:

Flimbo's Quest

For Avantgarde (to z kolei mój ulubiony)

KMK
? HEX$(6670358)

281

drac030 napisał/a:

brak w Atari pamięci RAM w obszarze $d000-$d7ff.

Myślałem o tym jakiś czas temu, jak wiadomo SID to w zasadzie cały kod playera - fragment programu - a na C-64 można się pakować w obszary pamięci, w które na Atari wejść trudno, czy wręcz nie sposób. Zastanawiałem się czy jest możliwe ominięcie tego poprzez inteligentną relokację kodu podczas ładowania (inteligentną, czyli taką która jedocześnie popodmienia skoki czy odwołania bezwzględne do tego obszaru). Ciekawiło mnie mianowicie co player robi wstępnie z SIDem podczas ładowania, gdyż jak się domyślam, to nie ma prawa pójść tak na dzień dobry?

The problem is not the problem; the problem is your attitude about the problem

282

Dziękuję drac030 za wyczerpującą odpowiedź.

Będę obserwować rozwój tematu.

Pozdrawiam

:)

[opuściłem to miejsce bezpowrotnie][dziękuję za skasowanie mojego konta]

283 Ostatnio edytowany przez seban (2014-08-05 13:24:15)

Cześć,

Dla porównania wrzucam kawałki zgrane z Slight-SID-a. Co prawda w przypadku Flimbo's Quest powinien to być SID6581 a ja zgrałem używając SID8580R5, ma baza do porównania jest, przy okazji zauważyłem (a raczej usłyszałem) że między innymi Evie gra nieco niżej (słychać różnicę w obu kawałkach)

Flimbo's Quest by R.Ouwehand & J.Bjerregaard (16bit, 48KHz, FLAC, mono, SID8580R5)

For Avantgarde by Red Devil (16bit, 48KHz, FLAC, mono, SID8580R5)

ps1) proszę nie traktować mojego porównywania jako jakichkolwiek zarzutów dla Evie, nie atakuję tego projektu i nie mam zamiaru umniejszać zasług jego autorowi. Każdy kawałek hardware do Atari uważam że coś wyjątkowego i wartego uznania. Moje porównanie ma jedynie na celu (o ile Pasiu będzie zainteresowany) poprawą implementacji SID-a w Evie, tak aby brzmiał jeszcze bliżej oryginału.

ps2) te dwa kawałki zgrałem z playera by Mono :]

284

Cos z tymi linkami nie poszło... :)

The problem is not the problem; the problem is your attitude about the problem

285

95% kodu implementacji SIDa w Evie nie jest mojego autorstwa. Powiem więcej: nie wiadomo kto go napisał.
Nie mam zamiaru tego ruszać i wywoływać niekończące się spory, że to jeszcze nie brzmi jak SID. Nie mam na to ochoty ani czasu, więc wszelkie pomysły tego typu chcę teraz po prostu ukrócić.

W implementacji z mojego jest tylko filtr, z którego de facto jestem bardzo zadowolony, więc jeżeli już, to majstrować będę tylko przy nim.

Spodziewałbym się bardziej, że to Evie gra za wysoko, a nie za nisko. SIDa taktuję 992kHz, więc jak dla PAL za dużo.

286 Ostatnio edytowany przez seban (2014-08-05 14:19:14)

@wieczór: linki fixed :)

@pasiu: doskonale rozumiem co masz na myśli. Co do wysokości dźwięku to chyba jestem w takim razie głuchy ale słuchałem plików WMA które podrzucił Draco oraz tych które zgrałem ja i wyszło mi że te WMA grają niżej. Ja taktuje SID-a w przypadku PAL ~985KHz. Więc skoro taktujesz SID-a w Evie 992kHz powinno faktycznie grać wyżej.

prosiłbym bym w takim razie  jakiegoś muzyka o porównanie tego na jego słuch :) chodzi o kawałki Avantgarde oraz Flimbo's Quest.

porównałem również nie "na ucho", ale czysto matematycznie... no i Evie jednak gra niżej...

kolor niebieski Evie, Kolor czerwony SID8580R5, próbka z kawałka Flimbo's Quest.

http://seban.slight.pl/SlightSID/freq%20comp%20-%20evie%20vs%20sid.png

287

seban napisał/a:

Co prawda w przypadku Flimbo's Quest powinien to być SID6581 a ja zgrałem używając SID8580R5

To jest akurat kwestia mocno dyskusyjna i rzecz gustu :)))) Chyba, ze masz na mysli potrzeby testu porownawczego, bo Evie najwyrazniej gra jako 6581.

Mi sie akurat Flimbo bardziej podoba w wersji 8580 - jest bardziej "soczysty". Tutaj obie wersje po kolei

https://www.youtube.com/watch?v=BhUj4Mh0_qI

The problem is not the problem; the problem is your attitude about the problem

288

@wieczór: ja mam to samo, wolę brzmienie 8580... i to nawet w kawałkach które były pisane dla 6581. Przesłuchałem ich wiele w obu wersjach i zdecydowana większość wypadała na korzyść 8580. Pisałem o 6581 bowiem autor muzyki pisał ją używając 6581 więc uznałem że takie brzmienie oryginalnie słyszał i no i Evie oczywiście grało używając charakterystyki filtra z 6581.

289

To jeszcze dla porządku ten sam Flimbo's Quest z filtrem 8580:

Flimbo's Quest, Evie 8580 (uwaga, 20 MB ;) )

KMK
? HEX$(6670358)

290 Ostatnio edytowany przez wieczor (2014-08-05 15:20:35)

No teraz mozna porownywac. Na moje ucho wysokosc dzwieku jest ta sama. Evie ma troche bardziej ostry, spiczasty bas, natomiast wyrazna roznice słychac w poczatkowych uderzeniach perkusji - o ile brzmienie jest w zasadzie to samo, to ze SlightSIDa perca jest "gładka", z Evie taka bardziej pozakłocana, poszarpana. Tym niemniej oceniam, ze emulacja jest dosc wierna - byc moze kwestia w rozdzielczosci cyfrowego dzwieku (tylko nie wiem czy pionowej, czy poziomej ;) )

The problem is not the problem; the problem is your attitude about the problem

291 Ostatnio edytowany przez seban (2014-08-05 15:42:54)

kurcze... ja naprawdę słyszę różnicę w częstotliwości dźwięku i to wyraźnie ;/ i po raz kolejny wklejam obrazek aby zobrazować to co słyszę, tym razem analiza z pliku FLAC.

To jest analiza widma tego samego fragmentu nagrania z obu układów. Na niebiesko widać widmo które daje Evie, na czerwono to co generuje SID8580. Jak nie słyszycie to dość wyraźnie widać że SID gra wyżej. W przypadku SID-a wszystko jest przesunięte nieco wyżej na osi częstotliwości.

I już nie chodzi mi o to że Evie gra niżej, tylko o fakt że pasiu mówi że taktuje SID-Core w Evie na 992KHz, więc powinno grać wyżej niż SID, tymczasem słuch i analiza pokazują że gra niżej :/ i to mnie zastanawia.

http://seban.slight.pl/SlightSID/freq%20comp%20-%20evie%20vs%20sid%20v2.png

292

To bym musiał posłuchac chyba rownoczesnie :) Wiesz to jest 0.8% raptem, na pierwszy rzut ucha roznica jest niesłyszalna. Natomiast jesli Ci chodzi ze powinno byc odwrotnie, to moze własnie niekoniecznie - moze czestotliwosc generowanego dzwieku jest odwrotnie proporcjonalna do zegara? Zalezy jak fizycznie ten dzwiek jest generowany. Zeby sie o tym przekonac, musiałbys sciagnac taktowanie jakos tak dwukrotnie :) Poza tym porownujesz nagrany plik - sa jeszcze filtry na wyjsciach itp - tor audio nie jest ten sam.

The problem is not the problem; the problem is your attitude about the problem

293

pomijając wszystko tu nie trzeba analizy i matematyki... to naprawdę bardzo wyraźnie słychać. 0.8% przy zegarze prawie 1MHz, zapewne błąd się powiela w akumulatorze fazy i różnica staje się wyraźnie słyszalna.

Jak to jest generowanie w przypadku SID? Proszę bardzo:

http://sid.kubarth.com/articles/intervi … annes.html

słowa kluczowe: "phase accumulator"

294

A czy dwie wersje (6581 i 8580) SIDów mogą wylądować na tym karcie?
To czy ew. można zamieniać, który ma być podstawowym, żeby porównać jak grają - to o czym piszecie?

295 Ostatnio edytowany przez wieczor (2014-08-06 10:29:43)

Z wymiana SIDow jest ten problem, ze nie sa do konca kompatybilne elektrycznie. Był co prawda pomysł na jumper, ale nie wiem czy finalnie został wdrozony, jednakze i tak byłyby uzywane zamiennie - nie jednoczesnie.

Tu Duddie wyjasnia w czym problem:

http://www.atari.org.pl/forum/viewtopic … 99#p137299

A tu Candle zapowiada co bedzie:

http://www.atari.org.pl/forum/viewtopic … 41#p139541

No, ale to Candle zapowiadał, a SlightSIDa robił Seban, wiec nie wiem o co kaman :) Troche jak z tym anonsem prasowym, gdzie o zgode na naprawe samolotu dunskich linii lotniczych przez Islandczyka dzwoniono do Sztokholmu. :)

The problem is not the problem; the problem is your attitude about the problem

296 Ostatnio edytowany przez mono (2014-08-07 08:49:57)

wieczor napisał/a:
drac030 napisał/a:

brak w Atari pamięci RAM w obszarze $d000-$d7ff.

Myślałem o tym jakiś czas temu, jak wiadomo SID to w zasadzie cały kod playera - fragment programu - a na C-64 można się pakować w obszary pamięci, w które na Atari wejść trudno, czy wręcz nie sposób. Zastanawiałem się czy jest możliwe ominięcie tego poprzez inteligentną relokację kodu podczas ładowania (inteligentną, czyli taką która jedocześnie popodmienia skoki czy odwołania bezwzględne do tego obszaru). Ciekawiło mnie mianowicie co player robi wstępnie z SIDem podczas ładowania, gdyż jak się domyślam, to nie ma prawa pójść tak na dzień dobry?

Zrobiłem taki analizator kodu, który wchodził w procedury init i play przelatywał wszystkie rozgałęzienia i wyłapywał odwołania do sprzętu (no i podmieniał je na moje). Okazało się, że taka statyczna metoda analizy jest mniej sensowna niż zwykłe search/replace. A czemu? A temu, że np. init $800 (cały .sid ładuje się do powiedzmy $4000) potrafi mieć w kodzie pętlę przepisującą dane playera i muzyki z $1000 na $B000. Za pętlą oczywiście jest skok do $B000, ale podczas analizy w tamtym miejscu nie ma oczywiście nic. Trzeba by symulować taki kod i w ten sposób określać gdzie jest program. To byłaby zresztą najlepsza metoda podmiany odwołań do rejestrów sprzętowych, bo bez ryzyka przypadkowej zmiany danych muzyki.
Póki co search/replace działa wg prostego algorytmu analizując dane pliku bajt po bajcie:
- sprawdzamy czy opkod chce 2 bajty argumentu
- sprawdzamy do jakiego rejestru się odwołuje argument
- sprawdzamy czy następny opkod wygląda na coś sensownego.
Te 3 kroki w połączeniu z testowaniem tylko opkodów do odczytu (kiedy rejestr może być tylko odczytywany) lub tylko do zapisu (kiedy rejestr może być tylko zapisywany) zawężają dość dobrze szanse na przypadkową zmianę danych. Ograniczana jest też lista rozkazów, którymi operuje się na danym rejestrze bo np ASL na rejestrze SIDa nie ma sensu więc raczej nie będzie zastosowany, ale już na rejestrach VICa może i jest nagminnie stosowany. 100% pewności nie ma i ciągle zdarzają się .sid'y które grają źle.

Jeszcze nie jestem zadowolony z playera, bo naprawdę programiści stosują przeróżne dzikie sztuczki. Zazwyczaj schemat wygląda tak:
1. init przygotowuje dane dla procedury odgrywającej.
2. Play wywoływany okresowo gra muzykę.
Ale również występuje inny:
1. Init przygotowuje dane + inicjalizuje liczniki taktujące.
2. Play gra muzykę synchronizując interwał z licznikiem.
Ale również inny:
1. Init przygotowuje dane + inicjalizuje liczniki i przerwania.
2. Playa nie ma.
Przy czym init wraca do playera i mogę sobie skonfigurować co tam chcę i odpalić.
Ostatni schemat jest najbardziej hardkorowy, ale też stosowany bo i czemu nie:
1. Init inicjalizuje dane + liczniki + przerwania (również IRQVEC oraz NMIVEC) i po czym włazi w pętlę bez końca ewentualnie czekając na jakąś flagę w sprzęcie (od licznika) i samodzielnie wywołuje procedurę odgrywającą (ponieważ w .sid nie ma o tym żadnej informacji, no to nie wiadomo która to procedura.
2. Playa nie ma.
Akurat nad ostatnim wariantem jeszcze rozmyślam, ale u siebie zorganizowałem sobie całą infrastrukturę analizującą które liczniki są wykorzystane i przydzielającą im przerwania POKEYa i jak do tej pory metoda się sprawdzała. Możliwe, że trzeba będzie zastosować jednak inne rozwiązanie. Przechwytywane są też wektory przerwań CINV i NMINV.
Problemów jest mnóstwo od adresowania pośredniego, po samomodyfikujący się kod.
Dlatego niechętnie podchodzę do takich formatów bo to nie jest żaden format muzyczny, tylko wyzwanie polegające na przechytrzeniu programisty. Powinni tego zabronić :P

Edit: Liczniki są potraktowanie umownie - równie dobrze może to być przerwanie rastra.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

297 Ostatnio edytowany przez seban (2014-08-06 17:24:08)

lemiel napisał/a:

A czy dwie wersje (6581 i 8580) SIDów mogą wylądować na tym karcie?
To czy ew. można zamieniać, który ma być podstawowym, żeby porównać jak grają - to o czym piszecie?

Hej! po drodze była i taka wersja, ale zrezygnowałem z tego. Mieszanie 6581 i 8580 zupełnie nie miało sensu. Do tego dochodził cały analogowy mikser ktory pozwalał dowolnie sterować położeniem każdego z SID-ów pomiędzy kanałami L i R. Zasilanie było zrealizowane na jednej przetwornicy step-up potem były generowane dwa niższe napięcia 9V dla 8580 oraz 12V dla 6581.

Ale zasilanie to był najmniejszy problem, w zależności od rodzaju SID-a zmieniają się kondensatory w filtrach, oraz zmienia się układ wyjściowy. Już pisałem to wcześniej, nie przewiduję seryjnej produkcji wersji z 6581, ale na życzenie mogę dostosować taki cart aby można było włożyć w niego 6581 (ale tylko i wyłącznie 6581).

Dlaczego nie zrobiłem rozwiązania uniwersalnego? Bo im więcej dokładałem dookoła, tym bardziej słyszałem i widziałem jak spada jakość dźwięku. Mogłem to zrobić w tylu high-end "audiofil" edition, tylko kto za to by zapłacił :D Także zostało rozwiązanie dedykowane dla 8580 :)

298

seban napisał/a:

analogowy mikser ktory pozwalał dowolnie sterować położeniem każdego z SID-ów pomiędzy kanałami L i R

Wow, rozumiem, ze to odpadło rowniez :) Fajnie by było cos takiego miec tez na POKEYach :)

A ja mam pytanie co do stosowania filtrow SIDa na dzwieku wejsciowym z POKEYa - to sie włacza niezaleznie od tego co gra SID czy jest jakos powiazane? Pytam bo nie do konca wiem jak to działa - mam na mysli to, czy filtry uzywane przy graniu na kanałach SIDa maja automatyczny wpływ na wejscie, czy mamy nad tym pełna kontrole.

The problem is not the problem; the problem is your attitude about the problem

299

analogowy mikser wypadł, przy tanich komponentach za bardzo szumiał, przy drogich nikt by tego nie kupił :)

Jak wiadomo filtr w SID jest jeden, ma 4 wejścia:

- OSC1
- OSC2
- OSC3
- EXT

Filtr jest typ VSF czyli na jego wyjściach masz sygnały: low pass, high pass, band pass.

Popatrz na schemat blokowy SID-a:

http://seban.slight.pl/SlightSID/sid_internals.png

i do tego popatrz na rejestry SID-a:

http://seban.slight.pl/SlightSID/sid_register_set.png

interesują Cię rejestry $D417 oraz $D418 (w przypadku Slight-SID oczywiście $D517 oraz $D518)

bity 0,1,2,3 sterują tym czy sygnał wejściowy (OSC1,OSC2,OSC3,EXT) ma iść przez filtr czy bezpośrednio na wyjście SID-a.

natomiast bity 6,5,4 określają który sygnał z filtra ma być wypuszczony na wyjście, oczywiście nic nie stoi na przeszkodzie abyś na wyjściu słyszał jednocześnie sygnał filtrowany przez LP jak i HP wtedy robisz sobie filtr typu "band stop/band reject"

Czy teraz trochę sprawa filtrów stała się trochę jaśniejsza? ;)

300

Czysto i przejrzyście :) W zasadzie pewnie mogłeś dać odpowiedź typu LMGIFY ale fajnie, że tego nie zrobiłeś. Kurczę, ten SID wydaje się strasznie prosty w porównaniu z POKEYem, skąd te problemy z emulacją?

The problem is not the problem; the problem is your attitude about the problem