Guten Tag, ich bin vom Hobby her nicht nur Elektroniker und Funkamateur, sondern auch noch mit der Musik verbandelt. Ich benutze ein Roland FR4X V-Akkordeon, voll elektronisch und habe dafür diverse Userprogramms, etliche auch selbst erstellt. Die Daten werden in einem Containerformat via USB oder Stick auf dem PC abgelegt. Wenn ich diese Files allerdings bearbeiten will, ist das ein mühselige frickelige Art, mit vielen Tastendrücken am Bedienfeld des Instrumentes. Als Software ist mir nur ein Editor von Roland bekannt, in Java erstellt und nicht besonders komfortabel. Ich habe 2 Bash Scriptdateien aufgetan, mit denen man die Userprogramms als Container wieder in die einzelnen Häppchen zerlegen kann, toll, nur ich kann da nicht viel mit anfangen, da ich kein Linux Programmierer bin. Es ist mir gelungen, unter Linux MINT, die Dateien zur Ausführung zu bringen, allerdings mit Abbruch und vielen Fehlermeldungen. Wäre irgendjemand hie im Forum bereit sich mal mit mir zu unterhalten, wie ich das löse und ob da mal jemand auf den Script schaut, das wäre sehr hilfreich und würde mich schon mal ein wenig nach vorne bringen. Bin im Übrigen ein alter IT-Techniker, aber schon im Ruhestand. Würde mich freuen, wenn sich jemand meldet Gruß Christian aus der Nähe Husum Nordsee
Hallo Christian, vielleicht wäre es hilfreich zu wissen, um was für Dateien vom Akkordeon es sich handelt, möglicherweise sogar midi? Dann würde es nämlich noch viele alternative Bearbeitungsmöglichkeiten geben. Da diese Dateien ja dir gehören, könntest du sie ja gegebenenfalls hier einstellen. Zu den "aufgetanen" bash-scripten: hier hängt es von den Bedingungen des Urhebers ab, ob du sie hier einstellen oder verlinken kannst, wenn sie frei im Netz stehen, dürfte Letzteres wohl kein Problem sein. vG vom ingo
Hallo Ingo, es sind keine Midi-Dateien, da gibt es sehr viel. Es geht um die Programmierung von einem Roland FR4X einem sog. V-Akkordeon. Das Ding klinkt wie ein normales Akkordeon, kann aber auch Saxofon oder Synty -klänge bringen. Es gibt nur eine Software von Roland selbst, um das Ding via USB zu programmieren, das ist in Java geschrieben und ist nicht besonders effektiv. Die Programmzeile in der gepackten Version sind von einem amerikanischen Funkamateur schon vor einigen Jahren erstellt worden und sollen der Aufschlüsselung der Programm-Container für das Akkordeon dienen, damit erspart man sich viel Tipperei, das ist alles, aber ich bin nicht in der Lage die 2 Dateien mit der Endung *.SH ans Laufen zu bekommen, vielleicht weißt du ja wie es gehen könnte. Ich habe in der Zip-Datei eine lange Readme mit hereingelegt, damit man weiss worum es geht. Ich bin dankbar fü jede Hilfe diesbezüglich Gruß Christian
Um ein bashscript xyz.sh auf der Linux cli auszuführen, muss dieses ausführbar sein. Das ist es zunächst vermutlich nicht. Ändere das mal indem du in das betreffende Unterverzeichnis wechselst und dann mittels $ chmod a+x *sh die Ausführungrechte für alle dortigen *.sh-Dateien setzt.
:
Bearbeitet durch User
Danke für die Rückmeldung, das ist schon geschehen, wenn ich auch so gut wie keine Ahnung von Linux habe, hab ich es aber doch zu Recht bekommen die Datei zu starten. Es erfolgt schon nach Bruchteilen von Sekunden ein Abbruch mit einem Haufen Fehlermeldungen, die ich nicht einordnen kann, aber die SH-Script Datei hat ein neues Verzeichnis angelegt, mit Uhrzeit und Datum. Nun, vielleicht kann es ja mal einer probieren, der Linux auf seinem Rechner hat, alle erforderliche Dateien, so viel wie ich weiß sind in der ZIP-gepackten Datei enthalten Gruß Christian
Habs mal bei meinem LMDE ausprobiert. Die erste Fehlermeldung lautet ./FR_extract_sets_from_set_all.sh: Zeile 74: xmllint: Kommando nicht gefunden. Ein Programm namens xmllint wird benötigt. Dieses ist aus meinen Paketquellen nicht verfügbar. Guxtu: https://www.baeldung.com/linux/xmllint
:
Bearbeitet durch User
jetzt versucht das Programm die XML-datei zu parsen, was zu Parser-Fehlern führt. Da kann ich Dir nun leider nicht weiterhelfen.
:
Bearbeitet durch User
Ich hatte vor ca. 2 Wochen Kontakt mit dem Programmierer der Datei, einem Funkamateur aus den USA, der teilte mir mit, dass diese Bash - Datei bei ihm unter einem Unix System ausgeführt wurde, es sollte gleich sein mit Ubuntu Linux Ich habe für Linux MINT einige Dateien für Ubuntu hinzugeladen, bekam es aber mangels meines Wissens bz. Linux nicht am Laufen. Was da eigentlich abgearbeitet wird, sieht in dem Unterverzeichnis der *.SH-Dateien, vielleicht kann sich das ja mal einer ansehen. Mir würde es jedenfalls ein ordentliches Stück weiterhelfen bei der Dateizerlegung vom Roland Akkordeon MFG Christian
Moin, - ich habe eine aktuelle Debian-Maschine aufgesetzt, xmllint und strings installiert. Dann all_set.FR4 in ALL_SET.FR4 umgenannt.
1 | BASH_VERSION='5.1.4(1)-release' |
Einmal ausprobieren:
1 | tom@xml:/tmp/abc/prg$ ./FR_extract_sets_from_set_all.sh |
2 | -:2: parser error : Start tag expected, '<' not found |
3 | ^
|
4 | -:2: parser error : Start tag expected, '<' not found |
5 | ^
|
und weiter im Text:
1 | VR pieces, each bytes, starting at position |
2 | NEGP pieces, each bytes, starting at position |
3 | EGP pieces, each bytes, starting at position |
4 | VTW_PRESET pieces, each bytes, starting at position |
5 | sets, each bytes, starting at position |
6 | |
7 | ./FR_extract_sets_from_set_all.sh: line 106: let: size=VR * : syntax error: operand expected (error token is "* ") |
sehr viele Syntax-Errors. So Trivial ist es nicht. Gruesse Th.
Beitrag #7347203 wurde vom Autor gelöscht.
Genauso war das auch bei mir heraus gekommen.
Mark S. schrieb: > Genauso war das auch bei mir heraus gekommen. Und ich hatte noch gesehen, dass in dem FR_extract_sets_from_set_all.sh ein magic-string definiert war, vielleicht versionsabhaengig. line 22:
1 | SET_BINARY_HEADER="\\xEF\\xBB\\xBF\\x00\\x00\\x03\\x28" |
Leider passt dieser Header nicht zu set_all.FR4:
1 | tom@xml:/tmp/abc/prg$ od -A x -t x1z -v SET_ALL.FR4 | more |
2 | 000000 ef bb bf 00 00 08 2f 3c 3f 78 6d 6c 20 76 65 72 >....../<?xml ver< |
Ohne Doku und/oder massiver Zusammenarbeit mit dem TE wird das schwierig, da ich noch nicht mal das Ziel sehe. Gruesse Th.
:
Bearbeitet durch User
Problem ist wohl das cut in Verbindung mit strings.
1 | XML_MATCH_POS=`strings -a -t d $ALL_SET | grep '<?xml' | cut -d ' ' -f 1` |
2 | XML_MATCH_STR=`strings -a -t d $ALL_SET | grep '<?xml' | cut -d ' ' -f 2` |
3 | # Since there may be a printable character in front of the <?xml, we have to handle that |
4 | XML_SUBPOS=`awk -v a="$XML_MATCH_STR" -v b="<?xml" 'BEGIN{print index(a,b)}'` |
5 | let XML_START="$XML_MATCH_POS + $XML_SUBPOS - 1" |
6 | |
7 | XML_END=`strings -a -t d $ALL_SET | grep '</Roland_Fr>' | cut -d ' ' -f 1` |
strings liefert Leerzeichen vor den Zahlen, die beim cut nicht berücksichtigt werden, mit etwas awk geht es wohl
1 | XML_MATCH_POS=`strings -a -t d $ALL_SET | grep '<?xml' | awk '{print $1}'` |
2 | XML_MATCH_STR=`strings -a -t d $ALL_SET | grep '<?xml' | awk '{print $2}'` |
3 | # Since there may be a printable character in front of the <?xml, we have to handle that |
4 | XML_SUBPOS=`awk -v a="$XML_MATCH_STR" -v b="<?xml" 'BEGIN{print index(a,b)}'` |
5 | let XML_START="$XML_MATCH_POS + $XML_SUBPOS - 1" |
6 | |
7 | XML_END=`strings -a -t d $ALL_SET | grep '</Roland_Fr>' |awk '{print $1}'` |
73
Die Erklärung zu dem File liegt im Verzeichnis bei den beiden Bach Script Dateien. Dort liegt eine TXT Datei mit der Erklärung.und die bytefolge am Anfang ist ab dem 5 oder 6 Byte unterschiedlich, damit wird die Art der Datei unterschieden, steht auch in der TXT Datei, kann es sein, das die Routine deswegen nicht läuft, weil der Ursprung im Unix Script liegt. Angeblich soll das unter ununterbrochen laufen, aber da fehlt mir jegliche Erfahrung in den unterschiedlichen linuxversionen Gruß Christian
Die Erklärung zu dem File liegt im Verzeichnis bei den beiden Bach Script Dateien. Dort liegt eine TXT Datei mit der Erklärung.und die bytefolge am Anfang ist ab dem 5 oder 6 Byte unterschiedlich, damit wird die Art der Datei unterschieden, steht auch in der TXT Datei, kann es sein, das die Routine deswegen nicht läuft, weil der Ursprung im Unix Script liegt. Angeblich soll das unter ununterbrochen laufen, aber da fehlt mir jegliche Erfahrung in den unterschiedlichen linuxversionen Gruß Christian..-- ich habe die Txt datei noch einmal beigefügt
Ich bedanke mich einfach schon mal bei den Leuten, die mein Problem schon mal aufgegriffen haben. Danke schön Christian.....
Habe beide Skripte mal angepasst und es laufen lassen, Ergebnis ist im Anhang. Sieht für mich passend aus. Angepasste Skript sind mit enthalten.
Heureka...... ist ja super, wenn ich jetzt noch erfahre, wie ich die Dateien unter welchem Linux ausführen muss, bin ich richtig happy. Für mich ist es nämliche immer große Muhe jedes mal, wenn ich *.FR4 Dateien oder UPA-Dateien von Hand am Instrument zerlegen muss. Kann ich die Dateien, die du angepasst hast unter Linux MINT ausführen ?? oder wie geht das ??? weitere Frage wäre gibt es auch die Möglichkeit die Datei irgendwie zu übersetzen oder ähnlich um so eine Script Datei auch unter Windows laufen zu lassen? Lieber Gast, lasse dich drücken und danke schon mal für deine Hilfe das gilt natürlich auch für die anderen freundlichen Helfer hier Gruß Christian aus der Nähe von Husum
Es sollte auf fast jedem Linux laufen, wie weiter oben schon von anderen geschrieben, sind ein paar Dinge wichtig. Aufführungrechte setzen chmod u+x skriptname Pakete mit xmllint und strings müssen installiert sein, manche Linuxe installieren es automatisch mit, bei anderen muss man ggf. etwas suchen. Linux Mint kann ich nichts sagen, hatte hier Debian, strings ist im binutils Paket, xmllint im libxml2-utils Die Quelldateien hatte ich noch umbenannt, damit die beiden Skripte sie fressen. So ohne weiteres wird man es nicht unter Windows zum laufen bekommen, würde mal sagen, neu programmieren in Powershell o.ä. alternativ die Linuxshell, die bei Windows nun mitgeliefert wird, aber da bin ich raus. in dem einen Skript aus der 7z von mir ist noch etwas Debug, set -x macht das Skript sehr gesprächig und bei read a halten es an, bis enter gedrückt wird. Das kann beides raus.
Hallo "Bastler", ich danke dir für deine Bemühungen, ich will mal sehen, ob ich das irgendwie auf die Reihe bekomme und melde mich hier auf jeden Fall noch mal zurück. Linux ist nun mal nicht meine Welt und ich müsste dort wahrscheinlich erst mal tief einsteigen. Kann man dich irgendwie per PN-Mail erreichen ?? bei mir ist das kein Problem unter meinem AFU-Call dd7lp findet man mich überall Gruß Christian
Hallo, "Bastler" und ich melde mich noch einmal bei dir. Ich habe den von dir geänderten Script auch auf meinem Notebook unter Linux MINT zum Laufen gebracht. Ich habe dort noch die Bibliotheken geladen und im Script noch ein wenig geändert, sodass die Ausgabe im erstellten Verzeichnis jetzt stimmig ist. Dafür, dass ich keine Ahnung von dem "Zeug" habe, freue ich mich zumindest, dass es einigermaßen läuft. Es ist zwar noch nicht so komplett, wie ich es haben möchte, aber ich kann damit arbeiten. Die erstellten Dateien in den Verzeichnissen tragen jetzt alle Nummern und ich muss mal sehen, wie ich den die Namen aus einer Tabelle zuweise. Jedenfalls schon allemal besser als zig-hundert mal die kleinen Tasten am Instrument zu tippen. Danke noch einmal für deine Bemühung gestern, das hat mich schon mal ein ganzes Stück vorn´an gebracht. Gruß aus der Nähe von Husum Christian dd7lp
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.