5 Stimmen

Wellenform-Visualisierung in Ruby

Ich bin dabei, ein Projekt zu starten, das Audiodateien aufnimmt und bearbeitet, und ich bin auf der Suche nach einer guten Bibliothek (vorzugsweise Ruby, aber auch alles andere als Java oder .NET) für die On-the-fly-Visualisierung von Wellenformen.

Weiß jemand, wo ich mit meiner Suche beginnen sollte?

3voto

hoyhoy Punkte 6113

Das sind eine Menge Daten, die in einen Browser strömen. Flash- oder Flex-Diagramme sind wahrscheinlich die einzige Lösung, die speichereffizient sein wird. Javascript-Diagramme neigen dazu, bei großen Datensätzen zusammenzubrechen.

2voto

Nick Haddad Punkte 8507

Wenn Sie eine Audiowellenform anzeigen, müssen Sie die Originaldaten in irgendeiner Weise reduzieren, da in einer Audiodatei in der Regel mehr Daten als Pixel auf dem Bildschirm vorhanden sind. Die meisten Audio-Editoren erstellen eine separate Datei (eine so genannte Peak- oder Übersichtsdatei), in der eine Teilmenge der Audiodaten (in der Regel die Spitzen und Täler einer Wellenform) für die Verwendung in verschiedenen Zoomstufen gespeichert wird. Wenn Sie dann über einen bestimmten Punkt hinaus zoomen, beziehen Sie sich auf die rohen Audiodaten selbst.

Hier finden Sie einige gute Artikel zu diesem Thema:

Wellenform-Anzeige

Erstellen einer Audiowellenformanzeige

Was den Quellcode anbelangt, würde ich empfehlen, sich die Audacity Quellcode. Die Wellenformanzeige von Audacity ist ziemlich gut und führt höchstwahrscheinlich eine ähnliche Art der Datenreduzierung beim Rendern der Wellenformen durch.

2voto

1voto

hoyhoy Punkte 6113

Die andere Möglichkeit ist die serverseitige Generierung der Wellenformen mit GD oder RMagick. Aber viel Glück bekommen RubyGD zu kompilieren.

1voto

endolith Punkte 23212

Processing wird häufig zur Visualisierung verwendet und verfügt über eine Ruby-Portierung:

https://github.com/jashkenas/ruby-processing/wiki

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X