-- Back --

Commented compositions

piano cardiaque
jours heureux à l'atelier
un fleuve pas tranquille
sous le signe de l'hexagone
la ballade du lutin égaré
symphonie à deux francs
une ligne de basse
la pluie incertaine
intérieur d´un tatou

.. more ..

Here is a short ambient piece called piano cardiaque.
You will hear cratches: no need to check your speakers, they're part of the music...

The scene it comes from looks like this:

All notes are projections of the 11 events on the star-like segments structure (actually, a bunch of five helices with different centers). The whole composition is issued from a single projector call:
MetaRails(OrPiste, OrPiste, HCall)
OrPiste = ParaPiste(0, Pi, 0.2*Pi, Rose, 0.1,1)
HCall = "Helice(A_,1+NR*Getpolar(A_)[Rs],0.2*Getpolar(A_)[THs],0.2*Pi,1,CPCM)"

The distortion functions used are mostly sinusoidal offsets for volume, pitch or time, all generated with the ChooseDF plug-in.

The instruments are: ... all of them are SF2 files downloaded from the Internet (mostly at Hammersound). Sorry for not giving the detailed credits, you can complain to me if you recognize your instruments and want your name to be here, as the guy who complained :)

TiMidity++ was used to render the MIDI to *.wav, after the standard audio rendering process described here (this means I simply clicked on the [Audio] button).

In the compositor tool, the composition looks like this:

The two first (ph) boxes are referenced to
pac 1 2 3 4 5
(this gives the prog/bank change messages for each channel)
pan 1 30 2 90 4 50
(sets the pan value for channels 1, 2 and 4)

The last (ph) box is the phrase contained in the ligne produced by the MetaRails projector call. At first it was simply referenced
...then I used the VolEnvlp plug-in to create the fade in and fade out effects on the piano, and the KKph plug-ins to apply Fuzz(ph, 10) on the piano part (it makes small random changes to volume and duration) and scadjust(ph, Scales["ionian"]) on all the notes (this snaps them into a ionian scale), so that the box reference eventually became (it's developped here in several lines for clarity):
			,0,1,Fuzz, 3)
,0,1,scadjust, 0, S_ionian)
Note that because of the Fuzz instruction which embeds a random operation, the music rendered by the compositor tool is slightly different at each evaluation.

Here is a piece called spirales

The scene is as follows:

... it only has 5 events on channel 1, their nodurs being the note D in 5 different octaves. Minimalistic.

Distortion functions are from the distribution:
Volume: Vexp10	# exponential decrease
Pit: FondBasses	# linear decrease
Dur: DurPlusDist	# distance is added to the duration

The 4 points are used to define 5 SpiralAB calls:
which look like this:

... so that the projections are:

Now the results were used in different ways: some lignes are affected to a piano (Fiazoli Grand soundfont), others to a xylophone (Campbell's wooden xylo soundfont); also, two piano sequences were reversed using a sound editor, to be put back into the composition as audio boxes (f):

The next composition is an illustration of the powerful capabilities of the Batteur() projector: tchktck

This is not the place for a comprehensive description of this projector (it will have its own dedicated tutorial sometime in the future); let's simply describe it as a specific geometric set-up designed to easily program complex rythmic patterns. Its two main arguments are the beat (given as a GeoMaestro distance), and the program (an external file describing the Arc() projections to be performed, a bit like a techno sequencer)

Here the beat is 1/3 (180 bpm) and the program is as follow:
D !D!A
HH3 2*_d_
H3 3*_d_
HH3 3*_d_
H3 5*_d_
GG3 7*_d_

AA3 -
AA3 -
AA3 -
AA3 -3.5*_d_
AA3 -3*_d_
AA3 -2*_d_

A -0.5*_d_ ! D -0.5*_d_
A 0.5*_d_  ! D 0.5*_d_
A -0.5*_d_ ! D -0.5*_d_

E -0.5*_d_ ! E -0.5*_d_ ! E -0.5*_d_

... where the 7-events scene is:

The two inner events in channel 10 (cutting noise up and down) obey a decreasing step volume distortion function making them silent outside the second circle. The three upper rigth red events on channel 1 have the same nodur, a xylophone 'do5', their pitch following a DopplerLateral distortion. The two round events in channel 20 (scratching push and pull), are affected to channel 10 with an infinite range. We have here an example of using an extra GeoMaestro channel in order to have events from the same MIDI channel (10) behave according to different distortion functions.

Here are the Arc() projections defined by the above program:

... and here is how it looks like in the Compositor Tool:

As previously, the whole composition is rendered in a single ligne.

Here is a minimalist piece: service minimum, generated by a turning triangle listening to three events. All events are the same: a xylophone 'a', with an exponentially decreasing volume and a DopplerLateral pitch dependency. The whole thing looks like this:

The projector call is:
TPol(Cerc(Or, 0.3), 3, 0, 0.1*Pi)

That's it !

Jours heureux à l'atelier

This is an incredibly well structured piece issued from a single projector call:
RBox(Or, P21, O, D, seconds(170), -0.01)
on the following scene:

The three events on channel ones are piano notes ('a'), while the four events on channel 10 are four kinds of basement noises (thanks to Erik Hermansen for the soundfont, got from Hammersound). As previously, the piano pitch obeys a DopplerLateral function, while all events have an exponentially decreasing volume (Vexp1 and Vexp10).

The segments and projections are a real mess:

Un fleuve pas tranquille, as stated by its title ("an unquiet river"), is an intensive piece of flowing drums and piano, in a style that could be labelled "computer jazz".

Again, only one projector call is needed:
CBox(Cerc(Or,0.3), Dep, Cible, seconds(90), -0.005*Pi )
but of course the scene has been carefully prepared:

The triangular and circular events are different types of drums; the single cross event (channel 1) is a bass (it has a DopplerLateral pitch dependency); the events on channel 3 displayed along a circle are piano notes.

To create that ring, I first defined a circular piste, then selected it and used the "piste -> event" transfert mode, with the following generating command:
C_=3; N_='ad120v100'; N_.pitch = 80+(I_%3)*2
The distortion functions associated to channel 3 (piano) are illustrated here:

In red: pitch (DopplerLateral); in green: volume (Vexp1); in black: time offset (a sinus wave defined with ChooseDF)

The brown vertical line marks a GeoMaestro unit of distance (equivalent to one second), corresponding to the green grid in the previous picture.

The projections are much too numerous to be all shown; the next picture illustratres somewhat how four of the piano notes are projected on the CBox support:

Here is a closer view of the support:

Sous le signe de l'hexagone is an example of composition mixing MIDI and Csound synthesis.

Three instruments are used here: a delay line bass from Hans Mikelson (instrument 1901 in the Csound Book), the legato flute by Richard Dobson introduced in the tutorial 6, and a MIDI piano.

The two Csound instruments have simply been slightly modified so that their output is stereo: the orchestra is hexas.orc.

This time, no minimalistic set-up... the scene includes 202 events arranged in hexagonal patterns (hence the title); in the following picture, red squares (channel 2) are piano notes, all with the same nodur 'b05v53'. Crosses (channel 1) are score lines (all identical) for i1901, while the six diamonds (channel 5) are score lines for the legato flute i705:

... let's zoom a bit to see the arrangement of the events in channels 1 and 2:

To see the scores in Csound events at the screen, I typed the macro
... at the console, and here we go:

The piano notes have a pitch and a volume decreasing with the distance.

Distortion functions for i705 and i1901 are:
function DF705a(sco, nodur, side, dist, ch, tht)	# see tutorial 6
	lsco = sco[1]

	if (SCi(lsco) == 705)	
		p3 = SCgetpn(lsco, 3)
		lsco = SCpn(lsco, 3, Signe(p3)*(abs(p3)+dist))
		p4f = exp(-dist)
		lsco = SCpn(lsco, 4, SCgetpn(lsco, 4)*p4f)
		p4 = SCgetpn(lsco, 4)

		# pitch (p5):
		p5 = SCgetpn(lsco, 5)
		lsco = SCpn(lsco, 5, pchmidi(midipch(p5)+integer(-side*dist*6)))

		p8 = p4*log10(10+10*dist)
		lsco = SCpn(lsco, 8, p8)

		lsco = SCpn(lsco, 9, 0.1*rand(6)+0.2)
		lsco = SCpn(lsco, 10, 0.1*rand(8)+0.2)

		p6 = SCgetpn(lsco, 6)
		if (p6 != "pp5")
			lsco = SCpn(lsco, 6, p5)	

		sco[1] = lsco

	return (ArCopy(sco))

function DF1901a(sco, nodur, side, dist, ch, tht)
	# p4 amplitude (1000 - 1800)
	sco[1] =  SCpn(sco[1], 4, SCgetpn(sco[1], 4)/float(1+0.1*dist))

	# p5 pitch (pch)
	sco[1] =  SCpn(sco[1], 5, pchcps(cpspch(SCgetpn(sco[1], 5))*(1+2*dist)))

	# p6 pluck duration (0.25 - 1)
	sco[1] =  SCpn(sco[1], 6, abs(sin(tht))+0.25)


The projector call was:
RBox(Ojm, P21, Or, Cib, seconds(60), 0.04*Pi)

... leading to the segments:

... and to the projections:

(you can have the Csound part alone from hexas.orc and hexas.sco)

To perform the mix in a straightforward manner, I used the compositor tool with this simple set-up and clicked on the [Audio] button after evaluation:

(the brown lines are the piano notes)

La ballade du lutin égaré is another minimalist work, finely tuned to get nicely swinging and/or chaotic variations on a very tight rythmic base.

Only three notes of a mandolin are used, displayed at three corners of a square. Nothing fancy:

The associated distortion functions looks as follow:

(green is volume, red is pitch)

Three projections are performed:
RL[3] = Spiro(COi, 1.5/Pi, 1, Pi, 0.17*Pi, 60, Oi)
RL[4] = Spiro(COi, 0.5/Pi, 1, Pi, 0.17*Pi, 180, Oi)
RL[6] = Onde(Ca2, Ca1, 45, 1, Oi) that the events are listened to by a lot (60+180+45 = 285 = a lot) of different circles:

... then the lignes are arranged in order to get phase-like patterns:

(it does not show here, but lignes RL[3] and RL[4] have the same duration, which is about twice those of RL[6])

Symphonie à deux francs

Here we use a piste following a rose curve to generate by inversion a set of pistes upon which will be projected 5 events:

The single projection is:
SpirInv(RosePiste, 1, C, 1, 0, 0.15, 40)
... where C is the small circle you can see on the above picture.

This creates 40 inversions of the rose piste:

This bass line is issued from the command:
... applied on a simple scene with three identical events those nodur is 'a':

(here the pitches decrease with the distance)

The raw projected phrase has been filtered through legato() and AirOut(), so that notes do not overlap nor get too close.

La pluie incertaine is a succession of four CercleRythm calls like the one displayed here:

the triangle events are tabla hits, the crosses are piano notes, whose distortion settings (obtained from the ChooseDF plug-in) are illustrated here:

DefDuration was set to 0.2.

Here is a screenshot of the Compositor, showing how the 4 projected lignes have been merged (the marks were created with the NewMark plug-in):

Intérieur d´un tatou is issued from a morphing between two Toy snapshots (the TYK was CercleRythme.tyk, associated to a three-event scene:

more GeoMaestro compositions here: rivière, piano variations

... by TechnoGariG

-- Back --