Parameters
Description
“Kamtytura” explores the possibilities of the contemporary graphic score – one that can be read not only by the eye and ear but also by the machine. Every image captured by the camera becomes a sound recording, and its structure determines the course of the composition. The work references the experiments of Iannis Xenakis and his UPIC system, combining the idea of graphic literalness with the openness of algorithmic interpretation. It thus connects three breakthrough moments in the history of music – notation, electricity, and the inclusion of noise within its scope – showing that contemporary composition can arise from image, gesture, and chance.
Read more
The encyclopedic publication “Sound Art. Sound as a Medium of Art,” edited by Peter Weibel, identifies three events that changed the course of music: the invention of notation, the application of electricity, and the inclusion of noise within the realm of music. The miniature “Kamtytura” grapples with all of these phenomena to some extent, though most strongly with notation, especially graphic notation. There are many definitions of graphic scores, and it seems that currently the most common emphasis is on the freedom with which such scores can be treated by performers or on the representation of music using symbols outside the scope of traditional musical notation (this understanding of graphic scores usually refers to the music of the 1950s and its characteristic expansion of the range of notational symbols used, along with the introduction of symbols with vague meaning). “Kamtytura” approaches the topic from a slightly different perspective, assuming that graphic scores can be interpreted very precisely, even machine-like (which, however, does not preclude us from introducing random elements or interpretive decisions into the playback) and that they can be completely devoid of symbolic elements (instead of multiplying their number and meaning). “Kamtytura” operates with electronic sound (i.e., electricity), and although its built-in synthesizer uses traditional equal temperament, this Miniatura can also be controlled (via MIDI, WebSocket, or by loading the Miniatura into the MaxMSP environment) by any external devices or programs that produce sounds (or operate in any other medium).
A particular example of apparatus for creating and playing graphic scores in the context of electronic music is, of course, the UPIC (Unité Polyagogique Informatique CEMAMu) system, developed by Iannis Xenakis at the Centre d’Etudes de Mathématique et Automatique Musicales (CEMAMu) in Paris, which saw its first operational versions in 1977. At the end of the UPIC signal chain was the Australian Fairlight CMI music workstation, combining a synthesizer, sampler, sequencer, and a number of other components, some of which remain impressive in their conceptual and technical sophistication to this day. However, even more interesting elements, Xenakis’s conceptual innovations, existed “before” the Fairlight. Xenakis used a tablet controlled by a special pen to manually draw musical waveforms, oscillator waveforms, and envelopes—introducing a distinctive kind of graphic literalism to compositional practice. He also utilized algorithmic and stochastic material transformation mechanisms (the entire system was managed by a computer connected to a vector CRT display), sequencing both synthesized and sampling material. He quickly discovered the educational potential of the system, its openness, and ease of use, inviting children, among others, to experiment with UPIC.
The “input device” of “Kamtytura” is a camera – any image can be treated as a graphic score and converted by the software into sound and messages for external devices. The miniature divides the image into a number of bands, which correspond to the state of virtual “strings” or “keys.” This number can be changed, allowing for experimentation with the readability of the “scores” at different resolutions.
Technical documentation
Parameters passed via URL
-
- camera 0 or 1; default 0; hides or shows the camera image (the “camera” toggle)
- clock 0 or 1; default 1; disables/enables the internal clock controlling playback
- dark 0 or 1; default 0; disables/enables dark color mode (the “dark” toggle)
- dense 0 or 1; default 0; disables or enables “dense” tuning mode (the “dense” toggle)
- dur 7.0 – 30.0; default 10.0; sets the duration for the head to traverse the score (the “duration” slider)
- famo user | environment (or env); default user; [facingMode] allows forcing the use of the front (user) or rear (environment) camera on devices equipped with dual cameras (most modern mobile devices)
- gui 0 or 1; default 1; hides/shows the graphical user interface panel
- h vertical camera resolution
- invert 0 or 1; default 0; inverts the response to dark and light colors (the “invert” toggle)
- lang en or pl; default en; sets the interface language (additional languages can be added)
- loop 0 or 1; default 1; disables/enables playback looping (the “loop” toggle)
- midiinchn MIDI channel number for external control of the Miniature (receiving messages)
- midiinport disabled by default; MIDI port number for external control of the Miniature (receiving messages)
- midioutbarschn MIDI channel number used to emit data about the state of “bars” (strips) into which the score is divided (default 3)
- midioutchn MIDI channel number used to emit interface status messages (default 2)
- midioutport disabled by default; MIDI port number for external control of the Miniature (sending messages)
- mirror 0 or 1; default 1; disables/enables mirroring of the image from the capture device (usually a camera)
- pendulum 0 or 1; default 0; disables/enables pendulum mode for head movement (the “pendulum” toggle)
- play 0 or 1; default 1; disables/enables head movement (the “play” toggle or spacebar)
- pointer 0 or 1; default 1; hides/shows the mouse cursor
- resolution horizontal resolution of the score (minimum 2)
- scratch 0 or 1; default 0; disables/enables “scratch” mode (external or cursor-based control of the head position)
- sens 0.0 … 1.0; sets the initial normalized sensitivity of the motion detector (the “sensitivity” slider)
- synth 0 or 1; default 1; disables/enables the internal sound synthesizer
- tuning C c# D d# E F f# G g# A a# B; binary sequence of 12 numbers (0 or 1), where each indicates whether the corresponding pitch in the octave is enabled
- vol 0.0 … 1.0; sets the initial instrument volume level (global “vol” slider)
- w horizontal camera resolution
- worker 0 or 1; default 0; allows blocking the browser’s built-in mechanisms that suspend the program when the window is not visible
- ws address; disabled by default; enables and sets the address (usually localhost:9001) for WebSocket communication (allows external control of the Miniatura and customization)
- xws address; disabled by default; enables and sets the address (usually ws://localhost:9001) with protocol specification for WebSocket communication (allows external control of the Miniatura and customization)
Messages passed via WebSocket
Messages to which the Miniature responds
- camera 0 or 1; default 0; hides or shows the camera image (the “camera” toggle)
- dark 0 or 1; default 0; disables/enables dark color mode (the “dark” toggle)
- dense 0 or 1; default 0; disables or enables “dense” tuning mode (the “dense” toggle)
- dur 7.0 – 30.0; default 10.0; sets the duration for the head to traverse the score (the “duration” slider)
- invert 0 or 1; default 0; inverts the response to dark and light colors (the “invert” toggle)
- loop 0 or 1; default 1; disables/enables playback looping (the “loop” toggle)
- note MIDI key (pitch), status (0=disabled, >0=active); forces disabling/enabling the specified MIDI “key”
- pendulum 0 or 1; default 0; disables/enables pendulum mode for head movement (the “pendulum” toggle)
- play 0 or 1; default 0; disables/enables head movement (the “play” toggle or spacebar)
- pos 0.0 … 1.0; position of the playback head
- scratchmode 0 or 1; default 0; disables/enables the mode for free maneuvering of the playback head (using the mouse or external messages)
- segment index (strip number), status (0=disabled, 1=active); forces disabling/enabling the specified “strip”
- sensitivity 0.0 … 1.0; sets the normalized sensitivity of the motion detector (the “sensitivity” slider)
- tuning C c# D d# E F f# G g# A a# B; binary sequence of 12 numbers (0 or 1), where each indicates whether the corresponding pitch in the octave is enabled
- vol 0.0 … 1.0; sets the instrument volume level (global “vol” slider)
Messages sent by the Miniature
- kamtytura camera 0 or 1; disabling or enabling camera visibility
- kamtytura dark 0 or 1; disabling or enabling dark mode visibility
- kamtytura dense 0 or 1; change of tuning mode
- kamtytura dur 7.0 – 30.0; reports change of the duration for the head to traverse the score
- kamtytura invert 0 or 1; disabling or enabling brightness inversion mode
- kamtytura loop 0 or 1; disabling or enabling looped playback
- kamtytura pendulum 0 or 1; disabling or enabling pendulum playback mode
- kamtytura play 0 or 1; disabling or enabling playback
- kamtytura pos 0.0 … 1.0; position of the playback head
- kamtytura scratchmode change of the playback head maneuvering mode status (normal playback / “scratch”)
- kamtytura segment index (strip number), status (0=disabled, 1=active), MIDI note (0-127), fill level (0.0 … 1.0); reports strip status
- kamtytura sensitivity 0.0 … 1.0; reports the normalized sensitivity of the motion detector (the “sensitivity” slider)
- kamtytura tuning C c# D d# E F f# G g# A a# B; binary sequence of 12 numbers (0 or 1), where each indicates whether the corresponding pitch in the octave is enabled; reports tuning change
- kamtytura vol 0.0 … 1.0; reports change of volume level
MIDI
Messages to which the Miniature responds
- CC 070 on channel 2 reports disabling/enabling of head movement (the “play” toggle or spacebar)
- CC 071 on channel 2 reports change of the inversion of the response mechanism to dark and light colors (the “invert” toggle)
- CC 072 on channel 2 reports change of the disabling/enabling state of playback looping (the “loop” toggle)
- CC 073 on channel 2 reports change of the duration for the head to traverse the score (the “duration” slider) – controller values (0-127) are scaled to the range 7.0-30.0 seconds
- CC 074 on channel 2 reports change of the instrument volume level (global “vol” slider)
- CC 075 on channel 2 reports disabling/enabling of pendulum mode for head movement (the “pendulum” toggle)
- CC 076 on channel 2 reports change of the disabling/enabling of dark color mode (the “dark” toggle)
- CC 077 on channel 2 reports change of the parameter for hiding/showing the camera image (the “camera” toggle)
- CC 078 on channel 2 reports change of the disabling/enabling of “dense” tuning mode (the “dense” toggle)
- CC 079 on channel 2 reports change of the value of the normalized sensitivity of the motion detector (the “sensitivity” slider)
- CC 080 on channel 2 reports change of the mode for free maneuvering of the playback head (using the mouse or external messages)
- CC 081 on channel 2 position of the playback head
- CC 090 on channel 2 (tuning) reports disabling/enabling of the C pitch
- CC 091 on channel 2 (tuning) reports disabling/enabling of the c# pitch
- CC 092 on channel 2 (tuning) reports disabling/enabling of the D pitch
- CC 093 on channel 2 (tuning) reports disabling/enabling of the d# pitch
- CC 094 on channel 2 (tuning) reports disabling/enabling of the E pitch
- CC 095 on channel 2 (tuning) reports disabling/enabling of the F pitch
- CC 096 on channel 2 (tuning) reports disabling/enabling of the f# pitch
- CC 097 on channel 2 (tuning) reports disabling/enabling of the G pitch
- CC 098 on channel 2 (tuning) reports disabling/enabling of the g# pitch
- CC 099 on channel 2 (tuning) reports disabling/enabling of the A pitch
- CC 100 on channel 2 (tuning) reports disabling/enabling of the a# pitch
- CC 101 on channel 2 (tuning) reports disabling/enabling of the B pitch
- CC xxx on channel 3 reports the status of the strip with an index corresponding to the CC message index
Communication with MaxMSP
Messages to which the Miniature responds
- camera 0 or 1; default 0; hides or shows the camera image (the “camera” toggle)
- dark 0 or 1; default 0; disables/enables dark color mode (the “dark” toggle)
- dense 0 or 1; default 0; disables or enables “dense” tuning mode (the “dense” toggle)
- dur 7.0 – 30.0; default 10.0; sets the duration for the head to traverse the score (the “duration” slider)
- invert 0 or 1; default 0; inverts the response to dark and light colors (the “invert” toggle)
- loop 0 or 1; default 1; disables/enables playback looping (the “loop” toggle)
- note MIDI key (pitch), status (0=disabled, >0=active); forces disabling/enabling the specified MIDI “key”
- pendulum 0 or 1; default 0; disables/enables pendulum mode for head movement (the “pendulum” toggle)
- play 0 or 1; default 0; disables/enables head movement (the “play” toggle or spacebar)
- pos 0.0 … 1.0; position of the playback head
- scratchmode 0 or 1; default 0; disables/enables the mode for free maneuvering of the playback head (using the mouse or external messages)
- segment index (strip number), status (0=disabled, 1=active); forces disabling/enabling the specified “strip”
- sensitivity 0.0 … 1.0; sets the normalized sensitivity of the motion detector (the “sensitivity” slider)
- tuning C c# D d# E F f# G g# A a# B; binary sequence of 12 numbers (0 or 1), where each indicates whether the corresponding pitch in the octave is enabled
- vol 0.0 … 1.0; sets the instrument volume level (global “vol” slider)
Messages sent by the Miniature
- kamtytura camera 0 or 1; disabling or enabling camera visibility
- kamtytura dark 0 or 1; disabling or enabling dark mode visibility
- kamtytura dense 0 or 1; change of tuning mode
- kamtytura dur 7.0 – 30.0; reports change of the duration for the head to traverse the score
- kamtytura invert 0 or 1; disabling or enabling brightness inversion mode
- kamtytura loop 0 or 1; disabling or enabling looped playback
- kamtytura pendulum 0 or 1; disabling or enabling pendulum playback mode
- kamtytura play 0 or 1; disabling or enabling playback
- kamtytura pos 0.0 … 1.0; position of the playback head
- kamtytura scratchmode change of the playback head maneuvering mode status (normal playback / “scratch”)
- kamtytura segment index (strip number), status (0=disabled, 1=active), MIDI note (0-127), fill level (0.0 … 1.0); reports strip status
- kamtytura sensitivity 0.0 … 1.0; reports the normalized sensitivity of the motion detector (the “sensitivity” slider)
- kamtytura tuning C c# D d# E F f# G g# A a# B; binary sequence of 12 numbers (0 or 1), where each indicates whether the corresponding pitch in the octave is enabled; reports tuning change
- kamtytura vol 0.0 … 1.0; reports change of volume level