MusicBuilder
[
NextMusic Home Page
|
Sound and Music Programs Page
|
Program List ]
Author: Ralf Suckow suckow@contrib.de
Platforms: NeXT, Intel, HP-PA, Sparc
Prerequisites: NEXTSTEP 3.0, 3.1, 3.2, or 3.3
Price: $59 student, $199 user, $299 Pro, network version available
Demo: ftp://peanuts.leo.org/pub/comp/platforms/next/Commercial/audio/MusicBuilder-Demo.1.2.2.NIHS.b.tar.gz
To acquire: melonSoft Ralf Suckow Berlin
Ludwig-Renn-Strasse 62
12687 Berlin, Germany
e-mail: suckow@contrib.de
fax: (+4930) 932 19 01
Information: suckow@contrib.de
Entry updated: 29 March 1996
Description: A MusicBuilder is a music creation application
- Short Tour
- Features
- Release Notes
- Availability and Pricing
- Questions & Answers
MusicBuilder is a music creation application. It allows you to enter scores, to place players in an orchestra, to create voices, and to put them all together to produce NEXTSTEP sound files. It provides an easy-to-use graphical interface, but also allows some access to the underlying mathematical system if desired.
The package contains five applications, MLScore.app, MLOrchestra.app, MLVoice.app, MLProducer.app, and MLFunctionEd.app.
For NEXTSTEP 3.0 user only: Run (double-click) the shell-script "FixNS3.0ServicesProblem" to resolve a problem that prevents you from using MLFunctionEd services. If you double click it as root, the problem is fixed for all users. Else each user of MusicBuilder needs to run the script individually. The script runs in the Terminal application.
Where's the Catch in the Demonstration Version?
This is an unlicensed Demonstration version of MusicBuilder. The score, orchestra, voice, and producer files you created cannot be stored onto disk. Nevertheless, you can produce music (*.snd files) without restrictions. While you are not quitting the applications they will communicate with each other using the data in memory, not in files.
Short Tour
In the following, a short tour through MusicBuilder is given. If you finished it, you will have an idea about what you can do with MusicBuilder. Not all features are touched in this tour, especially the mathematical extensions would need much more information which is given in the manual delivered with MusicBuilder. Nevertheless, after finishing the tour, you should be able to create your own piece of music with MusicBuilder.
To try out MusicBuilder as described below you need to install the examples. Also it is easier if you didn't change the default folders residing under ~/Library.
When trying out MusicBuilder be sure to have enough space on your harddisk for the resulting *.snd files and for the swapfile. A 30 seconds 44100 Hz, 16 bit stereo soundfile, for example, consumes more than 5 MBytes by itself. To produce it, you need approximately 12 Mbytes of extra virtual memory.
A Start MLProducer.app. It probably resides in ~/Apps or /LocalApps. Open a new document (normally MLProducer does it for you automatically).
B Tell the producer with which files to work. Drag one of the score files (Presto-1.score-ml from Library/MLScore) into the Score well of the producer window, and one of the orchestras (High-Low.orchestra-ml from Library/MLOrchestra) into the orchestra well.
With the same result you may double-click the empty wells and select the files with an Open Panel.
C Choose "Voice Manager..." in MLProducer's "Tools" menu. In the Folders column you should see an entry like .../Library/MLVoice. Click on it and check if you see the files high.voice-ml and low.voice-ml.
You may drop additional folders containing .voice-ml files into the suitcase with the bird. This makes MLProducer to look for voices in these folders. Remove unneeded folders with Command-r.
D Press the Interpret Score button to produce the Raw Notelist; after a while a document will appear in the well, now press Apply Orchestra, and after another interlude a document will appear in the Modified Notelist well.
These files contain notes. If you are curious about their contents you may double-click the icons to open the files in Edit.
E Select the measures of the score you want to produce. Spin the lower wheel in the Measure Selection panel to the far right to generate the whole sound, for example.
F Click Assemble Voices. Now sit back and wait a while! And try not to do too much else whilst your machine's pounding away. You may observe the calculation in a progress panel.
G When finally the SND document appears in the Result well, double click it to launch your favourite sound playing application, and listen. Are you satisfied?
H If not, listen to the result a number of times to find out what you would improve - the notes in the score, the orchestration, or the voices.
I Double-click the score icon to open the score Presto-1 in MLScore.app.
J Above the first staff you see a tempo element indicating "presto". Click on it and press Return to get an Inspector. Double-click the text in the Inspector and replace it with "vivace", making the replay slower. Press Return.
K Press the right arrow key on your keyboard (8 times). The first note is selected. Note that the inspector changed. You may change the note value with the arrows in the inspector or the arrow keys on your keyboard, but we aren't going to do this. Press Command-2 instead. This brings up the modification inspector.
L Go to the text field labeled "After This Element" and type
volume *= 3 dB;
Then press Return and Command-r (refresh). This makes the note a bit louder than the other's.
M Press Command-3 to get the Resulting Note Inspector. Note that the volume is 0.706... Press the right arrow button to go to the next note. It's volume is 0.5 (f == forte).
Don't save the changed score - this is not possible with the demo version, and don't quit - your changes would be lost.
N Go back to the MLProducer and press Interpret Score, then Apply Orchestra. Wait for the new modified notelist to appear. Select the first four measures (number 0, 1, 2, and 3) with the wheels. Before assembling the voices again, listen to the beginning of the old sound (you may drag it to a temporary folder or do a Save As in your Sound playing application).
O Now press Assemble Voices, and listen to the new resulting sound. Wasn't Peschetti right make it presto? The +3dB first note seems to be a better idea.
P Double-Click the orchestra icon in the producer window. You may test different modifications to the orchestra. Maybe you'd care to add a couple more players? Make the orchestra chamber a bit "bigger"... move the left-hand microphone over a bit, maybe make it a bit more directional, and get it to home in on a soloist...? The decision is yours. Note that copying/pasting of players doesn't work in the demo version.
Q Click on a player in the orchestra to select it, and press Return. You get an Inspector for the Player. The Name is the character string shown below the player in the orchestra chamber. The part defines which notes from the score the player should play. In the text field below the part you may add or modify note parameters of notes played by the player. You should at least add the string parameter "voice" as you see in the example. This parameter is used by MLProducer to determine the voice file name. The voice file (with the extension .voice-ml) is interpreted by MLVoice to get the sound for the note. By entering max. three characters in the group field you assign the player to a group. All members of a group share a common volume slider in the orchestra window.
R After changing the orchestra, go to MLProducer and press Apply Orchestra and Assemble Voices. You don't need to interpret the score again if you didn't change it.
S In MLProducer, choose Tools/Voice Manager .... Select a folder in the left column and double-click a voice file in the right column. The voice is opened in the MLVoice application. The picture you see describes how the voice sounds. It consists of vertical slots which are played in sequence from the left to the right. Down from the top you see the tempo section, the loudness, harmonics, pitch, and noise sections.
T Select one of the buttons to the left of the voice picture. This activates the section and shows the valid colors for the section in the color selector to the right of the voice picture. Select a color in the color selector by pressing it's button. Now you may draw with this color in the selected section of the voice picture.
U You may use the Control-Key to select whole slots of the voice picture, to copy, cut, and paste them.
V Choose Tools/MathInspector ... in MLVoice. You get a mathematics panel. Press Command-7 to see the defined functions. Double-click on the line with the function "cf_duration (color)". A file (default-MLVoice.math-ml) containing the function is opened in Edit (the NEXTSTEP text editor) and the function is selected.
W Press Command-Y in Edit to invoke MLFunctionEd. It opens a panel graphically showing the cf_duration function. In this panel, each color is assigned a mathematical value. Now you understand what the colors in the voice picture mean.
X If you changed the color function, for example changed the value of the light blue color from 10 ms to 6 ms, you need to update the file opened in Edit. Go back to Edit, make sure the whole cf_duration function is selected, and press Command-Z. Now the file has changed and you may save it. Consider this change of the default-MLVoice.math-ml file as an exception. Under working conditions you will create a new .math-ml file, place your own functions in it. Give them other names, my_duration, for example, and enter these new names in the function name field of the MLVoice window when selected the appropriate section. After changing a function in Edit, go back to MLVoice and press Reload Folder in the MathInspector.
Y When you changed a voice picture or a color function in MLVoice, you may want immediately to listen how it would sounds. Press Command-6 in MLVoice to make the MathInspector showing the parameter values. Set volume to 0.7, freq to 220, and duration to 0.1. Now press the Play button in the voice window. The Sound is calculated using the defined parameters and played.
Z After being satisfied with the new voice, go to MLProducer and press Assemble Voices. Listen to the new Result to check if you got what you wanted.
You finished the short MusicBuilder tour. Now you may quit the applications, or start to work out your own music. Remember that you loose your work when quitting the Apps. Also there is a little memory leak when calculating sounds with MLVoice which will unfortunately prevent you from working with it without quitting for more than a number of hours (maybe up to two or three days, it depends on the intensity of your work). If you created some interesting music, you may drag the SND file to another folder to save it.
Features
MusicBuilder lets you enter scores with MLScore.app
´ Drag score elements from a Standard Palette and drop them on a score
´ Move / duplicate score elements inside a page or between scores
´ Edit score elements with an inspector panel
´ Change parameters of score elements or add your own parameters
´ Place changed score elements on a Custom palette
´ Import / export Midi files
´ print the score with builtin postscript font
´ Play the score immediately
´ Edit the position and number of staves and systems on the page
MusicBuilder lets you define orchestras with MLOrchestra.app
´ Drag and drop players into an orchestra room
´ Edit players with an inspector panel
´ Define player's name, and which score part and voice to play
´ Define additional note manipulation the player does
´ Define microphone positions and characteristics
´ Define orchestra room size and player group volume
MusicBuilder lets you calculate sounds with MLVoice.app
´ Define Fourier Synthesis parameters as colored graph
´ Define functions for base frequency, harmonics, volume,
´ slot duration and additive component (noise)
´ Make these functions dependent on your own parameters
´ Draw, copy and paste the color area
´ define variables with MathInspector and play the voice you defined
MusicBuilder lets you put music together with MLProducer.app
´ Select a score and an orchestra
´ Select a number of voice folders with a Voice Manager panel
´ Select measures of the score you want to produce
´ Start up MLScore.app, MLOrchestra.app, MLVoice.app
´ Produce a 44100 Hz, 16 bit linear, stereo NEXSTEP .snd file.
MusicBuilder lets you edit mathematics with Edit and MLFunctionsEd.app
´ look at the mathematics with MathInspector in MLScore.app, MLOrchestra.app,
and MLVoice.app
´ open .math-ml files in Edit
´ select Functions, Constants, Magnitudes in these files
´ start MLFunctionsEd.app from Edit to edit Color Functions, Graphs, and Tables
´ try out your definitions using the Calculator panel
Release Notes
1.0
No significant features have been added compared to the prerelease. Instead, all reported bugs and a number of unreported ones have been fixed. Since there are no outstanding bugs, and the previous release was a prerelease, the fixed bugs are not listed here.
Main work has been done to solve the different installation and file handling problems reported for the prerelease. Now the programs try to solve the problems by themselves or at least help you by giving appropriate instructions.
A visible change has been done in MLOrchestra. The selected player image has been changed to more clearly express the selection. Now, the selected player has a white shirt AND a white instrument, the unselected player has a dark instrument.
When assembling voices in MLProducer, a panel now shows the assembly progress. Also you may cancel the assembly by pressing the Assemble Voices button again.
The interface between MLProducer and the other apps has been changed to make all apps replaceable by third-party products, if desired. The old interface has not been published so you probably have not been aware of it.
New Features in the 1.0 Final Release
MLProducer.app
- Shows a progression panel when assembling voices
- Allows to cancel voice assembly
- The production Interface (see the last chapter in the user manual)
has been changed, allowing to use other applications than
MLScore.app, MLOrchestra.app, and MLVoice.app to produce notes,
to modify them, and to produce sounds from them
MLVoiceManager.app
- A function (Command-r) has been added to remove folders
Installation
- The applications now extend the workspace application search path
automatically allowing to install MusicBuilder in folders other
than ~/Apps and /LocalApps
1.0.1
MusicBuilder now runs under NEXTSTEP 3.0.
1.2.0
New features (most of them in MLScore.app)
´ Import and export of Midi files
´ Printing, with postscript score symbols included
(don't need to buy an extra notation font)
´ Immediate playback in MLScore.app, directly on the sound output
of the machine, using the main processor
´ Editable score page layout (number/position of systems and staves),
predefined layouts
´ Improved score display with automatic note direction and
beams determination
´ 1/32 and 1/64 notes and rests
´ Full online documentation (as NEXTSTEP-Help).
Enhancements and bug fixes (all in MLScore.app)
´ Tuned score evaluation with page based caching
´ Refresh function splitted into "refresh page" and "refresh all"
´ Resulting Notes Inspector shows parameters of rests too
(measure, value, start time, duration)
´ No unnecessary shadows when dragging
´ Standard palette protected from removing or adding elements
´ Interpretation of score elements closer to the usual behavior
Ñ keys inside a measure are in effect only up to the end of the measure
Ñ staff modifiers (like Loudness) are preserved from system to system, and do not interference with other staves
Ñ on evaluation, system modifiers (like tempo) are intermixed as usual with staff elements, allowing you can change the tempo in the middle a the system
Ñ palettes and inspector are now floating above the score
Ñ note modification evaluation order changed to make it easier to manipulate a note's intrinsic parameter "value"
´ Errors found in user defined mathematical expressions during score evaluation are handled
properly now (the evaluation stops, the erroneous element is selected).
and some others.
1.2.1
New features
´ MLVoice.app interprets a string-valued filter parameter as frequency filter expression.
Bug fixes
´ Immediate playback in MLScore.app did not work on Intel platform. This has been corrected.
´ Table functions now work with significantly more than 48 entries.
´ Rest position and clef room have been corrected. Note that the rest positions
will not automatically be corrected for scores written with MusicBuilder 1.0.
´ Some bugs have been fixed in the calculator.
´ The MathInspector now shows and accepts string parameters in parentheses.
Also, a bug has been fixed preventing MathInspector from showing the math files
correctly. When pressing the Reload button, previous parameters are preserved.
This makes it easier to develop graph filter functions in MLVoice.app.
1.2.2
New features
´ A sample voice server MLPluck.app is included in the distribution as source and binary.
It implements a physical modeling algorithm for plucked string instruments. See the
online-help of MLPluck.app for information about the algorithm. You can take and modify
the code if you want to write your own voice server for MusicBuilder.
Bug fixes
´ The score was refreshed after each mouse click. Now it is refreshed only if you changed
something (this was my intention from the beginning :-)
´ The predefined score layouts 5x1--MegaPixel and 10x1-A4 were faulty.
The score calculation did not work with these settings, since there where two
staves one above the other. The file PredefinedLayouts in the app wrapper has been fixed.
Known bugs
´ There are still bugs in the calculator.
´ The Midi Reader sometimes does not correctly subsume very short rests, producing
a sequence of 1/64 rests until the end of the current measure.
´ It's not easy to drag notes from one score to another one since the source score comes
to front when you start to drag.
Availability and Pricing
Release 1.2.2
´ June 1995
´ MusicBuilder runs on all current platforms (NEXT, Intel, Sparc, HP-PA)
under NEXTSTEP 3.0, 3.1, 3.2, or 3.3.
´ single floating licenses in US Dollars (plus shipping)
professional $299
home user $199
educational $199
student $59 (w/o printed documentation)
multiple floating network license discounts available
For Additional Information Contact ...
Please, send questions, suggestions and bug reports to the address given below.
You can also use this adress to order a copy of MusicBuilder.
melonSoft Ralf Suckow Berlin
Ludwig-Renn-Strasse 62
12687 Berlin, Germany
e-mail: suckow@contrib.de
fax: (+4930) 932 19 01
Questions & Answers
Q: In MLVoice.app, I get an alert panel complaining about an undefined function.
What can I do?
A: A .math-ml file containing the function is missing in the folder that contains the document which is currently calculated. If you didn't specify your own functions, this is a default function. To get a new file with the default functions, store a new voice in the same folder. MLVoice will also copy a default-MLVoice.math-ml file into it.
Q: In MLOrchestra.app, I get a message about a syntax error with something like "duration = +Infinity". What's going on?
A: MLScore.app produced a raw notes file that contains this string. The reason is that the tempo is set to zero. This happens when either you set it to zero by using your own, undefined tempo, or you use a default tempo but the default-MLScore.math-ml file is not contained in the folder with the score document. Use the MathInspector to check what's going on. You may create a new default math file by storing a new score into the folder.
Q: What defaults do the MusicBuilder programs use / manipulate?
A: Here's a list of them:
Owner Name Example/Default Value
melonSoft-MusicBuilder Password "aa bb cc ..."
melonSoft-MLScore Folder "~/Library/MLScore"
melonSoft-MLOrchestra Folder "~/Library/MLOrchestra"
melonSoft-MLVoice Folder "~/Library/MLVoice"
melonSoft-MLProducer Folder "~/Library/MLProducer"
melonSoft-VoiceManager VoiceFileFolders "~/Library/MLVoice"
melonSoft-VoiceManager VoiceFileExtensions "voice-ml snd"
Workspace ApplicationPaths "~/Apps:/LocalApps:..."
Q: Playing a voice directly in MLVoice.app gives no result.
A: Initially, duration, volume, and freq are set to zero when playing a sound. Use the MathInspector to give them reasonable values after pressing "Play" the first time.
Q: Playing a voice directly in MLVoice.app sounds terrible.
A: Probably you have got an amplitude overflow. Reduce the volume, or the color values in the loudness section of the voice picture. The maximum volume a voice should be able to play is 1.
Q: While all seems to be OK in MLProducer, it does not assemble voices but beeps.
A: Check if the modified notelist is empty (double-click to open it). It this is the case, you probably use an orchestra that does not fit for the score. In the score you defined parts (the default is "all"). In the orchestra, you define a "part" attribute of each player using the player inspector. If the parts in the score and the orchestra mismatch, no note passes the orchestra.
Eric M. Mrozek (mrozek@umich.edu), EECS-Systems, University of Michigan