Release Notes

Updated for Snowmix 0.5.1

This is the Release Notes for Snowmix.

  • Release Notes for version 0.5.1.
  • Release Notes for version 0.5.0.

If you are looking for the Release Notes for versions prior to version 0.5.0, please see here.


Snowmix version 0.5.1

Released February 9th 2016

Overall Theme

The overall theme for this Snowmix release 0.5.1 is to release GUI programs for controlling Snowmix for Live video production. Secondary, this release includes a number of bugfixes and smaller improvements overall making Snowmix even more stable and dependable for a Live production environment.

New GUI Programs:
The GUI program snowcub.tcl is no longer included, but have been replaced by programs such as snowaudio.tcl, snowscene.tcl and snowoutput.tcl.

The program snowaudio.tcl is a GUI program that can be used to control and mix audio in a live production environment running Snowmix. snowaudio.tcl reads its configuration from a running session of Snowmix.

The program snowscene.tcl is a GUI program that can be used to control and mix video scenes in a live production environment running Snowmix. snowscene.tcl reads its configuration from a running session of Snowmix.

The program snowoutput.tcl is a GUI program that can be used to monitor the output statistics of Snowmix in a live production environment.

New commands:
The following new commands, enhancements, improvements and bugfixes are included in this version. Details can be found in the ChangeLog.

Tcl command

snowmix info output ((info | status) [ format ]) | syntax

Enhancements and Improvements:

  • OpenGL support tested to work for Mac OS X.
  • 24 bit RGB PNG images are now supported in addition to 32 bit RGBA.
  • Audio clipping range changed from betwenn -32768 and 32767 to now -32767 tand 32767.
  • Cleanup for the command tcl help.
  • Cosmetic cleanup for command audio sink status.
  • Cosmetic cleanup for the tcl command snowmix info audio mixer source extended format
  • Changes to the Snowmix Library command "SceneSetFrameActive".
  • Adding konsole and xfc4-terminal to snowmix_demo script.


  • Deleting or loading an image into an existing image place holder would leak memory.
  • Text grow would fail for certain combination of UTF8 multi character strings.
  • Text background had switched rb values for the text backgr rgb command.
  • Tcl command snowmix info would in some case make Snowmix dump core.
  • Snowmix audio mixer had problems adjusting the audio level when source had fewer channels than the mixer it self.
  • Audio mixer would in some cases not detect audio clipping correct.
  • Unbalanced list for the tcl command snowmix info audio mixer source info ....
  • The command audio feed delay <feed id> <ms> would print to stderr and not the controlling channel.
  • The tcl command snowmix info audio mixer source printed wrong value for mute. The same applied for the command snowmix info audio feed status ... and snowmix info audio sink status ....
  • Format error for the tcl command snowmix info audio mixer source ....
  • Images/CS directory was not installed (minor issue).
  • Output2screen could potentially hang on some systems.
  • The snowmix_demo script could hang on Linux systems without gnome_terminal.
  • Tcl include files that are not executable directly, are now installed as data files with mode 644.
  • Snowmix on OS X could exit without a warning if a connecting shmsrc exits.

Compile and install:
Please see the compile and install instructions. for version 0.5.1.

Support for OpenGL is still considered alpha code and not enabled by default. To enable support for OpenGL, please run the command before running make:

./configure --prefix=$prefix --libdir=$prefix/lib --enable-snowmixosmesa \ --enable-snowmixx11 --enable-snowmixglu --enable-snowmixglut

The variable $prefix is usually /opt/local for Mac OS X and /usr/local for all others. Alternatively use the file bootstrapmin-opengl.


Tested platforms:
This version of Snowmix has before release been tested on:

  • Mac OS X 10.11.3 El Capitan.
  • Mac OS X 10.10.5 Yosemite.
  • Mac OS X 10.9.5 Mavericks.
  • Mac OS X 10.8.5 Mountain Lion.
  • Linux Centos 7 15.11 amd64 (See comments)
  • Linux Chakra 15.11 Fermi amd64. (See comments)
  • Linux Debian 8.2 amd64. (See comments)
  • Linux Fedora Workstation 23 amd64. (See comments)
  • Linux Mint Cinnamon 17.2 amd64.
  • Linux OpenSUSE Leap 42.1 amd64.
  • FreeBSD PCBSD10.2. (See comment about /bin/bash)
  • Linux Ubuntu 14.04 LTS amd64, ARMv7
  • Linux Ubuntu 15.10 amd64

Comments on installing on various platforms:
Please see compile and install instructions for further details.

  • Mac OS X:The bootstrap script will install all that is needed. However, GUI tools may not work properly unless you have upgraded tcl/tk/wish from 8.4 or 8.5 to 8.6.4 or newer.
  • CentOS: You need to add rights to do 'sudo' for the user compiling and installing Snowmix. The program snowmix_demo needs encoder and decoder modules for GStreamer for H.264 and AAC (unclear how get this).
  • Chakra: Compiles and runs fine, but needs BWidget to run GUI apps. BWidget seems not to be available for Chakra although it is for Arch Linux. You may be able to download and install BWidget from Sourceforge manually.
  • Debian: Needs package 'sudo' to be installed. Need to add rights to do 'sudo' for the user download and install missing tools/libs and for installing Snowmix.
  • Fedora: Fedora 23. You need to add the rpmfusion repository and install relevant gstreamer plugins to run the snowmix_demo. Similar for Fedora 22, but untested.
    sudo rpm -Uvh sudo rpm -Uvh sudo dnf install gstreamer-plugins-bad gstreamer-plugins-bad-free-extras \ gstreamer-plugins-bad-nonfree gstreamer-plugins-ugly gstreamer-ffmpeg \ gstreamer1-libav gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld \ gstreamer1-plugins-base-tools gstreamer1-plugins-good-extras gstreamer1-plugins-ugly \ gstreamer1-plugins-bad-free gstreamer1-plugins-good gstreamer1-plugins-base gstreamer1
  • Mint:The bootstrap script will install all that is needed.
  • PCBSD: You need to execute the following command "sudo ln -s /usr/local/bin/bash /bin/bash" for the scripts to work. Run all commands in bash rather than other shells. No video/image sinks was found for GStreamer1.0 for PCBSD10.2. No 'wish' needed for tcl GUI programs was found.
  • OpenSUSE: The package gstreamer-plugins-libav isn't found by zypper. You need to find the right version yourself and install it manually. Without it, you may miss important decoders such as decoder for H.264 etc.
  • Ubuntu:The bootstrap script will install all that is needed.


Snowmix version 0.5.0

Released July 31st 2015

Overall Themes

The overall theme for this Snowmix release 0.5.0 is to make Snowmix installable as a regular program. Furthermore the theme is also to add support for industry standard OpenGL 3D graphics both Off Screen CPU based and hardware accelerated GPU based rendering. In addition to these overall themes, this release come with a number of bugfixes, speed-ups, cosmetic changes and EndOfLife implementations.

Why are the Release Notes important?

This version's release notes are especially important to pay attention to for those of you who have been using earlier versions of Snowmix. Because Snowmix is now changing its major version number, a long list of commands are now changing their syntax or are being retired as earlier made clear in the EndOfLife announcements. Please see the EndofLife Announcement for this version to see the list of commands and functionality now changing or retirering. This is also listed in the ChangeLog.

In addition to these changes, it is also important to know that from this version on, the file names in the ini file given for feed control sockets and system socket must be given as an absolute file name starting with a leading '/'. This mean that you will have to change this in your ini files, if you are reusing ini files from previous versions.

Snowmix will from this version and on refuse to run, if the environment variable SNOWMIX has not been set to the install path of Snowmix. By default, when Snowmix is running the configure command as part of the bootstrap script, the install prefix is set to /usr/local for all but Mac OS X and to /opt/local for the latter. If you have an install prefix being /usr/local, you must set the enviroment variable SNOWMIX to be:

export SNOWMIX=/usr/local/lib/Snowmix-0.5.0

If you do not do this, Snowmix will not work properly.

New Search Path

From this version and on, Snowmix will, unless filename is absolute and starting with a leading '/', be using a search path when:

  • include an ini file for reading
  • include a Snowmix library file (slib directory)
  • load an image file for reading
  • load a dead-image file for a feed (from the frames directory)
  • open an audio sink output file for writing
  • open an image file for writing

The search path will contain the following paths in this order:

Current working directory $HOME/$SNOWMIX_PREFIX $SNOWMIX

If the environment variable SNOWMIX_PREFIX has not been set to a name, Snowmix will for Mac OS X use 'Snowmix' and for all other platforms use '.snowmix'. If you in your ini file include the following files:

# First file include ../ini/my_ini_file # Second file include ini/my_ini_file # Third file include /ini/my_ini_file

Then Snowmix will for the first file look for my_ini_file in this order:

'current working directory'/../ini/my_ini_file $HOME/$SNOWMIX_PREFIX/../ini/my_ini_file $SNOWMIX/../ini/my_ini_file

If a file is found, the file will be includeded and no further search is done. If all search paths fails, the include command fails. The second file will be attempted read as:

'current working directory'/ini/my_ini_file $HOME/$SNOWMIX_PREFIX/ini/my_ini_file $SNOWMIX/ini/my_ini_file

Third filename is absolute, so Snowmix will only attempt to read the file /ini/my_ini_file.

Because search paths are used when opening a file for writing for audio sinks, an absolute file name must be used if the file does not exist when the file is opened.

So go over your older ini files and probably remove the '../' for images, audio sinks etc. and you will probably also copy your old ini files to $HOME/.snowmix/ini/ for Linux and $HOME/Snowmix/ini/ for Mac OS X. See also the ChangeLog for more details on this.

In addition to the 72 new glshape commands, this version adds the following 3 commands:

feed drop if exist(image,<image id>) shape newsubpath <shape id>

Details are found in the ChangeLog.

For a list of the new glshape commands, please see the Reserved Command list in the section GL Shape Commands and Placed GL Shape Commands. Please also see the new Snowmix Guide on GL Shapes.

Snowmix now support installation on CentOS. However see the ChangeLog for a missing component of GStreamer on CentOS.

This version of Snowmix has before release been tested on:

  • Linux Ubuntu 14.04 LTS amd64 ARMv7
  • Linux CentOS 7 15.03 amd64
  • Linux Chakra 14.11 Euler amd64
  • Linux Debian 7.7.0 amd64
  • Linux Mint Cinnamon amd64 17.1, 17.2 amd64
  • Linux Fedora Workstation 21 amd64
  • Mac OS X 10.09 Maverick
  • Mac OS X 10.10.4 Yosemite

For Snowmix version 0.5.0 on OS X, the OSMesa Context may not work. This may just be a linking issue, but the root cause has not been found yet.

OpenGL has not been tested on the ARMv7 platform. Most implementations with ARMv7 offers OpenGL ES as opposed to regular OpenGL. Quite likely only few changes to Snowmix will be necessary to get Snowmix to work with OpenGL ES, but this is currently untested.

Compilation and installation

For compilation, please see the page on compilation and installation. Please note that OpenGL 3D Graphics support is alpha code and not enabled by default. You need to enable OpenGL support before compilation to includde OpenGL support. Details are found on the page on compilation and installation and on the page Snowmix GL Shape Guide.