SID nachbauen


  • frickr
  • 22698 Views 233 replies

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • skoe wrote:

    Ja, kann man. Der Original-SID hat von der Größenordnung her ca. 5000 bis 10000 Transistoren. Also ein paar Lochrasterplatinen bekommt man damit voll

    Oder man baue sich einen SID-Cube ohne Platine :)

    Brainstorm wrote:

    Wurde oben doch schon gesagt: Der SID ist analog. Jede Emulation basiert aber auf Digitaler Technik. Und damit kann man analoge Schaltungen nie zu 100% nachbilden. Daher wird jede Emulation immer mit schwächen behaftet sein. Und daran wird sich erst etwas ändern, wenn es jemand wagt eine Chipfabrik zu bauen, die Analoge Bauteile fertigen kann.

    Ach es geht auch anders, man muss eben nicht nur eine Schaltung nachbilden, sondern auch die Eigenschaften der Bauelemente. Wenn man z.B. einen Widerstand mit 10% Toleranz hätte, müsste man das eben auch nachbilden. Haben die glaub ich damals bei der Korg Legacy Collection VSTi auch so gemacht (Soll der erste Software Synth gewesen sein, dessen Sound genau deswegen so warm wie der Hardwaresynth klang).
    "Sometimes I pretend to be normal, but it gets boring. So I go back to being me."
  • FemeiaDiavol wrote:

    Ach es geht auch anders, man muss eben nicht nur eine Schaltung nachbilden, sondern auch die Eigenschaften der Bauelemente. Wenn man z.B. einen Widerstand mit 10% Toleranz hätte, müsste man das eben auch nachbilden. Haben die glaub ich damals bei der Korg Legacy Collection VSTi auch so gemacht (Soll der erste Software Synth gewesen sein, dessen Sound genau deswegen so warm wie der Hardwaresynth klang).


    Das ist nicht schwierig, denn die 10% Toleranz bedeuten nur, daß der Widerstandswert bei der Herstellung um diesen Bereich schwanken kann. Ist er einmal hergestellt, dann ist der Wert recht stabil, nur eben mit einer zufälligen bis zu 10% festen Abweichung vom Sollwert. Und bis auf minimale Änderungen durch Alterung und Temperatur, die je nach Widerstandstyp im Promillebereich liegen. Also einfach bei Programmstart einmal einen Offset per Zufallsgenerator über alle Widerstandwerte laufen lassen.
    So Long, and Thanks for All the Fish!
  • crasbe wrote:

    Backt erstmal kleine Brötchen und bau eine 6502 nach. Das sind immerhin 3510 Transistoren.

    Die Anzahl kann man mit ein wenig Netzlistenanalyse auf jeden Fall reduzieren - spontan fallen mir da beispielsweise drei Transistoren ein, die an nutzlosen Knoten hängen (d.h. die tauchen in der ganzen Netzliste exakt einmal auf).

    Ist die Frage, mit welcher Geschwindigkeit man das gerne laufen lassen würde...

    Das dürfte unter anderem davon abhängen wie gross die Laufzeiten sind, die die Schaltung zur Erzeugung von Phi1/Phi2 verwendet.

    Source Code

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217
    sd2iec - tapecart - GCVideo
  • Unseen wrote:

    crasbe wrote:

    Backt erstmal kleine Brötchen und bau eine 6502 nach. Das sind immerhin 3510 Transistoren.

    Die Anzahl kann man mit ein wenig Netzlistenanalyse auf jeden Fall reduzieren - spontan fallen mir da beispielsweise drei Transistoren ein, die an nutzlosen Knoten hängen (d.h. die tauchen in der ganzen Netzliste exakt einmal auf).

    Wahrscheinlich kann man das noch weiter reduzieren, wenn man Pullups und -downs durch echte Widerstände ersetzt und die Anzahl der Ausgangstransistoren auf 1 reduziert.
    Wohl noch mehr, aber ich bin in Chipdesign nicht so bewandert ^^

    Ist die Frage, mit welcher Geschwindigkeit man das gerne laufen lassen würde...

    Das dürfte unter anderem davon abhängen wie gross die Laufzeiten sind, die die Schaltung zur Erzeugung von Phi1/Phi2 verwendet.[/quote]
    Muss auf jeden Fall so gewählt werden, dass alle Signale stabil sind, bevor der nächste Taktzyklus kommt. Je nach Aufbau (Lochraster) dürften da nicht mehr als ein paar kHz drin sein.
    Interessant wäre auf jeden Fall noch, jedem Transistor eine eigene LED zu spendieren, um dessen Zustand anzuzeigen. Das würde aber den Platzbedarf und die Preise deutlich steigern. (Preis pro Transistor eventuell geringer)
    Wenn man mal rechnet: pro Transistor rund 3x3 Löcher im RM 2,54mm, dann wäre man bei weniger als einem m² Lochrasterplatine.

    Dafür muss man aber unbedingt eine gewisse "Infrastruktur" aufbauen. z.B. ein Gerät, mit dem man schnell Transistoren biegen kann und ein Programm, das berechnet, wo welcher Transistor wie verdrahtet werden muss.

    Falls es tatsächlich mal eine sehr lange Winternacht gäbe, wäre das ein gutes Projekt :D
  • crasbe wrote:

    Wahrscheinlich kann man das noch weiter reduzieren, wenn man Pullups und -downs durch echte Widerstände ersetzt und die Anzahl der Ausgangstransistoren auf 1 reduziert.

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

    Source Code

    1. 10 x=rnd(-1963):fori=1to81:y=rnd(1):next
    2. 20 forj=1to5:printchr$(rnd(1)*16+70);:next
    3. 30 printint(rnd(1)*328)-217
    sd2iec - tapecart - GCVideo
  • frickr wrote:

    Um auch mal so einen könnte nicht mal jemand - Thread zu starten:
    Ob es wohl möglich wäre einen funkionierenden SID aus Transistoren auf einer riesigen Lochrasterplatine zu bauen? Und wie gross müsste die Platine dann sein?



    Ich hatte gestern durch Zufall ins Datenblatt geschaut, da ich über verschiedene Oszillatoren las. Den aus Transistoren auf einem Lochraster aufzubauen, kann imo nicht allzu viel werden. Mal abgesehen vom digitalen Teil, der heute keine allzu große Herausforderung mehr sein sollte, wird der analoge Part erheblich umfangreicher. Man braucht jeweils drei Ton-/Wellenform-Generatoren, Enevelop-Generatoren (ADSR) und letztlich einen Modulator. Dazu kommen natürlich noch ein paar weitere Kleinigkeiten. Ich würde das (für mich) als echte technische Herausforderung sehen.
    Ich fände es technisch sehr interessant, wenn man mal sehen könnte, wie so etwas diskret aufgebaut wird. Ich würde es aber keinesfalls unterschätzen.
    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
  • cbmhardware wrote:


    Ich hatte gestern durch Zufall ins Datenblatt geschaut, da ich über verschiedene Oszillatoren las. Den aus Transistoren auf einem Lochraster aufzubauen, kann imo nicht allzu viel werden. Mal abgesehen vom digitalen Teil, der heute keine allzu große Herausforderung mehr sein sollte, wird der analoge Part erheblich umfangreicher. Man braucht jeweils drei Ton-/Wellenform-Generatoren, Enevelop-Generatoren (ADSR) und letztlich einen Modulator.

    Wobei die Oszillatoren und die Hüllkurve Teil des digitalen Teils sind, allerdings gibt es auch dort ein paar analoge Effekte.
  • bernhard wrote:

    wie simpel das doch beim amiga ist..




    Ohne mich allzuweit aus dem Fenster zu lehnen:



    Ich meine gehört zu haben, ohne das jetzt nachgeforscht zu haben, dass der Unterschied zwischen der Paula und dem SID ist, das die Paula keinen eigenen Klangerzeuger besitzt, sondern lediglich auf fertige Samples zugreift und diese wiedergibt.
  • TheNextC64user wrote:


    Ich meine gehört zu haben, ohne das jetzt nachgeforscht zu haben, dass der Unterschied zwischen der Paula und dem SID ist, das die Paula keinen eigenen Klangerzeuger besitzt, sondern lediglich auf fertige Samples zugreift und diese wiedergibt.

    Da fehlt noch einiges mehr. Keine Oszillatoren, keine Hüllkurven, keine Filter (den "LED-Filter" zähl ich mal nicht mit).
  • 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.