Rappresentare graficamente le onde sonore che passano attraverso il microfono

Da Gambas-it.org - Wikipedia.

Per mostrare graficamente in tempo reale in una finestra le onde sonore che passano attraverso il microfono mediante la Classe MediaPipeline del Componente gb.media, è possibile usare il codice che segue appresso.
La finestra sarà creata automaticamente dalle risorse di GStreamer.

Private Const SECONDI As Integer = 1  ' Imposta in secondi la durata dell'onda da disegnare


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, cnv, scp, snk As MediaControl
 Dim flt As MediaFilter

 pl = New MediaPipeline

 src = New MediaControl(pl, "alsasrc")  
 cnv = New MediaControl(pl, "audioconvert")
 scp = New MediaControl(pl, "wavescope")
 scp["style"] = 2
 flt = New MediaFilter(pl, "video/x-raw,width=1200,framerate=30" &/ CStr(SECONDI))
 snk = New MediaControl(pl, "ximagesink")

 src.LinkTo(cnv)
 cnv.LinkTo(scp)
 scp.LinkTo(flt)
 flt.LinkTo(snk)
 
 pl.Play()
  
 Do
   Wait 0.01
 Loop

End