Difference between revisions of "User:Francois/Solar Genesis II"

From CCRMA Wiki
Jump to: navigation, search
(Blog)
(Project blog)
 
(38 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
''Solar Genesis II'' is a piece that I will be developing during the [https://ccrma.stanford.edu/wiki/220c-spring-2012 Music 220C] class. This piece follows my compositions for the Music 220A class, [https://ccrma.stanford.edu/~francois/220a/fp.html ''Heliocentric Harmony''], and for the Music 220B class, ''Solar Genesis I''.
 
''Solar Genesis II'' is a piece that I will be developing during the [https://ccrma.stanford.edu/wiki/220c-spring-2012 Music 220C] class. This piece follows my compositions for the Music 220A class, [https://ccrma.stanford.edu/~francois/220a/fp.html ''Heliocentric Harmony''], and for the Music 220B class, ''Solar Genesis I''.
 +
 +
This project was made possible through the invaluable participation, advice and support of [http://www.giancarloaquilanti.com/ Giancarlo Aquilanti], [https://ccrma.stanford.edu/~nando/ Fernando Lopez-Lezcano], [https://ccrma.stanford.edu/~srsmith/homepage.htm Sara Smith] and Eric Wu.
 +
 +
== Final piece ==
 +
 +
=== Performance ===
 +
 +
The piece was performed on Wednesday, May 31 in the CCRMA stage for the CCRMA Spring Concert. The performance was recorded thanks to David Kerr and is available on [http://www.youtube.com/watch?v=_SKogjiEI38 Youtube].
 +
 +
==== Program notes ====
 +
<blockquote>'''''Solar genesis II''''' by François Germain, for Disklavier, Cello, and Computer, Sarah Smith (cello), Eric Wu (piano)<br>
 +
This piece is the third of a cycle of pieces started in the
 +
previous Music 220A and 220B CCRMA classes.<br>
 +
Immerge yourself along the path of the planets and the stars in
 +
this music tale told by the piano and the cello. From chaos and
 +
dissonnances emerges the concert of the revolving planets be-
 +
fore they disappear, with a universe going back to noisy empti-
 +
ness. A big thank you to Fernando Lopez-Lezcano for his invalu-
 +
able help and support in this project.
 +
</blockquote>
 +
 +
=== Piece summary ===
 +
 +
* Overture: Descending motion of the piano, echoed by the sampler (with random source in the WFS) and punctuated by bells (moving between sources in the WFS).
 +
* 1st part: Piano and cello accompanied by several bell (moving between sources in the WFS) and noise moments. The piano is mirrored at one point (with random source in the WFS). Ends with bells.
 +
* 2nd part: Solar system (TubeBell instruments spatialized by Ambisonics) and sampler (arpeggios with random source in the WFS). Ends with bells and destruction of the sun.
 +
* 3rd part: Imitation of the overture, but more dissonant. Shorter evocation of the 1st part with similar event.
  
 
== Project history and inspiration ==
 
== Project history and inspiration ==
Line 34: Line 61:
 
The difficulty in the second option would be to develop a complex but robust synchronization between the performer and the virtual instrument while keeping the spirit of the instrumental piece.
 
The difficulty in the second option would be to develop a complex but robust synchronization between the performer and the virtual instrument while keeping the spirit of the instrumental piece.
  
== Blog ==
+
==Projec details==
 +
 
 +
=== System architecture ===
 +
[[File:SolargenesisII.png|thumb|500px|Solar Genesis II - System architecture]]
 +
 
 +
The final piece architecture is showed in the picture. We see that the system is composed of 9 main components:
 +
* [http://qsampler.sourceforge.net/ ''QSampler''] is the virtual "third performer". It receives MIDI messages from Chuck and play back the corresponding piano notes. In general, it echoes or mirrors (with respect to a given pitch) the playing of the pianist on the Disklavier. The sounds are send back to Chuck.
 +
* The [http://en.wikipedia.org/wiki/Disklavier ''Disklavier''] sends to Chuck MIDI messages corresponding to the piano playing.
 +
* A ''C++ software'' implements the physical model for the planets and the movements of the listener. OSC messages sent from Chuck controls the start and stop of the system, as well as the distance of the listener from the sun. The software sends OSC messages to Chuck (planet positions relative to the listener for Ambisonics panning) and processing (planet and listener positions for the display).
 +
* A [http://processing.org/ ''Processing''] ''script'' generates the video performance. It receives information through OSC from the C++ software (planet and listener positions) and Chuck (sun size, noise intensity and "pitch", planet "performance")
 +
* A [http://chuck.cs.princeton.edu/ ''Chuck''] ''script'', core piece of the system, controls the succession of the MIDI events and advances in the computer "score" while the cues arrive from the Disklavier. It starts, generates and stops the planet part of the piece through OSC messages sent to the the C++ software and Processing, sends MIDI messages to the sampler in response to the Disklavier input or the messages corresponding to its "solo" part, controls the Ambisonics panning (according to the information received from the C++ software) and the virtual source used in the WFS array.
 +
* [http://kokkinizita.linuxaudio.org/linuxaudio/downloads/ambdec-manual.pdf ''Ambdec''] decodes the sound received through 7 channels and outputs the spatialization to 8 channels (3rd-order horizontal Ambisonics). On the CCRMA stage, the configuration for the loudspeaker array is given by the ''octagon'' preset with configuration ''3h0v''.
 +
* The [http://www.tu-berlin.de/?ssr ''SoundScape Renderer''] (SSR) spatializes the 8 virtual sources according to their preset positions around the WFS array, which it outputs as 32 channels for the WFS loudspeaker array as configured.
 +
* [https://ccrma.stanford.edu/~nando/publications/jack_mamba_lac2012.pdf ''Jack-Mamba''] developed by [https://ccrma.stanford.edu/~nando/ Fernando Lopez-Lezcano] allows to drive the 32 channel speakers through the Ethernet card that we send to a ''Digital Mamba''.
 +
* The cellist, who is not connected in any way to the rest of the system.
 +
 
 +
[[File:SSR_SolarGenesisII.png|thumb|350px|Solar Genesis II - WFS configuration in SSR]]
 +
 
 +
The WFS array has 8 virtual sources spread around the room (though not too far of the array to avoid problems due to room reverberation) that are used by the system (bells, deterministically, and sampler, randomly).
  
=== April 10 ===
+
=== Outputs ===
* Demonstration of the WFS system in the Listening room and the ''Fantasia'' [https://www.youtube.com/watch?v=-gZbMOq_Ge8 video] in class.
+
  
=== April 12 ===
+
The outputs of the piece are:
* First discussion about the piece with Prof. Aquilanti. The other instrument will probably be a cello.
+
* The visual generated by Processing.
 +
* The 8-speaker ring array controlled with Ambisonics by Chuck through Ambdec.
 +
* The 32-speaker linear array controlled by Wave Field Synthesis by Chuck through SSR.
 +
* The Cello and the Disklavier playing the written score.
  
=== April 16-17 ===
+
=== MIDI control ===
* Meeting and discussion with Jens Ahrens at the Linux Audio Conference
+
  
=== April 19 ===
+
The control of the piece progression through MIDI is done through the expectation of chains of cues that don't need to be immediatly following each other. In the case of chords, only one cue per chord is used since we don't know in what order the MIDI messages of the chord notes will arrive to the computer. As soon as the cues have been received, an (audio) event is triggered by the Chuck program and the next cue sequence is loaded.
* For next class:
+
** Check Risset's pieces,
+
** Create a test for the WFS in the listening room.
+
* Idea: conversion of the trajectories in the solar system to Bezier curves for a smoother contour.
+
  
=== April 23 ===
+
A by-pass message (MIDI NoteOn 119 - a B flat) is implemented to force the playing of the event and the transition to the next sequence. This feature was made for demonstration purposes and wasn't used in the concert setup.
* Tested the MIDI samples salamander (with Qsampler) for the virtual instrument with Nando.
+
  
=== April 25 ===
+
=== Code ===
* Implemented a simple plane wave WFS (16 channels) in ChucK.
+
** Note: ChucK can't handle 32 channels
+
  
=== April 29 ===
+
As of June 11, 2012:
* Started 3D implementation in Processing
+
* [https://ccrma.stanford.edu/~francois/220c/SGII_Cpp.tar.gz C++ software source and executable (for Linux)]
 +
* [https://ccrma.stanford.edu/~francois/220c/SGII_processing.tar.gz Processing script source]
 +
* [https://ccrma.stanford.edu/~francois/220c/SGII_chuck.tar.gz Chuck script source]
 +
* [https://ccrma.stanford.edu/~francois/220c/SGII_SSR.asd SSR source geometry configuration]
 +
* [https://ccrma.stanford.edu/~francois/220c/SGII_Jack.txt Jack configuration file] to use with [http://sourceforge.net/projects/aj-snapshot/ ''aj-snapshot''] as soon as all the softwares run (user has to manually disconnect Chuck from Midi Through and connect it to QSampler)
  
=== April 30 ===
+
==== Commands ====
* Started implementation of the WFS in Faust (based on the code of J.O. Smith) to circumveine the limitation of ChucK. Compilation rather as a Jack plugin since a UGen could be limited on a similar way as the tested code last week.
+
{|
 +
|''Chuck'' ||chuck --out16 amb.ck echoMidiEvent.ck ssEvent.ck list.ck gong.ck noisy.ck note.ck solarsystem.ck midi.ck main.ck
 +
|-
 +
|''Jack Mamba''|| jack-mamba -c mamba -d
 +
|-
 +
|''SSR''|| ssr -c /usr/ccrma/share/studios/listening_room/wfs/listening_room.conf
 +
|-
 +
|''C++ executable'' ||./SolarSystem
 +
|-
 +
|''Ambdec'' ||ambdec
 +
|-
 +
|''QSampler'' ||qsampler
 +
|-
 +
|''Processing'' ||processing
 +
|}
  
=== May 1 ===
+
Remarks on the commands:
* Started porting solar system code to C++. It should be more efficient than ChucK, the information would be sent to the other part of the piece via OSC.
+
* The C++ software has to be run after the Processing script
 +
* Jack has to run before every other audio part (Chuck, QSampler, Jack-Mamba, SSR, Ambdec)
  
=== May 3 ===
+
==== Extra requirements ====
* Discussed with Nando to get better MIDI samples for the computer-generated piano
+
* Piano samples for ''Qsampler''
 +
* Bell sound file
  
=== May 4 ===
+
== Project blog ==
* Discussed with Carr to know the status of the Disklavier in the classroom. I'll be checking the system next week to (hopefully) get it to work.
+
  
=== May 5 ===
+
See the blog [https://ccrma.stanford.edu/wiki/User:Francois/Solar_Genesis_II_Project_Blog here].
* Porting of the solar system code in C++ completed.
+
  
 
== References ==
 
== References ==
Line 86: Line 143:
 
=== Music ===
 
=== Music ===
  
Stravinsky, I., W. Disney et al. "[https://www.youtube.com/watch?v=-gZbMOq_Ge8 The Rite of Spring]." In ''Fantasia'', 1940.
+
Stravinsky, I., W. Disney et al. "The Rite of Spring." In ''Fantasia'', 1940.
  
 
Risset, J.-C. "Huit esquisses en duo pour un pianiste," In ''Electronic Music III.'' Acton, MA: Neuma, 1994.
 
Risset, J.-C. "Huit esquisses en duo pour un pianiste," In ''Electronic Music III.'' Acton, MA: Neuma, 1994.

Latest revision as of 10:45, 3 October 2017

Solar Genesis II is a piece that I will be developing during the Music 220C class. This piece follows my compositions for the Music 220A class, Heliocentric Harmony, and for the Music 220B class, Solar Genesis I.

This project was made possible through the invaluable participation, advice and support of Giancarlo Aquilanti, Fernando Lopez-Lezcano, Sara Smith and Eric Wu.

Final piece

Performance

The piece was performed on Wednesday, May 31 in the CCRMA stage for the CCRMA Spring Concert. The performance was recorded thanks to David Kerr and is available on Youtube.

Program notes

Solar genesis II by François Germain, for Disklavier, Cello, and Computer, Sarah Smith (cello), Eric Wu (piano)

This piece is the third of a cycle of pieces started in the previous Music 220A and 220B CCRMA classes.
Immerge yourself along the path of the planets and the stars in this music tale told by the piano and the cello. From chaos and dissonnances emerges the concert of the revolving planets be- fore they disappear, with a universe going back to noisy empti- ness. A big thank you to Fernando Lopez-Lezcano for his invalu- able help and support in this project.

Piece summary

  • Overture: Descending motion of the piano, echoed by the sampler (with random source in the WFS) and punctuated by bells (moving between sources in the WFS).
  • 1st part: Piano and cello accompanied by several bell (moving between sources in the WFS) and noise moments. The piano is mirrored at one point (with random source in the WFS). Ends with bells.
  • 2nd part: Solar system (TubeBell instruments spatialized by Ambisonics) and sampler (arpeggios with random source in the WFS). Ends with bells and destruction of the sun.
  • 3rd part: Imitation of the overture, but more dissonant. Shorter evocation of the 1st part with similar event.

Project history and inspiration

Heliocentric harmony

This first part of this project, leading to the production of Heliocentric Harmony was the sonification of some concepts of the Harmony of the Spheres discussed in the texts by Pythagoras and Kepler. The system consisted in a solar system where each planet was playing a particular note when an eclipse was happening. The system was spatialized with Doppler effect so that the public would locate the planets around him. This spatialization was made by stereo panning on pairs of loudspeakers.

Solar Genesis I

Solar Genesis I was the first attempt to extend Heliocentric Harmony into a full piece, based on a fictional storyline of the life of the solar system. The piece consists in three main parts picturing the birth, life and death of the sun. The main component is an improvised piano piece on a Disklavier. The MIDI messages were used to control the progression of a computer-generated accompaniement and a visual part. The three component are used to create and reinforce the affects related to each part of the piece. The spatialization existing in Heliocentric harmony was converted to Third-Order Ambisonics to improve the spatial sound impression.

Project objectives

Solar Genesis II is meant to develop the ideas expressed in Solar Genesis I, and especially its affect.

Instrumental Piece

The instrumental piece is meant to feature a duet between the piano (Disklavier) and another instrument played or simulated. The piece will be written with the assistance of Prof. Aquilanti.

Computer Music Accompaniement

The computer music program is meant to play sound sequences clarifying and reinforcing the emotions conveyed by the instrumental piece. The triggering process implemented in Solar Genesis I will be complexified. An alternative triggering event will be investigated for the solar system since the present one has been too difficult for the public to understand.

Visualization

The visualization already developed for Heliocentric Harmony and Solar Genesis I is meant to evolve into a 3D visualization. Challenges in this process are to develop a new point of view from the 3D perspective since the video won't anymore show the whole system so we would like to avoid empty screens.

Spatialization

The computer-generated sound will be generated by Third-Order Ambisonics (TOA) similarly to what was made in Solar Genesis I, to provide a full 2D sound field. The new Wave Field Synthesis (WFS) system will be used to play with the location of the instrumentists. The exact form of this has not been finalized but two main ideas are on the table:

  • Acoustic images of the two performers,
  • Virtual second performer interacting with the pianist.

The difficulty in the second option would be to develop a complex but robust synchronization between the performer and the virtual instrument while keeping the spirit of the instrumental piece.

Projec details

System architecture

Solar Genesis II - System architecture

The final piece architecture is showed in the picture. We see that the system is composed of 9 main components:

  • QSampler is the virtual "third performer". It receives MIDI messages from Chuck and play back the corresponding piano notes. In general, it echoes or mirrors (with respect to a given pitch) the playing of the pianist on the Disklavier. The sounds are send back to Chuck.
  • The Disklavier sends to Chuck MIDI messages corresponding to the piano playing.
  • A C++ software implements the physical model for the planets and the movements of the listener. OSC messages sent from Chuck controls the start and stop of the system, as well as the distance of the listener from the sun. The software sends OSC messages to Chuck (planet positions relative to the listener for Ambisonics panning) and processing (planet and listener positions for the display).
  • A Processing script generates the video performance. It receives information through OSC from the C++ software (planet and listener positions) and Chuck (sun size, noise intensity and "pitch", planet "performance")
  • A Chuck script, core piece of the system, controls the succession of the MIDI events and advances in the computer "score" while the cues arrive from the Disklavier. It starts, generates and stops the planet part of the piece through OSC messages sent to the the C++ software and Processing, sends MIDI messages to the sampler in response to the Disklavier input or the messages corresponding to its "solo" part, controls the Ambisonics panning (according to the information received from the C++ software) and the virtual source used in the WFS array.
  • Ambdec decodes the sound received through 7 channels and outputs the spatialization to 8 channels (3rd-order horizontal Ambisonics). On the CCRMA stage, the configuration for the loudspeaker array is given by the octagon preset with configuration 3h0v.
  • The SoundScape Renderer (SSR) spatializes the 8 virtual sources according to their preset positions around the WFS array, which it outputs as 32 channels for the WFS loudspeaker array as configured.
  • Jack-Mamba developed by Fernando Lopez-Lezcano allows to drive the 32 channel speakers through the Ethernet card that we send to a Digital Mamba.
  • The cellist, who is not connected in any way to the rest of the system.
Solar Genesis II - WFS configuration in SSR

The WFS array has 8 virtual sources spread around the room (though not too far of the array to avoid problems due to room reverberation) that are used by the system (bells, deterministically, and sampler, randomly).

Outputs

The outputs of the piece are:

  • The visual generated by Processing.
  • The 8-speaker ring array controlled with Ambisonics by Chuck through Ambdec.
  • The 32-speaker linear array controlled by Wave Field Synthesis by Chuck through SSR.
  • The Cello and the Disklavier playing the written score.

MIDI control

The control of the piece progression through MIDI is done through the expectation of chains of cues that don't need to be immediatly following each other. In the case of chords, only one cue per chord is used since we don't know in what order the MIDI messages of the chord notes will arrive to the computer. As soon as the cues have been received, an (audio) event is triggered by the Chuck program and the next cue sequence is loaded.

A by-pass message (MIDI NoteOn 119 - a B flat) is implemented to force the playing of the event and the transition to the next sequence. This feature was made for demonstration purposes and wasn't used in the concert setup.

Code

As of June 11, 2012:

Commands

Chuck chuck --out16 amb.ck echoMidiEvent.ck ssEvent.ck list.ck gong.ck noisy.ck note.ck solarsystem.ck midi.ck main.ck
Jack Mamba jack-mamba -c mamba -d
SSR ssr -c /usr/ccrma/share/studios/listening_room/wfs/listening_room.conf
C++ executable ./SolarSystem
Ambdec ambdec
QSampler qsampler
Processing processing

Remarks on the commands:

  • The C++ software has to be run after the Processing script
  • Jack has to run before every other audio part (Chuck, QSampler, Jack-Mamba, SSR, Ambdec)

Extra requirements

  • Piano samples for Qsampler
  • Bell sound file

Project blog

See the blog here.

References

Spatialization

Ahrens, Jens. Analytic Methods of Sound Field Synthesis. Berlin: Springer, 2012.

Ahrens, Jens, Matthias Geier and Sasha Spors. The SoundScape Renderer: A Unified Spatial Audio Reproduction Framework for Arbitrary Rendering Methods. Audio Engineering Society Convention 124, 2008.

Music

Stravinsky, I., W. Disney et al. "The Rite of Spring." In Fantasia, 1940.

Risset, J.-C. "Huit esquisses en duo pour un pianiste," In Electronic Music III. Acton, MA: Neuma, 1994.