Abschlussprojekt: Simulationssoftware

  • Hallo liebe Leute !


    Ich habe in meinem kommenden letzten Lehrjahr eine Abschlussarbeit zu bewerkstelligen.


    "Ihr könnt auch euer Hobby mit in das Projekt miteinbinden, das gibt Pluspunkte."


    So ich hole mal kurz aus: Ich programmiere in JAVA und das Ziel ist eine Simulationssoftware zu schreiben. gut wäre eine eigenständige Simulation - die ohne Fremdeinwirkung etwas bewirkt.


    Anfrage an euch im Forum - was würdet Ihr unter Simulation von einem Schlagzeug verstehen? einen Drumcomputer? oder Tools wie Addictive Drums, etc. ?


    Ich habe mir Gedacht ein Programm zu Schreiben, welches einen Schlagzeugbeat gibt, anschließend sagt man über einen Button, dass man die Stilrichtung verändern möchte, z.b. Funk, Jazz, Metal oder Rock, Pop oder Classic - und das mittels eines Algorithmus der aktuelle Beat sich per fill/übergang/was auch immer sich der neuen Stilrichtung anpasst - und das mehrere Male meinetwegen.


    Oder eben, dass man auch die Sounds verändern kann.


    Für mich ist nur das Problem ich weiß nicht genau was zu hoch gegriffen ist, oder vllt doch unglaublich schwer umzusetzen ist- daher - habt Ihr noch irgendwelche Ideen was man so bezüglich Schlagzeug und Simulation programmieren könnte?


    Ich würde mich sehr über andere Vorschläge, Ratschläge und Ideen freuen.


    Gruß
    Martin

  • Hey,


    also das was du dort beschreibst - anpassen an Beats etc. - fällt gemeinhin nicht in den Bereich, den ein Informatiker gemeinhin unter dem Stichtwort "Simulation" versteht.
    Ziel einer Simulation ist es meistens, ein bestehendes System nachzubauen und an diesem Modell Beobachtungen vorzunehmen. Insbesondere möchte man beobachten,
    was passiert wenn man die Parameter der Simulation ändert.


    Ich geb dir mal ein Beispiel: Du hast ein Trommelfell und möchtest wissen, wie es sich auf den Ton der Trommel auswirkt wenn du mit mehr oder weniger Kraft auf das Fell schlägst.
    Hierzu müsstest du das Klangverhalten einer Trommel zuerst mathematisch beschreiben können und dann den ein Szenario erstellen, in dem du die Kraft unabhängig von den anderen Parametern ändern kannst. Dann kannst du dir anschauen, wie sich z.b. der Krafteinsatz auf die Tonhöhe auswirkt.


    Alles in allem hat Soundprogrammierung immer sehr viel mit Mathematik und Physik zu tun - wenn du dort etwas halbwegs anständiges machen möchtest, ist vorausgesetzt dass du dich in den Bereichen einigermassen gut auskennst oder dich einlesen möchtest.


    Was davon für dich zu hoch gegriffen ist kannst nur du selbst wissen, da bringt dich dieses Forum auch nicht weiter.

  • Alles was Simulation heisst, hat viel mit Mathematik und Physik zu tun.


    Ich will ja nicht ätzen aber wenn du von "Lehrjahr" (Ausbildung) redest, scheint mir einiges zu hoch gegriffen zu sein.
    Wichtig wäre natürlich zu wissen, was genau die Aufgabenstellung ist, wieviel Zeit u.s.w.
    Eine wichtige Aufgabe scheint aber die selbstständige Themenfindung zu sein.


    Eine Idee wäre das bekannte Feder-Masse-Dämpfer-System zu erweitern damit es (vereinfacht) auf eine Trommel passt. (Feder -> Fell, Masse -> Kessel, Dämpfung -> Luft bzw. Reibung).
    Viel Spaß mit dem DGL ;)


    P.S.: mausers Beispiel hinkt ein bisschen, kommt aber aufs gleiche raus. Nur hat die Kraft nix mit der Schwingungsfrequenz sondern mit der Amplitude zu tun.

  • Ich hab vor meinem Studium auch ne Ausbildung gemacht. Und in dem Monat ist es, angenommen du hast genügend Kenntnisse über Differentialgleichungen und die diversen Transformationen die sicher Hilfreich dabei wären, würde alleine die Zeit nicht ausreichen sowas zu machen.


    Mein Professor hat jahrelang in der Forschung gearbeitet und hat sich primär mit Mustererkennung (Sprachverarbeitung u.a.) beschäftigt. Er hat da ein Projekt am Gange, ich bekomm nicht mehr genau zusammen was die machen wollen, aber da geht es um Trommeln, Analyse usw... das sind 4 Master Informatik Studenten die das über ein Jahr machen und die werden aller Vorraussicht nach nicht fertig werden damit.


    Hast du dir schonmal gedanken gemacht wir der Algorythmus ausehen würde? Das einzige was mir machbar erscheint ist per Knopfdruck Funk, Jazz, Metal oder Rock, Pop oder Classic Samples abzuspielen und von jedem Sample auf jedes andere Sample ein Break einzuspielen... Da musst du nur nen haufen Samples einspielen. Und ich denke das schießt irgendwie an so einem Abschluss vorbei.



    Klingt vielleicht doof, aber wäre nicht evtl. ein Java - Spring CMS für ne Band sinnvoller für dich (und deine Zukunft als Programmierer) und für deine Band, die du hast oder vielleicht mal haben wirst.

  • Im Profil steht was von Ausbildung zum Fachinformatiker.
    (das man solche wichtgen Infos immer erst suchen und ergugeln muss ... :rolleyes: )


    Da ist mit Simulation wohl eher sowas gemeint:
    http://www.entropicorder.net/g…kles-virtual-drum-set.php


    Dafuer braucht man keine DGLs.


    Wenn man etwas mehr Zeit hat, koenntest Du vielleicht noch was mit externer Hardware machen.
    Das macht bestimmt Eindruck.


    Z.B. Wii Controller (kann man mit Bluetooth Adapter an PC anpassen) als Stick oder Schlegel..
    Kann ja auch ein Mallet Instrument sein. Oder Gongs...



    - Juergen -


    Edit: Eben gesucht: gibt's alles schon. Einfach mal bei Youtube "Wiimote Drums" eingeben.

    Gaffatape und Chewing Gum kleben die halbe Welt zusamm'

    Einmal editiert, zuletzt von Beathoven ()

  • Wenn Beathoven recht hat, mach ich mir Sorgen um die zukünftigen Fachinformatiker. ;) (Scherz!)
    Simuliert wird in dem Beispiel jedenfalls nix. Wenn's so ist, hau deinem Ausbilder auf die Finger, dass er die richtigen Begriffe verwenden soll und hab Spaß beim Programmieren.

  • Hey Leute.


    Sind ja tolle Reaktionen mit dabei :)
    Also das Thema der Simulation kann ich mir selbst aussuchen, ja.
    Gedanken habe ich mir noch nicht allzuviel gemacht, da das Projekt erst nächstes Jahr startet. Glaub wir haben 6 Wochen Zeit, bin mir aber nicht sicher.
    Das mit der wiimote gefällt mir sehr, sollte umsetzbar sein.
    Da könnte man die Verbindung mit der schlagstärke aufgreifen.


    Das Physik und Mathematik eine große rolle Spielen, dessen bin ich mir bewusst.


    Ich werde mal noch etwas googeln und mich mehr einlesen.
    Eure Ideen gefallen mir sehr. Lade ich zum testen auch gerne später hoch. Hehe
    Gesendet von meinem HTC Desire mit Tapatalk 2

  • Falls du vor hast eine "Trommel" zu simulieren, findest vielleicht einen Einstieg bei den Links in folgendem Thread: Wie entsteht ein Ton?


    Zitat

    Ich habe mir Gedacht ein Programm zu Schreiben, welches einen
    Schlagzeugbeat gibt, anschließend sagt man über einen Button, dass man
    die Stilrichtung verändern möchte, z.b. Funk, Jazz, Metal oder Rock, Pop
    oder Classic - und das mittels eines Algorithmus der aktuelle Beat sich
    per fill/übergang/was auch immer sich der neuen Stilrichtung anpasst -
    und das mehrere Male meinetwegen.


    Falls du etwas in der Art verfolgen möchtest, könntest du ggf. darüber nachdenken, ein Software zu entwickeln, die zu einem Blues (was den Songaufbau angeht, lieber leicht anfangen) halbwegs geschmackvoll (und nicht unbedingt deterministisch) spielen kann und auf die Dynamik der anderen Instrumente auch entsprechend eingeht. Das ganze könnte z.B. auf Grundlage von "Hidden-Markov Modellen" oder "Neuronalen Netzen" dem Programm beigebracht werden. Oberbegriff hier wäre: http://de.wikipedia.org/wiki/Maschinelles_Lernen

    Einmal editiert, zuletzt von openwater ()

  • Falls du vor hast eine "Trommel" zu simulieren, findest vielleicht einen Einstieg bei den Links in folgendem Thread: Wie entsteht ein Ton?



    Falls du etwas in der Art verfolgen möchtest, könntest du ggf. darüber nachdenken, ein Software zu entwickeln, die zu einem Blues (was den Songaufbau angeht, lieber leicht anfangen) halbwegs geschmackvoll (und nicht unbedingt deterministisch) spielen kann und auf die Dynamik der anderen Instrumente auch entsprechend eingeht. Das ganze könnte z.B. auf Grundlage von "Hidden-Markov Modellen" oder "Neuronalen Netzen" dem Programm beigebracht werden. Oberbegriff hier wäre: http://de.wikipedia.org/wiki/Maschinelles_Lernen

    Aber das ist ja das was ich meinte, HMM und NN nutzt man ja auch in Mustererkennung oder zur Semantik Analyse in Sprache und so... Das ist meines Erachtens nicht eben in einem Monat programmiert.

  • Zitat

    Das ist meines Erachtens nicht eben in einem Monat programmiert.

    Zitat

    da das Projekt erst nächstes Jahr startet. Glaub wir haben 6 Wochen Zeit

    Also 6 Monate + 6 Wochen ;)


    Das geschmackvolle dynamische Zusammenspiel soll natürlich nur das erklärte Ziel sein. Bei einem solchen Ziel würde keiner erwartet, dass, nach der Zeit, das Programm 100% zufriedenstellend läuft. Es wäre eher eine Machbarkeitsstudie. Zu zeigen, dass es funktioniert sollte in der Zeit durchaus drin sein. Das Programm muss ja auch nicht zwangsweise in Echtzeit ablaufen, wenn man darauf hinweist, dass die verwendeten Teile prinzipiell dazu in der Lage wären.


    1) Tempoanalyse durchführen.
    2) Dynamik-Level anhand eines Envelopers der Amplitude (und vielleicht wieviel im Frequenzbereich los ist) festlegen.
    3) Der semantische Ablauf des Songs wäre durch das Standard-Blues-Schema vorgegeben (sobald die Eins gefunden ist - wann welcher
    Harmonieübergang kommt ist ja ebenfalls bekannt).
    4) Trainingsdaten und Model sollten vielleicht noch in Grundbeat, Fill, Auftakt, oder ähnliches kategorisiert werden.
    5) Die Trainingsdaten könnten ein zufälliger Vektor von Schlägen (für einen Durchgang) sein, die man (auf beispielsweise 16tel) quantisiert anbietet und dann von [0.0;1.0] bewertet werden. Angefangen bei Grundbeats wird dann das Model erweitert - Fills ersetzen dann von Zeit zu Zeit natürlich den Grundbeat. Wann diese geschieht und welche Fills geschmachvoll sind, sollte natürlich ebenfalls erlernt werden und muss dann im Modell entsprechend berücksichtigt werden...


    Wenn man sich seine Entwicklungsumgebung sowie Punkt 1-3 (inkl. der Audio-Ein- und Ausgabe) vorher zurechtlegt, sehe ich doch durchaus die Chance, dass es in der vorgegebene Zeit machbar ist.


    Lustig an sowas ist immer, wenn man verschieden trainierte Programme gegeneinander antreten lässt und ein Publikum entscheidet, welches besser ist - auf die Art und Weise kommt man dann auch leicht an weitere Trainigsdaten :D

    4 Mal editiert, zuletzt von openwater ()

  • Also, das mit der Machbarkeitsstudie klingt vernünftig. Ich kenne das von Ausbildungen aber eher in die Richtung das man Projekte durchführt, einige haben Fileserver aufgesetzt, andere ganze Labore eingerichtet. Das war aber technisch alles nicht sonderlich Anspruchsvoll (Bei mir war es aber IT - Systemelektroniker). Sobald es um Analyse von tönen geht, finde ich das schon sehr Anspruchsvoll...


    Nur so wie du es beschreibst könnte das machbar sein. Nur zu welchem Ergebnis kommt man dann ? Sind nicht in den 6 Wochen auch noch die Zeit für die Erstellung Dokumentation enthalten? Ich würde locker ne Woche für ein UML einplanen, vorallem weil man mit ordentlicher Planung nachher Zeit spart. 4 Wochen bleiben dann zum programmieren.


    Vielleicht sollte er sich vorher informieren welche Open Source libs es so für Java gibt die evtl. einige der krassen Sachen übernehmen .

  • Also was ich richtig sinnvoll finden würde, wäre eine animierte BD, wo man aus einem Koffer mit BD-Mics eins aussuchen kann und im Kessel (halbwegs) frei plazieren kann - es sollte der zur jeweiligen Position und dem Mikro passende Sound ertönen. Wenn Du das in 6 Wochen machen musst, dann müsste man wohl für jeden Punkt und jedes Mikro samples reinfüttern - aber vielleicht kannst Du ja auch etwas bauen, dass aus einigen wenigen Basis-Positionen die anderen frei wählbaren Positionen interpoliert... Ich hatte mir sowas immer vorgestellt für meine Experimente mit der Mikro-Position in der BD (ich kanns aber definitiv nicht programmieren.


    (Noch geiler wäre es, wenn nicht nur MIc und Position, sondern auch das Schlagfell wählen könnte - die Klassiker eben: Ambaco, PS3, EMAD, Superkick2 usw.)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!