Dr.Godfried-Willem RAES

Kursus Experimentele Muziek: Boekdeel 6

Hogeschool Gent : Departement Muziek & Drama

<Terug naar inhoudstafel kursus>




12. Tutorial Guide to Pip


This section will present a brief tutorial on how to use Pip. We won't try to do everything, but we will provide enough information to get you going. You will have to explore all of the nooks and crannies on your own.


Lesson 1: Animating a Circle


Goal: type in a C scale in the action editor, and map it to a "circle" object. We will run a green circle around the screen. We accomplish this by going through the following basic steps:

1. go to the lib view and name the first action, "one".

2. go to the action view and type in a C scale. This will belong to the current action "one".

3. go to the track view and set one in the first track, and choose an appropriate MIDI output channel.

4. go to the notemap view (graphics) and edit an appropriate circle object.

5. in the notemap view, set the notes for the C scale to that of the circle object.

6. Run it.

7. Save it.

Step one: library view, naming the action. Type in F3 to popup the library command menu. Probably the cursor is on the corrent command, so an ENTER will get us into the libview. If not, position the cursor and type ENTER. You can type a capital letter to get to the command fast. Position the view cursor over the first action (index is 0), and hit ENTER. This will popup an action name box. Type in "one" (without quotes) and hit ENTER. The current action is always the action the library view cursor is on. It is now named "one".

Step two: go to the action view and type in a C scale.

Type in F2 to move us to the action command menu. Position the cursor and hit ENTER to get us into the action view. An empty action is initialized with a KEY and SIG action to set the key to C and to set a default time signature. Move the cursor down to sig and hit the INSERT key. This will duplicate the action the cursor is on and there will be two SIG actions. This is one way to add new actions. The INSERT key duplicates the action the cursor is on.


Move the cursor down to the bottom SIG action. We want to change this to a note. Move the cursor to the right one field over SIG. We want to change the action operator type from SIG to NOTE. Type in 'n'. Whenever you change a field in the action view, in order to make the change take, you must do one of the following,

1. hit ENTER

2. move the cursor

The ESC key will abort the change if need be. Move the cursor to the right and type in 'q'. That sets the note time field so that the note is a quarter note. Move the cursor right again, and type in 100. That gives a midi velocity of 100. Type in ENTER, to make sure the velocity is set.

Now we want to duplicate the note we have. Type in INSERT 7 times for an 8 note scale. Now move the cursor back to the op field (note, sig, key, etc, this is the 2nd field from the left). Go through the new notes, one after the other and type in,


This will give a scale of 8 notes. Remember to type 8n ENTER on the last field change. Note that moving the cursor is equivalent to an automatic ENTER.If you make any mistakes, reposition the cursor, OR use the DELETE/INSERT keys to start over.

Step 3: Setting up the track view. The track view has fields for wiring an action into a track, setting the MIDI channel, choosing a generator, graphics (sending notes to a notemap so graphics objects will be displayed), and turning the track itself on or off. In general you move the cursor, hit ENTER, to access a popup list, and type in a number of choose a list selection. The ENTER key confirms a selection.

Type in F4 to get the action menu. Type in ENTER to enter the view. Move the cursor over the action field (far left) and hit ENTER. Choose "one" (actually this was done by default and you don't need to do it; tracks are set to the first action by default).


Move the cursor to the midi channel field and hit ENTER. Type in a MIDI channel from 1 to 16 as appropriate for the instrument you are using. Hit ENTER. Move the cursor to the generator field and hit ENTER. Choose Linear to get a normal scale that will be looped at playback (played from top to bottom over and over). Choose some other selection if you want like Random for Random notes from the scale. Make sure the graphics and track are both set to On. You can disable graphics for any track by setting it to Off. If it needs to be set, move the cursor to that field, and type ENTER. Then choose from the On/Off list. Type ENTER to make a selection or ESC to abort.


Step 4: set up a graphics object. We want to edit a graphics object. In order to do that we must first display the graphics view. Type in F5 (or alt-g) to display the graphics command list. Select the first entry. The notemap view is now displayed.

Type in F5 again, and move the cursor over Editobjects. Type ENTER. This will popup a list with four choices, for editing old/new shapes/images. We want to choose new shapes (there are a number of default objects in the system and we could choose one of those and modify it, but we are going to do it from scratch here). Choose the new shape selection. This will popup a form.


NOTE THAT YOU MUST TYPE IN F1 FOR FORM CHANGES TO BE ENTERED. This is because ENTER will enter per field data, but it doesn't ENTER the entire

form. It just moves the cursor from one field to the next.

The form here has fields as follows:

Position the cursor on the name field and type in Bob. We will call this object "Bob". It's not a good name, but at least it is a name. Next move to the type field. Note that there is a sideways list here; i.e., you use the left and right arrow keys to scroll thru the list. Choose "circle". We want to have a circle as the basic object type. We will be drawing circles. (don't confuse this with the movement type below).

Next we set the size of the circle in X axis and Y axis coordinates with size param 1 and size param 2. Enter 5 and 10 respectively. Now we will set starting X and Y coordinates for the circle; i.e., the circle must be displayed somewhere the first time it is drawn and move from the position. We will put 375, and 175 to put it near the center.


Now we choose a movement type. This field combines two sets of functions. You can use the left and right arrow keys to scroll thru the basic types of movements (Linear, Circle, etc.) and then once you choose the basic type, hit ENTER to popup a sub-form. This sub-form is used for editing the basic per movement type parameters. Choose Linear, and hit ENTER. Now put some small numbers in the fields and type in F1. This gets you back to the shape edit form. We don't care about velocity (it should be off). We type in F1 again to save the form. The object is now in the object database.


Step 5: set up the graphics notemap view.

We are going to set all of the notes in the C scale to the Bob object. Use PageDown (the key) to move the notemap view cursor down to the vicinity of C and then use up and down arrow keys to position it on C. There are three fields in the notemap view. The first field is the note name. This can't be edited. It is an index into per note color and object settings. Move the cursor over the center color field and type in ENTER. This will popup a color list. Choose green and hit ENTER. Move the cursor down and repeat typing in ENTER twice. This will set the next note to green as well. Keep doing this until notes C,D,E,F,G, A,B, and HC are set to green. (You don't have to set the sharp notes in between). Now we have setup the notes.


Move the cursor back to the object field associated with the C note. Type in ENTER. This will bring up the current set of objects in the object database. Choose the Bob object and hit ENTER. This object is now assigned to the C note. Repeat this assignment for the other notes in the C scale.


Step 6. Run it. To run the setup, type in Alt-R or go the play menu and start the Run command. Any character but 'f' will stop the play. 'f' will freeze the screen, and then dump the screen contents to a pcx file called "pip.pcx". If you type in 'f', you must type in one more character to return from the run.


Step 7. Save it. If you want to save the current setup, do so as follows:

Type in F1 to get to the Files menu. Type in W for Writesetup. This will popup a filename box. Type in a suitable filename, like "circle.pip", and hit ENTER. The setup will be saved. It can be loaded when Pip is started up (Pip setup) or loaded via the Readsetup command in the Files menu.


Lesson 2: Animating a Circle and a Box


Goal: add a box to the circle, and send some of the notes at the box and some of the notes at the circle still using the same action/track setup.

Step 1: reload the previous circle animation. Either repeat Lesson 1 or reload the saved animation from the first lesson "circle.pip". We are going to modify it.

Step 2: Run it just to make sure it's there. Type in Alt-r and let it run a bit. Then type a key to stop the run.

Step 3: Type in Alt-G to move to the graphics view. Select the first entry (for the view) and hit ENTER. We want to add (or modify) a graphic's object.

Step 4: Type in Alt-G, and type in E for Editobject. Choose the selection for editing old objects. This will popup a list of objects in the database (shapes only). Choose the default box object. This is one of the built-in default objects that has a name that indicates a basic object type (the name matches the object type). We want to edit this object.

Step 5: We will now edit the box object. Choose appropriate size and starting X,Y coordinates (as you wish) and then make sure that the object has Random motion selected. Move the cursor to the movement field and then use the left or right arrow keys to get to Random. (You don't need an ENTER here.) Random does not have a sub-form for editing parameters because all of it's parameters are random!.

Step 6: Hit F1 to resave the Box object.

Step 7. Go back to the C scale in the notemap and pick a couple of notes. Change the colors and set some of the notes to the object "box" and some

Step 8. Run the setup.

You should have some circles and some boxes running around on the screen.

Step 9. Save this setup as "two.pip" as we will want to reuse it in the next Lesson.



Lesson 3: Two track animation


Goal: We will put some notes in one action and some other notes in a second action and map the first action to one notemap and the second action to another notemap. We should end up with two objects and two tracks.

We want to use the results of lesson 2. So either do lesson one and lesson two or use Files/Readsetup to reload the previous setup. We had two objects setup that we were using previously, Bob and box. We want to use Bob in track 1 and box in track 2. This means we will need two actions. We want two actions in two tracks which will be sending notes to two notemaps.

Go to the library view and move the cursor to the second action (action 1). Change the name and call it "two".

Now go the action view. It will be empty (only key/sig actions), since it is the action associated with the second action slot in the action library (the one where the cursor is now sitting in the library view). We want to put some notes in this action.

Set this action up similar to the action in the first lesson. Only change the notes to be LLC, LLD, LLE, LLF, LLG, LLA, LLB, and LC. Thus this scale will be 2 octaves lower. See times to a mixture of 'q', 'e', and 's', i.e., quarter, eighth, and sixteen notes. Set velocities however you want.

When done here, switch to the tracks menu and put action "one" in the first track, and action "two" in the second track. Set up midi channels (possibly 1 and 2). This depends on the midi instruments available.

Set generators for both tracks. Linear is fine. Note that the drunken walk and linear random generators have sub-forms. If you hit ENTER on those two list entries, a form will popup that will need parameters to be filled in.

Make sure that both tracks are on with graphics enabled.

Type in F5 or Alt-G to get to the graphics command menu. Hit Enter to Enter the graphics view.

We want to edit the associated notemaps for track 1 and track 2; i.e., two notemaps in all. We will edit the notemap for track 1 first. We know that we are sending the notes from action "one" to the first notemap and that we are sending the notes from action "two" to the second notemap.

Since we are dealing with the C scale, we move the cursor to the vicinity of the C scale. Just to take a look. We want to use two commands in the graphics command menu. These are:

Colorrange - set a range of notes to 1 color

Objectrange - set a range of notes to 1 object

We will set all of the notes between C and HC (including those two notes) to the same color and the same object.

Type in Alt-g and then type C for the Colorrange menu. Fill in C, hit ENTER, and then type in HC, hit ENTER. Then use the left and right arrow keys to select a color of your choice. Type in F1 (this is a form). The range of colors will be selected. Do the same thing with Objectrange, and choose the "Bob" object.

Now we want to switch tracks; i.e., since there is one notemap for every track, we want to edit the notemap associated with the second track. Type in Alt-g and type in T for tracks. A number menu comes up. Type in 2, and type ENTER. We are now displaying the notemap for track 2.

Use the Colorrange and Objectrange commands here to set colors and objects ("box") for the notes LLC to LC (the notes in the appropriate action).

Now run it. If you have a midi synth that can handle two midi channels with different timbres (multi-timbral), you can send track one to one instrument and send track two to a second instrument.


Lesson 4: Midi input from an External Controller


Goal: Drive graphics from an external midi controller. The point is to learn how to do this.

Type in F4 or Alt-M to bring up the Midi command menu. Type in I for the input command. A select box comes up that presents a sideways scroll list with Yes/No as the list items. Scroll with the arrow keys or type in Y/N. Type in Y! Midi input is now enabled.

Now run Pip and any notes that come in a MIDI input on any channel will be directed to the the track one notemap. No features here but no complexity either.


Final notes and annotations:

MIDI timebase setup:

Pip has a feature not mentioned in the manual. However it is documented in the help file. This feature is a new menu selection in the "Play" menu; "Timebase". The timebase permits the number of internal clock ticks per MIDI quarter note to be set from 24..240 by increments of 24. This permits matching the timebase to the timebase used by an external MIDI sequencer program. (Cakewalk).



Two known bugs at present:

1. for some reason, occasionally a green box will appear as the screen frame in EGA mode. Some sort of graphics glitch. If the setup is saved, and pip is restarted, this won't happen. It never happens when running pip in performance/batch mode.

2. Circles sometimes don't seem to be filled properly. This is a microsoft C library bug.



The demos directory contains a number of pip demos. cd to that directory for more information.


The trans directory contains external translators that can be used for transferring music data to/from Pip. See the manual for more information.



Filedate: 920928

Terug naar inhoudstafel kursus: <Index Kursus>

Naar homepage dr.Godfried-Willem RAES