Melomat, nun Midiplayer und Kombigerät
- Piet Paardekam
- Beiträge: 85
- Registriert: Sa 19. Nov 2016, 14:43
- Wohnort: Zutphen Niederlande
- Kontaktdaten:
Melomat, nun Midiplayer und Kombigerät
Kürzlich habe ich die Möglichkeiten des Melomat erweitert. Dieser Midi-Player kann nun auch direkt Magnetspulen über Treiberkarten ansteuern.
Es können vier Melomat-Typen gebaut werden. Einer von ihnen ist ein Standard-Midi-Player mit Ausgängen, die Magnetspulen steuern.
Die Midi-Dateien auf der SD-Karte sind die anhörbaren Dateien, die z. B. mit Noteur orgeltauglich gemacht wurden.
Der Melomat verwendet für diesen Typ eine Tabelle. Es gibt an, welcher Ausgang durch welche Note in der Midi-Datei aktiviert wird. Es gibt eine Standardtabelle für Raffin/Höffle mit 20 Tasten in der Melomat vorhanden. Eine weitere Tabelle kann der Benutzer einfach selbst programmieren. Eine ausführliche Beschreibung habe ich im holländischen Forum eingestellt. Sehen Sie mal:
http://www.draaiorgelweb.nl/orgelforum/ ... 7889#p7889
Diese Beschreibung ist auf Niederländisch. Eine Übersetzung kann mit Google Translate erstellt werden. Bei ernsthaftem Interesse am Melomat kann ich eine englische Version machen.
Es können vier Melomat-Typen gebaut werden. Einer von ihnen ist ein Standard-Midi-Player mit Ausgängen, die Magnetspulen steuern.
Die Midi-Dateien auf der SD-Karte sind die anhörbaren Dateien, die z. B. mit Noteur orgeltauglich gemacht wurden.
Der Melomat verwendet für diesen Typ eine Tabelle. Es gibt an, welcher Ausgang durch welche Note in der Midi-Datei aktiviert wird. Es gibt eine Standardtabelle für Raffin/Höffle mit 20 Tasten in der Melomat vorhanden. Eine weitere Tabelle kann der Benutzer einfach selbst programmieren. Eine ausführliche Beschreibung habe ich im holländischen Forum eingestellt. Sehen Sie mal:
http://www.draaiorgelweb.nl/orgelforum/ ... 7889#p7889
Diese Beschreibung ist auf Niederländisch. Eine Übersetzung kann mit Google Translate erstellt werden. Bei ernsthaftem Interesse am Melomat kann ich eine englische Version machen.
Re: Melomat, nun Midiplayer und Kombigerät
Hallo Piet,
das ist eine sehr interressante Beschreibung. Etwas ähnliches verwende ich in meiner Zither. Die arbeitet mit einem Arduino Mega mit Touchscreen als Midiplayer und einem Arduino Uno als "Dekoder" zur Ansteuerung der Magnete. Bei der Programmierung hatte ich wertvolle Unterstützung von HolgerS
Wäre es möglich die Dateien im .ino Format für die Arduino IDE zu bekommen? Ich würde das gerne auf einem Mega ausprobieren.
Auch bin ich gerne bereit meine Dateien hier im Forum bereit zu stellen. Allerdings ist das mit der Dokumentation nicht so elegant. Im Programm sind soweit Kommentare vorhanden, aber Schaltpläne habe ich in dem Sinn keine.
Gruß
Sören
das ist eine sehr interressante Beschreibung. Etwas ähnliches verwende ich in meiner Zither. Die arbeitet mit einem Arduino Mega mit Touchscreen als Midiplayer und einem Arduino Uno als "Dekoder" zur Ansteuerung der Magnete. Bei der Programmierung hatte ich wertvolle Unterstützung von HolgerS
Wäre es möglich die Dateien im .ino Format für die Arduino IDE zu bekommen? Ich würde das gerne auf einem Mega ausprobieren.
Auch bin ich gerne bereit meine Dateien hier im Forum bereit zu stellen. Allerdings ist das mit der Dokumentation nicht so elegant. Im Programm sind soweit Kommentare vorhanden, aber Schaltpläne habe ich in dem Sinn keine.
Gruß
Sören
- Piet Paardekam
- Beiträge: 85
- Registriert: Sa 19. Nov 2016, 14:43
- Wohnort: Zutphen Niederlande
- Kontaktdaten:
Re: Melomat, nun Midiplayer und Kombigerät
Melomat läuft auch auf dem Arduino Mega. Ich habe die neueste Version mit guten Ergebnissen getestet.
Der Nachteil des Mega ist, dass die Ordner auf der SD-Karte nur 40 Dateien enthalten können. Für einen Melomat ist ein ESP32 in vielerlei Hinsicht die viel bessere Wahl. Deshalb habe ich mich entschieden, den Mega nicht in die Dokumentation aufzunehmen.
Aber mit der .ino kann man auch eine Hex-Datei für die Mega machen.
Ich habe nichts dagegen, Ihnen die .ino-Datei von Melomat zu geben. Aber es ist nicht einfach, damit zu arbeiten und Hex-Dateien damit zu kompilieren.
Ich werde erklären.
Verschiedene Arduino-Prozessoren benötigen oft unterschiedlichen Code zum Programmieren verschiedener angeschlossener Geräte. Zum Beispiel die SD-Einheit, Potentiometer und dergleichen. Im Großen und Ganzen gibt es drei Familien, die Sie berücksichtigen müssen. Das ist die Arduino-Gruppe (Mega, Uno usw.), die ESP8266-Gruppe (ESP12, Nodemcu usw.) und die ESP32-Gruppe.
Da ich Programme für all diese Gruppen mache, habe ich eine eigene Bibliothek erstellt, in der ich dieses Problem löse. Diese Bibliothek ist eine Shell für die Standard-Arduino-Bibliotheken.
Somit kann ich die Funktionen in meiner Bibliothek für alle Gruppen gleichermaßen nutzen. Also in der .ino der gleiche Code für alle Prozessoren.
In meiner Bibliothek wird dann anhand des in der IDE gewählten Prozessors der richtige Code verwendet.
Nur in wenigen Fällen muss ich im Code in der .ino testen (zB #ifdef ESP32.....), welcher Prozessor verwendet wird und dann speziellen Code verwenden. Zum Beispiel: Der ESP32 hat viel mehr Speicher als ein Mega und daher ist die maximale Anzahl von Dateien in einem Mega von 100 auf 40 begrenzt.
Außerdem werden beim Mega andere IO-Pins verwendet als beim ESP32. Sie finden dies, indem Sie nach "#idef AVR" suchen. AVR ist die Gruppenidentität der Arduinos.
Fazit: um mit meinen .ino's zu arbeiten braucht man meine Bibliothek.
Ich kann sie auch geben, aber wenn Hilfe benötigt wird, denke ich, dass es zu viel Zeit in Anspruch nehmen wird, für mich....
Wenn Sie Melomat wirklich auf einem Mega installieren möchten, kann ich Ihnen alternativ ein Hexfile nach Ihren Vorgaben erstellen.
Lassen Sie mir einfach wissen, was Sie wollen.
Unten der Link zum Hex-File für den Mega für einen Midiplayer mit Midi-Files auf SD-Karte als Eingang und Midi-Ausgang über den DIN-Stecker.
Klicken Sie mit der rechten Maustaste und wählen Sie "save as..."
www.draaiorgelweb.nl/software/MelomatMp ... o.mega.hex
Der Nachteil des Mega ist, dass die Ordner auf der SD-Karte nur 40 Dateien enthalten können. Für einen Melomat ist ein ESP32 in vielerlei Hinsicht die viel bessere Wahl. Deshalb habe ich mich entschieden, den Mega nicht in die Dokumentation aufzunehmen.
Aber mit der .ino kann man auch eine Hex-Datei für die Mega machen.
Ich habe nichts dagegen, Ihnen die .ino-Datei von Melomat zu geben. Aber es ist nicht einfach, damit zu arbeiten und Hex-Dateien damit zu kompilieren.
Ich werde erklären.
Verschiedene Arduino-Prozessoren benötigen oft unterschiedlichen Code zum Programmieren verschiedener angeschlossener Geräte. Zum Beispiel die SD-Einheit, Potentiometer und dergleichen. Im Großen und Ganzen gibt es drei Familien, die Sie berücksichtigen müssen. Das ist die Arduino-Gruppe (Mega, Uno usw.), die ESP8266-Gruppe (ESP12, Nodemcu usw.) und die ESP32-Gruppe.
Da ich Programme für all diese Gruppen mache, habe ich eine eigene Bibliothek erstellt, in der ich dieses Problem löse. Diese Bibliothek ist eine Shell für die Standard-Arduino-Bibliotheken.
Somit kann ich die Funktionen in meiner Bibliothek für alle Gruppen gleichermaßen nutzen. Also in der .ino der gleiche Code für alle Prozessoren.
In meiner Bibliothek wird dann anhand des in der IDE gewählten Prozessors der richtige Code verwendet.
Nur in wenigen Fällen muss ich im Code in der .ino testen (zB #ifdef ESP32.....), welcher Prozessor verwendet wird und dann speziellen Code verwenden. Zum Beispiel: Der ESP32 hat viel mehr Speicher als ein Mega und daher ist die maximale Anzahl von Dateien in einem Mega von 100 auf 40 begrenzt.
Außerdem werden beim Mega andere IO-Pins verwendet als beim ESP32. Sie finden dies, indem Sie nach "#idef AVR" suchen. AVR ist die Gruppenidentität der Arduinos.
Fazit: um mit meinen .ino's zu arbeiten braucht man meine Bibliothek.
Ich kann sie auch geben, aber wenn Hilfe benötigt wird, denke ich, dass es zu viel Zeit in Anspruch nehmen wird, für mich....
Wenn Sie Melomat wirklich auf einem Mega installieren möchten, kann ich Ihnen alternativ ein Hexfile nach Ihren Vorgaben erstellen.
Lassen Sie mir einfach wissen, was Sie wollen.
Unten der Link zum Hex-File für den Mega für einen Midiplayer mit Midi-Files auf SD-Karte als Eingang und Midi-Ausgang über den DIN-Stecker.
Klicken Sie mit der rechten Maustaste und wählen Sie "save as..."
www.draaiorgelweb.nl/software/MelomatMp ... o.mega.hex
Re: Melomat, nun Midiplayer und Kombigerät
Hallo Piet, danke für Ihre Antwort. Mit den .hex Files kann ich vermutlich wenig anfangen. Ich experimentiere gerne, daher sehe ich nach Inspirationen, was ich an meinem MIDI-Player noch verbessern könnte. Die .ino wäre dabei sehr hilfreich.
Im Anhang finden Sie meine beiden Programme, einmal den MIDI-Player mit TFT (Mega) und zum anderen den eigentlichen MIDI-Dekoder (Uno).
Im Programmteil zum MIDI-Player ist auch ein Tuner zum Stimmen intergriert. Dieser funktioniert aber in der TFT Version leider noch nicht (Mega hängt sich auf). Da bin ich noch am "rumpfriemeln"
Im Anhang finden Sie meine beiden Programme, einmal den MIDI-Player mit TFT (Mega) und zum anderen den eigentlichen MIDI-Dekoder (Uno).
Im Programmteil zum MIDI-Player ist auch ein Tuner zum Stimmen intergriert. Dieser funktioniert aber in der TFT Version leider noch nicht (Mega hängt sich auf). Da bin ich noch am "rumpfriemeln"
- Dateianhänge
-
- Fast fertig.jpg (40.65 KiB) 14067 mal betrachtet
-
- IMG_20210717_185944309.jpg (49.73 KiB) 14067 mal betrachtet
-
- IMG_20210912_152959417.jpg (32.43 KiB) 14067 mal betrachtet
-
- IMG_20211119_093206601.jpg (26.5 KiB) 14067 mal betrachtet
-
- MIDI_MusicBox_TunerTFT.zip
- (36.34 KiB) 462-mal heruntergeladen
-
- MIDI_DEKODER.zip
- (5.29 KiB) 475-mal heruntergeladen
- Piet Paardekam
- Beiträge: 85
- Registriert: Sa 19. Nov 2016, 14:43
- Wohnort: Zutphen Niederlande
- Kontaktdaten:
Re: Melomat, nun Midiplayer und Kombigerät
Alles klar Sören, ich gebe dir jetzt die .ino und meine Bibliothek.
Ich denke mit etwas Geduld solltest du das hinbekommen.
Unzip libraries.zip in einen temporären Ordner. Es enthält eine Reihe von Standard-Arduino-Bibliotheken sowie meine "PP-Funktionen". Platzieren Sie dieses Ganze plus melomat.ino in der Struktur des Arduino-Sketchbook, wie im Bild unten gezeigt.
Die PP-Funktionen sind in der Datei ##DocPPFunctions.txt dokumentiert.
Danach können Sie mit der .ino in der Arduino IDE arbeiten.
. .
Lassen Sie mich bitte wissen, ob das funktioniert.
Danke für deine .inos, ich werde sie studieren, sobald ich etwas mehr Zeit habe. Können Sie mir sagen, wie Mega und Uno verkabelt sind und welche Komponenten Sie verwenden? Ich habe noch nie mit einem TFT-Bildschirm gearbeitet.
Ich denke mit etwas Geduld solltest du das hinbekommen.
Unzip libraries.zip in einen temporären Ordner. Es enthält eine Reihe von Standard-Arduino-Bibliotheken sowie meine "PP-Funktionen". Platzieren Sie dieses Ganze plus melomat.ino in der Struktur des Arduino-Sketchbook, wie im Bild unten gezeigt.
Die PP-Funktionen sind in der Datei ##DocPPFunctions.txt dokumentiert.
Danach können Sie mit der .ino in der Arduino IDE arbeiten.
. .
Lassen Sie mich bitte wissen, ob das funktioniert.
Danke für deine .inos, ich werde sie studieren, sobald ich etwas mehr Zeit habe. Können Sie mir sagen, wie Mega und Uno verkabelt sind und welche Komponenten Sie verwenden? Ich habe noch nie mit einem TFT-Bildschirm gearbeitet.
Re: Melomat, nun Midiplayer und Kombigerät
Hallo Piet, danke für die .ino. Werde mich damit mal auseinander setzen.
Für meine Zither habe ich leider keine Schaltpläne. Aber die Pinbelegung habe ich jeweils als Kommentar in den .inos vermerkt.
An Komponenten habe ich für den Player verbaut:
Arduino Mega 2560 R3 von Joy-It, darauf direkt gesteckt das Display 3,5" TFT LCD Shield 480x320 mit Touch Panel (blaue Platine) von QooTec. Als SD-Reader ein MH-SD Card Module SPI von Amazon und ein Midi Serial Interface von DATA Point. Dieses Interface benutze ich dazu, um die Zither über ein Midi-Keyboard zu spielen, oder die Midi-Daten des Players an ein Keyboard zu schicken.
Für den Dekoder einen Arduino Uno mit einem 32-fach Portexpander (2xMCP23017 mit MosFET TreiberPlatine von HolgerS).
Bei Fragen, bitte jederzeit.
Für meine Zither habe ich leider keine Schaltpläne. Aber die Pinbelegung habe ich jeweils als Kommentar in den .inos vermerkt.
An Komponenten habe ich für den Player verbaut:
Arduino Mega 2560 R3 von Joy-It, darauf direkt gesteckt das Display 3,5" TFT LCD Shield 480x320 mit Touch Panel (blaue Platine) von QooTec. Als SD-Reader ein MH-SD Card Module SPI von Amazon und ein Midi Serial Interface von DATA Point. Dieses Interface benutze ich dazu, um die Zither über ein Midi-Keyboard zu spielen, oder die Midi-Daten des Players an ein Keyboard zu schicken.
Für den Dekoder einen Arduino Uno mit einem 32-fach Portexpander (2xMCP23017 mit MosFET TreiberPlatine von HolgerS).
Bei Fragen, bitte jederzeit.
Re: Melomat, nun Midiplayer und Kombigerät
Hallo Piet, habe das Programm auf einem Mega zum laufen gebracht. Nun versuche ich noch zu verstehen, wie die einzelnen Ports angesteuert werden. Danke nochmals für die .ino
- Dateianhänge
-
- MelomatMega.jpg (81.97 KiB) 14015 mal betrachtet
- Piet Paardekam
- Beiträge: 85
- Registriert: Sa 19. Nov 2016, 14:43
- Wohnort: Zutphen Niederlande
- Kontaktdaten:
Re: Melomat, nun Midiplayer und Kombigerät
Ich nehme an, Du hast sich für die Kombination Midi-MCP23017 entschieden.
Der Mega kommuniziert dann über den I2C-Bus mit einem oder mehreren MCP23017s oder PCF8575s.
Bitte lesen Sie als Erster die Anleitung von "16-kanaals outputmodules voor een combinatieapparaat"
Beantwortet das deine Frage?
Der Mega kommuniziert dann über den I2C-Bus mit einem oder mehreren MCP23017s oder PCF8575s.
Bitte lesen Sie als Erster die Anleitung von "16-kanaals outputmodules voor een combinatieapparaat"
Beantwortet das deine Frage?
Re: Melomat, nun Midiplayer und Kombigerät
Ja, ich verwende die MCP23017 Version, da ich mit der Treiberkarte von HolgerS in meiner Zither damit schon gute Erfahrung gemacht habe.
Der Programmteil der Ansteuerung der einzelnen Ausgäne bei meiner Zither hat mir lange Kopfzerbrechen bereitet - wegen der Bitmanipulation. Diese Programmierweise war bei mir in Vergessenheit graten. Holger hat mir aber die entscheideden Tips gegeben.
Der Programmteil der Ansteuerung der einzelnen Ausgäne bei meiner Zither hat mir lange Kopfzerbrechen bereitet - wegen der Bitmanipulation. Diese Programmierweise war bei mir in Vergessenheit graten. Holger hat mir aber die entscheideden Tips gegeben.
- Piet Paardekam
- Beiträge: 85
- Registriert: Sa 19. Nov 2016, 14:43
- Wohnort: Zutphen Niederlande
- Kontaktdaten:
Re: Melomat, nun Midiplayer und Kombigerät
Mit meinem Bibliotheksmodul PP23017 wird die Bedienung eines MCP23017 sehr einfach. Beim Anruf geben Sie immer nur die Adresse der MCP (oder PCF) und die PIN-Nummer an, die ein- oder ausgeschaltet werden soll. Die PIN-Nummern sind 0 bis 15.
Bsp.: MCPsetPin(MCPaddress ,MCPpinnr ); // Relais bei Pin High ausschalten
Außerdem gibt es ein MCPresetpin() und MCPsetAllpins() und dergleichen.
Das macht die Arbeit mit einem MCP23017 sehr einfach.
Diese Funktion, PPMCP23017, erkennt automatisch, ob ein MCP23017 oder PCF8575 verwendet wird und passt die Verarbeitung (interne Bitmanipulation) entsprechend an.
Hinweis: 16-Kanal-Module MCP23017 (Platine) kosten etwa 20 Euro. Der 16 Kanal PCF8575 nur 2 Euro. Beim PCF muss nur an den Ausgängen ein Pullup-Widerstand verwendet werden. Dies ist im Handbuch angegeben.
Bsp.: MCPsetPin(MCPaddress ,MCPpinnr ); // Relais bei Pin High ausschalten
Außerdem gibt es ein MCPresetpin() und MCPsetAllpins() und dergleichen.
Das macht die Arbeit mit einem MCP23017 sehr einfach.
Diese Funktion, PPMCP23017, erkennt automatisch, ob ein MCP23017 oder PCF8575 verwendet wird und passt die Verarbeitung (interne Bitmanipulation) entsprechend an.
Hinweis: 16-Kanal-Module MCP23017 (Platine) kosten etwa 20 Euro. Der 16 Kanal PCF8575 nur 2 Euro. Beim PCF muss nur an den Ausgängen ein Pullup-Widerstand verwendet werden. Dies ist im Handbuch angegeben.