FlowStone Version History and Release Notes

Below you will find the release notes for each version of the software.

Version 3.0.4  BLUEBIRD

In this update we are very pleased to present a feature that has been requested for a long time - the ability to make your own components using external dlls. This is a huge feature and it really opens up a whole new world of possibilities.

We've worked hard to try and make this as simple to use as possible. There is a whole section in the user guide on it (see DLL Component) and we will have examples on the support area. One cool aspect of this is the ability to embed dlls which allows you to make stand alone primitives. Whether you're a programmer or not, we think you're really going to like the benefits that this brings.

For educators we have introduced a feature called Local Toolboxes. This allows you to easily create a reduced toolbox so that students are only presented with the components they need to perform a particular task. The toolbox is local to a schematic and can be saved with it too. The feature may also be useful for power users who want to keep their own toolbox of favourite components to use with particular schematics.

We have a host of other improvements and fixes as well to make your experience even better, including enhancements to the COM Port component and improved VST preset file handling.


  • New DLL component
  • New local toolboxes
  • New About To Close component
  • New launch file into focus mode option
  • Improved the preset system so you can load existing fxp/fxb files after you add or remove presets
  • Exported exes now embed the Ruby dll so it doesn't have to be extracted on launch
  • The Text Save, Bitmap Save, Preset Text File components all now create the folder path if it doesn't exist
  • Changed the MidiToVoices component so that we steal releasing notes in preference to held ones
  • Removed the splash screen from the software as it was sonetimes slowing startup and causing the odd crash too
  • Made some big improvements to the COM Port component to increase performance including running the connect in a separate thread
  • The Exe Zoom and Exe Full Screen components now work in Focus Mode


  • Fixed the Schematic File Path component which wasn't initialising on loading
  • Fixed it so that timers do not fire during loading for exe and VST
  • Fixed a problem that was causing exported exes to show as using 100% cpu because the idle wasn't working correctly
  • Fixed a crashing problem with playing MIDI notes when changing preset or doing anything that might cause a redraw to occur
  • Fixed a crash when moving from focus mode back to editor and Ruby components are present
  • Fixed a problem that could occasionally cause a crash on launch
  • Fixed several issues that could cause thread locking in the events processing

Version 3.0.3  RAINDROP

In this release we have two new primitives for connecting to external hardware. The DMX primitive allows you to connect to a massive range of compatible lighting products. The HID primitive will interface with any Hardware Interface Device compatible hardware. Most input devices adhere to this standard but it's not just about games controllers, there is a wide range of hardware that uses HID. With this new primitive you can now create your own device using a PIC and use FlowStone to talk to it.

To enhance the UI building capabilities of Ruby in FlowStone even further we've now added the ability to create in place edit controls, drop lists and message boxes. Previously you would have had to use external primitives to handle these features. It was awkward and messy but now it is incredibly easy.

Toolbox scrolling using a mouse wheel has been vastly improved with the addition of a new Adaptive Scrolling feature. This makes the scroll speed change depending on how quickly you move the mouse wheel. You can now scroll slowly when you need precision or whizz through the toolbox in seconds when you want to get somewhere fast. There's a new Toolbox tab on the Options dialog where you can adjust the scrolling to your taste. There's also a new option here to determine how toolbox filters are combined.

For audio users we have finally found a solution to Ruby sharing for VST plugins. The ruby dll no longer needs to be distributed with exported plugins because we now link it directly with our code. As a result of this each plugin now has its own Ruby interpreter, no more worrying about potential conflicts with other people's plugins. This also solves a problem we were having with compatibility between plugins generated with different versions of FlowStone. As a result of this change VST plugins can't use Ruby extensions. We may be able to get this to work later down the line but it's not guaranteed. For now we think it's a small price to pay as the benefits of this solution massively outweigh this small downside.

As well as this there are a host of other fixes and improvements.


  • New DMX primitive for controlling lighting devices
  • New HID primitive for connecting to a huge range of external controllers and boards
  • New In Place Edits from Ruby code
  • New Ruby Drop Lists from Ruby code
  • New Message Box handling in Ruby code
  • New Adaptive Scrolling feature in Toolbox (see new Toolbox page in Options to control this)
  • New way of handling exported VST plugins so there is no dependency on the ruby dll and no inter plugin Ruby sharing
  • New Ruby getInterpolationMode and setInterpolationMode methods for controlling bitmap rendering
  • New Follow Sync Modules feature
  • New Schematic File Path primitive
  • New Paste input on the Bitmap primitive allows you to paste a bitmap from the clipboard


  • Fixed a crash which can occur when deleting Float Array components that are fed from a Ruby component
  • Fixed the Changed component so it now saves state
  • Fixed a bug where Ruby components were not saving state when switched off
  • Fixed crash when closing an exported plugin if there is another one open
  • Fixed the conversion from Float Array to string so that it now uses the correct float representation
  • Fixed a problem which could cause crashes when calculating syntax colouring for Ruby code
  • Added refresh input to COM port component so that you can request a refresh of the port numbers
  • Added clear sends input to COM component so that you can clear the send buffer
  • Added a mouse cursor request on mouse button up
  • Fixed a problem where module tags were not being saved to .tag files
  • Fixed a bug in the COM port component where data was being sent out in first in last out order instead of first in first out
  • Fixed a the COM port component 'Out' output so that triggers are not sent when data is received only when data is sent
  • Fixed an issue with cursor setting in Ruby not passing through to other elements if no mouseCursor method was present
  • Fixed a bug when pasting modules which appear on a front panel so that these now all appear on top of existing elements
  • Fixed a problem in the Phidgets Stepper Controller component where the position was not being reset correctly
  • Fixed a bug in the Phidgets Stepper Controller where the Zero input trigger was not resetting the current position
  • Changed the Swap Links feature so it now deselects the components when finished
  • Changed the way that Mono to Frames and Frames to Mono work so that they can handle variable buffer sizes
  • Fixed a problem where the software could crash or hang on startup if MIDI events are generated during loading
  • Fixed the Ruby Draw method so it now uses EditConnector objects to refer to inputs
  • Added option to say whether tag bar, search and filter pane selections are combined or not
  • Fixed instabilities in the events system that could lead to crashes when the ruby interpreter is shared (mainly an issue for VST plugins)
  • Fixed the problem of the UAC dialogs disappearing behind the application window when exporting to VST or EXE
  • Fixed an issue with muting exported VST plugins in a host where Ruby events would stop being processed

Version 3.0.2  FIREFLY

The headline feature of this release is Follow Wireless. This has been on our target list for some time and now it's finally here. Just select a Wireless Component and press the TAB key.

We've also made some big improvements to the connector referencing in Ruby which allows you to use connector label strings as well as indexes to refer to connectors. By using labels it makes your code more readable and less prone to issues if you change the order of connectors.

On top of that there's a new feature for previewing applications called Focus Mode plus many other smaller improvements and fixes. The user guide has been updated to include details on all the new features and how to use them.


  • New Follow Wireless feature allows you to easily trace the path of wireless links
  • New connector referencing in the Ruby component allows you to use an index or a label name to refer to a connector
  • New Focus Mode feature for previewing or using applications by hiding the FlowStone editing interface
  • New clearEvents method that removes all pending events posted for the Ruby component from which it is called
  • New exe export options (these were previously only available in SynthMaker)
  • New optional inputs for the drawCurve and addCurve methods allow you to draw sections of the curve and control the curvature
  • New setColor method for the Brush object
  • Improved tag system has improved handling for modules


  • Fixed a problem with @outs and any defined output variable not being set if value sent are sent out immediately (with no time delay)
  • Fixed an issue with mouse cursor assignment not working for outputs with multiple links and Ruby components with a pass through
  • Fixed a Preset Manager issue with Cubase where presets were not being indexed correctly during automation
  • Fixed the sine oscillator bug introduced in the last version
  • FIxed a problem with the COM port not reading the NoNull setting on loading
  • Fixed an issue issue with the Ruby component redrawing when the mouse moves over a link during editing
  • Fixed the cursor updating when mousing over a link that crosses a module front panel or a component that edits text
  • Fixed a crash that could occur when using the dup method on a Pen object in Ruby
  • Fixed a problem with mouse cursor messages not working through a Multiplexer or Selector
  • Fixed the Navigator so that bookmark keypresses now register after you have clicked on it
  • Fixed the automatic update checking which was not working in previous versions. This will now work for future releases
  • The help text wasn't showing in the status bar for the create EXE button on the module action panel

Version 3.0.1  SNOWFLAKE

This release fixes many of the teething issues that were reported for version 3. We've also made some small enhancements in a number of areas and added a few more graphics methods.


  • New getBounds method in GraphicsPath for getting the bounding rectangle of a path
  • New isVisible method in GraphicsPath for testing if a point is inside a path
  • New isOutlineVisible method in GraphicsPath for testing if a point lies on a path
  • New widen method in GraphicsPath for expanding a path
  • New getWidth method in Pen for finding out the thickness of a Pen object
  • New option to provide an area in the call to the redraw method
  • Clipping, text rendering hint and smoothing are now reset after the draw method is called so any changes are only applied within the draw method
  • The measureString method now has a "bounds" entry which is an array [x,y,w,h] for the bounding area of the string
  • Added pass through of View data to the Ruby component
  • Edit components now exit when you hit return
  • Edit Box modules were not redrawing correctly after clicking away
  • The Http Post component now removes the http:// part from any url automatically
  • Added optimisations to all the oscillators to reduce cpu consumption


  • The getClip method wasn't returning a valid rectangle
  • MIDI wasn't being sent tout in a VST plugin unless there were MIDI components in the path
  • MIDI wasn't registering in String and Text components
  • The Mono to Frame component was causing a crash when if you added it to a schematic with Direct Sound or ASIO on
  • Visual muting was preventing modules from redrawing when they were shown in the schematic
  • Fixed a bug with the statistics calculating incorrectly when property panels are being used
  • Edit Box modules were not redrawing correctly after clicking away
  • The vertical slider no longer has it's value reversed when changing presets
  • Creating links to Value connectors was incorrectly sending nil each time
  • Boolean properties were incorrectly sending a trigger when the properties were opened
  • Font styles were not all working correctly
  • Fixed a potential crash on close with the COM Port component
  • Fixed an issue with the Ruby component not sending values out correctly to triggered data connectors during a loop
  • Fixed an issue with the Phidgets Motor Controller not setting the encoder position
  • Fixed a problem where modules with duplicate names were having their tags merged

Version 3.0  SYMPHONY

This new version merges all the features of SynthMaker with FlowStone. FlowStone users now have the benefit of exporting audio plugins. SynthMaker users now have the Ruby component. Both can make use of the new Frames feature which allows you to process Mono data inside the Ruby component - great for prototyping or non performance critical applications.

MIDI data can now be processed in the Ruby component and sent out with sample accurate timing. There are a host of new drawing commands for the Ruby component too.

We have a new toolbox feature called Tags which makes it easier to group components together and retrieve quicker. There are new Netvox and OWL compoonents for home automation, updated modules (now in downloadable packs) and many other fxes and enhancements


  • MIDI in Ruby
  • Mono to Frames
  • Export VST 2.4 Plugins
  • Tags
  • Netvox & OWL Components
  • Expanded Ruby Drawing Commands
  • Updated Modules
  • Smart Components
  • Many fixes and enhancements


  • New smart components replace components for operations that are shared between different data types (eg Add, Switch and Select)
  • The Edit Control allows multi line editing and control over font size
  • Changed the terminator label and description ono the COM Port primitive to make it clearer that it's for received data
  • New input on the COM Port primitive to specify whether to remove the null terminator when sending a data string
  • In the Ruby Component Watches now show false values as ""false"" instead of blanks
  • The Direct Sound In component allows you to choose the input device independently of the output device
  • You can now change the type of the Boolean, Int, String and Float components by right-clicking on their connectors
  • A module output label and description can now be set independently the same way as it can for module inputs
  • The Ruby And DSP Code components now only require a single click to set the cursor position
  • New Swap Links feature allows you to replace a module with another one by exchanging links between the two
  • MIDI is all processed using the events system now
  • We no longer enforce the 0-127 range for sysex bytes
  • Improved redraw mechanism to prevent too many refreshes
  • Improved searching in the toolbox now only searches on name and in help


  • Fixed a  memory leak when sending through a COM Port
  • Fixed the random number generation for arrays in the DSP code component as it wasn't working properly
  • Stopped the HTTPPost component from producing an unwanted message showing the current port
  • Fixed a crash when using the SFZ component
  • Resolved an issue with the Colour Detect component not detecting some extreme levels of HSV correctly
  • Stopped the Ruby Edit from sometimes causing a crash when watching a variable while something was redrawing
  • Fixed the PresetSave so it doesn't crash when loading and saving files
  • Prevented Ruby components from remaining in a processing loop when deleted from a schematic as it was causing 'ghost' like behaviour
  • Addressed an issue with redraw flicker when mousing over links which cross redrawn areas
  • Fixed a potential crash when loading multiple schematics during the same session
  • Fixed an issue where the output pane would remain scrolled sometimes and obscure values from the output
  • Stopped the Web Url component from firing during copy and paste
  • Fixed a problem where the connectors of modules could be drawn incorrectly during a GUI refresh
  • Corrected an issue where a module could become locked
  • Fixed a problem where redraws were being processed for GUI elements that were set not to show on the front panel
  • Made the System Folders and Start Folder components update after loading when used un an export
  • Fixed a problem with the software starting up but the main window not appearing