0% found this document useful (0 votes)
57 views

Algoritmos, Algo, Ritmos, Algorithms, Algo, Rythms

This document discusses the origins of live coding and algorithmic music in Medellin, Colombia. It describes how in 2014, two young brothers in Medellin performed some of the earliest live coding shows in Latin America, generating electronic dance music through writing code. It then outlines how the author and others went on to develop various domain-specific languages and libraries like CHmUsiCK and CQenze to make live coding more accessible and to allow programmers to develop their own musical styles through custom syntaxes. The document concludes by reflecting on how live coding has grown into a community of musicians and visual artists in Colombia who use algorithms to create music and visuals.

Uploaded by

Un Bigote
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views

Algoritmos, Algo, Ritmos, Algorithms, Algo, Rythms

This document discusses the origins of live coding and algorithmic music in Medellin, Colombia. It describes how in 2014, two young brothers in Medellin performed some of the earliest live coding shows in Latin America, generating electronic dance music through writing code. It then outlines how the author and others went on to develop various domain-specific languages and libraries like CHmUsiCK and CQenze to make live coding more accessible and to allow programmers to develop their own musical styles through custom syntaxes. The document concludes by reflecting on how live coding has grown into a community of musicians and visual artists in Colombia who use algorithms to create music and visuals.

Uploaded by

Un Bigote
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

¿Algoritmos? Algo ¡Ritmos!

Algorithms? Algo Rhythms!


Esteban Betancur Gutiérrez

Instituto Tecnológico Metropolitano (Colombia)


<http://dx.doi.org/10.12801/1947-5403.2018.10.01.16>
A sunny day in 2014, an 11-year-old boy from a Latin American country, in a
neighborhood with a history of violence and state abandonment, writes a few lines in
something that looks like English in a simple text editor for an audience that looks at
him in astonishment. Some kind of electronic dance music resonates through space but
no one in the public seems to understand the relationship between what he writes and
what sounds. He finishes his presentation and then his 9-year old brother takes his place.
The same ritual starts: some texts on a screen in something that seems English, he types
something wrong, erases and corrects, and after a minute and a half, a bass accompanied
by a drum, quite heavy by the way, start to sound through the speakers arranged in the
Parque Explora of the city of Medellin ... and the public, without realizing it, is moving
their feet, applauding, shouts. Two people raise their hands with their eyes closed as if
they were at a rave.
Algo∼Ritmos: First Live Coding Performance Made by Young Programmers
https://youtu.be/2j1OcADdqXI

Algoraves were already happening in other places, and the work in live coding and
education was already taking place in Europe. By this time algorave is around its second
birthday, same as Sonic PI (Aaron, Orchard and Blackwell 2014), but EDM, algorave,
live coding, all these concepts were far from us, and we only knew about them through
the internet, but there was something that we had in mind. It had to be possible to teach
music and programming using the dance floor as an excuse to make the process fun.
The question was how to achieve it? Could we make a workshop for children,
inexperienced programmers and musicians that produces danceable results? Was it
possible to go further still, to the point of “finding our own voice”, not only with the
results, but with the way to produce them? That is, what if we developed our own way
of doing EDM through the new syntaxes for the creation and manipulation of musical
algorithms?
Of course, all this was possible. There were Sonic PI (Aaron 2016), Tidal (McLean
2014) and ixi lang (Magnusson 2011) to prove it. These examples were powerful and
transparent enough to show us that writing code does not have to be black magic. And
why not eliminate the installation problem too, because we saw during our workshops
that installation is an obstacle for the inexperienced (Tidal could be the best example of
this). If we can use Extramuros (Ogborn 2015) we can do it collaborative (sharing text
buffers, syncing audio) and networked.
Workshops kept coming, so it was evident we needed to find different ways to answer
our questions, and for that reason an initial library was written using the possibility to
expand ChucK (Wang, Cook and Salazar 2015), which is a domain-specific language
developed in North America. ChucK can be easily extended, so the library implemented
the same cyclic approach of Tidal. This approach allowed users to manipulate audio
loops in repetitive cycles. In addition, it is possible to change the native words of the
language and replace them with those that the performer prefers, facilitating the
translation of keywords into a native language. This makes the maintenance of the
individual libraries more difficult, but allows for a more expressive use of the code text.
For example, the standard ChucK expression:
SndBuf hh => dac;
me.dir () + bassDrum.wav => bd.read ;
me.dir () + hitHat.wav => hh.read ;
60 /120.0 => oat tempo;
while (true ){
0 => bd.pos ;
(tempo/2 )::second => now;
0 => hh.pos ;
(tempo/2 )::second => now;
}
can be written with our new library as:
drum(120, 8, [1,0], [0,1]);
or
tempo(120); bateria.bombo([1,0]); bateria.hh([0,1]); toca => now;
These two examples represent the same rhythm and show some of the particular
syntaxes made.
Through exploring syntax modification, we discovered that code style and developing
syntaxes to express rhythm was as important for performers as developing their own
musical style. For this reason, through the workshops we developed multiple ways to
write rhythmic patterns using libraries to expand chucK such as CHmUsiCK (Betancur
2017), or mini languages inspired by Tidal and ixi lang that use both Chuck and
SuperCollider or the old Dirt (Mclean 2014) for audio generation. From these
experiments it is important to highlight CMKlang (Betancur 2016a) that serves as a
bridge between Extramuros and some of these particular syntaxes. Also CQenze
(Betancur 2016b) that raises an alternative syntax for the manipulation of Tidal patterns,
including also the transformation functions of these patterns as letters.
|- - |bd | -|hh
bd+- hh-+
ox hx
These three examples represent the same rhythm, using particular syntaxes.
Through this process, we developed technical solutions which are all housed in public
repositories. Also, thanks to the effort, constant work and availability of accessible tools,
a community of musicians and artists was built. They are using algorithms for the
generation of both music and visuals in their works.
We don’t know if the audience understand what we do, even with simpler syntaxes, but
now we are sure that code can make them dance.
Coda
2017—December, Morelia, Mex.
Spencer Salazar (ChucK development and maintenance team) during an ICLC’17 mid-
week party is dancing to a very well produced techno track and suddenly he realizes it is
a live coding set, after that, he looks at the screen and notice the coder is using
miniAudicle (his development), then, he turns at me and asks, “He is from Colombia,
am I right”? I’m very excited to answer clearly but, after a few seconds I said, “Yes, he
is one of the guys I already told you.”
I cannot stop thinking in that first time we dance to the beat of the code.

Author Biography
Musician from Medellin, Colombia, where he has worked in many collaborations, album
recordings and live sessions; also he has worked as software developer for Chmusick
toolkit, a library to make chuck language an algorave language. He is the author of
CQenze, a DSL designed to be a first experience language for non-coders. Also, he
developed CineVivo, a graphics render engine for rendering live coding languages. He
has been musical director in Pequeño Teatro, one of the most important theaters in
Medellin where he is one of the founders and coders of Algo0ritmos, the only live
coding artistic collective in Medellin. Software developer in CICLUX and CineVivo.
Web: <https://essteban.github.io/>
Email: <[email protected]>

References
Aaron, Samuel, Dominic Orchard and Alan F. Blackwell. 2014. “Temporal Semantics
For a Live Coding Language”. In Proceedings of the 2nd ACM SIGPLAN International
Workshop on Functional Art, Music, Modeling & Design - FARM ’14, 37–47. New York:
ACM Press. <https://doi.org/10.1145/2633638.2633648>.
Aaron, Samuel. 2016. “Sonic Pi—Performance in Education, Technology and Art”.
International Journal of Performance Arts and Digital Media 12(2): 171–8.
<https://doi.org/10.1080/14794713.2016.1227593>.
Betancur, Esteban. 2016a. GitHub—essteban/CMKlang: Bridge between CHmUsiCK
and extramuros. <https://github.com/essteban/CMKlang> (accessed 10 July 2018).
Betancur, Esteban. 2016b. “Diseño e implementación de un DSL: CQenze, como
lenguaje de primera experiencia para el cñdigo en vivo”. In Proceedings Festival
Internacional de La Imagen 2015, 1–6.Manizales, Colombia.
<http://festivaldelaimagen.com/wp-content/uploads/2017/07/Esteban_Betancur.pdf>
(accessed 10 July 2018).
Betancur, Esteban. 2017. “CHmUsiCK, A Library to Make chucK an Algorave Like
Language”. In Proceedings of International Conference on Live Coding, 1–7. Morelia:
ICLC. <http://iclc.livecodenetwork.org/2017/cameraReady/betancur_iclc2017.pdf>
(accessed 10 July 2018).
Magnusson, T. 2011. “ixi lang: A Supercollider Parasite for Live Coding”. In
Proceedings of International Computer Music Conference 2011 (ICMC ’11), 503–6.
Huddersfield: International Computer Music Association.
Mclean, Alex. 2014. “Making Programming Languages to Dance to: Live Coding with
Tidal”. In Proceedings of the 2nd ACM SIGPLAN International Workshop on
Functional Art, Music, Modeling & Design—FARM ’14, 63–70. New York: ACM Press.
<https://doi.org/10.1145/2633638.2633647>.
Ogborn, David, Eldad Tsabary, Ian Jarvis, Alexandra Cárdenas and Alex Mclean. 2015.
“Extramuros: Making Music in a Browser-Based, Language-Neutral Collaborative Live
Coding Environment”. In Proceedings of International Conference on Live Coding,
163–9. Leeds: ICSRiM, University of Leeds.
<https://doi.org/10.5281/ZENODO.19349>.
Wang, Ge. Perry Cook, and Spencer Salazar. 2015. ChucK: A Strongly Timed Computer
Music Language. Computer Music Journal, 39(4): 10–29.
<https://doi.org/10.1162/COMJ>.

Filmography
“Algo~Ritmos”. Youtube. Uploaded on 26 September 2014. <https://www.youtube.com/
watch?v=2j1OcADdqXI> (accessed 10 July 2018).

You might also like