{"id":17,"date":"2018-03-17T15:30:41","date_gmt":"2018-03-17T15:30:41","guid":{"rendered":"https:\/\/www.explodingart.com\/arb\/?p=17"},"modified":"2022-03-01T03:29:24","modified_gmt":"2022-03-01T03:29:24","slug":"gendynish-xenakis-on-the-arduino","status":"publish","type":"post","link":"https:\/\/www.explodingart.com\/arb\/2018\/03\/17\/gendynish-xenakis-on-the-arduino\/","title":{"rendered":"GenDynish \u2013 Xenakis on the Arduino"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"397\" src=\"https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/A001-Waveforms-850x397.png\" alt=\"A001-waveform\" class=\"wp-image-19\" srcset=\"https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/A001-Waveforms-850x397.png 850w, https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/A001-Waveforms-850x397-300x140.png 300w, https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/A001-Waveforms-850x397-768x359.png 768w, https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/A001-Waveforms-850x397-615x287.png 615w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><figcaption>Waveform output from the quadraphonic Gendynish algorithm running on an Arduino-class microprocessor.<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Furthering my previous interests in Stochastic Synthesis I implemented an emulation of Iannis Xenakis\u2019 Dynamic Stochastic Synthesis on an Arduino microcontroller, the resulting algorithm I titled GenDynish. The Gendynish algorithm is software that runs on Arduino-class microprocessors to produces sounds similar to Iannis Xenakis\u2019 dynamic stochastic synthesis works from the early 1990s. This algorithm takes a somewhat unconventional approach to Arduino audio by directly manipulating digital i\/o pins allowing polyphonic output from multiple pins. The first composition using this code was the real-time autonomous algorithmic work A.001 performed at the Queensland Conservatorium Griffith University in March 2018. The second performance was an interactive version at Oscilo Scape 11 in September 2018. Both these versions were quadraphonic implementations with each voice driving a pin out on the microcontroller. The third performance was at the Australasian Computer Music Conference in July 2020. That work, titled A.002, used a revised version of the GendyNis algorithm running on the Adafruit Playground Express microcontroller board which enabled amplitude variation via a DAC rather than simple on-off voltages from digital pins in the previous versions.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"398\" height=\"266\" src=\"https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/IMG_0519-v-sml.jpg\" alt=\"\" class=\"wp-image-57\"\/><figcaption>Performing A.001 Interactive<\/figcaption><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"A.002 (music using stochastic synthesis for Arduino)\" width=\"1505\" height=\"847\" src=\"https:\/\/www.youtube.com\/embed\/Wapn6mT1PtQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><figcaption>Video of A.002 as shown at the online ACMC 2020 conference.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The first composition using this code was the real-time autonomous algorithmic work <a href=\"https:\/\/soundcloud.com\/thejmc\/a001\">A.001<\/a> performed at the Queensland Conservatorium Griffith University in March 2018. The second performance was an <a href=\"https:\/\/soundcloud.com\/thejmc\/a001i-at-os11\">interactive version<\/a> at Oscilo Scape 11 in September 2018. Both versions were quadraphonic implementations with each voice driving a pin out on the microcontroller.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The project was selected for a demo <a href=\"https:\/\/www.researchgate.net\/publication\/335870136_Gendynish_Stochastic_Synthesis_on_the_Arduino\">paper<\/a> at the ISEA 2019 conference in Korea.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/Gendynish-Poster-closeup.png\" alt=\"\" class=\"wp-image-56\" width=\"814\" height=\"416\"\/><figcaption>Hear a performance on Soundcloud &#8211; <a href=\"https:\/\/soundcloud.com\/thejmc\/a001i-at-os11\">https:\/\/soundcloud.com\/thejmc\/a001i-at-os11<\/a><\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In the 1990s Iannis Xenakis developed a new probabilistic audio generation method called Generative Dynamic Synthesis that produced quite unconventional sounds. This process reflected his interest in &#8220;human intelligibility [of] temporal periodicity and the symmetry of the [waveform] curves&#8221; generated by digital devices (Xenakis 1991:289). Two notable works using this technique were composed by Xenakis, <em>Gendy3<\/em> and<em> S.709<\/em>. Inspired by these works and taking advantage of the rapid advances in technology, \u201cA.001\u201d simulates this technique on the low-cost Arduino microcontroller running in real time and emulates the four voice architecture of Gendy3 only this time reproduced in quadraphonic sound. Andrew previously engaged with dynamic stochastic synthesis in 2004 coding the first real time, interactive, implementation of the process. The resulting IDSS system was performed and <a href=\"https:\/\/eprints.qut.edu.au\/13149\/1\/BrownAR_ICMC_2005.pdf\">published<\/a> in computer music conferences in 2005. This implementation on the Arduino sounds similar, but is technically only \u2018in the spirit\u2019 of the process rather than a literal reconstruction as was IDSS. It is also testament to the advancement of computing hardware that synthesis processes once requiring expensive and time-consuming resources are now achievable on the least expensive of systems.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Gendynish project arose as I was experimenting with generating audio directly from the pin-outs on Arduino microprocessors, and noticed that some of the sounds were reminiscent of those produced by the GENDY program. On the Arduino, a pin on the microprocessor produces a monophonic output, so several pins were used for the desired polyphony. Voltage output from a pin typically ranges from 0-5 volts and so scaling and DC offset was required to make the output suitable for connecting to a line level audio input. The image below shows an early prototype with resistors and a capacitor on each of four pins to manage the output voltage. The pin outs of an Arduino microprocessor lend themselves to pulse width modulation (PWM) output. This is what was used in the Gendynish algorithm and why it was only an approximation of dynamic stochastic synthesis. By probabilistically varying the frequency and pulse width of the pin output a surprisingly wide variety of timbral results were possible. To maintain the independence of the four pin outputs the timing of the pulse wave frequency was controlled within the main loop of the code, rather than by manipulating the limited number of microprocessor timers. This is computationally inefficient but allows more polyphonic flexibility. A Teensy LC microcontroller was used for the performance of A.001 because it is more powerful than many Arduino microprocessors, yet software compatible. Code for the Gendynish algorithm is available on <a href=\"https:\/\/github.com\/algomusic\/Gendynish\">GitHub<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"504\" height=\"284\" src=\"https:\/\/www.explodingart.com\/arb\/wp-content\/uploads\/2019\/09\/Gendynish-Machine-v0.1-sml.png\" alt=\"\" class=\"wp-image-58\"\/><figcaption>An early prototype<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">This project demonstrates that the past and present can come together in interesting and expressive ways. The Gendynish project draws on inspiration from Iannis Xenakis and his innovative use of probabilistic processes to explore the nature of digital sound making. The project also utilises accessible contemporary computing hardware whose cost to compute-power ratio would have astounded pioneers such as Xenakis. The value of open hardware and open source software that is a feature of the Arduino project is clearly demonstrated through outcomes such as these. Yet despite building on widely available platforms the Gendynish algorithm uses them in unconventional ways, continuing the artistic tradition of bending technologies to meet expressive desires.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Furthering my previous interests in Stochastic Synthesis I implemented an emulation of Iannis Xenakis\u2019 Dynamic Stochastic Synthesis on an Arduino microcontroller, the resulting algorithm I titled GenDynish. The Gendynish algorithm is software that runs on &hellip;<\/p>\n","protected":false},"author":1,"featured_media":19,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,14,2],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code","category-hardware","category-music"],"_links":{"self":[{"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":9,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"predecessor-version":[{"id":528,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/posts\/17\/revisions\/528"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/media\/19"}],"wp:attachment":[{"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.explodingart.com\/arb\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}