Shout is an extension that makes it possible to stream audio to icecast or shoutcast-compatible servers from a Tcl script. This is a higher level binding than tclshout, and targets a newer libshout version.
Example usage:
package require shout proc stream {fd1 fd2} { puts -nonewline $fd2 [read $fd1 4096] if {[eof $fd1]} { close $fd1 nextsong $fd2 } } proc nextsong {shout} { global playlist if {[llength $playlist] > 0} { set playlist [lassign $playlist file] set fd [open $file rb] fileevent $shout writable [list stream $fd $shout] fconfigure $shout -song [file rootname [file tail $file]] } else { exit } } set fd [shout -user source -mount /tclradio -format mp3 \ -genre rock -name "Tcl Radio" 127.0.0.1 8000 hackme] fconfigure $fd -buffering none set playlist [glob -nocomplain *.mp3] nextsong $fd vwait forever