MidiJoy - der ATARI als Chiptune-Instrument

1, 2, 3, 4, 5 ... 7

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 29. Okt 2014, 23:19
Das sind eine Menge Fragen, von denen sich einige beim Lesen meiner Webseite ergeben würden, ich werde das mal stichpunktartig machen:
Die Bauteile für das serielle Midi-Interface ergeben sich aus dem Schaltplan, es sind nur ein paar Widerstände und Kondensatoren, der PC900 ist ein Optokoppler, den es bei Conrad u.a. gibt.

Wenn Du das PC Midimate Interface hast, brauchst Du das alles aber nicht. Windows erkennt problemlos mehrere Midi-Interfaces, also das Midimate und den Teensy. Du wählst in der Sequencer Software aus, welches der Eingang (Midimate) und welches der Ausgang (MidiJoy/Teensy) ist. Die Firmware braucht dafür nicht angepasst werden.

Ableton Live gibt es unter www.ableton.com zu kaufen, eine 30-Tage Testversion ist kostenlos, ansonsten reicht die kleinste Variante. Natürlich gehen auch alle anderen DAW-Programme, die Midi-Geräte ansteuern können.

Ich hoffe, das hilft erst mal weiter,

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Do 30. Okt 2014, 14:14
Aber die beiden Programme Arduino und Teensydurino muss ich wohl installieren, damit Windows das MultiJoy erkennt oder?

Und gelesen habe ich auch, das MultiJoy etwas angepasst werden soll mit einem suorce code Namens A8MidiJoy.ino welches im Sketchbook des Programms Arduino auf das Teensyboard geflasht werden kann.


So sieht der suorce code aus,,,,,




// A8MidiJoy
// Atari 8-Bit Music Interface Teensy / Teensyduino Code
// based on A8F for 2600 by Sebastian Tomczak (little-scale)
// adapted for Atari 8-bit by Frederik Holst (2014)
// http://www.phobotron.de/midijoy_en

/* Atari 8-Bit and Teensy Hardware Setup:

Atari Player 1 Pin 1 ---> Teensy Port B0 (digital pin 0)
Atari Player 1 Pin 2 ---> Teensy Port B1 (digital pin 1)
Atari Player 1 Pin 3 ---> Teensy Port B2 (digital pin 2)
Atari Player 1 Pin 4 ---> Teensy Port B3 (digital pin 3)
Atari Player 1 Pin 6 ---> Teensy Port B7 (digital pin 4)
Atari Player 1 Pin 8 ---> Teensy Ground

Atari Player 2 Pin 1 ---> Teensy Port F4 (digital pin 19)
Atari Player 2 Pin 2 ---> Teensy Port F5 (digital pin 18)
Atari Player 2 Pin 3 ---> Teensy Port F6 (digital pin 17)
Atari Player 2 Pin 4 ---> Teensy Port F7 (digital pin 16)
Atari Player 2 Pin 6 ---> Teensy Port B6 (digital pin 15)

OPTIONAL:

Connect a "classic" serial MIDI I/O-board to Teensy Port D2 (RXD, digital pin 7)
and D3 (TXD, digital pin 8) respectively in order to connect older MIDI devices.
Schematics can be found here:
https://www.pjrc.com/teensy/td_libs_MIDI.html

*/

#include <MIDI.h>

byte data; // general working byte for serially-received data

byte channel;
byte pitch;
byte velocity;

int dT = 3000; // delay time for write cycles in microseconds

int voice[] = {255,255,255,255};
int vcount = 0;
int maxvoice = 4; // maximum number of simultaneous voices on the 8-Bit (Atari: 4, C64: 3)
int startchannel = 1; // first MIDI channel to be used - increase this by [maxvoice] if you use more than one interface

// Setup
void setup() {

Serial.begin(38400);

DDRB = B11001111;
DDRF = B11110000;

MIDI.begin(MIDI_CHANNEL_OMNI);
MIDI.setHandleNoteOn(doNote);
MIDI.setHandleNoteOff(doNoteOff);

usbMIDI.setHandleNoteOn(doNote);
usbMIDI.setHandleNoteOff(doNoteOff);

}


// Main Program
void loop() {
MIDI.read();
usbMIDI.read();
}


// Functions
void doNote(byte channel, byte pitch, byte velocity) {

if (channel > startchannel) {
vcount = channel-startchannel;
voice[vcount] = pitch;
} else {
for (int x=0;x<=(maxvoice-1);x++) {
if (voice[x] == 255) {
vcount = x;
voice[vcount] = pitch;
break;
}
}
}

writeatari(B00000000 | pitch, vcount);
writeatari(B10000000 | velocity / 8, vcount);

}

void doNoteOff(byte channel, byte pitch, byte velocity) {

if (channel > startchannel) {
vcount = channel-startchannel;
voice[vcount] = 255;
} else {
for (int x=(maxvoice-1);x>=0;x--) {
if (voice[x] == pitch) {
vcount = x;
voice[vcount] = 255;
break;
}
}
}

writeatari(B10000000, vcount);

}

// WRITING DATA TO THE ATARI

void writeatari(int data, int voice) {

PORTB = ((data & 15) | (voice << 6));
PORTF = (data);

delayMicroseconds(dT);

Da ich in englisch nicht so gut bin, hoffe ich, das ich das so richtig verstanden habe und frage hier lieber noch mal nach.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 30. Okt 2014, 16:07
Ok, ich sehe, ich sollte vielleicht doch, was die Installation der Software auf dem Mac/PC angeht, eine Schritt-für-Schritt-Anleitung machen. Vielleicht schaffe ich das heute Abend noch, ansonsten dieser Tage. Nur ein Punkt: Der Source-Code muss nicht verändert werden - was vielleicht missverständlich sein könnte, ist, dass ich den Source-Code von Sebastian Tomczak verändern musste, damit er mit MidiJoy und dem Atari läuft.
Kurz gesagt, ist alles, was man tun muss, die Arduino IDE und Teensyduino installieren, dann den Source-Code mit der IDE in den Teensy flashen - fertig. Aber wie gesagt, ich mache da mal eine (grobe) Step-by-Step-Anleitung...

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Do 30. Okt 2014, 17:26
Das meinte ich ja, den Teensy Chip darauf anpassen in dem der Quellcode auf diesen geflasht wird, damit es mit den Atari läuft.

Nicht den Quellcode selbst. Der ist ja bereits angepasst. Habe ich mich vielleicht falsch ausgedrückt. Sorry.

Also habe ich das Ganze so doch noch richtig verstanden. Wollte nur sicher gehen. Vielen Dank.

Den Tipp von dir eine Schritt für Schritt-Anleitungen noch mal zu schreiben ist eine tolle Idee.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Do 30. Okt 2014, 19:26
Die Software MidiJoy für den Atari XL konnte ich auf der Seite nicht finden. Dort ist nur das Demo Image und ein paar MP3 Demo Songs.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 30. Okt 2014, 19:55
Ja, da steht auch gleich im zweiten Abschnitt, dass die Software auf Anfrage per Mail zugeschickt wird.
Das hat den Grund, dass ich gerne wissen möchte, wie viele Leute das Programm aktiv nutzen (wollen), damit ich die Zeit, die ich neben Familie und Beruf weiterhin in das Projekt stecke, etwas besser einschätzen kann.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Do 30. Okt 2014, 21:34
Ok, auf der Webseite ist nun auf der Mitte der Seite (über dem Screenshot) eine stichpunktartige Schritt-für-Schritt-Anleitung für die Installation der Software sowie der Konfiguration von Ableton Live (inkl. Screenshots). Da ich bisher die meiste Unterstützung/Anfragen aus den USA bekommen habe, ist die Seite auf Englisch, aber mit Google Translate kommt man vielleicht schon mal ein Stückchen weiter, zumal die grundlegenden Funktionen auch hier im Thread beschrieben sind. Falls dennoch Fragen auftreten sollten, bin ich wie gesagt gerne bereit zu helfen.

Viel Spaß,

F.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von Marc_Oberhaeuser » Do 30. Okt 2014, 22:34
freetz hat geschrieben:Hallo Marc,

leider kann ich die Hardware nicht zum Verkauf anbieten, da ich dafür zu viele rechtliche Bedingungen erfüllen müsste - das ist wohl bei allen self-made Hardwaresachen so :(...

Aber ich kann Dich beruhigen: Ich habe selber zwei linke Hände, was das angeht, und der auf der Webseite beschriebene Aufbau ist vollkommen lötfrei. Du musst Dir nur die Teile bestellen (Bezugsquellen sind angegeben) und dann steckst Du die Komponenten einfach in das Board. So wie früher bei den Kosmos-Elektrik-Versuchskästen aus der Kindheit :). Schnürsenkel binden ist komplizierter, und es hat mich als Bastel-Laien keine 10 Minuten gekostet, das Interface nachzubauen, als ich es bei little-scale gesehen habe.

Wenn jemand aber Probleme haben sollte und es partout nicht hinbekommt, dann unterstütze ich gerne auch persönlich.

F.


Danke für die Antwort. Dann werde ich es mal versuchen:) Wenn ich mich dabei verletze, hörst Du von meinem Anwalt :wink::wink:

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Fr 31. Okt 2014, 10:22
Ich habe übrigens gerade eine kleine, aber feine und vor allem kostenlose Alternative zu Ableton Live entdeckt, die insbesondere für Einsteiger einfacher zu bedienen ist: Aria Maestosa
http://ariamaestosa.sourceforge.net
Dort kann man das Teensy-Board einfach über das Dropdown "Ausgang" aktivieren.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von Sleepy » Fr 31. Okt 2014, 10:30
Ah, das muss ich mal probieren (wenn ich mein Board zusammengebaut habe).
Abtelon ist, wenn man eigentlich von Midi keine Ahnung hat, ja recht komplex. Es war etwas Fummelei bis es das gemacht hat was es sollte. Nur um die Daten vom Keyboard zum Atari zu schaufeln wohl auch etwas überdimensioniert. :wink:

Sleepy

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Fr 31. Okt 2014, 10:35
Ja, das stimmt wohl - Aria Maestosa habe ich auch innerhalb von 5 Minuten ans Fliegen bekommen, ist wirklich intuitiv...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von Sleepy » Fr 31. Okt 2014, 11:09
Ja, Abtelon habe ich nur mit Hilfe an´s rennen bekommen. :mrgreen:
Als ich es auf der JHV aufgebaut habe wolle es erst nicht, obwohl ich es extra zu Hause noch mal probiert hatte.
Die Verbindung zum XL war da, aber das weiterleiten der Keyborddaten hat erst nicht fluppen wollen.

Sleepy

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Di 4. Nov 2014, 22:06
Da der Teensy 2.0 mit Pins seit einiger Zeit bei Watterott nicht lieferbar war, habe ich nun dort einmal nachgefragt - und gleich Antwort vom Geschäftsführer bekommen: Falls die Teensy 2.0 mit Pins einmal nicht vorhanden sein sollte, die Variante ohne Pins aber schon, dann einfach eine Mail an die schicken, die löten dann die Beinchen selber an. Kein schlechter Service, finde ich. So muss man dann nicht auf eine Nachlieferung aus Amerika warten, wobei diese aber wohl so oder so in den nächsten Tagen über den Teich geschippert kommt.
Insofern steht also einer Bastelei ohne Lötarbeiten nichts mehr im Wege :)!

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Di 11. Nov 2014, 20:10
Nun ist das Teensy 2.0 Board endlich da und es kann ans aufbauen gehen. Zunächst habe ich es einmal am USB Port meines PC´s angeschlossen.

Die Software Adurino hatte ich ja bereits schon installiert und auch Teensydurino. Aber das Teensy 2.0 Board blinkte nur und es wurde keine Hardware erkannt.

Hmm dachte ich mir, wohl das falsche Kabel? Ein anderes genommen, war immer noch nur am blinken. Also dachte ich mir, drück mal das kleine Resetknöpf´chen am Tennsy Board. Gemacht und getan und endlich, ja jetzt wurde eine Hardware erkannt.

Also was in der Anleitung nicht stand, ist, dass man beim ersten Betrieb des Teensy Boards den Resetknopf drücken muss und nicht wie das in der Anleitung steht, erst beim flashen. Denn beim flashen braucht man diesen Knopf nicht drücken, da das flashen voll Automatisch geschieht. Das braucht man nur, wenn die Flashautomatik deaktiv ist in Teensydurino.

Windows muss erst ein humanes USB HID kompatibles Eingabegerät als Standardgerät installieren. Daher muss man bei der erst Betriebsnahme das Tennsy Board Knopf drücken. Erst dann hört das blinken auf und es wird ein Standard HID kompatibles USB Eingabegerät gefunden.

Noch ist das Teensy Board kein Midigerät. Das Gerät angeschlossen lassen und Adurino starten. Nun in Adurino unter Tools das Board Tennsy 2.0 wählen. Ist nur vorhanden, wenn das Zusatzprogramm Teensydurino mit installiert wurde. Und nun unter Tools nur noch den USB Type MIDI auswählen und CPU Speed 16Mhz einstellen. Ein Programmer so wie ein Bootloader braucht man nicht auswählen.

Nun kopiert man sich den Script A8MidiJoy von der Webseite und fügt diesen einfach in Adurino ein. Im Adorino sieht man erst ein temoräres Sketchfenster in der das Script einfach eingefügt werden kann. Man kann es dann als Sketch Ordner Datei speichern unter abspeichern.

Nun braucht man nur noch in Adurino unter Sketch überprüfen/kompilieren gehen und das Fenster Teensydurino öffnet sich nach erfolgreicher Kompilierung. Tritt ein Fehler während des Kompliervorgangs auf, wird die Zeile im Sketchfenster angezeigt, wo der Fehler liegt und Teensydurino öffnet sich nicht.

Wenn alles aber Erfolgreich war öffnet sich Teensydurino und der Flashvorgang wird automatisch sofort gestartet, da die automatische Flashfunktion standardmäßig aktiv ist. Wer das nicht möchte, der braucht nur das grüne Button AUTO in Teensydurino anklicken. Das ganze dauert weniger als 3 Secunden.

Wenn alles richtig geklappt hat, erkennt Windows auf einmal wieder ein Gerät. Diesmal ist es das Tennsy MidiJoy Gerät. Das Teensy Board hat sich nun zu einen Midi Gerät verwandelt.

Jetzt steht dem Aufbau und dem musizieren nichts mehr im Wege.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Di 11. Nov 2014, 21:03
Das freut mich, dass alles so gut geklappt hat, und danke auch noch mal für die detaillierte Beschreibung, gerade was das erste Flashen angeht - das kann ich beim x.-ten Mal natürlich nicht mehr so 1:1 wiederholen ;)...
Falls es weitere Fragen/Probleme gibt, dann gerne fragen...

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Mi 12. Nov 2014, 10:11
Ich werde das ganze erst mal aufbauen verdrahten und am Atari ausprobieren.

Verwenden werde ich Arie Maestosa als Sequenzer Software.

Jetzt müsste ich nur die Atari Software richtig verstehen. Vielleicht bekomme ich das hin und werde hier dafür auch mal eine deutsche Anleitung da zu erstellen.

Apropro, Die Atari Software als ATR Datei scheint fehlerhaft zu sein. Sie hat einen falschen Header. Sie wird unter Aspeqt mit 133120 Bytes angegeben. Tatsächlich sollte es aber 133121 Bytes sein. Den Fehler konnte ich bis jetzt nicht beseitigen.

Also warten wir es mal ab. :wink:

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 12. Nov 2014, 10:55
AspeQt ist in der Hinsicht glaube ich noch etwas buggy - eigentlich habe ich alle ATRs vor dem Versenden im Emulator gebootet, von daher sollten sie auch auf echter Hardware laufen. Gibt es da denn Probleme?

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Mi 12. Nov 2014, 20:34
Nee Probleme gibt es deswegen nicht. Nur wenn ich unter MyDos das Programm starten möchte in diesen Fall die Autorun.sys Datei, dann wird das Menu des Programms unformatiert auf dem Bildschirm ausgegeben. Für echte PBI wiedergabe z.B. unter KMK-IDE2 scheint MyDos nicht das Wahre zu sein. Ob es auch unter SDX läuft, muss ich erst noch testen.

Eine Konformität einer ATR Datei kann man nicht durch einen Emulator bestimmen, nur weil sie dort funktioniert. Der Emulator frisst so ziemlich alles. Es gibt leider viele solche ATR Dateien die nicht immer Standard sind, funktionieren aber dennoch. Diese können aber auf echter Hardware Probleme verursachen, in dem es nicht bootet oder man diese nicht auf einer Diskette bekommt z,b, oder die Diskette nicht ganz gefüllt werden kann, durch angaben falscher freier Sektoren, bekommt man die Disk nicht voll, oder diese kann nicht mehr weiter beschrieben werden, obwohl noch Platz genug darauf ist.

Ich nehme mal an das Du die ATR mit APE erstellt hast. Dieser hat die Gewohnheit eine Disk nicht ab zu schließen, wenn Du aus einer realen Disk eine ATR erstellst. Dabei fehlt immer ein Sektor. Kann man gut beobachten, wenn man mit APE die ATR Datei zurück auf einer realen Disk schreibt. Dabei lässt es immer beim vor Formatieren oder beim kopieren überhaupt, einen Sektor aus. Dies tut aber bei einer Floppy keinen Abbruch, da sie in der Floppy eh abgeschlossen wird und auf echter Hardware dürfte das auch kein Problem verursachen.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von freetz » Mi 12. Nov 2014, 21:34
Die Images erstelle ich auf dem Mac auf dem Emulator, aber teste die Images auf einem echten Atari (logisch, weil MidiJoy auf einem Emulator gar nicht funktioniert). Allerdings starte ich das Image von einem SIO2SD Interface und nicht von einer echten Floppy. Mein Rechner ist aber nicht so ausgebaut wie Deiner, vielleicht gibt es dann weniger Probleme. Wenn es aber irgendwo richtig haken sollte, dann schaue ich mir das noch mal an.

Re: MidiJoy - der ATARI als Chiptune-Instrument

von pmetzen » Mi 12. Nov 2014, 23:33
Nö ist nicht nötig. Ich habe nur aus nostalgischen Gründen auch echte Floppys hier stehen und erstelle auch schon mal für meine Sammlung einige ATR Disketten.

Gemeint habe ich nicht das MidiJoy auf den Emulator nicht läuft, natürlich kann es da auch nicht funktionieren, logisch, sondern einige Disketten die auf echter Hardware nicht laufen könnten, nicht booten oder gelesen werden, da deren Konformität die von einer ATR Datei her stammten nicht über ein stimmen. Das solche ATRs auf den Emulator immer laufen ist für mich kein Beweis, dass dies auch immer auf den Atari funktioniert.

Zum Glück ist das bei deiner ATR Datei nicht der Fall.

Und was MidiJoy angeht, das Programm hatte ich versucht zu starten über MyDos. Doch da wird von das Programm das Menu Unstrukturiert mit umbrüchen unformatiert der Text auf dem Bildschirm angezeigt.

Mit der ATR ist das nicht der Fall, dort ist Dos 2.5 drauf und alles funktioniert sehr gut. Ich wollte eigentlich nur wissen warum Aspeqt da bei dieser ART Datei einen Header Fehler anzeigt. Möglicherweise ist es tatsächlich nur ein Bug.

Wie gesagt ich teste das Programm noch mit Sparta und berichte darüber mal ob es damit läuft. Über MyDos sieht es ziemlich verstümmelt aus. Das Programm scheint wohl in Basic geschrieben zu sein, stimmt das? Ich habe das noch nicht überprüft.
1, 2, 3, 4, 5 ... 7