Putting objects in the MAQUETTE and saving its contents as a MIDIfile
MAQUETTE, VOICE,CHORD-SEQ, list and save-as-midi
The MAQUETTE is the ideal object for temporal ordering of different musical events and processes. Here we will examine a simple way of placing other objects such as a MAQUETTES, CHORD-SEQs and a VOICE objects. After that, we will save our musical sketch in the form of a MIDIFILE.
First of all, we will create a folder (option-n) where we will place a MAQUETTE (option-2). Next to it, we will create a patch (option-1). Now let us drag the MAQUETTE onto the patch. Two extra entries and one output will appear:
The first input is for onset time.The second one is for an object or a list of objects to be placed inside the MAQUETTE. One might notice that the MAQUETTE found inside the patch has the same name as the one outside the patch. Both are in fact the same MAQUETTE. Each modification or operation on one of them, will be 'reflected' in the other. We might call this as 'Mirroring'. Each MAQUETTE is the mirror of the other. We will further see in this tutorial how to 'break' the mirroring in order to have an independent copy of the same object .
A: In (A) we will create a VOICE facrtory and edit both , the rhythmic tree and the chords. We will use VOICE as a CANTUS FIRMUS of our musical sequence, meaning that all events (objects) that we will place inside our MAQUETTE, will be syncronized with every note of our VOICE.
B: We have decided to put seven events in the MAQUETTE , including VOICE (A) which will be the starting event. The (B) tree
(? (((4 4) (1 (2 ((2 (1.0 4)) 1)) 1.0)) ((4 4) ((2 (-3 2)) (1 (2.0 2 1)) (1 (1.0 6))))))
will therefore have seven beats plus a rest.
C: Seven notes will be taken from a CHORD-SEQ (C) which is connected to the third input <chords> of the VOICE factory.
The resulting CANTUS (Leading voice) will be after evaluation:
D-J: After creating our leading voice, we will collect a list of musical objects using list (J).
K: In order to get our onsets in the form of a list in milliseconds, we will have to connect our VOICE object with a CHORD-SEQ (K). The connections will go from the VOICE's first output <self> into the first input <self> of the CHORD-SEQ object. This is an efficient way in transcribing our symbolic rhythm into numerical data. This is done through inheritance. The CHORD-SEQ will inherit data from the VOICE object using the correct om-methods. (Inheritance will be discussed later on ) .
L: In the first input of the MAQUETTE (L) we will connect a list of onsets coming from the CHORD-SEQ (K) . These onsets are the temporal coordinates of each object of our object list collected with list (j) which we will connect to the second input of the MAQUETTE (L).
After evaluating the MAQUETTE (L) the objects will be placed at the desired onset time. Select all object inside the MAQUETTE (option-a) and type <m> in order to visualize the contents of the tempobjs of the MAQUETTE.
TIP: If you have used different port settings for some objects you may have to select the general MAQUETTE's port by control-clicking inside the MAQUETTE.
M: You might save the whole sequence as a MIDIFILE using save-as-midi method.