Projekt: Lernsoftware für Keyboard (Musik)

melmager

Erfahrenes Mitglied
Ich starte hier mal ein Versuch. Tutorials hat ja entweder Postings zu kleine Code Ausschnitten
Nach dem Motto warum geht das nicht oder wie soll ich das machen
oder den Erklärbär geben - sprich ein Tutorial schreiben.

Ich versuche mal hier eine neue Version - ich habe ein Projekt angefangen und stelle ein Paar Fragen dazu oder erzähle warum ich zu der Lösung gekommen bin. Zum Schluss soll ein fertiges OpenSource Programm bei rum kommen. Eventuell wollen ja auch ein Paar andre mit einsteigen bei der Entwicklung.
Im prinzip wenn Ihr mögt eine Online Begleitung zum Mitlesen oder Mit Hilfen an Weggablungen - wie auch immer.
jedenfalls werde ich alle Fragen die ich so habe mit dem Thread hier mal verlinken :)
Ist eventuell auch eine Idee hier etwas mehr Dynamik reinzubringen - schaun wer mal.
Wenn Ihr auch andre an euren Projekt heilhaben wollt und das für ne geile Idee haltet - einfach Idee aufgreifen und nachmachen - wenn ich Schwein habe erzeuge ich einen Trend hier :)

So genug zur Idee projekte bei Tutorials, kommen wir zu meinem Projekt:
Vor ein paar jahren hatte ich mal die Idee - man müsste Klavier spielen können - also losgezogen Keyboard und Lehrbücher besorgt. Das Keyboard hatte eine USB Midi Schnittestelle - und die nächste dumme Idee war - hey warum nicht mal PC und Keyborad verbinden - da gibt doch sicher Hilfreiche Programme die dir helfen können beim lernen.
Ein paar gibts und keins hat mir gefallen und das Unglück nahm seinen Lauf: ich fing an mit Java ein Lehrprogramm hochzuziehen.
Unterm Strich steht das Keybord heute in der Ecke und ich habe mehr Java gelernt :)
Mittlerweile bin ich bei der dritten Version die andren habe ich angefangen und im Laufe der Zeit habe ich dazugelernt und auch festgestellt das die Lösung so nicht passt also von vorn :(

Das kind hat auch einen namen: Grabbeloeven - ist ein Plattdeusches Kunstwort übersetzt: BefingernÜben

Zuerst haben wir die schon erwähnte MIDI Schnittstelle und Java eine entsprechende Classen um sowas Programmtechnisch anzubinden.
ich nutze also Package javax.sound.midi damit kann man MIDI Meldungen senden und auch empfangen.
Dann gibt es Midi nicht nur als protokoll sondern auch in Dateiform gegossen
das Package kann zwar MIDI Files lesen aber nicht schreiben - da betrete ich also Neuland.
Das nächste Format um Musik darzustellen das ich unterstützen möchte ist MusicXml.
Eine Darstellung von Musik als XML File.
Wir haben es also auch mit XML Verabeitung zu tun. Ich nehme da XOM und StAX als Grundlage - und ich sags mal vorweg beides arbeitet im Hintergrund ich schreibe da parallel ne eigene XMLJava Bibliothek
- derzeitiger Stand : Grundidee steht :) weil ich fand das geht doch einfacher mit XML verarbeitung in Java
(grössenwahnsinnig :) )
Wo ich grade am Knobeln bin und zwar in der Konzeption - Wie setzt man Lernen Programmtechnisch um ?
Einmal wie hier als Tutorial / Lesson / Lernabschnitt oder/und als Zettelkasten wie man sie vom Vokabelpaucken kennt.
Den zettelkasten programmtechnisch umzusetzen kann ich mir noch vorstellen aber die lernabschnittsache da habe ich keine Idee zu.
Was würde euch denn noch als Lerntechniken einfallen die man programmtechnisch umsetzen könnte ?

soweit Part 1 von 1000 :) :)
 
Zuletzt bearbeitet:
Kannte MusicXML vorher nicht und wikipedia ist da eher bissel dürftig.
Heißt das theoretisch können komplette Lieder im XML Format vorliegen?

Ansonsten bin ich eher der Fan von kurzen präzisen hilfen, weshalb ich den Zettelkasten nicht schlecht finden würde.
Kommt im Prinzip auf das Thema drauf an welches der Stoff lehren soll.
 
@Spyke ja mit MusikXML kann man komplette Lieder darstellen. Wenn wir schon bei dem Format sind :
Lilypond hat ein tool das man mit Musicxml füttern kann und am ende kommt ein Notenblatt (pdf) raus :)
Umgekehrt gibt es auch was. Ein Programm (in Java) das per OCR Noten erkennt Nennt sich Audiveris.
Darum kümmer ich mich (wenn überhaupt) ganz zum Schluss.
 
Wie setzt man Lernen Programmtechnisch um?
Programmtechnisch kann ich dir nicht weiterhelfen. Prinzipiell musst du aber als erstes ein genaues Bild davon haben, wie du über das Programm lehren willst. Ich habe fast zwei Jahre lang E-Gitarre mit Rocksmith 2014 gelernt. War leider pures Learning by Doing. Frei nach dem Motto: Hier hast du ein Lied und eine visuelle Darstellung und spiel das. Wobei Klavier zu lernen ist von der Fingerfertigkeit einfacher (oder ich habe es damals als Jugendlicher als einfacher empfunden).
Lange Rede, kurzer Sinn, bin neugierig geworden, wie du dir den Lehrprozess vorgestellt hast. Vielleicht wird es was Besseres, als das, was momentan so zu haben ist.
 
Ich habe mich erstmal für folgende Umsetzung des Lernens entschieden:
Ich werde ein Kombination aus "Zettelkasten" und Punktevergabe umsetzen.
Punktevergabe insperiert von Jump und Run Spielen. Wenn man den richtigen Ton in der richtigen Länge trifft, volle Punktzahl.
Am Ende des Musikstückes gibst dann halt eine gesamt Punktzahl und wenn man dicht an der möglichen Punktzahl dran ist kommt das Zettelkasten
prinzip zum tragen. Bedeutet irgendwann in den nächsten "Übungsstunden" wird das Stück wider abgefragt und wenn dann wider geschafft wird der Zeitraum der erneuten Vorlage höher und beim 5 Durchgang geht das Programm davon aus des das Stück sitzt und fällt aus den Übungsvorlagen raus.

Im moment gehts etwas schleppend voran da sich ein andres Coderprojekt vorgedrängelt hat :)
Aber ich bastle derzeit an der grafischen ausgabe (2D Java). Ich zeichne alle Notensymbole selber, da sich eine nutzung eines Notenzeichensatzes als unpraktikabel herausgestellt hat.
 
Zurück