Most Important for Release 1.0.1: It runs on NEXTSTEP 3.0 too. Double-click "FixNS3.0ServicesProblem" to make MLFunctionEd usable under NEXTSTEP 3.0. --------------------------------------------------------------------------- 1. About MusicBuilder --------------------- MusicBuilder is a music creation application. It works on computers running NEXTSTEP. 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. Look at the end of this file for a feature list, availability, warranty, and contact information. 2. 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. 3. How to Install MusicBuilder ------------------------------- The file MusicBuilder-1.0-Demo.tar contains the whole demo. When unarchived by selecting the file in workspace and choosing "Decompress" in the "File" submenu, it gives you: MusicBuilder.README - this README file MusicBuilder-1.0.1-Demo.pkg - the application package MusicBuilder-1.0-Samples.tar - the example files If you got MusicBuilder on a CD-ROM distribution, you already will find these three files extracted from the initial ...Demo.tar file. - Installing the programs The package contains five applications, MLScore.app, MLOrchestra.app, MLVoice.app, MLProducer.app, and MLFunctionEd.app. Double-click MusicBuilder-1.0.1-Demo.pkg. The package is opened in the Installer application. Press the Install button. You will be asked where to install MusicBuilder. The default is the Apps folder in your home directory. Alternatively you may want to install it in /LocalApps if more than one user will want to try it out. With a little more subsequent effort you also may install MusicBuilder in any other folder like /Net/GreatSoftware/Apps. Note that you need certain access rights to install the package into /LocalApps, usually you need to be "root". After the installation is completed you may quit the Installer. 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. Close the terminal window after the script has finished, if necessary. - Installing the examples It is recommended for each user going to try out MusicBuilder to install the example files into his working folders. Copy the file MusicBuilder-1.0-Samples.tar into your home folder. Select the file in workspace and choose "Decompress" in the "File" submenu. This creates the folders MLScore, MLOrchestra, MLVoice, and MLProducer in your Library folder and puts the example files there. Possibly existing folders with the same name are preserved, only files are added / replaced. Now you may remove the MusicBuilder-1.0-Samples.tar file from your home folder. - Using examples from a CD-ROM In a CD-ROM distribution you possibly may find the ...Samples.tar file unpacked into a Samples folder. In this case you may use the examples directly from the CD without copying them to your harddisk. Note that you need to drop the ...Samples/MLVoice folder into the Suitcase of the Voice Manager in MLProducer. This makes MLProducer to look for voices on the CD-ROM. - Checking if the installation was successful The critical point in the installation is if workspace finds the installed applications. Go to one of the folders with examples, let's say .../Library/MLScore. Select one of the example files (with the .score-ml extension, in this case). If you did not install the examples then you may create an empty file (with Edit) in any folder and name it myFile.score-ml. If the installation was succesful, the selected .score-ml file should show a musical score icon with a light green (or gray) border. If you only see the default text icon, workspace does not find MLScore.app. In this case you may choose "Update Viewers" in the "View" menu of the workspace (Command-u). This makes it search for new applications. If you click the .score-ml file again after a while, it should show the right icon. If not, you probably placed the applications into folders other than ~/Apps and /LocalApps and they are not contained in the application search path of your workspace. Start one of the MusicBuilder applications (except MLFunctionEd.app) manually, i.e. by double-clicking, in this case. The application will extend the application search path of workspace to contain the folder where you installed this application. Then it will ask you to LOGOUT and LOGIN. You may check the application search path of workspace by typing the following command in a terminal window. dread Workspace ApplicationPaths If MusicBuilder still does not find the applications, you probably have no read access to the application folders or files. Ask your system administrator for help in this case. - Providing the Password (-: This is interesting for the full version only. :-) - Installing MusicBuilder in a Network (-: This too. The demo version doesn't know about floating licenses etc. :-) - Changing the working folders When unpacking the examples, some subfolders have been created in your ~/Library folder. These are the default working folders for the MusicBuilder applications. MusicBuilder supports the work with these folders much better than with arbitrary folders. If you want to use another default folder for a program, for MLScore for example, you need to do the following. Create the new default folder, /users/joe/Work/MLScore for example, if it doesn't exist yet. Open a shell in the Terminal application, and write dwrite melonSoft-MLScore Folder /users/joe/Work/MLScore You may do this with all MusicBuilder applications by replacing "MLScore" after "melonSoft-" with the current application name. Also you may drag the example files from ~/Library/ML... to the new folders. It is no problem if you use one folder for all programs, e.g. dwrite melonSoft-MLScore Folder /users/steve/MLWork dwrite melonSoft-MLOrchestra Folder /users/steve/MLWork dwrite melonSoft-MLVoice Folder /users/steve/MLWork dwrite melonSoft-MLProducer Folder /users/steve/MLWork Good luck! 4. Trying Out MusicBuilder --------------------------- 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. 5. MusicBuilder 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 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 6. Release Notes ---------------- 1.0 Prerelease --> 1.0 Final Release No significant features have been added in this release. 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. No 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 Final Release -> 1.0.1 MusicBuilder now runs under NEXTSTEP 3.0. 7. Availability and Pricing --------------------------- - August 1994 - MusicBuilder runs on NEXT computers and on Intel processors under NEXTSTEP 3.0, 3.1 or 3.2. - a single license comes for U.S. $199 plus shipping and handling (approx. $15 to U.S., $8 to Europe) + possibly VAT (outside of Europe). - floating multi-user network licenses are available too 8. Warranty ------------ - Limited Warranty: This software is provided "as is" without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. - No Liability For Consequential Damages: In no event shall the author or melonSoft - Ralf Suckow - Berlin be liable for any damages, including any lost profits, lost savings or other incidental or consequential damages arising out of the use or inability to use this software, even if the author or melonSoft - Ralf Suckow - Berlin has been advised of the possibility of such damages. 9. For Additional Information Contact ... -------------------------------------------- Please, send questions, suggestions and bug reports to the address given below. The address can also be used to order MusicBuilder. melonSoft Ralf Suckow Berlin Ludwig-Renn-Strasse 62 12687 Berlin e-mail: suckow@contrib.de fax: (+4930) 932 19 01 Have fun! Ralf P.S. Here are some FAQs 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.