Abo
  • Services:
Anzeige
Pedalboard.js: Kreischende Gitarren im Browser
(Bild: Nico Ernst/Golem.de)

Ab in die Praxis

Anzeige

Wer bereits einen Blick auf die Demo geworfen hat, hat ein stylisches Interface gesehen. Wer sie mit seiner E-Gitarre ausprobiert hat, wird sie unpraktisch gefunden haben. Doch das soll uns nicht weiter stören, für unsere eigene Demo wollen wir sowieso unser eigenes Skript schreiben.

Zuerst müssen dafür die Pedalboard-Dateien heruntergeladen werden, effektiv benötigt werden aber nur das dist- und das audio-Verzeichnis mit dem ir-Unterverzeichnis. Eine kleine HTML-Seite ist schnell aufgesetzt, in der per Script-Tag vorerst das compiled.js geladen wird.

In einem Script-Block wird dann der Reverb-Effekt zum Leben erweckt:

  1. function initBoard() {
  2. var stage = new pb.Stage();
  3. var ctx = stage.getContext();
  4. var board = new pb.Board(ctx);
  5.  
  6. reverb = new pb.stomp.Reverb(ctx);
  7. reverb.setLevel(0.5);
  8. board.addPedals([reverb]);
  9. stage.setBoard(board);
  10.  
  11. stage.input = new pb.io.StreamInput(stage.getContext());
  12. stage.input.addEventListener('loaded', function() {
  13. stage.route();
  14. });
  15. }

Das Stage-Objekt ist ein übergeordnetes Verwaltungsobjekt, das uns einen Audio-Context der Audio-API liefert. Interessant wird es mit dem Board-Objekt. Ein Board nimmt eines oder mehrere Pedale auf (das sind die Effekte) und "verdrahtet" sie miteinander. In einem Skript können mehrere Boards definiert und zur Laufzeit jeweils abwechselnd aktiviert werden. Zum Schluss wird eine Audioeingabequelle angefordert - und wenn sie erfolgreich aktiviert werden konnte, wird das modulierte Audiosignal ausgegeben.

Die Stärke des Effektes beziehungsweise dessen Einfluss auf das Signal wird durch entsprechende objekt-spezifische Funktionen gesetzt. Im Falle des Reverb-Effektes ist es setLevel(), der die Dauer des Hall-Effektes bestimmt. Der Wertebereich der Funktionen liegt zwischen 0 und 1.

Soweit ist die Angelegenheit recht einfach. Aber es gibt einen Haken, gerade weil das Skript nur in Chrome läuft: Dessen Sicherheitseinstellungen erlauben den Zugriff auf eine Soundquelle nur, wenn das Skript von einem Server geladen wurde - allerdings ist auch localhost erlaubt. Zumindest ein lokaler Webserver ist also notwendig. Dieser muss aber lediglich die Dateien ausliefern, serverseitig muss keine Zeile Code laufen.

Weitere Effekte

Weitere verfügbare Effekte sind derzeit: Overdrive zur Simulation einer Übersteuerung und Cabinet, der eine bestimmte Art von Lautsprecher imitiert. Einen zusätzlichen Effekt können wir in den obigen Code analog dem Reverb-Effekt einfügen:

  1. ...
  2. overdrive = new pb.stomp.Overdrive(ctx);
  3. reverb = new pb.stomp.Reverb(ctx);
  4.  
  5. overdrive.setTone(0.5);
  6. overdrive.setDrive(0.5);
  7. reverb.setLevel(0.5);
  8.  
  9. board.addPedals([overdrive, reverb]);
  10. ...

Je nach Effekt variieren die Namen der Methode, um einen spezifischen Parameter zu setzen. Der Methode addPedals werden nun beide Effekte übergeben.

Die Reihenfolge ist dabei signifikant. Wie oben bereits angesprochen, werden die Effekte miteinander kombiniert. Die Ausgabe des Overdrive-Effektes wird zur Eingabe für den Reverb-Effekt.

 Pedalboard.js: Kreischende Gitarren im BrowserLärm aufgehübscht 

eye home zur Startseite
Paykz0r 19. Dez 2013

ich Stimme dir bei Firefox leider absolut zu. aber ein html5 vide player Tag...

Crapple 19. Dez 2013

Man muss nur unter Develop->User Agent auf Chrome umstellen - zumindest bei pedals.io...

Realist_X 19. Dez 2013

Ja oder an einem PC :)

mw_blond 19. Dez 2013

... sagt alles.

Paykz0r 18. Dez 2013

eigentlich wären auch mod plug tracker ala s3m jetzt schon möglich. ist zwar nicht das...



Anzeige

Stellenmarkt
  1. Vector Consulting Services GmbH, Stuttgart
  2. Bundesverwaltungsamt, Köln
  3. Rohde & Schwarz Cybersecurity GmbH, Bochum, Saarbrücken, Köln
  4. Cassini AG, verschiedene Standorte


Anzeige
Blu-ray-Angebote
  1. 24,99€ (Vorbesteller-Preisgarantie)
  2. (u. a. Reign, Person of Interest, Gossip Girl, The Clone Wars)
  3. 16,99€ (ohne Prime bzw. unter 29€ Einkauf zzgl. 3€ Versand)

Folgen Sie uns
       


  1. Luftfahrt

    Fliegendes Motorrad Kitty Hawk Flyer hebt ab

  2. Seagate

    Rugged-Festplatte enthält SD-Kartenleser für Drohnen

  3. Grafikkarte

    Manche Radeon RX 400 lassen sich zu Radeon RX 500 flashen

  4. Amazon

    Phishing-Kampagne ködert mit Datenschutzgrundverordnung

  5. Linux-Distribution

    Opensuse ändert erneut sein Versionsschema

  6. Ronin 2 und Cendence

    DJI präsentiert neuen Kamera-Gimbal und Drohnencontroller

  7. Festnetz

    Neue Glasfaser von Prysmian soll Spleißzeit verringern

  8. Radeon Pro Duo

    AMD bringt Profi-Grafikkarte mit zwei Polaris-Chips

  9. Mediacenter-Software

    Warum Kodi DRM unterstützen will

  10. Satelliteninternet

    Apple holt sich Satellitenexperten von Alphabet



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Galaxy S8 vs. LG G6: Duell der Pflichterfüller
Galaxy S8 vs. LG G6
Duell der Pflichterfüller
  1. Smartphones Es wird eine spezielle Microsoft Edition des Galaxy S8 geben
  2. Galaxy S8 und S8+ im Kurztest Samsung setzt auf langgezogenes Display und Bixby
  3. Smartphones Samsungs Galaxy S8 könnte teuer werden

Fire TV Stick 2 im Test: Der Stick macht den normalen Fire TV (fast) überflüssig
Fire TV Stick 2 im Test
Der Stick macht den normalen Fire TV (fast) überflüssig
  1. Streaming Amazon bringt Alexa auch auf ältere Fire-TV-Geräte
  2. Streaming Amazon plant Fire TV mit 4K- und HDR-Unterstützung
  3. Fire TV Stick 2 mit Alexa im Hands on Amazons attraktiver Einstieg in die Streaming-Welt

Garmin Fenix 5 im Test: Die Minimap am Handgelenk
Garmin Fenix 5 im Test
Die Minimap am Handgelenk

  1. Re: Als DSL-Anbieter würde ich dann DSL-Light...

    Julz2k | 02:45

  2. Re: OT: Was bringt DRM eigentlich effektiv?

    DoktorMerlin | 02:38

  3. Re: DRM aber optional?

    DoktorMerlin | 02:28

  4. Re: Richtig und gut so

    DoktorMerlin | 02:23

  5. Re: Weltveränderung

    User_x | 02:17


  1. 19:00

  2. 17:59

  3. 17:30

  4. 17:10

  5. 16:49

  6. 16:26

  7. 16:11

  8. 15:56


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel