Sonic Flow

A Program for the Design and Simulation of Audio Signal Processing Networks

Graphical User Interface

This page is intented for the illustration of what Sonic Flow is about.

This page contains a proposal and an initial list of requirements for a graphical user interface (GUI) to the Sonic Flow library.

NOTE: the Sonic Flow project (of Seppänen and Kananoja) doesn't currently plan to implement a GUI.


An informal example of the network editing window (network.xcf):

The toolbox window (toolbox.xcf):



  1. add new blocks (from a "block library")
  2. delete existing blocks
  3. browse a hierarchic library of blocks
  4. create a new network (a window)
  5. one graphical window contains one network (see the above screenshot)
  6. delete (close) an existing network (window)
  7. Open/Save/Save As a network from/to disk
  8. the layout of the network must be saved as well as the logical connections (topology)
  9. move blocks around on the screen
  10. the wires connected to the block must move along with the block
  11. change the name and other parameters of blocks: a parameter dialog window is needed. The window would open e.g. by doubleclicking the left mouse button on top of the block or pressing the right mouse button down on top of the block and selecting "Properties..." from a menu.
  12. make connections (wires) between blocks
  13. remove connections (wires) between blocks
  14. start/stop the simulation of the network
  15. have a progress indicator for the (asynchronous) simulation
  16. select a number of blocks
  17. copy/cut/paste selected blocks (and the wires in between)
  18. catch the exceptions from the library and display error/warning dialogs of them
  19. there may be edges in wires
  20. blocks are represented as rectangles
  21. the rectangle contains the name of the block (alternatively a graphical icon) and graphical symbols for the input and output terminals
  22. names of all blocks have the same text font and text size
  23. all terminal names have the same text font and text size
  24. there is a separate tool for adding the wires
  25. so there must be a separate tool for the other operations (moving etc.)
  26. input terminals are mainly on the top and left sides of the block rectangle
  27. output terminals are mainly on the right and bottom sides of the block rectangle
  28. the terminals are represented with a graphical symbol
  29. the terminal names are displayed in a `tooltip' when the user moves the mouse pointer on top of the graphical symbol of a terminal
  30. blocks may not overlap
  31. the color of the window background may be changed
  32. the color of the block rectangle background may be changed

Menu hierarchy

New Ctl+N Cut Ctl+X Start simulation Add
Open Ctl+O Copy Ctl+C Stop simulation Remove
Save As... Paste Ctl+V Combine
Save Ctl+S Break apart
Close Ctl+W
Quit Ctl+Q

Sonic Flow
Last modified: Tue Dec 15 10:40:20 1998