Melomat, nun Midiplayer und Kombigerät

Antworten
Benutzeravatar
Piet Paardekam
Beiträge: 85
Registriert: Sa 19. Nov 2016, 14:43
Wohnort: Zutphen Niederlande
Kontaktdaten:

Melomat, nun Midiplayer und Kombigerät

Beitrag von Piet Paardekam »

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.
Melomattype3.jpg
Melomattype3.jpg (15.4 KiB) 3808 mal betrachtet
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.
Benutzeravatar
skassel
Beiträge: 23
Registriert: Mi 5. Feb 2020, 09:45
Wohnort: Gernsbach

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von skassel »

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
Benutzeravatar
Piet Paardekam
Beiträge: 85
Registriert: Sa 19. Nov 2016, 14:43
Wohnort: Zutphen Niederlande
Kontaktdaten:

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von Piet Paardekam »

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
Benutzeravatar
skassel
Beiträge: 23
Registriert: Mi 5. Feb 2020, 09:45
Wohnort: Gernsbach

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von skassel »

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"
Dateianhänge
Fast fertig.jpg
Fast fertig.jpg (40.65 KiB) 3630 mal betrachtet
IMG_20210717_185944309.jpg
IMG_20210717_185944309.jpg (49.73 KiB) 3630 mal betrachtet
IMG_20210912_152959417.jpg
IMG_20210912_152959417.jpg (32.43 KiB) 3630 mal betrachtet
IMG_20211119_093206601.jpg
IMG_20211119_093206601.jpg (26.5 KiB) 3630 mal betrachtet
MIDI_MusicBox_TunerTFT.zip
(36.34 KiB) 150-mal heruntergeladen
MIDI_DEKODER.zip
(5.29 KiB) 142-mal heruntergeladen
Benutzeravatar
Piet Paardekam
Beiträge: 85
Registriert: Sa 19. Nov 2016, 14:43
Wohnort: Zutphen Niederlande
Kontaktdaten:

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von Piet Paardekam »

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.
libraries.zip
(5.57 MiB) 159-mal heruntergeladen
melomat.zip
(16.4 KiB) 145-mal heruntergeladen
Die PP-Funktionen sind in der Datei ##DocPPFunctions.txt dokumentiert.
Danach können Sie mit der .ino in der Arduino IDE arbeiten.
.
libraryschema.jpg
libraryschema.jpg (44.94 KiB) 3627 mal betrachtet
.
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.
Benutzeravatar
skassel
Beiträge: 23
Registriert: Mi 5. Feb 2020, 09:45
Wohnort: Gernsbach

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von skassel »

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.
Benutzeravatar
skassel
Beiträge: 23
Registriert: Mi 5. Feb 2020, 09:45
Wohnort: Gernsbach

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von skassel »

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
MelomatMega.jpg (81.97 KiB) 3578 mal betrachtet
Benutzeravatar
Piet Paardekam
Beiträge: 85
Registriert: Sa 19. Nov 2016, 14:43
Wohnort: Zutphen Niederlande
Kontaktdaten:

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von Piet Paardekam »

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?
Benutzeravatar
skassel
Beiträge: 23
Registriert: Mi 5. Feb 2020, 09:45
Wohnort: Gernsbach

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von skassel »

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.
Benutzeravatar
Piet Paardekam
Beiträge: 85
Registriert: Sa 19. Nov 2016, 14:43
Wohnort: Zutphen Niederlande
Kontaktdaten:

Re: Melomat, nun Midiplayer und Kombigerät

Beitrag von Piet Paardekam »

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.
Antworten