Hanns Holger Rutz is a sound artist, composer/performer, researcher and software developer in digital art. He works at the Institute of Electronic Music and Acoustics (IEM) in Graz, where he currently leads the FWF-funded artistic research project Algorithms that Matter (Almat). His work focuses on sound and installation art, and extends to live improvisation and electroacoustic music, in all of which experimentation with software and algorithms plays an important role.
What is expected to be one of the most non-conventional talks at Scala Days Lausanne, Hanns’ talk “Mellite: An Integrated Development Environment for Sound” will demonstrate Mellite, focusing on the challenges and potentialities of a hybrid model for working with code and sound.
In advance of his talk, we talked to Hanns about his self-taught Scala journey, why he chose Scala to help him work with sound and music and what Scala Days attendees can expect from his talk.
What is your most favorite Scala Days story or memory?
I have only attended one instance of Scala Days so far, that was 2012 in London. What’s funny is that I was presenting in a session along with Shadaj Laddad, who was showing some game coding, I guess we were put together under the rubric of “creative computing”. This year we’re both there again, and seven years later the stuff we develop is much more advanced, but still centred around experimenting with creative things.
What’s your background and what does your current role involve?
I am a sound/digital artist and researcher in computer music, and I am currently running an artistic research project on the agency of algorithms and human/machine interaction in artistic contexts. This involves practical work on computer music and computer sound art, working and observing other artists, and engaging in coding practices. One of the systems we are using in this project is Mellite, a computer music environment I have been working on in the past ten years or so.
What’s the biggest highlight of your career so far?
After finishing my PhD and working as a post-doc in several projects, to obtain funding for my own research project.
Why did you choose Scala and what kind of problems does it solve for you?
I am a self-taught programmer, developing my first sound based program around 1999/2000, at the time using Java (Java 1.2 was brand new then). Later I worked with the SuperCollider sound synthesis programming language. After writing a few hybrid systems, in which Java and SuperCollider were interacting, and when starting my PhD research, I was looking for a language that could be as expressive as SuperCollider, but also suitable for writing large scale frameworks. Being able to gradually move away from Java was an important point, and at first I was looking at Groovy, before I discovered Scala.
Scala seemed to be in the sweet spot of having a concise and malleable syntax, good for modelling domain specific constructs such as sound objects, without too much ceremony, while still being statically typed and thus available to good IDE control, refactoring and debugging. Back in 2009, it wasn’t clear whether Scala would be around for the coming fifteen or twenty years, so I am very glad I bet on the right horse. The system I am working on is both written in Scala and using Scala as an embedded language, and Scala’s promise of being a language that scales from conceptualising the huge outer framework to writing simple snippets and live coding, almost like a dynamic language, has been fulfilled.
What is the most important challenge Scala developers are facing today?
For me, the biggest effort now is to maintain the compatibility between the many sub-modules that my system is comprised of. The migration-manager tool helps me determine binary compatible problems, but I wished that I would have to have less occasions where I need to bump the major version of a downstream component, followed by an avalanche of dependencies that need updating as well.
Other projects (e.g. scaled) have followed a source-only build approach, and this is also supported by sbt, so I wonder if I should quit publishing maven artifacts and use a source code based build system instead. I have high hopes that the situation will change and improve with TASTY as a more robust format for packaging Scala libraries. The second biggest challenge is to distribute a desktop application for various platforms. The JVM is no longer a given, people use different flavours and versions, and it is quite hard as an open source author to generate user friendly packages that non-programmers, such as musicians and sound artists, can easily install on their computers.
What is one thing that could address this challenge?
I already mentioned TASTY that will hopefully improve the robustness of persisting code in live-coding embedded systems without breaking compatibility. For the packaging, sbt-native-packager is already doing a lot of things, I just wished there was support for packaging self-contained applications, i.e. with the JDK bundled, for common platforms such as Linux, Mac, Windows, Raspberry Pi / embedded.
Who should attend your talk at Scala Days and why?
The talk is showcasing my open source computer music environment, Mellite, which in numerous interesting ways uses Scala both as implementing language and as embedded language in which you write sound objects and tiny programs. Apart of course from people that are genuinely interested in sound and creative computing, I think the talk will be interesting for people who want to look at new ideas of embedding Scala as a language, of building a domain specific integrated development environment, of combining textual and visual user interfaces.
For me, the project is also about understanding the process of thinking about code and its organisation. What are the affordances of this particular architecture, how does it influence the way we think about the activity of coding? What are the challenges, and where can we go from here?
Whom would you like to connect with at the conference?
As an artist and researcher, I guess I am a bit at the periphery of the typical crowd of the conference. I will be building follow-up research projects soon, so I would like to get in touch with researchers who could envision an interdisciplinary project combining art and (computer) science, for example, or a particular domain in which they work, say biocomputing and such.
A second group of people that I would like to meet is anyone interested in building tooling around Scala, as I have a very rudimentary IDE now in place, and in the future I am eyeing the integration with Metals and Dotty. Last but not least, I would like to connect to all the friendly people who enjoy doing experimental stuff with Scala, or who are looking for opportunities to collaborate in an open source project.