MidiJoy - der ATARI als Chiptune-Instrument

1, 2, 3, 4, 5, 6, 7

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 12. Nov 2014, 23:45
...nein, 100% Assembler, geht aus Geschwindigkeitsgründen auch gar nicht anders. Es belegt aber den Speicher ab 3C00 (3400 wenn Envelopes genutzt werden), vielleicht kollidiert das mit MyDos...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Fr 21. Nov 2014, 00:21
Ist es auch möglich umgekehrt also vom Atari aus Mididaten an den PC zu senden? Gibt es dafür auch schon Software?

MidiJoy kollidiert tatsächlich mit Mydos und zwar mit dem Dup. Ich habe es noch einmal probiert. Funktioniert bisher nur mit Dos 2.5. An Sparta braucht man erst gar nicht denken.

Nächste Woche wird es aufgebaut und ich berichte darüber.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von GoodByteXL » Fr 21. Nov 2014, 11:23
pmetzen hat geschrieben:MidiJoy kollidiert tatsächlich mit Mydos und zwar mit dem Dup. Ich habe es noch einmal probiert. Funktioniert bisher nur mit Dos 2.5. An Sparta braucht man erst gar nicht denken.

Mit dem X-Command in SDX probiert?

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Fr 21. Nov 2014, 11:54
Für den umgekehrten Weg gibt es diverse Interfaces, u.a. das (Atari) MidiMate. Aber heutzutage wäre diese Anwendung eigentlich kaum noch von Nutzen...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Fr 21. Nov 2014, 21:15
Mit den X Command probiere ich es noch. Ich habe zuerst ein Testaufbau zusammengestellt und das ganze am Atari aus zu probieren.

Das TeensyBoard habe ich am PC Angeschlossen und die Joystickports am Atari. Es wird das Gerät Teensy Midi erkannt.

Nun habe ich am PC die kostenlose Software Aria Maestosa gestartet, eine Midi Datei importiert und in der Software als Midiausgang Teensy MIDI gewählt.

Den Atari eingeschaltet und mit Aspeqt die Software MidiJoy gestartet. Das gewohnte Bild am Atari ist jetzt zu sehen.

Nun habe ich am PC die Midi Datei abgespielt und der Atari gibt nur ein knacksen im Rhythmus der Midi Datei wieder.

Auf die richtige Verkabelung habe ich peinlich genau geachtet. Alles ist korrekt angeschlossen. Was mache ich da falsch?

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Sa 22. Nov 2014, 12:08
Hm, schwer aus der Ferne zu sagen - wenn ein Knacksen im Rhythmus der Musik kommt, scheint zumindest die Signalkette als solches zu funktionieren. Werden die eingehenden Noten denn in der Mitte des Bildschirms im Equalizer angezeigt? Sprich Ausschläge für die Lautstärke und dahinter die Bitkombination für die jeweiligen Noten? Wenn letzteres der Fall ist, dann liegt das Problem bei dem verwendeten Atari. Hast Du sonst ein zweites Gerät, mit dem Du das überprüfen könntest?

Ansonsten sind Knackser oder falsche Töne immer ein Zeichen für falsche Verkabelung. Bei der Verbindung zu den Joystickports ist u.a. darauf zu achten, dass man die Pins nicht aus Versehen spiegelverkehrt anbringt.

Wenn alle Stricke reißen, kannst Du mir das Teil auch (zusammen mit einem frankierten Rückumschlag) zuschicken, dann schaue ich mal, ob das hier läuft. Aber zuerst sollte man es noch einmal an einem (möglichst unmodifizierten) Atari überprüfen...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Sa 22. Nov 2014, 16:18
Es funktioniert doch noch. Die Verkabelung war schon richtig, doch ein Kabel hatte einen Bruch. Alles läuft so wie es sein soll.

Da tun sich aber auch bei meinen ersten Erfahrungen weitere Fragen auf. Im welchen Datei Format liegen Hüllkurven Datendateien vor?

Wo bekommt man sie her? Wie erstellt man sie? Mit Assembler ist mir schon klar, aber welchen?

Kann man das mit WUDSN IDE machen?

Können die Quellcodes in WUDSN IDE verwendet werden?

Wie passe ich die Quellcodes dort an, so das der Compiler das versteht?

Woher weis die Hüllkurvendatei denn, wo genau in einem Musikstück die Passage langsamer, leiser, oder die Tonlage sich ändern wird?

Welche Adresse merke ich mir bei einem aufgenommenem Musikstück in MidiJoy Note-RAM: $5000-$4FFF? Den ersten oder den zweiten Wert?

Wie speichere ich es mit DOS unter BInär Save ab? Brauch ich eine Startadressenangabe? Wie lautet die Syntax mit Startadresse genau? Wie genau funktioniert das mit den Append Befehl?

Was kann ich alles mit Append an das Musikstück dranhängen, so das im Hintergrund die Musik ungestört weiterläuft? VBI ist mir schon klar, aber was kann ich alles dran hängen?

In Programmieren bin ich ganz frisch und neu und habe da null Ahnung wie das funktioniert. Das Teil hier eignet sich dafür sehr gut um es zu erlernen.

Wirklich ein tolles Projekt. :notworthy:

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Sa 22. Nov 2014, 19:08
Hallo,

freut mich, dass es geklappt hat und Dir das Projekt gefällt.
Da ich hier neben Familie und Beruf nur begrenzt Zeit habe, wäre es schon hilfreich, wenn Du vorher schauen würdest, was in der Anleitung gleich zu Beginn dieses Threads steht, denn da werden einige Deiner Fragen schon beantwortet. Von daher hier nur stichpunktartig:

1. Steht hier, einschließlich Beispieldatei in Assembler (MADS):
viewtopic.php?f=15&t=8154&sid=3496d571e89e97c77854283e970978b6#p64783

2. Ja

3. Der Quellcode der verlinkten Beispiel-Hüllkurven-Datei: ja.

4. Dazu musst Du Dir die WUDSN-Anleitung lesen. Stichworte: MADS als 8-Bit Assembler in WUDSN verwenden

5. Die Hüllkurve wird immer pro Ton verwendet, also muss man die Attack, Release, Sustain, Decay Phasen entsprechend konfigurieren. Ein Wechsel zwischen verschiedenen Hüllkurven während des Stücks geht dann über die Aktivierung von den (bis zu) 8 Hüllkurven.

6. Beide. Wenn Du mit TABulator die Aufnahme startest und die Noten eingehen, verändert sich der zweite Wert. Den Bereich speicherst Du dann ab. Der erste Wert ist der Startwert.

7. In DOS 2.5: "K" für Binary Save (steht auch so auf der ersten Seite). Das Format wird dann am Bildschirm angezeigt: DATEINAME, STARTADRESSE, ENDADRESSE

8. Für die Append-Funktion benutze bitte Google, das hat nun wirklich nichts mit MidiJoy zu tun. Du hängst auch nicht einfach etwas an die Song-Datei an, sondern Du lädst zuerst den Song (von TB aus z.B. mit BLOAD oder vorher von DOS aus) und dann die Abspielroutine, die dann z.B. im VBI läuft. Was Du sonst darüber hinaus machst, ist Dir überlassen. Den Quellcode für die Abspielroutinen findest Du auf meiner Webseite.

Noch einmal: Ich gebe gerne Hilfestellungen hier und freue mich, wenn das Projekt gefällt, aber ein bisschen Eigeninitiative beim Suchen von Antworten wäre schön, dazu gehört für mich zumindest, einmal die vorigen Beiträge gelesen zu haben, und bei allgemeinen Fragen einmal Google anzuschmeißen. Alles, was darüber hinaus noch ein Problem ist (und mit MidiJoy im Speziellen und nicht mit Programmierung im Allgemeinen zu tun hat), versuche ich gerne mit zu lösen.

Gruß,

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » So 23. Nov 2014, 17:29
Entschuldige für meine dummen Fragen.

Mehr Eigeninitiative wäre ja auch zu begrüßen. Da gebe ich Dir Recht. Aber da ich der Sprache englisch nicht so mächtig bin und bei der Übersetzung meist kauderwelch dabei heraus kommt, nutzt mir das wenig.

In Google nach etwas zu suchen was man nicht versteht, wäre genau so, nach etwas zu suchen, was gar nicht existiert.

Ich verstehe aber das Du Familie hast. Also versuche ich es erst mal trotzdem, so wie Du es gesagt hast.

Ich kann aber an Hand einer Dateistruktur nicht erkennen in welcher Assemblersprache ein Quellcode geschrieben wurde und ob dafür WUDSN IDE verwendet wurde.

Welche die sich damit auskennen erkennen das an der Dateistruktur sofort. Schuldige noch mal.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » So 23. Nov 2014, 18:12
Deine Fragen sind nicht dumm, aber sie sind halt zum Teil wirklich schon in den ersten Posts in diesem Thread ausführlich erklärt worden - auf Deutsch! Und in der dort verlinkten Hüllkurve steht gleich ganz oben, mit welchem Assembler (MADS) und mit welchem Befehl man die Hüllkurve kompilieren kann.
Bei manchen der anderen Fragen wäre es sinnvoller, die in den entsprechenden Foren bzw. Threads zu stellen, z.B. was die Konfiguration von WUDSN angeht oder wie man in DOS Dateien anhängt, denn das hat mit MidiJoy dann eher weniger zu tun. Wenn man sich vorher entsprechend Gedanken macht, wo man eine Frage stellt, hat man wahrscheinlich auch ein schneller eine Rückmeldung, die einem weiterhilft.

Also: nix für ungut und viel Spaß beim Experimentieren,

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Di 25. Nov 2014, 22:13
So da bin ich wieder und nach ein paar Tests habe ich einiges Festgestellt, wo zu ich wiederum ein paar Fragen habe.

In Hispped OS welche viele haben, wegen der Ultimate 1MB im Rechner kann man nicht zurück ins Dos, wenn man MidiJoy gestartet hat.

Das gleiche habe ich unter SDX versucht. Auch da kommt man nicht zurück ins Dos. So ist es schwierig aufgenommene Musikstücke ab zu speichern.

Unter Atari OS Normalspeed läuft MidiJoy korrekt und man kommt zurück ins Dos.

Ich habe mal ein Musikstück aufgezeichnet mit MidiJoy welches bei Note-RAM: $5000-$BEAE Erfolgreich lief. Dann ging ich zurück ins Dos.

Mit dem Mjplayer habe ich es dann abgespielt um es erst mal zu teten, was auch super lief. Aber es spielte nur die Hälfte ab. Wieso das denn? Es wurde doch vollständig aufgenommen. Genügend RAM habe ich auch.

Woran kann es liegen?

Danke vielmals, für die tolle Arbeit mit MidiJoy. Es ist echt ein Hammer. Klasse, weiter so.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Di 25. Nov 2014, 23:14
Danke für das Feedback, dann will ich mal schauen...

- Hispeed-OS: Also ich habe in meinem Atari eine 512kb-Erweiterung, einen Freezer, ein SIO2SD sowie ein vierfach ROM damals von Wolfram eingebaut bekommen, das ist das womit ich testen kann. Bei dem 4fach-ROM ist auch ein Hi-Speed-ROM von HIAS dabei, damit läuft MidiJoy bei mir problemlos. Ein Rücksprung zu DOS geschieht bei MidiJoy über einen Sprung zur Adresse in dem ganz normalen DOS-Vector ($0a, $0b), und es belegt vom Programm her den Speicher von $3400 (für die Hüllkurven) bzw. $3c00 (das Programm) aufwärts. Wenn diese Speicherbereiche wirklich ein Problem sein sollten, dann kann ich noch mal versuchen, das anzupassen, aber das würde ich erst dann machen, wenn dieses Problem von mehreren Seiten bestätigt wird und sich der Fehler klar eingrenzen lässt.

- MJPlayer: In der Version, die vom DOS aus läuft, musste ich das Ende des Musikstücks irgendwo hart festlegen, ich habe das glaube ich bei $9000 gemacht. Von daher hört die Musik dann auf zu spielen, um nicht hinterher irgendwelchen Programmcode als Musik zu interpretieren. Du hast zwei Möglichkeiten: Den Sourcecode für den Player von meiner Seite zu nehmen und mit den entsprechenden Start- und Endwerten zu kompilieren, oder Du benutzt die Abspielroutine unter BASIC mit X=USR.... Wie das geht, steht wiederum auf der ersten Seite.

Weiterhin viel Spaß,

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Mi 26. Nov 2014, 04:38
Hallo es ist ein Fehler von mir gewesen. Ich hatte das normale Atari OS und kein Hispeed.

Warum ich trotzdem nicht zurück springen konnte ins Dos war, dass mein SIO2SD Gerät in Top Drive Mode Schwierigkeiten bei der Übertragungsgeschwindigkeit hat und zwar erst dann nur, wenn man zurück ins DOS wollte.

Also im Top Drive SIO2SD Hispeed Mode startet das Image MidiJoy völlig normal und sehr schnell. Ist man dann im Menu von MidiJoy und will zurück ins DOS, lahmt das SIO2SD Gerät auf einmal und kann das DOS Dup nur mit Übertragungsschwierigkeiten nach laden.

Das Hias Hispeed OS dagegen funktioniert völlig Problemlos und man kommt auch zurück ins DOS.

Und auf die limitierte Spiellänge eines Songs zurück zu kommen, so ist es nicht nur beim MJPlayer so, sondern bereits nach einer Aufnahme eines Songs in MidiJoy selbst, wenn man mit der Taste P den aufgenommenem Song abspielt.

Was ist wenn der Song nicht vollständig aufgezeichnet und in den Speicher geschrieben wird? Eine Änderung des Assembler Quellcode MJplayer würde ja dann nichts nutzen.

Ist das so? Oder zeichnet MidiJoy den Song doch vollständig auf.

Danke noch mal für den Tipp wegen der Spiellänge mit dem MJPlayer. Das werde ich in Assembler ändern und komilieren, vorausgesetzt MidiJoy nimmt auch überlange Songs wirklich auf.

Ich hatte da knapp 4 Minuten Lang ein Song an meinen Keyboard gespielt und mit MidiJoy auf gezeichnet. MidiJoy hat es offenbar bis zum Schluss korrekt aufgenommen. Nur abgespielt hat es nicht vollständig.

Ich habe jetzt ein paar schöne Weihnachtslieder aufgezeichnet und diese mit Append an die Datei MJPlayer.exe angehängt.

Läuft super, doch das nächste Weihnachtslied welches auch mit Append an die Datei MJPlayer.exe angehängt wurde, spielt das noch zu vor abgespielte, weil es noch im RAM steckt. Wie leere ich den RAM nach dem abspielen des Songs?

Ich bin da noch wirklich Anfänger und Frage deshalb so dumm, da ich es nicht weiß. Aber ich bin dabei zu lernen.

Danke vielmals.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 26. Nov 2014, 09:24
Ich habe selber Stücke bis kurz vor $BFFF (die Höchstgrenze, da dahinter die ROM-Routinen beginnen) aufgenommen, und die sind ohne Probleme aufgezeichnet worden. Probiere daher mal eine Aufnahme direkt bei neu eingeschaltetem Computer und frisch gebootetem MidiJoy (mit OPTION gedrückt). Wenn dann nach der Aufnahme als Speicherbereich etwas zwischen $5000 und $BFFF angezeigt wird, sollte MidiJoy es auch in voller Länge abspielen. Für mich klingt das so, als hättest Du mit BASIC gebootet, denn da hast Du natürlich dann nur bis $Axxx Platz...

Wenn Du ein neues Stück aufnehmen willst, kannst Du mit der TABulator-Taste den Zähler zurücksetzen (steht auch so auf der ersten Seite dieses Threads). Dabei wird zwar nicht der Speicher gelöscht, aber wenn Du dann das Stück abspielst, sollte nach einer neuen Aufnahme auch nur der Speicherbereich des neuen Stücks abgespielt werden, bzw. kann dieser dann abgespeichert werden. Falls es da Probleme geben sollte, sag' noch mal Bescheid, oder boote einfach vor einer neuen Aufnahme.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Mi 26. Nov 2014, 16:04
Danke. Wie ich bei MidiJoy richtig gesehen habe, ist, dass nicht die Tabulator Taste, sondern die RETURN Taste, die den Zähler zurück setzt. Die Tabulator Taste stoppt lediglich die Aufnahme nur, oder startet diese.

Des weiteren habe ich das Problem eher mit der Abspielsoftware MJPlayer,exe, nicht mit MidiJoy.

An MJPlayer habe ich ein Song angehängt. Befindet sich noch im RAM ebenfalls Teile eines noch zu vor aufgenommenen Stückes, so wird dieser ebenfalls abgespielt. Es sei denn, man hat den Atari zuvor ausgeschaltet.

Zwar könnte man mit Assembler den Source Code des MJPlayers so anpassen, das es den Speicher automatisch leert, nach dem es das Stück im Speicher fertig durch gespielt hat.

Aber wie gesagt, ich bin da ein völliger Anfänger und habe komplett Null Ahnung, wie man das bewerkstelligt.

Das Problem mit MidiJoy bestand eher im Bezug auf das, was der Spiellänge anging, was sich auch mit der Abspielsoftware MJPlayer.exe ebenfalls bemerkbar gemacht hat. Wenn dies geändert werden kann, in dem man die Abspielsoftware MJPlayer dessen Soure Code ab ändert, ist das kein Problem.

Wenn dies aber bereits bei MidiJoy schon so ist, dessen Sourche Code ich nicht fand, sieht das schon anders aus.

Das mit dem booten mit Basic oder ohne, hatte ich bereits schon durch. Das Stück wurde von MidiJoy und auch von MJPlayer trotzdem nur halb abgespielt.

MidiJoy hat es aber korrekt ganz durchgehend aufgenommen, von 5000-BEAE. Vielen Dank für deine Geduld und die hilfreichen Tipps. :danke2

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 26. Nov 2014, 17:25
Nur kurz erst einmal: Ja, natürlich RETURN und nicht TAB.
Ansonsten kannst Du aber nicht einfach ein Musikstück an den MJPlayer anhängen, ohne die Sourcen entsprechend verändert zu haben und es dann neu zu kompilieren (so wie ich das bei den Demostücken gemacht habe). Wenn Du einfach die Player-Datei nimmst, spielt er immer bis (ich glaube) $9000 ab, und wenn da vorher ein Stück länger war als das nachfolgende, dann wird das natürlich auch so abgespielt. Unter BASIC kannst Du das Programm wie gesagt entsprechend konfiguriert aufrufen.

Was das halbe Abspielen in MidiJoy selber angeht, werde ich mir das die Tage bei mir mal anschauen, aber dort wird keine feste Endadresse genommen, sondern immer die, die sich aus der letzten Aufnahme ergeben hat.
Prüfe doch mal bitte, ob das bei Dir auch passiert, wenn Du den Rechner frisch (und am besten ohne irgendwelche OS-Modifikationen) bootest, das Lied aufnimmst und dann mit "P" wieder abspielst. Wenn der Fehler immer noch auftritt, schicke mir die MIDI Datei und die Länge, nach der das Abspielen abbricht, dann prüfe ich das bei mir mal. Ansonsten kommen wir glaube ich nicht zu einer Lösung.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 27. Nov 2014, 10:37
So, habe es hier gerade noch zweimal getestet, mit eingeschaltetem BASIC geht es bis $9FFF, ansonsten bis $BFFF (Teststück lief bis $BC7E). Das Problem muss daher an Deiner Konfiguration liegen. Wenn Du einen Freezer hast, dann schau' mal in Speicherstelle $91/$92, wenn die Wiedergabe (in MidiJoy, nicht im Player) bei der Hälfte aufhört. Dort steht nämlich die momentane Abspielposition bei Wiedergabe. Damit kannst Du dann überprüfen, ob das Stück schon in einem Speicherbereich ist, der vielleicht von einer Deiner vielen Erweiterungen anderweitig genutzt wird.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Do 27. Nov 2014, 17:35
Vielen Dank ich werde mal nach sehen. Bei mir war es aber wirklich so bei einem Midistück was ungefähr 4 Minuten lang lief.

Nur beim wiedergeben mit MidiJoy ergab sich, das, das Musikstück deshalb nur zur hälfte abspielte, da sich MidiJoy aufhing, Abgestürtzt ist.

Auf Tastatureingaben reagierte MidiJoy dann nicht mehr.

Schuldige, das hatte ich hier nie mit erwähnt gehabt um Texte kurz zu halten. Was mir meistens trotzdem nie gelingt. Trotzdem hatte ich es vergessen.

Meine Rechner Konfiguration ist Ultimate 1MB, VBXE, Stereo Pokey, Freezer, KMK-IDE Interface und SIO2SD.

Eingestellt ist mein Rechner auf 1088 KB Rambo, Atari Orig. XL OS ist gewählt. SIDE Hardware ist deaktiviert. SPARTA DOS X ist deaktiviert, Stereo Sound ist eingeschaltet.

Gebootet wird ohne Basic. Verwendet werden keine Joysticks, Freezer bleibt am Rechner, KMK-IDE Interface wird nicht verwendet, SIO2SD von Lotharek wird verwendet.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 27. Nov 2014, 17:50
Ja, Absturz und "spielt nur zur Hälfte" sind schon zwei ziemlich verschiedene Paar Schuhe... Ein Absturz ist hier auf die Ferne nur schwer zu diagnostizieren. Wenn es wiederholt und reproduzierbar geschieht, dann schicke mir wie gesagt die Midi-Datei und ab welcher Minute/Sekunde der Fehler auftritt. Ich habe hier nun schon viel an dem Programm gefrickelt, aber beim bloßen Aufnehmen ist es mir nur dann abgestürzt, wenn ich in Speicherbereiche gekommen bin, in die man nicht schreiben kann/darf/sollte...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 4. Dez 2014, 15:51
Ich habe nun von MidiJoy eine Platinen-Version erstellt (siehe Bild) und werde die dazugehörigen Gerber-Dateien auch auf die Webseite stellen, so dass sich jeder das Layout ansehen und ggf. ätzen (lassen) kann.
Da ich für meinen Testlauf als Mindestbestellmenge 10 Stück bestellen musste, habe ich nun noch einige Bausätze übrig, die ich jetzt nach dem Testen nicht mehr benötige. Sie sind alle voll funktionsfähig, einige davon auch schon (bis auf den Teensy Microcontroller) fertig aufgebaut. Wer Interesse hat, kann sich bei mir per E-Mail melden, ich würde die Platinen zum Materialpreis abgeben.
10806476_901887203156293_4151411303141922229_n.jpg10806476_901887203156293_4151411303141922229_n.jpg
1, 2, 3, 4, 5, 6, 7