Hallo Besucher, der Thread wurde 43k mal aufgerufen und enthält 233 Antworten

letzter Beitrag von MGR3SA am

SID nachbauen


  • Was ist den eigentlich alles im SID Analog?


    Naja eigentlich alles was nach Oszillator und Hüllkurve kommt. Schon das "Multiplizieren" der Wellenform mit der Hüllkurve geschieht ja über einen analogen Transistor. Die Filter sind sowieso analog und dann gibt es noch ein paar analoge Effekte in den digitalen Teilen, z.B. die kombinierten Wellenformen. Und ganz zum Schluss wird das Ausgangssignal noch mit der 4 Bit Lautstärke mittels eines Transistors "multipliziert".

  • Beim Amiga kann man das grob als 4 DA-Wandler (je 2 auf einem Ausgangspin) mit jeweils zugeordnetem DMA-Controller bezeichnen.


    Ok, da ist noch etwas mehr weil man mit einem Kanal den anderen beeinflussen kann, aber das ist nur ein kleines Detail.


    Auf der einen Seite bringt das viel Flexibilität, auf der anderen Seite kostet es CPU-Zeit diese zu nutzen.


    Wieso CPU Zeit ?


    Wenn die Samples im RAM liegen musst Du Paula nur sagen in welcher Freuenz und Lautstärke die abgedudelt werden sollen, dürfte dann nicht auf wendiger sein wie beim SID Hrundton X abzuspielen.


    Die Kanäle sind ja unabhängig voneienander, du musst also nicht wie beim PC oder ST resamplen um Songs zu spielen bei 4 stimmen Songs.


    Nachteil ist eher das es Speicherplatz frisst und beim Zugriff aufs Chipram die CPU warten muss.


    TP

  • Wieso CPU Zeit ?


    Weil die gute Paule DMA-Zyklen verbraucht und manchmal die Samples auch in Echtzeit generiert werden.


    Zitat

    Wenn die Samples im RAM liegen musst Du Paula nur sagen in welcher Freuenz und Lautstärke die abgedudelt werden sollen, dürfte dann nicht auf wendiger sein wie beim SID Hrundton X abzuspielen.


    Nur dass man beim SID mehr als nur die Frequenz ändern kann.


  • Weil die gute Paule DMA-Zyklen verbraucht und manchmal die Samples auch in Echtzeit generiert werden.



    Nur dass man beim SID mehr als nur die Frequenz ändern kann.

    Da hast Du recht. Ist halt ein Mittelding zwischen SID und einer "dummen" Soundblaster artigen Karte, hat sich halt durchgesetzt und war in der Produktion sicher einfacher als ein SID.


    TP

  • Ich kenne auch kaum Musik auf dem Amiga wo in Echtzeit noch großartig manipuliert wurde, ich glaube mehr als ein paar Register abändern war da nicht. Es gab Versuche durch Kaskadierung die Samplingauflösung zu erhöhen, genau wie eine Echtzeitmischung, so dass 8 Stimmen möglich waren. Dies waren aber absolute Ausnahmen und nicht die Regel. Ich muss aber gestehen, dass ich nicht viel mit Soundprogrammierung auf dem Amiga zu tun hatte. Mehr als ein paar Minimal-Intros und später auch Vektorgrafik war bei mir nicht drinne.


  • Naja eigentlich alles was nach Oszillator und Hüllkurve kommt. Schon das "Multiplizieren" der Wellenform mit der Hüllkurve geschieht ja über einen analogen Transistor. Die Filter sind sowieso analog und dann gibt es noch ein paar analoge Effekte in den digitalen Teilen, z.B. die kombinierten Wellenformen. Und ganz zum Schluss wird das Ausgangssignal noch mit der 4 Bit Lautstärke mittels eines Transistors "multipliziert".



    Aaah, jap. Gut, das endlich mal zu erfahren. Danke.

  • Die Pullups/Pulldowns sollten in der 3510er-Zählung bereits grösstenteils entfernt sein, Mehrfachtransistoren gibts aber tatsächlich ein paar.


    Also für die in Micro64 (mithilfe dem "+cpusim" Command Line Parameter aktivierbare) optionale switch-level transistor-basierte CPU Simulation habe ich die Anzahl der Transistoren per kleinem Skript (das Mehrfachtransistoren etc. weg optimiert) automatisiert von 3510 auf 3239 reduziert bekommen, hauptsächlich um die switch-level basierte Simulation in Micro64 dadurch etwas zu beschleunigen, indem diese weniger Transistoren simulieren muss, und das obwohl ich sonst eigentlich ein reiner Software-Mensch bin.


    Und da nach dieser Reduzierung die optionale CPU Simulation in Micro64 soweit weiterhin korrekt tut (u.A. Testsuites laufen korrekt durch), dürfte die Anzahlvariante von 3239 Transistoren legitim sein.


    Aber keine Ahnung, ob die Anzahl der Transistoren sich durch weitere Optimierungen noch weiter reduzieren lässt.

  • Zitat

    wo ist die gus den dumm gewesen


    die gus ist eine dumme DMA engine. der unterschied zum noch dümmeren soundblaster besteht im wesentlichen aus der verwendung lokalen rams und der möglichkeit mehr als einen/zwei dma kanäle benutzen zu können - also in etwa dem was paula so kann.

  • Aber keine Ahnung, ob die Anzahl der Transistoren sich durch weitere Optimierungen noch weiter reduzieren lässt.


    Man kann sich z.B. an MOSSIM II orientieren und Transistoren automatisiert durch äquivalente Gatter ersetzen wo diese Ersetzung keinen Einfluss auf das Simulationsergebnis hat.

  • Das 'Problem' ist ja quasi schon, dass jeder SID induviduell ist oder klingen kann (wegen der analogen Technik und der -sich mit der Zeit nach und nach leicht veränderten/verbesserten- Die-Bauweise). Daher kann man gar nicht zu 100% sagen, es gibt 'den' einen SID.
    Hab' hier bspw. zwei 6581er in Rev.3 (Rev.3 mag ich am liebsten, noch vor Rev.4AR) und auch selbst diese zwei in Rev.3 sind unterschiedlich, der eine kann annähernd irgendwie sogar die kombinierten Wellenformen vom 8580er in geringem Maße hörbar wiedergeben, der andere nicht, der bleibt stumm an jenen Stellen. Die älteren SIDs vor der Rev.3 haben meistens einen zu starken Filtereffekt (Giana Sisters Windgeräusch am Anfang des Tracks bleibt bei denen ganz oder zum größten Teil auf 'matt' (viel Filter) -also Bsp.- usw./etc.). Wenn man sich auf einen 6581 SID Nachbau konzentriert, dann am besten versuchen einen guten in Rev.3 oder meinetwegen in Rev.4AR (die Rev.4er sind sich vlt. ähnlicher untereinander als die anderen es untereinader z.T. sind, -meine zwei Rev.4er sind zumindest ziemlich gleich) nachzubauen/nachzuahmen.
    Die neuen 8580er SIDs sind untereinander schon ähnlicher aber auch da sind die, die ich von ab ca. '90 habe nochmal etwas besser im generellen Klang, welche von '87 klingen leicht matschiger (muss man schon sensibel für sein aber da ist ein kl. Unterschied).