Reference

Dimension

Most functions have one free dimension: Y. The X dimension is varied by the program (from 1 to the size of the vector) and the function yields the Y, for example: Y=sin (X). Two-dimensional fractals have two free dimensions, both the X and the Y dimension are functions by a third parameter, let's say T. This parameter is varied by the program between 1 and the size of the fractal.

For three-dimensional fractals this story is more complex. There are two types: dynamic systems and complex maps. The Lorenz fractal is a 3D dynamic system and it behaves in exactly the same way as 2D dynamic systems, but it has one free dimension extra: Z. When plotting a Lorenz fractal this third dimension is the color of the fractal.

The other type of 3D fractal is the complex map. This one has only one free dimension: Z. This dimension is computed as a function from both X and Y. Two examples of these fractals are the Mandelbrot and Julia sets.

Memory occupied by vectors

Data vectors occupy memory for each data element that they have (six bytes to be exact). Not so for fractals. They are just formulas from which elements are computed. That means that they occupy as much memory for 10 elements as for 1,000,000 elements. The drawback is that a one million-element fractal takes a long time to compute when it is being plotted. However, when generating music there is no difference between a fractal of 10 or 1,000,000 elements.

Text editor

The text editor allows you to edit text before it is inserted as a vector. When you press OK, text is converted to a vector, which means that the text is converted to numbers. It cannot be converted back. The text editor is called when you insert text from the Data tab, paste text from the clipboard or insert a text file. * Cut selected text to the clipboard. * Copy selected text to the clipboard. * Paste text from the clipboard into the editor. * Insert a text file into the editor. * Save the text into a text file.

Tone scale editor

The tone scale editor allows you to create new or change existing tone scales. When a Musical Generator is playing music, playback is halted. Click Edit|Tone scales and you will see the tone scale editor.

* A view of all available scales. * The checked notes belong to the selected scale. Check to include a note in the scale and uncheck to remove a note from the scale. * The tonica is the starting point from the scale. It should be an existing note. * The dominant is not used. Reserved for future use. * Save changes and quit the editor. * Do NOT save the changes and quit the editor. * Create a new, empty scale. Empty scales are not allowed. A scale must containt at least two notes. Just add the desired notes or delete the scale if you want to quit. * Plays the notes in the scale, starting from the tonica. * Rename the selected scale. * Delete the selected scale. No warning is issued. #$Editing Colors A Musical Generator gives a detailed control over the colors of a complex map fractal and of a 3D dynamic fractal (e.g. the Lorenz fractal). This is done with the color control (see below). {bml color_1.shg} The color control works according to the following principle: the values of the Z-dimension of a vector are used to determine the color. These values vary between the minimum and the maximum of the Z-dimension. These values are divided into two sections, the low and the high section. A separator divides these sections. Suppose the minimum value of a vector is 100 and the maximum is 200. If the separator is 0.50 then the low section is in the range [100..150] and the high section is in the range <150..200]. The two buttons below, left determine how the color changes from the color of the first button to the color of the second button. The buttons below, right apply to the high section. Be careful what happens if you try to change the number of colors. #The start color of the low section. #The end color of the low section. #The start color of the high section. #The end color of the high section. #The separator between the low and the high section. You can move the bar to change the low and high section. Click preview to see the effects. If you don’t want any high section, just move the separator totally to the right. #The coloring box has three options: Normal, Rainbow and Four. Default is Normal and its workings have already been discussed. The two other values have the following effect: Rainbow: All colors of the rainbow will be shown in the low section. {bml color_2.bmp} Four: all four colors are shown alternately. No distinction is made between the low and the High section. This can give surprising results in especially complex maps. {bml color_3.bmp} #The number of colors which will be used for the fractal. The higher the number, the finer the fractal will be drawn. However, the fractal should supply the values to support the number of colors. For example: a complex map by default has a maximum of 255 iterations and can thus show a maximum of 255 colors. Increasing the number of colors has no use, unless you increase the maximum number of iterations as well. When you change the number of colors, this takes only effect when you press enter. #$The Preview/Prehear bar {bml edit_preview_panel.bmp} #$Fractal Editors Fractal editors allow you to change your fractals and data in many ways. Because there are several types of fractals, there are also several fractal editors. The following editors are in use: 1D Editor Dynamic System Editor User Defined Editor Complex Map Editor Data Editor Lindenmayer Editor IFS Editor #$Editing a 1D Fractal The 1D editor shows the parameters of the fractal and if you press the preview button ({bmc edit_preview.bmp}) it also shows the fractal itself. You can change the parameters and plot and hear the results.

{bml edit_1D.shg}

Normally, playing of a fractal begins at its first value, in the plot its leftmost value. You can change this value by either changing the start value or by clicking near the left end of the plot. In that case a black bar appear which can be moved with the mouse. When the bar is moved, the value in the start box changes as well. The same applies to the finish value, either change it in the finish box or click at the right side of the box. By pressing play, you’ll hear the difference. #Shows the fractal. This yields a better impression of the musical capabilities of the fractal. You can change the start and finish positions from which the vector is played in two ways: by changing the start and finish values or by setting the range limits manually. To change the start value, manually click near the left end of the plot. A black bar appears which can be moved with the mouse. When the bar is moved, the value in the start box changes as well. The same applies to the finish value, either change it in the finish box or click at the right side of the box. By pressing play ({bmc vcr_play.bmp}), you’ll hear (and see) the difference. #$Editing a Dynamic System The Dynamic System editor shows the parameters of the fractal and if you press the preview button ({bmc edit_preview.bmp}) it also shows the fractal itself. You can change the parameters and plot and hear the results.

{bml edit_dns.shg}

#The size of the fractal. #The parameters of the fractal. #$Editing a User Defined Fractal The user editor allows you to create your own functions or fractals. You must supply an equation for the Y dimension, if you don't provide an equation for the X dimension, the iteration variable (T) will be assumed and if you provide an equation for the Z dimension, it will be used for the color. You can insert four variables: T, X, Y and Z in the equations and five parameters: A .. E. The X, Y and Z values are these of the former iteration. {bml edit_usr.shg} The editor supports the following functions for the formulas: Predefined variable: PI Accepted operators: + , - , * , / , ^ , MOD, DIV The following functions are supported; it doesn't matter if you use lower or upper case:

  COS, SIN, SINH, COSH, TAN, COTAN, ARCTAN, ARG,
  EXP, LN, LOG10, LOG2, LOGN,
  SQRT, SQR, POWER, INTPOWER,
  MIN, MAX, ABS, TRUNC, INT, CEIL, FLOOR, 
  HEAV (heav(x) is =1 for x>0 and =0 for x<=0),
  SIGN (sign(x) is 1 for x>1, 0 for x=0, -1 for x<0),
  ZERO (zero(x) is 0 for x=0, 1 for x<>0),
  PH (ph(x) = x - 2*pi*round(x/2/pi))
  RND (rnd(x) = int(x) * Random)
  RANDOM (random(X) = Random; the argument X is not used)

#The number of iterations for variable T. T iterates from 1 to the value you supply. #Determines how the values are plotted. If you check this box, the computed X and Y will be connected with lines. If you uncheck it, only dots are plotted. Experiment which situation best represents your formula. #Supply a formula for the dimensions. A formula for Y must be provided. Z is used for color and if X is omitted, the value of T will be assumed. #The initial values for the iteration. #You can use A, B, C, D and E in your equations. Here you give their values. #Determines the start and finish values for each dimension. When a vector plays it starts at the start position for that dimension and runs until the finish value. #The preview window shows the preview plot when the preview button ({bmc edit_preview.bmp}) is clicked. In complex maps you can zoom in on the fractal by selecting the area you want to zoom with the mouse. #The dimension preview shows the fractal for each dimension. This yields a better impression of the musical capabilities of the fractal. You can change the start and finish positions from which the vector is played in two ways: by changing the start and finish values or by setting the range limits manually. To change the start value, manually click near the left end of the plot. A black bar appears which can be moved with the mouse. When the bar is moved, the value in the start box changes as well. The same applies to the finish value, either change it in the finish box or click at the right side of the box. By pressing play ({bmc vcr_play.bmp}), you’ll hear (and see) the difference. #The preview bar has many functionality’s to preview and prehear the choices you have made in the fractal editor. {bml edit_prv.shg} #The preview button shows the impact of the current settings on the fractal. In some cases this yields an error. In that case you should change the settings. #The MIDI messages window shows the MIDI messages generated for this one fractal. #The play button will try to play the button. In some cases this yields an error. The music will not be played. #Pause the current playback. #Play one note and wait until step is pressed again. #Stop playback. #Change the aspects that will be applied to the playback. You will not be able to change the vector. That will be the vector that you are currently editing. #Copy the aspects to the MIDI channel of your choice when you quit the editor. #$Editing a Complex map The complex map editor allows to to edit, preview and “prehear” complex map vectors. Change the values and press the plot button ({bmc edit_preview.bmp}) to see the effects of the changes. To hear the changes, press the play button ({bmc vcr_play.bmp}). You can zoom in on a fractal by selecting a small are with the mouse and the editor will automatically zoom in on the fractal.

{bml edit_cmp.shg}

There are three ways in which a complex map fractal generates sound. The old way was for each step down the Y-direction, all lines in the X-direction are computed. This is now equivalent with the Z-Dimension and is still the default. Two other methods are a slice in the X-Direction and a slice in the Y-Direction. In order to achieve this click either the X or the Y dimension. The small plots on the left and below the central plot show the slices look like. To determine which parts will be sliced a cross can be put over the map. Click on the cross button and a cross appears on the map. By moving the mouse, the cross is moved. Choose an appropriate position for the cross and click the mouse. Click the play button and the vector is being played. You can change the note aspects by clicking the aspect button ({bmc note_notes.bmp}). If you like your current aspects you can copy them to a MIDI channel by clicking the copy button ({bmc edit_copy.bmp}). Colors can be precisely controlled with the color control.

Minima and Maxima Cross Steps Parameters Maximum iterations Estimation methods Initialization Method Dimension Colors #The ranges between which the complex map is computed. When zooming in on a fractal, the minima and maxima are adjusted. #Fraction between [0..1] of the X and Y direction of the cross. Click at the button and the cross appears at its current position on the plot preview. Move the mouse and the cross moves as well. Click again and the new mouse position will be retained at the screen. #When a complex map is plotted, it is computed for each pixel between minimum and maximum. When music is generated there is no such grid (pixels of a screen) so an artificial grid must be generated. The number of steps indicates the number of computation steps between minimum and maximum. The greater the amount of steps, the more precise one hears the fractal and the computing time is needed. #Parameters needed for the fractal. #A complex map is computed for each grid element. The number of iterations counts as the result of the computation. The higher this number is, the more precise results are yielded, and the more computing time is needed. #There are three methods of computing the results of a fractal. Choose one of them. #When making the computations for a grid element, the computations are initialized in a certain way. The Mandelbrot method initializes each computations with the value of its grid position. The Julia method uses the parameters while the Random method chooses a random value between both parameters. #The dimension parameter determines how a fractal sounds on prehearing it. X for X-direction, Y for Y-direction and Z for above to below, from left to right. Which dimension you will actually hear is not determined by this parameter, but by the dimension parameter from the notes aspect. # Changes the colors with which the complex map is drawn. #$Editing Data A data vector can be edited by editing its values. You can cut, copy and paste values from and into the editor. It is possible to load and save values from file (txt and prn-files). There are no facilities fro previewing and prehearing. {bml edit_dat.shg}

#$Editing a Lindenmayer Fractal Edits a Lindenmayer fractal. {bml edit_lin.shg} #Changes the depth of the recursion. Either move the slider or change the number. #Changes the angle. The effect of this parameter will not be overly visible because the fractal is always plotted to fit the view, thus distorting the angle. #The rules of the equation. Each rule should be on a new line. #The axiom determines which rule will start the evaluation. #$Editing an Iterated Function System (IFS) Allows you to edit an IFS fractal. Three fractals are preprogrammed: Fern, Sierpinski and Chaos. {bml edit_ifs.bmp} #$Aspect editor The aspect editor comes up when you press one of the aspect buttons. Not all properties may be changed for each aspect. This will be mentioned for the property in question.

{bml ena.shg} #$Press the arrow down button and choose the vector to be assigned to this aspect. Select <none> if you want no vector assigned or want to remove a vector from the aspect. #$Select minimum and maximum of the aspect. Under the heading “allowed” you find the maximal maximum and the minimal minimum show. #$Choose the dimension of the vector. The number of dimensions can differ for each vector. #$If rescale is checked, then all vector values are rescaled between minimum and maximum. If you want to eliminate this, uncheck rescale. However, if a value is below maximum, it is replaced by maximum and when it is below minimum, it will be replaced by minimum. #$A suitable default when no vector is provided. This is not possible for the notes aspect (a vector must be provided) and for the time aspect (default time is the time of the former note plus its duration, starting at zero). #$Each MIDI channel can be played in a certain style, from legato to staccato. By changing the style in the main window, the style is set for each MIDI channel to the same style. #$Each channel has its own scale. When changing the scale in the aspects window, only the scale of this window will be changed. #$Usually a sound card has several sources for sound, so-called ports. Your computer may have several soundcards, which results in the same thing. For each channel you can select a separate port. #$Change the style for this MIDI channel. The style varies from very legato via normal to very staccato. #$KPlay controls {bmc vcr_play.bmp}When you press the play button, the program first checks whether at least one soundcard is present. If not, an error message is generated. Next the program checks whether there is music to be generated, that means that a vector must be assigned to the notes aspect for at least one channel. If not, the program informs you so. When it has performed these tests successfully the program starts to play. {bml play.shg} #{bmc vcr_rewind.bmp}Rewinds the music. When music was playing, it starts to play from the beginning. #{bmc vcr_play.bmp}Play the music. #{bmc vcr_pause.bmp}Pause the music. #{bmc vcr_stop.bmp}Stop the music and quit the play controls. #{bmc vcr_step_forward.bmp}Plays one group of notes (all notes with the same time stamp) and than pauses. #Shows the current position of the song. You can change the position where the music is being played by changing the slider position. #$K Plotter The plotter allows you to have a view of the vectors. In order to plot one or more vectors, right click on them in the DATA view and select plot. You can copy the plot to the clipboard by right clicking in the plot button.

{bml plotter.shg} #$KCopies the plotter area to the clipboard so that it can be pasted in other applications. #$KRemoves selected vectors from the plot. #$Remove all vectors from plot. #$Sometimes when resizing during a plot some vectors are not fully plotted. Select replot to force all vectors to be plotted. #$Saves current plot to file. #$Allows you to save the current plot as a wallpaper. When you click the button the following happens: A dialog pops up to save the plot as a bitmap file When you enter the name and press ok, windows maximizes, to the maximum of the screen. The vectors are plotted. The current window is saved to the designated file. And is set as the current wallpaper. #$MIDI Channel Editor You can change the instrument and the playability of each MIDI channel with the MIDI channel editor.

{bml emc.shg} #$Change the instrument by clicking the right arrow down and selecting the desired patch. When a Musical Generator is playing, the change takes effect immediately. #$Click this button if you don't want to hear the channel during playback. #$Set the name of the MIDI channel. #Click this button to mute all other MIDI channels #Click this button if you want to hear all MIDI channels #${bml ins_func.shg} The insert function allows you to insert a data vector into the DATA section. #$Drum Channel Editor The drum channel editor changes properties of the drum channel.

Name The name of the drum channel.

Patch The patch of this drum channel. #$MIDI Event Editor The MIDI event editor inserts a new MIDI event or changes an existing MIDI event in the events tab.

Time The time at which the event should be inserted.

Event The type of event.

Channel The channel to which this event applies.

Data MIDI events need two bytes of information. The exception is program change which needs just one byte. The value of these data bytes may vary between [0..127]. The interpretation of this byte depends on the event.

View The data bytes can be viewed as hexadecimal or decimal. #$Number Generator The number generator generates numbers according to a specific pattern.

Begin First number of sequence.

End Last number of sequence.

Skip Amount of numbers to be skipped. When it is 1, the sequence might be: 1, 3, 5, 7…, when it is 2: 1, 4, 7…

Increment The amount with which the iterator is increased. This number should always be positive as the end should always be greater that the begin number.

Iterations The number of times the sequence should be repeated.

Noise Allows you to add a random pattern (white noise) between the values low and high. If you wish to add brown (Gaussian) noise, the first parameter is the mean and the next is the standard deviation. #$Instruments Editor Instruments are MIDI patches together with their MIDI properties. Currently only one property has been defined (panning), in the future other properties will be defined. When changing the patch of a MIDI channel, only the sound changes. However, the instrument has other properties, like panning. When changing the instrument of a channel, the panning changes to the value of that instrument. You can change the panning value of each instrument. Press test to hear the result.

{bmc edit_ie.bmp} #$MIDI Base Editor When a PC has sound capabilities it usually has several sources of sound, so called ports. Users may have built in several sound cards, each providing one or more ports. Some ports have the capability to connect MIDI devices to, i.e. a keyboard, alternative sound sources, etc. The MIDI base editor shows all MIDI output ports. It also shows whether a Musical Generator was able to allocate that port. This is shown by a note symbol in front of the name of the port. During start up a Musical Generator tries to allocate all ports in your system. If no note symbol is shown before a port it is allocated by another program and it will produce no music. If no port is flagged with a note symbol, a Musical Generator will not be able to play music at all. This is usually indicated at startup. A Musical Generator can deallocate a port by clicking on its note symbol. When it disappears the port is available for other programs. This can be critical if you try to record music from a Musical Generator into other programs, i.e. Cakewalk. By clicking the port again the note symbol returns if a Musical Generator is able to reallocate the port. When clicking at a port it shows the capabilities of that port. Some ports are able to send MIDI messages to an external MIDI port. These ports are indicated to possess the technology ‘MIDI port’. Exactly one port can be selected for the MIDI out function. If a port has been such selected this is denoted by the symbol of a MIDI plug. You can click on this symbol to deselect the port for MIDI out. You can click on another port to select it for MIDI out. Usually a port possessing the MIDI port technology does not produce sound. If you don’t hear any music, this should be the first thing to investigate.

{bmc edit_mbe.bmp}

#$Options The options dialogue changes parameters of a Musical Generator. The following parameters can be changed. Beats The number of beats in a measure.

Denominator The denominator of a measure. Beats and denominators are currently not used in a Musical Generator. However, they are saved in MIDI files and come in useful when reading a MIDI file in a sequencer.

Convert 14 bit controllers to 7 bit Most ports do not recognize 7 bit controllers. When this option is checked, only the Most Significant Byte (MSB) of a 14 bit controller is transmitted to the MIDI port.

Dichotomize 1 bit controllers 1 bit controllers are controllers which are ON or OFF. Usually the numbers between [0..63] are recognized as OFF and [64..127] as off. When this option is checked the numbers [0..63] are converted to 0 and the numbers of [64..127] to 127.

Check for new version If this option is checked, after startup a Musical Generator checks via Internet whether a new version is available. If so, you will be informed. It is assumed that you have an internet connection. If not, you will get an error message like ‘socket error’ or something like that. If there is any error you will be informed via an error message in the status line. No information from your PC is transmitted to MuSoftBuilders. #$Transforming vectors A vector can be transformed by applying mathematical formulas to all values of one dimension of a vector. This results in a data vector, i.e. a list of numbers. Select a function and click on a vector. By clicking on apply a new vector is computed and added to the list of vector.

Functions A list of available functions. When Xi denotes a value of the vector, the functions compute the following: Mirror value – Xi; value is requested from user Invert From back to forward Add cumulative Xi + Xi-1 Multiply with constant constant * Xi; constant is requested from user Difference Xi – Xi-1 Absolute |Xi| Ln ln (Xi) Exp eXi (easily overflows) Sinus sin (Xi) Cosinus cos (Xi)

Vectors The list of vectors from the data view. New vectors are added to this list by clicking apply.

Name Name of the newly added vector.

Close Closes the transform dialogue and adds all vectors from vectors to the DATA view.

Apply Applies the selected function to the selected vector. If successful a new vector is added to vectors. #$Select the desired function. #$Enter the size. As the resultant vector is a data vector you should realize that each element occupies memory (on the other hand: 100,000 elements occupy about 2/3 MB). #$Inserts as a function as a vector into the DATA section. Choose the function and the number of points with which you want the function to be represented. #$Displays the number editor in which you can directly type numbers. #$Displays the text editor in which you can type directly text. How the text is interpreted into a vector you can read in Converting text into a vector. #$Inserts a dynamic system fractal into the DATA section. #$Inserts a complex map fractal into the DATA section. #$Inserts some other fractals into the DATA section. Currently these can be a Lindenmayer fractal or your own fractal. #$Application Window {bml open.shg} #${bml file_open.bmp}Open a file that has been saved with a Musical Generator (.tmg file). #${bml file_save.bmp}Save a file as a Musical Generator file (.tmg file) or as a MIDI type 1 file (.mid file). #${bml vcr_play.bmp}Press the play button to hear the music you created. You nust have assigned at least one vector to the notes button, else there is no music to be played. When have have played a piece of music and have changed some parameters (like tone scale or beats) you must explicitly press this button again, else you will hear your old music again. When you press the play button, the play controls show, until you press the stop button. #${bml Button_Wizard.bmp}Starts the play wizard to easily create a piece of music. #$If you uncheck the checkbox before a channel you will not hear sound from that channel. Check to hear sound again. #$The progress indicator shows how much of your music has been played yet. #${bml global.bmp}When the global Button is not pressed each vector is rescaled to its own (local) minimum and maximum. When pressed, all vectors are rescaled to the smallest minimum and largest maximum of all vectors in the DATA section. #${bml edit_preview.bmp}The plot button lets the plot window appear. #${bml synchronize.bmp}The synchronize button allows to record the music you create in an external sequencer. Most MIDI sequencers have an option that to have their clock controlled by another program, in this case a Musical Generator. When you press play, all MIDI codes are transmitted to the MIDI output port. You can set the MIDI output port in the MIDI base editor. #${bml note_off.bmp}The notes off button silences each MIDI channel form each synthesizer. Sometimes a note remains 'hanging', because a corresponding note off signal has not been received. This is quite normal when you change the synthesizer during playing music. By press the notes off button, you eliminate a source of irritation. #$The MIDI window displays a window with all MIDI events and comes up when you click Windows|MIDI messages. Click again to remove the window. This window could be useful for someone who knows MIDI. Be careful: converting the internal MIDI notation to the MIDI events window is a very time consuming process, especially for long sequences. An example is shown below. {bml midi_win.bmp} #$The piano roll shows the pitch of the notes and their length. Click again to remove the window. An example is shown below. Each channel has its own color. {bml pianoroll.bmp} #${bml loop.bmp}When the loop button is pressed, the music starts again when it is finished, else the music will stop at the end. #$The tempo is expressed in quarter notes per minute, often called beats per minute (bpm). You can use the tempo bar to change the speed with which music is played. #$Displays the synthesizers in your system. One soundcard can have several synthesizers; the Soundblaster AWE 32 for example has a wave table, a FM synthesizer and an external MIDI port. All three are listed and can be chosen. Default: when one of the synthesizers contains the word “Roland”, it will be chosen by default. #$Select the amount of beats. #$Selects the denominator or beat duration of the time signature. #$The number of measures in your piece. #$Changes the tone scale globally, i.e. for each MIDI channel. A tone scale determines which notes are available in an octave. The most simple tone scale is the chromatic scale, which allows all notes in an octave, probably the most used is the major scale. Each scale has a tonica and a dominant. The dominant is not used in the current version of a Musical Generator, however, the tonica is. The scale is defined in relative distances to the former note, starting from the tonica. For example 2 2 1 2 2 2 with tonica C Means: c, d, e, f, g, a, b; the major scale. The minor scale is defined as: 2 1 2 2 1 2 2, being c, d, es, f, g, a, bes. When the tonica is changed to lets say: a, the allowable notes become: a, b, c, d, e, f, g. The tone scale greatly influences the mood of the generated music. Try the same piece of music using the chromatic, major and pentatonic scale. You can change the tone scale for each MIDI channel individually by changing its note aspect. #$Changes the tonica of the tone scale. #$Fractals, mathematical functions and data files are grouped into tabs. Choose the type of function you want to explore, click at the tab and move the cursor over the images. Hints will tel you what function or fractal they denote. When you click on one of the images, its vector will be inserted into the DATA section. #$The DATA section contains the vectors with data. By right clicking in the DATA section, a popup menu gives additional capabilities, as for example, pasting text and bitmaps from the keyboard. Select one or more vectors, and you can manipulate, plot or edit the vector(s). #$The MIDI section contains 16 MIDI channels and for each channel four buttons to change pitch, duration, volume and time aspects for music generated for that channel. You can change the aspect of a channel by dragging a vector to that button. When you click at a channel, the aspects of the clicked channel are displayed. The number of measures and the number of beats and the denominator for each measure determine the length of the total piece. Choosing a different music scale changes the atmosphere of the music. For example: try the same piece of music with a cromatic scale (modern), major scale (standard) and pentatonic (chinese). #${bmc note_notes.bmp}The notes button is the button to assign the vector that uses the assigned vector for the pitch of the note. A vector is assigned to the button by dragging it from the DATA section to the button and dropping it onto the button. A button can be unassigned by dragging a vector to a place where it is not accepted and dropping it there. By clicking on the button you can change parameters of the button. Not all notes are used, this depends on the minimum and maximum and by the musical scale you have chosen. A chromatic scale for example, allows all notes to be used between the minimum and maximum while the Major scale allows only those notes that form the major scale, begin with C. #${bmc note_duration.bmp}The duration button is the button to assign the vector that uses the assigned vector for the duration of the note. A vector is assigned to the button by dragging it from the DATA section to the button and dropping it onto the button. A button can be unassigned by dragging a vector to a place where it is not accepted and dropping it there. By clicking on the button you can change parameters of the button. #${bmc note_speed.bmp}The speed button is the button to assign the vector that uses the assigned vector for the speed, or volume of the note. A vector is assigned to the button by dragging it from the DATA section to the button and dropping it onto the button. A button can be unassigned by dragging a vector to a place where it is not accepted and dropping it there. By clicking on the button you can change parameters of the button. #${bmc note_time.bmp}The time button is the button to assign the vector that uses the assigned vector for the time that the note is played. A vector is assigned to the button by dragging it from the DATA section to the button and dropping it onto the button. A button can be unassigned by dragging a vector to a place where it is not accepted and dropping it there. By clicking on the button you can change parameters of the button. Vectors #$A vector is the basic data unit and contains numbers. They are stored in the DATA section of a Musical Generator. Although you can insert text and bitmaps as vectors, they will be always converted to numbers. There are several types of vectors. Vectors can be inserted by selecting the tab with the desired type of vector. After having been selected with the mouse, they can be transformed, plotted, edited and so on. #$The following vector types are recognized by a Musical Generator: Data vectors Lindenmayer vectors Dynamic systems Complex maps #$Data vectors just contain numbers. That means that each number is stored into memory. Text, functions and bitmaps are translated into their relevant numbers. That means that it is not possible to reconstruct a bitmap into the original shape, or reconstruct the original text. If you want to edit a data vector you have to edit the numbers. #$Lindenmayer vectors or 0L systems which are described in The Algorithmic Beauty of Plants by Przemyslaw Prusinkiewicz and Aristid Lindenmayer. They describe a simple grammar with which you can easily generate plant-like structures. When inserting a Lindenmayer vector a default plant is chosen. You can insert a lindemayer via the Other tab and clicking on Lindenmayer, or by selecting File|Open and then loading a .l file. The Examples directory contains several examples from the book. The grammar assumes a turtle that walks over a sheet of paper. When it walks, the turtle may or may not draw a line. Three parameters are defined: the axiom (a Musical Generator only recognizis a single start symbol), the number of recursions and the angle. The following symbols can be used:

Symbol Meaning f Move the turtle forward without drawing F Move the forward and draw a line + Rotate the turtle right angle degrees - Rotate the turtle left angle degrees [ Start recursion ] End recursion Other symbol Like F When a Lindemayer vector is generated, all line segments are stored into memory. This can make a Lindenmayer vector very memory intensive. You should be careful with the number of recursions, because increasing this number increases the memory load exponentially. #$Dynamic systems begin from a starting point, and create new points by using formulas in which is referred to the former points. In this way interesting trajectories are computed. Most of the dynamic systems are 2D. The user defined fractal is also a dynamic system. They are stored as a formula, virtually using no memory. You can easily generate 1.000.000 points without any memory penalty. There is a penalty however, because it may take a large amount of computing time to generate such a vector. There are a lot of dynamic systems. Experiment which one generates the best result. #$Complex maps are computed for each point in a certain area. The most famous are the Mandelbrot and the Julia Fractal. Complex maps are very suitable to zoom into. When you plot a complex map, you can zoom in to a detail of the plot. This zoom becomes the new fractal (zooming changes the parameters of the fractal). #$Data Menu File Edit View Hear Play Windows Help #File New Removes all vectors and resets all MIDI channels. Open Open a file. The extension of the file determines how a file is opened. The table below shows how a Musical Generator treats the extensions.

Type Description *.tmg The current file (if any) is closed, all MIDI channels are reset and the file is opened. *.txt The contents of the file be be treated like text and inserted in the current file. *.bmp The file is treated as a windows bitmap (see converting bitmap into a vector). Three vectors (one for red, green and blue) are inserted in the current file. *.l Instructions for creating a Lindenmayer vector, This vector will be inserted into the current file. *.prn An excel exported ASCII file. The numbers should be separated by spaces. The file will be inserted into the current file. *.* The file will be treated as a *.prn file. If the file is succesfully read, it will be inserted into the current file.

Save Save the current contents of the current file. If no file was specified before, it acts as a Save as. Save as Same as Save, but asks for file name. File can be saved as a Musical Generator file or as a MIDI file Load Vectors Adds the vectors of a Musical Generator file to current file. Examples Open the example directory. Examples from other users Go to the page of MuSoft Builders with examples from other users. Exit Exit the program. #Edit Assign to Allows you to assign a vector to notes, duration, speed or time. Paste You can paste a bitmap or text from the Clipboard into a Musical Generator. Delete Delete the selected vectors. Select all Select all vectors. Convert Converts a dimension of the vector to a data vector. Transform Transform vectors with the transformation editor. Rename Renames a vector. Plot Plot the selected vectors to the plotter. Edit Edits the vector. See also Fractal Editors. Color Change the color of a vector. Complex maps can have their color changed by the editor. Global on/off Set the global option. MIDI connections Calls the MIDI base editor. Tone scales Calls the Tone scale editor. Instruments Edit MIDI patches with the Instrument editor. #View Large Icons The default view in a Musical Generator: each vector is listed as a bitmap (32×32) with below its name. List Shows the vector as a list of names. All controllers For convenience only the 16 most used MIDI controllers are shown in the MIDI controller view. By checking the menu option all controllers will be shown. This is a toggle option. Options Show the Options dialog. #Hear Room Effects the Reverb Depth MIDI controller. Small sets it to 0, meaning no effect, big yields a high reverb depth (a value of 127). The spacious option is in between. Balance The balance option gives you control over the Panpot MIDI control. Mono results in each MIDI channel having the same position in space. When setting to instrument, the values determined by the instrument determine the position of each MIDI channel. When extreme is chosen, the value of the instrument is either extreme right (0) or extreme left (127). #Play Rewind Rewinds the music. Play Plays the music. Pause Pauses playback of music. Step Plays all notes at the current (time) position, jumps to the next time position and pauses. Stop Stop the playback of music. Loop When the playback of music reaches its end, and when this menu item is checked the playback is rewound and starts again. Synchronize Enables you to synchronize a Musical Generator with another MIDI program (i.e. a sequencer). Emergency Sometimes a MIDI note is not switched off. This entry stops all MIDI notes on each MIDI channel. #Windows Plotter Toggles the Plotter window. MIDI Messages Toggles the MIDI messages window . Piano roll Toggles the Piano roll. #Help Contents Displays the contents of the help menu. Search for help on Enables you to search for specific topics. How to use help Help on help. MuSoft Builders home page Starts your browser with the MuSoft Builders home page. Mail technical support Mail a problem to technical support. Check for new versions Checks whether a new version of a Musical Generator is present and if so, why. About Displays some system information and enables you to Register a Musical Generator. #$Convert a vector (alt-c). One dimension of a vector is converted to a data vector. One vector must be selected. #$Paste from the clipboard (ctrl-v). Converts text or bitmaps from the clipboard to a data vector. #$Transform a vector (ctrl-t). Transforms one dimension from a selected vector to a data vector via a mathematical function (sinus, cosinus, exponent, and so on). #$Rename a vector (F2). #$Delete vectors (del). Delete one or more selected vectors. No warning is issued. #$Plot vectors (ctrl-p). Plot one or more selected vectors in the plot. Successive plot commands add to the plotter. #$Edit a vector (ctrl-e or double click). Calls the vector specific editor. #$ Display vectors as large icons (ctrl-a). Each vector makes a miniature plot of itself that is displayed in the . However, some vectors can be really computationally intensive, a reason why the list view is implemented. #$Display vectors as a list (ctrl-l). #Selects all vector to the DATA view. #$Shows the properties of the vector. #$+Troubleshooting The program does not seem to work I hear no music It takes a long time to produce the music #$The program does not seem to work This often happens when the size of fractal-based vectors is too big. Because fractals do not occupy memory, you can make them as big as you want, 1,000,000 points or more. However, each element must be computed when a change occurs, in order to compute the minimum and maximum of that vector and to plot the vectors in the DATA section and on the buttons. This can take a long time. So, if you are going to use large fractals (typically 10,000 or more, depending on the speed your computer), be prepared for long waiting times. #$I hear no music There can be several reasons for this. You should check for the following: Has a Musical Generator made some remarks during startup? When during startup a Musical Generator has found no soundcards it cannot make music. It informs you of that situation however. Is your soundcard working? If another MIDI program produces music you may assume that the soundcard works. Correct windows 95 setup? When you hear music, be sure you use a “normal” program, not a game or a program specifically written for your soundcard. They may bypass the windows 95 setup. A Musical Generator only uses the windows 95 settings. Are the soundcards available? When you use a sequencer occupying all your soundcards, a Musical Generator cannot find a MIDI output port to output music to. It generates a message to inform you and wil not play. Is there music to play? You must assign a vector to the notes button for at least one MIDI channel. Have you selected the right soundcard? Most soundcards have a MIDI output adapter which you can use to connect other electronic instruments to. If you have nothing connected to this port, you will hear no music when playing music. Select another output port. #$It takes a long time to produce the music There can be several causes for this. The total time to generate your music is increased by the following factors: Increasing the number of measures Increasing the number of notes buttons with a vector Showing the MIDI events window (This really slows down a lot) Decreasing the # of Mhz of your processor

#$+How to… Assign a vector to an aspect Change minimum and maximum of an aspect Change the default of an aspect Change the dimension of an aspect Change the synthesizer Change the sound of a MIDI channel Change the length of the music Change the tone scale Change the tempo Convert text to a vector Convert bitmaps to a vector Convert numbers to a vector Create more voices Create your own fractal Display the music Edit a fractal Export music to other programs Hear a vector Insert a fractal as a vector Insert data into a Musical Generator Plot a vector Rescale an aspect Unassign an aspect Understand aspects

reference.txt · Last modified: 2011/02/28 15:20 by arnold0_dokuwiki
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki