NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Einloggen



Autor Thema: Besserer Sound für den NKC
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 20. November 2021 17:44 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

seit ich jetzt auch meinen NKC hatte, war er mir schon immer zu still. Es gibt natürlich eine Soundkarte, aber der einfache Rechteckpiepser AY-3-8190/92 bzw. YM2149 war mir nicht gut genug.

In einem anderen System an dem ich seit Jahren bastle (6809 Eigenbau meines Vaters) hab ich gute Erfahrungen mit dem YM2608 gemacht. Das schöne daran ist, dass er den YM2149 als Subset enthält und vollständig SW-kompatibel ist, alle bestehenden Sound-Routinen und die Spiele von smed funktionieren also weiter.

Er hat jedoch zusätzlich:

  • 6 Stimmen FM-Synthese, jeweils 4 Operatoren
  • ADPCM-Samples, entweder direkt oder aus externem Speicher
  • Schlagzeugeinheit

Er ist auch auf eBay noch zu bekommen, natürlich mit dem Risiko eines Fakes, meine funktionieren aber.

Hier findet man ein paar Klangbeispiele, habe gerade keine brauchbaren realen greifbar:
https://www.youtube.com/playlist?list=PLM98E7f5OROZ8_SqWOMNnvzWR2Mt68WTE

Ich habe eine Platine entworfen, diese enthält den YM2608, den zugehörigen DA-Wandler YM3016, 256KB DRAM für die Sampleeinheit, die nötige Glue-Logic (inkl. der vom der FLO3 übernommenen Waitstate-Logik, der YM2608 will RD/WR von mindestens 380ns) und den Analogteil. Dazu ein LM386 Verstärker für direkten Lautsprecheranschluss, aber nur in Mono. Auf die IO-Ports und die Möglichkeit der Aufnahme habe ich aus Platzgründen zunächst verzichtet.

Die 5V für den Analogteil werden mit einem 7805 aus der 12V Schiene getrennt erzeugt, da die "digitalen" +5V mit ziemlicher Sicherheit zu störverseucht sind. Sollte jemand keine +12V im System haben, kann jedoch mit einem Jumper auf die normalen +5V umgestellt werden. Der NF-Verstärker will jedoch +12V.

Die Adresse ist per Jumper zwischen 40h und 50h auswählbar.




Eine Schwierigkeit bestand darin, dass die Datenblattlage sehr dünne ist, vieles gibts nur auf japanisch und selbst dann gibts nicht wirklich ausführliche Appnotes etc., was bedeutet, dass ich mir die Schaltung aus kleinen Hinweisen zusammenreimen musste. Auch damals schon.

Ich habe soeben 3 Prototypenplatinen bei AISLER bestellt, die sollten Mitte nächster Woche ankommen. Die Teile hab ich fast alle da.

Wenn das so klappt, stelle ich die Unterlagen natürlich zur Verfügung, vielleicht kann Rene/Creep sie ja in seine Produktionsverteilung aufnehmen ;).

Ich habs mir mal erlaubt schonmal SOUND4 draufzuschreiben :cool:

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 23. November 2021 11:22 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Christian,

ich finde die Idee sehr gut! Eine bessere Soundkarte für den NKC (oder auch mehrere) sind eine sinnvolle Erweiterung. Vor allem, weil man den NKC ja mit nahezu allen wichtigen Prozessoren konfigurieren und Cross oder direkt programmieren kann.

Es wäre natürlich toll, wenn Du dann auch Beispielcode für die neuen Funktionen/Stimmen zur Verfügung stellen könntest.

Was kostet sowas bei Aisler? Ich bestelle ja meist bei JLCPCB, wo ich dann bei ~10€ für 5 Platinen in der Größe liege.

Gruß, Rene

Beiträge: 580 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 23. November 2021 13:50 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Nur kurz bevor ich die Mittagspause auf Arbeit beende .. ;)

Bei Aisler habe ich jetzt 13€ pro Platine bezahlt, allerdings auch mit Expressfertigung. Sonst wären es 6€ (+ einer 6€ "Job-Fee") .. ist eben teurer, dafür hat man es schneller ;). Man muss da immer in 3er Vielfachen bestellen.

Zur Ansteuerung:
Ich habe meistens einen Tracker auf dem PC verwendet. Passend dafür wäre der "BambooTracker":

https://bambootracker.github.io/BambooTracker/

Der kann dann das VGM (Video Game Music)-Format exportieren, das ist ein universelles Format für viele Soundchips und besteht aus einer Kette von Befehlen wie:

  • Setze Register X auf Y
  • Warte X Ticks
  • Schreibe Daten ins Sample-RAM
  • Datenblock dafür
  • etc.

https://vgmrips.net/wiki/VGM_Specification

Ansonsten, Dokumentation ist sehr dünne, es gibt aber ein maschinell übersetztes "Application Manual" zum YM2608, dass zumindest die Programmierung recht gut erläutert und bis auf 2-3 Stellen auch gut verständlich ist:

http://www.vgmpf.com/Wiki/images/d/de/YM2608_Manual_%28Translated%29.pdf

Daheim habe ich noch ein Datenblatt zum YM2203 (äh sorry meine das total spezielle Böhm-Orgel-Custom-IC #213 *hust*) welches ein paar Standardparametersätze hat. Die FM-Einheiten vom YM2203 und 2608 sind identisch, der 2608 hat bloss 2 davon.

Das ganze funktioniert so, dass er 4 IO-Ports belegt, bei A1=0 sind:

  • Register $00-$0F die 16 Register des alten PSG (YM2149, AY-3-819x etc.),
  • Register $10-$1F die Schlagzeugeinheit
  • Register $20-$B6 die ersten 3 FM-Stimmen (und generelles zur FM-Einheit)

Bei A1=1 sind:
  • Register $00-$10 die Samplingeinheit
  • Register $20-$B6 die zweiten 3 FM-Stimmen

A0 ist wie übliche Adress- und Datenregisterauswahl.

Aber ja Beispielcode kann ich dann liefern.
Einen kleinen VGM-Player, ein bisschen was zur Schlagzeugansteuerung etc.

Wenns soweit ist, können wir ja alles auf dein Github packen, aber erst soll der Prototyp laufen.

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
smed
Stammgast
**
ID # 114


  Erstellt am 23. November 2021 21:52 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hi cerker68k,
super, neue Hardware fuer den NKC ist immer willkommen. Zum schnellen testen der Sound4 (im AY-3-8190 Modus) bietet sich dies hier an: https://hschuetz.selfhost.eu/forumdrc/index.php?mode=viewthread&forum_id=4&thread=51&z=0&#post1 passt auch saisonal ganz gut.

Gruss
smed

-----------------------
NKC'ler und RDK Fan seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,FLO2,PROMER,CENT,SER,SOUND,CAS,4xBUS2,3xPOW5V,2xTAST..und neuerdings einen Arduino mit auf dem BUS. Und eine selbstgebastelte MEM960k. UHR, IDE und COL256 noch nicht gebastelt.

NKC - OpenSource since 1983

Beiträge: 153 | Mitglied seit: Januar 2011 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 24. November 2021 13:13 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

die Prototypen-Platinen haben den E-Test bestanden und sind gerade verschickt worden. Mit etwas Glück kann ich Freitag/am Wochenende eine bestücken und testen.

Den vorgefertigen C-Compiler muss ich mir auch mal ansehen ;)

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 26. November 2021 23:14 (#6)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

so ich habe den ersten SOUND4-Prototypen aufgebaut. Es raucht nix, das System startet noch damit und wenn man ihn richtig anspricht macht er auch Krach (zumindest auf FM, SSG und Schlagzeug .. die Samples teste ich gleich noch).



Die Cinchbuchsen werden noch geliefert .. und vermutlich muss ich die Balance der einzelnen Soundquellen noch mit Hilfe der Mischwiderstände optimieren.

Auch musste ich etwas improvisieren weil meine 20pin IC-Fassungen schon wieder alle waren :mad:.

Aber sie funktioniert soweit schon einmal.

.. okay, erstes Problem, wenn ich von der Karte lesen versuche kommt immer ein 0x00 zurück.

Ja, und das gehört so, man kann nur die Statusregister lesen (die aber im Ruhezustand 0x00 sind) und die SSG-Register. Die FM und ADPCM sind WriteOnly und liefern spezifiziert 0x00 zurück ..

Ja, Samples abspielen funktioniert auch.. auch wenn ichs vorerst einfach per Statuspolling aus dem Speicher "gestreamed" habe. Das RAM auf der Karte muss noch getestet werden..

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 27. November 2021 19:33 (#7)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

so das RAM auf der Karte kann ich auch beschreiben und lesen .. nachdem ich einen Tag damit vergeudet habe.

Im Endeffekt muss man 51425 6 verwenden, nur diese kommen mit dem dreifach gemultiplexten Speicherbus des YM2608 zurecht. 51425 8, die ich zuerst verbaut habe, wollen die Spaltenadresse beim Schreiben weiterhin anliegen haben.

Weiterhin sind die Leitungen DM0-DM7 offenbar Open-Drain und brauchen Pullups, auch wenn das nirgendwo explizit beschrieben ist.

Ein weiterer Bug: Ich habe die Waitstate-Jumper falschherum beschriftet ;)

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 29. November 2021 18:01 (#8)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

na, da bin ich ja mal gespannt. Sieht auf jeden Fall schonmal sehr gut aus! Wenn ich das richtig sehe, ist Line-out stereo, Speaker-out mono?

Dann sollte ich ja langsam mal auf die Jagd nach den Teilen gehen. Die finale Version würde ich dann auf jeden Fall gern wieder bestellen.

Gruß, Rene

Beiträge: 580 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 30. November 2021 00:26 (#9)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

hier mal 2 Demonstrationen, extra so gewählt, dass es keine Copyrightprobleme oder so geben sollte ..

grenadir.mp3
cancan.mp3

Sind von echter Hardware aufgenommen, die Qualität ist wegen des Bastelsetups nicht die beste ;). Ich hab auch ein paar VGM von Leuten abgespielt, die das besser können als ich ..

Und hier mein (relativ gebasteltes) Abspielprogramm:
https://pastebin.com/MtQ8KLMx

Der nächste Schritt ist mal die Timer im Chip verwenden, das hab ich probiert, hat aber noch nicht so 100% geklappt.

Ja, Lautsprecher ist bisher nur Mono und wird gemischt, aber vielleicht ändere ich das noch.

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 03. Dezember 2021 14:33 (#10)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

von mir zumindest die Bestätigung, daß der Sound deutlich besser klingt als vom 8910. Wenn ich jetzt noch ein Soundprogrammierer wäre... Aber ein bißchen damit rumspielen würde ich schon.

Stereolautsprecher. Ja, ist die Frage, ob das nötig ist. Ich hatte ja den kleinen Stereo-Digitalverstärker eingesetzt. Der löste die Problematik recht kompakt und billig. Für guten Klang schließt man sowieso etwas externes an. Der Kompromis ist dann rechts und links so ein Minilautsprecher an die Karte geklemmt/gelötet und über den on-board Verstärker betrieben.

Gruß, Rene

Beiträge: 580 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
Creep
Voll in Gange
***
ID # 169


  Erstellt am 18. Dezember 2021 16:16 (#11)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo Christian,

gibt es schon etwas Neues zu berichten? Wie gesagt, ich wäre an der Platine interessiert und würde sie gern mal aufbauen und ihr ein paar Töne entlocken. Falls Du also die finale Version fertig hast, könnte ich sie auch bestellen.

Gruß, Rene

Beiträge: 580 | Mitglied seit: Januar 2017 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 09. Januar 2022 21:11 (#12)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,

ja ich hatte zwar nun Urlaub, aber musste erstmal den Keller aufräumen und ... ich schaue die Tage wies weitergeht.

Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert
cerker68k
Ist öfters hier
**
ID # 219


  Erstellt am 21. Mai 2022 17:37 (#13)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo zusammen,

ja so wie es mit dem arbeitenden Volk ist .. man kommt ne Weile zu nix, dann liegts nebendran, andere Sachen sind zu erledigen und es rückt nach hinten im Stapel, es fängt staub .. und es ist ein halbes Jahr rum.

Ich hab jetzt aber das überarbeitete Layout fertiggemacht und einen 3er Pack Prototypen bestellt. Es ist nur eine kleine Änderung im Analogteil, es werden jetzt 2 TLC274 statt 3 TLC272 verwendet und daher gibt es Ausgangspuffer.

Und Pullups auf den Datenleitungen zum DRAM.

Wenn ich mal Zeit finde, mache ich auch an der SW weiter....


Okay, nachdem ich Timer verstanden habe funktionieren sie, und ich kann auch Interrupts machen. Sie sind anders etwas als von modernen Mikrocontrollern gewohnt. D.h. mit der neuen Hardware müsste ich einen interrupt-getrieben Musikplayer angehen.


War ja klar, dass mir nachdem ich die nächste Platinenrevision bestelle etwas auffällt. Die TLC272/274 sind sehr grenzwertig bei 5V Betriebsspannung für die 2.5Vpp am DAC-Ausgang, und ja sie zerren bei vollem Pegel schon.

Entweder nehme ich einen anderen (Rail-To-Rail)-Opamp oder ich geben denen 8-9V Ub statt nur 5V. Zum Glück sind die Quad-Opamps alle pinkompatibel, also keine neue Platine.

TS924 MCP6024 sieht gut aus, mal sehen ob der zu beschaffen ist.


Gruß,
Christian

Beiträge: 24 | Mitglied seit: Oktober 2021 | IP-Adresse: nicht gespeichert



| NDR Computer | Boardregeln


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Seite in 1,735385 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung ausgeschaltet
1265,34 KiB Speichernutzung