- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 16

Thema: Marsyas

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast
    ich habe OOP bereits vor knapp 20 Jahren probiert (Java, C++) und dann angeekelt zur Seite geschmissen.
    Alles was mit OOP geht, geht auch mit ANSI C.
    Wenn ich OOP sehe, muss ich mich schwer zusammenreißen, dass ich nicht kot**, das gilt schon fü Java und C#, erst recht aber für C++.

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Klar geht es auch in C. Wie gesagt, vor einem Jahr hätte ich dir noch voll zur Seite gestanden. Aber was mit C geht geht auch mit Assambler. Ist eben immer die Frage wie intensiv man Aufwand betreiben will und ich bin mittlerweile auf dem Punkt angelangt, dass ich lieber mein Projekt realisiere wie mich um Speicheraddressierung usw. zu kümmern und da kann ich nur sagen, durch C++ gibt es viel Code den ich nicht mehr schreiben muss weil die Klassen das erledigen.

    Aber wie ich auch schon sagte, ich will hier niemand bekehren! Ich habe für mich jetzt OOP entdeckt und bin ziemlich Happy damit. Nicht mehr und nicht weniger.

  3. #3
    HaWe
    Gast
    Schade, ich hätte gerne mit gemacht, auch mit FFT, Bandfiltern und Cross--Correlation, aber niemals mit C++.
    Trotzdem viel Erfolg.


    ps,
    auch globale Variablen sind ja kein Thema, sie kommen einfach als globale Variablen in den lib-Header-File, oder man übergibt sie zwischen den lib-Funktionen als lokale Funktions-Parameter, fertig.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Das Eine schliesst ja das Andere nicht aus! Da du ja meines Wissens nach auch mit g++ compilierst (oder hatte ich dich da falsch verstanden?) ist ja schnell ein Wrapper gebastetlt. Ob da hinten dran nun C++ steckt oder nicht muss dich ja nicht kümmern.

    - - - Aktualisiert - - -

    Globale Variablen an und für sich sind auch weniger das Thema. Allerdings war es bisher bei meiner Arbeit mit der Soundkarte so, da hatte ich diese eine Variable und die Funktionen haben dann immer genau auf diese Eine zugegriffen. Das macht die Sache ziemlich statisch. So umgebaut wie ich es jetzt habe gibt es da keine globalen Variablen mehr. Die Klasse hat diese Variable eingebaut. Mit jeder neuen Instanz der Klasse wird auch automatisch eine neue Variable gesetzt und letzten Endes kann ich dann, ohne im Code der hpp etwas zu verändern, 20 Soundkarten gleichzeitig betreiben wenn ich das will. Klar das ist unrealistisch. Aber nehmen wir mal an ich treibe meinen Bot an die Stelle, wo er nicht nur hören können soll sondern auch noch orten können soll von wo das Geräusch kommt. Dann brauche ich ja zwei Soundquellen die dann die Lautstärke vergleichen können muss. Da wären am Raspi ja zwei externe und die Interne zur Ausgabe der Antworten ja interesssant. Macht also drei Soundkarten von der zwei gleichzeitig aktiv sein müssen.

    Klar, das kann man statisch natürlich genau so gut lösen. Aber so fühlt es sich für mich einfach besser an. Wie du sagst, siehst du OOP lässt du dir den Speiseplan des Tages noch einmal durch den Kopf gehen. Ich sehe OPP und finde es allerliebst.

    So hat jeder Seins . Wie auch zB, du magst Windows, ich mag es nichtmal in der VirtualBox ^^.

  5. #5
    HaWe
    Gast
    das ist sicher zuviel Aufwand, ich muss ja auch selber Zugriff auf wav files zum selber-öffnen und speichern eigener Sounds vom Micro haben, und damit fängt es ja schon an, wenn es keine arrays konstanter Länge sondern streams und strings und vectoren sind, und Arrays konstanter Länge müssen überall jederzeit greifbar und manipulierbar sein - doch mit den C++ Dingern kann ich komplett nichts anfangen, soweit waren wir ja schon mal.

    Also bei C++ in diesen Libs bin ich komplett raus, sorry.

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.01.2016
    Ort
    Saarbrücken
    Beiträge
    397
    Alles klar.

    - - - Aktualisiert - - -

    @botty

    Ich habe aber mit der Doku zu Marsyas noch so meine Schwieirgkeiten, muss ich gestehen. Zwar verstehe ich jetzt, was in dem Beispiel Hello World da passiert, aber die Dokumentation und die Verweise auf die Dateien zu interpretieren fällt mir irgendwie etwas schwerer.

    Wenn ich das richtig verstanden habe kann mir Energy die Energie/Lautstärke eines Signals ermitteln. Nur wo übergebe ich ihm dieses Signal? Da klemmt es irgendwie noch.

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.05.2015
    Beiträge
    69
    Du, ich war nur über die Klassen drüber gegangen, um zu sehen wie die Objekte konstruiert werden. In der Tiefe kenne ich mich nicht mit diesem Framework aus.
    Alledings ist in diesem Teil der Doku http://marsyas.info/doc/manual/marsy...cture-concepts
    die Architektur erklärt und eine Klassenübersicht findest Du hier http://marsyas.info/doc/sourceDoc/html/hierarchy.html.

    Das Ganze ist Datenflussorientiert, sprich Du hast immer Datenquellen am Anfang (AudioSource, SoundFileSource etc.). Dann kommen Prozessoren (Gain, NoiseGate etc) und zuletzt brauchst Du immer eine Senke (AudioSink, SoundFileSink) und du mußt diese Knoten in einer Serial oder Parallel einbetten. So sind die Netze immer aufgebaut.

    In Bewegung wird das Ganze versetzt, indem tick() am äußerstem Knoten, der typischer Weise ein Serial ist, aufgerufen wird. Dann ruft Serial die Quelle auf, die eine Menge an Samples erzeugt und die werden dann an die darauffolgenden Knoten im Netz an die myProcess()-Methode weiter gereicht und dort verarbeitet, bis sie zum Schluß bei der Senke landen und dann geht das Ganze von Vorne los beim nächsten tick()-Aufruf.

    Gruß botty
    Geändert von botty (15.07.2016 um 15:04 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress