Spaghetti v.0.98 - a graphic Csound orchestra builder
© 1999 Riccardo Bianchini

This is still a prerelease version!!!!

Spaghetti is a shareware tool to build Csound orchestra by assembling and connecting objects.
Why "Spaghetti"?
Building an orchestra
Compiling an orchestra
Executing an orchestra
Blocks
Special UGs
Designing your own Ugs

MENU
 

File  
  Open File (spa)
  Save File (spa)
  New File
  Insert File
  Save selected Block
  Load Block
  Exit
Edit  
  Select
  Delete UG
  Add vertical offset
  Scale vertical
Instruments  
  Add Instrument Division
  Remove Instrument Division
Compile Orc  
Edit Score  
View  
  Texts
MIDI Control  
Options  
  Autogenerate Variables
  Autoredraw Connections
  Straight Line Connections
  Compile/Save orc at each change
  Name Block
  Settings
  Show UG Properties
  Show Variables
  Debug
Help  
  Help
  Quick Hints
  About
  Register

Top of page

The Author:
Riccardo Bianchini
Professor, School of Electronic Music
Conservatorio «S.Cecilia», Rome, Italy

rb@fabaris.it
http://www.fabaris.it/bianchini
http://www.geocities.com/Heartland/Acres/4768


 

Top of page

Why "Spaghetti"?
1) Because a complex patch looks very much like a dish of spaghetti with tomato sauce, with all its intertwining red lines;
2) Because with this name it should be clear enough where this program comes from!


Top of page

Building an Orchestra
Building an orchestra consists of three steps:
1. Choosing an UG;
2. Assigning variables to its inputs and to its outputs;
3. Connecting UGs outputs to UGs inputs.
UG appearence: input pads are red, while ouput pads are blue.
Choosing an UG: simply choose an UG in the list box on the left double-clicking on it, or selecting it with the mouse or arrow keys and hitting <Enter>. Its icon will appear in the working area (upper left). To move it, click once to select it, then drag it in its new position. Alternately, once selected an UG, instead of dragging, click on one of the four spin buttons over the writing Move selected UG.
Assigning variables: Shift-click on one of the input or output pad of the UG. A yellow text box will appear, in which you can write the name of a variable or an expression. To close the text box, hit <Enter>.
Connecting two Ugs: Control-click on an output pad; the mouse pointer will change to a vertical arrow, allowing you to click (NOT Control-click) on an input pad, completing the connection.
To disconnect  two UGs, simply Control-click with the right button on the input pad you want to disconnect.


Top of page

Compiling an orchestra
To compile an orchestra, choose Compile to Window from menu Compile Orc . This will display your orchestra in a window, so that you can view, edit and save it.


Top of page

Executing an Orchestra
If you are sure that your orchestra does not contain errors. you can click on Execute button, to open the Perf window. In this window you can choose the Csound executable, the orchestra, the score, the name of resultimg audio file, and the flags to Csound command line. These parameters will be saved in a configuration file, so that you will find them unchanged in your next session with Spaghetti.


File Menu

Top of page
Open File
Open an existing file (extension SPA)

Top of page
Save File
Save current setting in a SPA file

Top of page
New File
Clear workspace so that you can build a new orchestra from scratch

Top of page
Insert File
Insert an existing SPA file in your current workspace, without deleting anything. You will be prompted to click in workspace to determine the vertical position at which the file will be inserted.

Top of page
Save selected block
Once loaded and edited a block, you can save it (as a file with extension .BLK).

Top of page
Load Block
Load a BLK file from disk. You will be prompted to click in workspace to determine the position at which the block will be inserted.

Top of page
Exit
Exit Spaghetti


Edit Menu

Top of page
Select
Allow selecting multiple UGs by clicking and dragging

Top of page
Delete UG
Delete selected UG

Top of page
Add Vertical Offset
You will be prompted to enter a vertical offset by which ALL Ugs will be moved (positive to move down, negative to move up).

Top of page
Scale Vertical
You will be prompted to enter a multiplication factor, by which all vertical positions will be multiplied. It is useful to vertical compress/enlarge your orchestra.


Instrument Menu

Top of page
Add Instrument Division
Add a vertical line to separate different instruments in the same orchestra

Top of page
Remove Instrument Division
Remove selected vertical instrument division


Compile Menu

Top of page
Compile to Window
Compile and display your orchestra in a window, so that you can view and edit it. You can also save this orchestra to a file, or directly to the default file «csgraph.orc», for fast executing.


Edit Score Menu

Top of page
Edit Score
Open a simple text editor to edit an orchestra. You can also open and save a score with default name «csgraph.sco» for fast executing.


View Menu

Top of page
Texts
Display variable names in workspaces, close to each pad


Top of page
MIDI Control

Open a window with 12 MIDI controllers a MIDI channel selector and an Note ON/Note OFF button, which allows MIDI control of a Csound orchestra.

To use this feature, you'll need a software MIDI intergace, like, foe example, Hubis MIDI Loopback.


Options Menu

Top of page
Autogenerate Variables
When this option is checked, each time you insert an UG, output variables will be automatically generated and assigned.

Top of page
Autoredraw Connections
When this option is checked, each time you ask to redraw the orchestra, connections too will be redrawn. This could be a lengthy process, depending on orchestra complexity and on your computer speed.

Top of page
Straight Line Connections
By default, Spaghetti connects UGs by horizontal/vertical lines; if this option is selected, Spaghetti simply connects UGs by straight lines.

Top of page
Save orc at each change
If this option is activated, your orchestra will be compiled and saved as «csgraph.orc» at each change.

Top of page
Autodisplay Texts
When this option is checked, each time you ask to redraw the orchestra, texts too will be displayed. This could be a lengthy process, depending on orchestra complexity and on your computer speed.

Top of page
Name block
You can assign a name to a block, which will be displayed on the UG.

Top of page
Show UG properties
In a separate window you can see:
UG Name
Generated code
Number of inputs

Top of page
Settings
The required settings are:
Csound executable path and name;
Csound flags;
Real time flag;
Orchestra path;
Score path;
Wave file path;
Default Browser (to display this help)

Top of page
Show Variables
List all used variables

Top of page
Debug
This is for debugging purposes only, and will disappear in the release version


Top of page
Redraw Button
Redraw entire orchestra. If Autocompile/Save check box is selected, your orchestra will be immediately compiled and saves as «csgraph.orc», allowing you to run Csound by clicking button GO.


Top of page
Execute Button
Open the Perf Window, that allows you to set orchestra, score and Wave file, to run Csound and to listen to generated Wave file.


Top of page
GO Button
If your orchestra has been saved (the ‘LED’ is green), this button is enabled, and clicking it will immediately run Csound with «csgraph.orc» and «csgraph.sco».


Top of page
Blocks
«Blocks» can consist of more than one UG, and can generate more than one line of orchestra. You can think of a block as a macro. For example, a block can consist of:

a1 oscil p4, p5, 1
a2 tone a1, p5*6

Such a block will have two inputs (p4, p5) and one output (a2).
When you ALT-click a block to edit it, a multiline text-box will appear, allowing you to enter more than one line. To insert a new line, type <CTRL-ENTER>. You are not allowed to insert TABs in a block text.


Top of page
Special UGs
There are some special Ugs, that do not have a corresponding opcode in Csound:
dummy and dummyx are connections with one input and one output. The output simply repeats the input. These UGs do not generate any code. Their use is to simplify connections. dummyx is identical to dummy, but its input is on its lower side, while output is on its upper side.


Top of page
Designing your own UGs
You can design your own UGs following these simple instructions:
1. Draw your UG and save it as a Windows bitmap (for example, with Paint)
2. Run CSGDETECT.EXE program, and:
a. click on input pads
b. select ‘Output’ radio button and click in turn on output pads
c. specify the type of output variable(s) (i, k, or a)
d. add to file UGS.TXT the definition generated by CSGDETECT.EXE
3. If you want to put multiline code in it, separate each line with <|>. Example:

a1 oscil iamp,ifreq,ifno|a2 reson a1,icf,ibw