Linuchs: Virtueller Chor / Orchester (Corona Notbehelf)

Liebe Versammlung,

gerne möchte ich für mein Musikprojekt eine Plattform einrichten. Das habe ich mir so gedacht:

  • die Melodie wird als MP3 (Master) auf die Webseite gestellt, jeder kann sie herunterladen.
  • mit Audacity (Musik-Editor für Windoof und Linucks) in die erste Spur einlesen und den eigenen Gesang / Instrument als eigene Spur hinzufügen.
  • Die eigene Spur als MP3 mir zusenden, ich prüfe und stelle sie zusätzlich auf die Homepage.

Nun die Frage: Hat jemand damit Erfahrung?

Gerne möchte ich per Checkbox Spuren markieren und dann gemeinsam ablaufen lassen. Bevor ich da viel Arbeit investiere, möchte ich abschätzen, ob die gleichzeitig zu starten sind (per Javascript?) und dann auch synchron ablaufen?

Musikalische Grüße, Linuchs

  1. Hallo Linuchs,

    aus dem Browser wirst Du die Dreistigkeit nicht steuern können, das ist ja eine lokal laufende Anwendung.

    Aber Audacity hat eigenes Scripting

    Good Lack, wie die Maler sagen...

    Rolf

    --
    sumpsi - posui - obstruxi
  2. Lieber Linuchs,

    • mit Audacity (Musik-Editor für Windoof und Linucks) in die erste Spur einlesen und den eigenen Gesang / Instrument als eigene Spur hinzufügen.

    warum nicht die MP3 mit Kopfhörer anhören und dazu den Gesang aufnehmen? Das kann man mit Audacity tun, oder auch mit einer anderen Software. Die Aufnahme bekommst dann Du zugschickt und kannst sie verarbeiten.

    Gerne möchte ich per Checkbox Spuren markieren und dann gemeinsam ablaufen lassen. Bevor ich da viel Arbeit investiere, möchte ich abschätzen, ob die gleichzeitig zu starten sind (per Javascript?) und dann auch synchron ablaufen?

    So etwas wie ein JavaScript-Mischpult?

    Liebe Grüße

    Felix Riesterer

    1. Lieber Felix,

      So etwas wie ein JavaScript-Mischpult?

      Geht das? Ich dachte nur daran, per Javascript die vorher angeklickten Spuren gleichzeitig zu starten. In der Lautstärke kann man sie dann einzeln regeln.

      Habe aber Zweifel, ob die synchron laufen.

      Wie man Javascript mit audio verbindet, habe ich schon getestet. Erstmal setze ich alle audios's auf halbe Lautstärke, damit man beim Start nicht umgebrüllt wird.

      Und wenn man ein neues Lied startet, muss das laufende natürlich gestoppt werden:

      Festival Shanty-Abend

      Gruß, Linuchs

  3. Die Idee scheint sich schon ausgeträumt zu haben, per Javascript kann man nicht mehrere Audios starten:

      function starteAudios( id ) {
        var arr_obj = document.getElementById( id ).getElementsByTagName( "audio" );
    //  alert( "[" +arr_obj.length +"] Audios gefunden" );
        arr_obj[0].play();
        arr_obj[1].play();
      }
    

    Fehlermeldung:

    AbortError: The fetching process for the media resource was aborted by the user agent at the user's request.

    Einzel-Start funktioniert. Gibt es einen Aus- oder Umweg?

    1. Hallo,

      Die Idee scheint sich schon ausgeträumt zu haben, per Javascript kann man nicht mehrere Audios starten:

        function starteAudios( id ) {
          var arr_obj = document.getElementById( id ).getElementsByTagName( "audio" );
      //  alert( "[" +arr_obj.length +"] Audios gefunden" );
          arr_obj[0].play();
          arr_obj[1].play();
        }
      

      Fehlermeldung:

      AbortError: The fetching process for the media resource was aborted by the user agent at the user's request.

      the fetching process hört sich danach an, als ginge es um das Laden der Audio-Ressource vom Server, das anscheinend erst stattfindet, wenn man den Audio-Track abspielen möchte. Wie sieht es aus, wenn du dem Browser Gelegenheit gibst, die Audio-Daten in Ruhe vom Server anzufordern?

      Disclaimer: Ich weiß nicht, wie das konkret zu realisieren wäre. Es ist nur eine Idee für die generelle Marschrichtung.

      Live long and pros healthy,
       Martin

      --
      Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
      1. Hallo Martin,

        als ginge es um das Laden der Audio-Ressource vom Server, das anscheinend erst stattfindet, wenn man den Audio-Track abspielen möchte.

        Ja. Audio-Dateien sind groß und werden bei mir erst nach dem Anklicken geladen preload="none". Ist ja bei Einzel-Stücken kein Problem. Noch während des Ladens werden sie schon abgespielt.

        Danke für deinen Denk-Anstoß, ich werde wohl eine Pause einlegen müssen zum vollständigen Laden der betreffenden Dateien und erst danach den Startschuss abfeuern.

        Scheint auch im Sinne des Synchron-Laufs zu sein. Was wäre, wenn beim Laden eine Spur hängt?

        Linuchs

        1. n'Abend Kalle,

          als ginge es um das Laden der Audio-Ressource vom Server, das anscheinend erst stattfindet, wenn man den Audio-Track abspielen möchte.

          Ja. Audio-Dateien sind groß und werden bei mir erst nach dem Anklicken geladen preload="none".

          naja, "groß" ist relativ. Für Nutzer am heimischen PC mit einer 50Mbit-Leitung sind 5MB ein Klacks, für Mobil-Nutzer vielleicht eine Geduldsprobe.

          Noch während des Ladens werden sie schon abgespielt.

          Aber anscheinend bricht der Browser das Laden ab, wenn in der Zeit ein weiteres audio-Element angespielt werden soll. Möglicherweise ist das gleichzeitige Spielen von mehreren audio-Elementen auch gar nicht vorgesehen.

          Scheint auch im Sinne des Synchron-Laufs zu sein. Was wäre, wenn beim Laden eine Spur hängt?

          Das Problem ist, dass du die Synchronität nicht technisch ausdrücken kannst. Der Browser würde also im besten Fall versuchen, jeden einzelnen Track so gut wie möglich zu spielen, ohne auf parallel laufende Tracks Rücksicht zu nehmen.

          Vielleicht wäre es eine Möglichkeit, die einzelnen Spuren bereits serverseitig zusammenzumischen und als eine Spur zum Client zu übermitteln.

          Live long and pros healthy,
           Martin

          --
          Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
          1. Moin Martin,

            Vielleicht wäre es eine Möglichkeit, die einzelnen Spuren bereits serverseitig zusammenzumischen und als eine Spur zum Client zu übermitteln.

            Daran habe ich auch schon gedacht. Das wäre so wie die Speisekarte in einem Pizza-Restaurant. Du hast nur sieben Zutaten, aber die Kombinationen ergeben drei A4-Seiten. Eigentlich nicht so mein Ding ...

        2. Danke für deinen Denk-Anstoß, ich werde wohl eine Pause einlegen müssen zum vollständigen Laden der betreffenden Dateien und erst danach den Startschuss abfeuern.

          Bin wieder dran am Thema (Garten hatte Vorrang).

          Letzten Donnerstag gab es eine virtuelle Chorprobe mit WhattsApp. Akkordeon spielte Melodien ein und anschließend nahmen einige Sänger ihren Gesang auf und sendeten ihn.

          Zum Schluß hat auch der Chorleiter zum vorhandenen Song stumm dirigiert schmunzel

          ...

          Leider finde ich kein (vollständiges) Verzeichnis, wie <audio> mit Javascript abgefragt und kontrolliert werden kann.

          1. Ich möchte pro markierter Audio-Datei feststellen, ob sie vollständig geladen ist. Gilt bei dieser Abfrage eine bereits im Cache vorhandene Datei als geladen?

          2. Für die nicht geladenen load anzustoßen.

          3. Wenn alle selektierten geladen sind, dann play.