Competition – Win one year’s free membership to Music Hackspace

Dom Aversano

We are giving away a year’s free membership – to enter, all you have to do is leave a comment on this page about at least one composer or musician who has greatly influenced your approach to computer music.

We want to know two things.

  1. How has their music affected or influenced you?

  2. An example of a piece of their music you like, and a short description of why.

Anyone who completes the above will be entered into the competition on an equal basis (you are welcome to list more than one person, but this will not improve your chances of winning) with the winner assigned at random and announced on Saturday 4th of November via the Music Hackspace newsletter.

To get the ball rolling, I will provide two examples.

Kaija Saariaho / Vers le blanc

I arrived somewhat late to Kaija Saariaho’s music, attending my first live performance of her music two years prior to her death this year, yet despite this, her music has greatly influenced me in the short time I have known it.

Although I have not heard the piece in full (since it has never been released) the simple 1982 electronic composition by Saariaho, Vers le blanc, captured my imagination.

The composition is a 15-minute glissando from one tone cluster (ABC) to another (DEF). Saariaho used electronic voices to produce this. The composition raises questions about what is perceptible. For instance, can the change in pitch be heard from moment to moment? Can it be sensed over longer time periods?

The piece made me question what can be considered music. Are they notes if they never fix on a pitch? can such a simple process over 15 minutes be artistically enjoyable to listen to? what would be the ideal circumstance to listen to such music? I experienced this music partly as an artistic object of study and meditation and partly as a philosophical provocation. 

Burial / Come Down to Us

Burial’s idiosyncratic approach to technology gives rise to a unique sound. He famously stated in a 2006 interview that he used Soundforge to create his music, without the use of any multitrack sequencing or quantisation. This stripped-down use of technology gives the music an emotional directness and a more human feel.

I find his track Come Down to Us particularly inspiring. At 13 minutes long it uses a two-part binary form for the structure. The composition uses audio samples from a transgender person, and it was only after a few years of listening that it occurred to me that the form might describe the subject. At 7 minutes the entire mood and sound of the track changes from apprehensive to triumphant, potentially describing a person undergoing — or having undergone — a psychological or physical transition. Released in 2013, this was long before the divisive culture wars and undoubtedly intended simply as an artistic exploration. 

Leave your comment below to enter the competition. Please refer to the guidelines above. The winner will be announced on Saturday 4th of November via the Music Hackspace newsletter. 

Strategies experts use to learn programming languages

Dom Aversano

"U.S. Army Photo" from the archives of the ARL Technical Library. Left: Betty Jennings (Mrs. Bartik), right: Frances Bilas (Mrs. Spence).

Learning a programming language – not least of all one’s first language – can feel intimidating, especially when observing others doing complex tasks with apparent ease. Furthermore, the circumstances in which one learns can vary greatly. One person might be 19 years old and entering a degree program with plenty of free time, while another is moonlighting on an old computer between childcare and other responsibilities. Regardless of our circumstances, we can adopt an attitude and approach to learning that allows us to make the best use of the time we have. What follows is some advice with tips from some leading music programmers and artists. 

Enjoy learning

It might sound trite, but it is essential. It is easy to motivate ourselves to do something we love. If learning is enjoyable you will do more with greater focus and energy. Create a beautiful environment to work in, inspiring projects to develop, and desirable long-term goals that are ambitious enough to keep you practising regularly. Create the conditions in which action comes naturally, since to borrow the words of Pablo Picasso, ‘Action is the foundational key to all success.’

Some people like learning by exploring and modifying existing code written by others. I envy them because I think they move faster. However I find more pleasure in learning from the ground up so I understand every line of code in my project. My preference is to follow a tutorial (e.g. Dan Shiffman’s) and do small exercises. – Tim Murray Browne

Learn through projects

We learn by doing. Tutorials are essential, but if they are not complemented with the development of projects you might experience ‘tutorial fatigue’, losing motivation and inspiration amid a constant reel of videos. Start with simple programs you can build quickly before working up to more complex ones. Small and simple is beautiful. 

I have a folder where I document and store all my ideas for projects. I write everything down in plain language describing what the program will do without any consideration for how it will work. Only after this do I give some consideration to how the program might work architecturally, before deciding if I should create it now, wait, or simply store it as an idea. Even if I never create the project, documenting my ideas demonstrates they have a value I would not entrust to just memory.

Love the one you’re with

It is better to learn one language expertly than five shallowly. Take time to decide what you want to learn rather than impulsively jumping in, after all, you might spend thousands of hours with the program so you want it to align with your character and needs. Give yourself a realistic amount of time to learn it before embarking on another language, unless you genuinely have the time to learn languages simultaneously. 

I learned Pure Data partly because I was attracted to the way it looked. That might seem superficial but I know visual aesthetics affect me, and if I was going to look at a program for hundreds or thousands of hours I wanted to like its appearance. I now prefer traditional code, but my love for Pure Data and its black-and-white simplicity taught me to think as a coder. 

Do not worry about being mocked for asking questions – asking others for help builds relationships, strengthens the community, and can even lead to employment. If people want to put you down for asking basic questions, it says more about them than about you, so always reach out! – Elise Plans

Build a physical library

A friend who worked as a programmer for a big technology company advised me not to read books about programming, arguing that learning to program is non-linear and therefore unsuited to books. This did not work for me. We all have the same access to digital information, but physical libraries reflect our interests, priorities, and values, and act as private mental spaces. 

Although Daniel Shiffman’s books and the SuperCollider book are available for free online, I bought physical copies as I find reading from paper conducive to a quieter, less distracted, and more reflective state of mind. As it happens I often read the books in a non-linear manner, reading the chapter that seems most appealing or relevant to me at that time. My library extends out in different directions, containing musicology and biography, as well as physics and philosophy, yet all feel somehow connected. 

Read other people’s code

A revelation for most people learning to code is that there is rarely a single correct way to do something. Coding is a form of self-expression that reflects our theories and models of the world, and as with all creative activities, we eventually develop a style. Reading other people’s code gives you exposure to other approaches, allowing us to understand and even empathise with their creative world. Just as when we learn a foreign language we read books to help us, reading code allows us to internalise the grammar and style of good code. 

Music technology and programming may seem limitless in possibility – but you quickly find limitations if you step outside of conventional concepts of what music has been defined as before. So if you aren’t running up against limitations, it’s likely you aren’t thinking in a way which is original or ambitious enough. – Robert Thomas

Be wary of the promises of AI

Machine learning is impressive, but as Joseph Weizenbaum’s famous program ELIZA created at MIT in 1964-66 demonstrated, we have a potentially dangerous tendency to project mental capabilities onto machines that do not exist. 

While learning SuperCollider I used ChatGPT to help with some problems. After the initial amazement at receiving coherent responses from a machine using natural language, a more sober realisation came to me that the code often contained basic errors, invented syntax, and impractical solutions that a beginner might not recognise as such. It was obvious to me that ChatGPT did not understand Supercollider in the meaningful sense that expert programmers did. 

Machine learning is undoubtedly going to influence the world hugely, and coding not least of all, but the current models have a slick manner of offering poor code with absolute confidence. 

Photo by Robin Parmar
For mistakes that I may have made – lots of them! All the time. It’s probably cliche to say, but understanding your mistakes can be the best way to learn something. Although you come to think of them less as mistakes and more as happy accidents. Sometimes typing the “wrong” value can actually give you an interesting sound or pattern that you weren’t intending but pushes you in a new creative direction. – Lizze Wilson, Digital Selves

Hopefully, some of the ideas and advice in this article have been helpful. There are of course as many ways to learn a programming language as there are people, but regardless of the path, there is always a social element to learning and collaboration. And in that spirit, if you have any advice or ideas that you would like to share, please feel free to do so in the comments below.

Build a MIDI 2.0 program using the Apple UMP API – Workshop 2 / December 6th

Date & Time: Monday 6th December 2021 6pm UK / 7pm Berlin / 10am LA / 1pm NYC

This workshop builds on the first UMP Workshop, and focuses on C++ development using the new Apple UMP API. Automatic 20% discount will be applied at checkout to this workshop if purchased at the same time as the first workshop.

2-hours

Difficulty level: Advanced

  • Inspect the new Apple UMP API
  • What can be done with the API, where are limitations?
  • Build a simple UMP program in C++

Overview

This workshop builds on Workshop 1, and will provide developers with knowledge and code for implementing MIDI 2.0 Universal MIDI Packet (UMP) development using the Apple UMP API in C++. The Apple UMP API will be presented and explained. Then, the participants will co-develop a simple implementation in C++ using the Apple UMP API. For that, a stub workspace will be provided. Exercises will let the participants practice the newly learned concepts. Xcode on MacOS 11 required for building the workshop code.

Learning outcomes

At the end of the workshop the participants will:

  • Be able to build MIDI 2.0 products using UMP using the Apple UMP API

Study Topics

  • Looking at the Apple UMP API
  • Extending the code from Workshop 1 with Apple i/o
  • Presenting fragments of the code in the stub workspace
  • Testing and interoperability with MIDI 1.0

Level of experience required

  • Attendees who joined workshop 1 <add link>
  • Some experience with C++ coding required
  • Attendees should be familiar with MIDI 1.0; they should have experience building and debugging applications using Xcode (macOS)

Any technical requirements for participants 

  • A computer and internet connection
  • A webcam and mic
  • A Zoom account
  • for development: Xcode on MacOS 11

About the workshop leader 

Florian Bomers runs his own company Bome Software, creating MIDI tools and hardware. He has been an active MIDI 2.0 working group member since its inception. He serves on the Technical Standards Board of the MIDI Association and chairs the MIDI 2.0 Transports Working Group. He is based in Munich, Germany.

MIDI 2.0 – Introduction to the Universal MIDI Packet – Workshop 1 / November 29th

Date & Time: Monday 29th November 2021 6pm UK / 7pm Berlin / 10am LA / 1pm NYC

This workshop is followed by two more workshops exploring the specific implementations with Apple UMP API and the JUCE UMP API (cross-platform). Automatic 20% discount on workshop 2 and/or 3 will be applied when purchased with this workshop.

2- hours

Difficulty level: Advanced

MIDI 2.0 is set to power the next generation of hardware and software with enhanced features for discovery, expression and faster communication. The Universal MIDI Packet (UMP) is a fundamental aspect of MIDI 2.0, which allows programs to negotiate and communicate with MIDI 1.0 and MIDI 2.0 products.

In this workshop, you will learn from a member of the MIDI Association Technology Standard Board, who wrote the specifications, how to get started working with UMP, and write a simple C++ program that utilises UMP.

Overview

This workshop will provide developers with knowledge and code for starting MIDI 2.0 Universal MIDI Packet (UMP) development in C++. The concepts of UMP will be explained. Then, the participants will co-develop a first simple implementation of a generic UMP parser in plain C++. For that, a stub workspace will be provided. Exercises will let the participants practice the newly learned concepts.

Who is this workshop for:

Developers wanting to learn how the new MIDI 2.0 packet format works under the hood, and how to get started writing software for it right away.

Learning outcomes

At the end of the workshop the participants will:

  • Understand the core concepts of UMP
  • Be able to build applications in C++ using UMP

Study Topics

  • UMP Basics
  • packet format
  • MIDI 1.0 in UMP
  • MIDI 2.0 in UMP
  • Translation
  • Protocol Negotiation in MIDI-CI
  • Inspecting the UMP C++ class in the stub workspace
  • A simple UMP parser in C++
  • Unit Testing the UMP class

Level of experience required: 

  • Some experience with C++ coding
  • Have a development environment set up and ready with Xcode (macOS) or Visual Studio (Windows).
  • Working knowledge of MIDI 1.0

Any technical requirements for participants 

  • A computer and internet connection
  • A webcam and mic
  • A Zoom account
  • Xcode (macOS) / Visual Studio (Windows)

About the workshop leader 

Florian Bomers runs his own company Bome Software, creating MIDI tools and hardware. He has been an active MIDI 2.0 working group member since its inception. He serves on the Technical Standards Board of the MIDI Association and chairs the MIDI 2.0 Transports Working Group. He is based in Munich, Germany.

Max meetup – October 23rd

Date & Time: Saturday 23rd October 2021 4pm UK / 5pm Berlin / 8am LA / 11am NYC

Meetup length 2-hours

Level: Open the all levels

Meetups are a great way to meet and be inspired by the Max community.

What to expect? 

The meetup runs via Zoom and will be approx. 2-hours in length.

This session focuses on <add topic> and will feature presentations from expert practitioners.

Speakers:

Michele Zaccagnini – Beyond Jitter: audiovisuals in Max using shaders

  • Overview: In this presentation I will demystify, or at least whet your appetite for, shaders in Max. I will also present a set of tools I helped develop to port MIDI and audio to shaders, and have them rendered in all sorts of formats. While shaders can be intimidating at first, they are incredibly powerful and offer enormous possibilities for the audiovisual composer. They are entirely run on the GPU and allow for completely flexible visual programming which is very suitable for abstract visuals.  After years of practicing audiovisual composition I believe that the Max+Shaders combo is simply delicious! 
  • More info https://www.youtube.com/channel/UCXMQVkLE-bKdA7cycXECtCQ https://www.patreon.com/michelez 

Philip Meyer:  Modular Sequencing with Jamoma

  • Overview: I am in the process of building a modular system for creating dynamic musical sequences. This is the early stages of a long-term project for me to build a powerful environment in which I can create intricate, novel compositions as dynamic data systems, eschewing the need for a timeline. For this project, I decided to use the Jamoma package for the first time. This seems at present to have been a good decision – Jamoma’s “MVC” architecture is intuitive and clean, and the cueing system is working well so far. I am eager to show the group what I have made so far and gather any feedback, advice, or ideas the group may have. I’m particularly curious to hear the thoughts of anybody who has extensive experience with Jamoma. I might also be interested in bringing any collaborators or beta testers on to the project if anybody is so inclined.
  • More info: 
    • Philip-meyer.com
    • Bbandcamp: inter-modal.bandcamp.com 

Following these presentations breakout rooms are created where you can:

  • Talk to the presenters and ask questions

  • Fancy a collaboration challenge? In one of the breakout rooms, host Ned Rush will be leading ‘Ready, Steady, Patch!’ sign up to learn more!

  • Show other participants your projects, ask for help, or help others out

  • Meet peers in the chill-out breakout room

Requirements

  • A computer and internet connection
  • A Zoom account

Berlin Code of Conduct

We ask all participants to read and follow the Berlin Code of Conduct and contribute to creating a welcoming environment for everyone.

 Supported by Cycling ‘74

Getting started with Max – October Series

Date & Time: Wednesdays 6th / 13th / 20th / 27th October – 6pm UK / 7pm Berlin / 10am LA / 1pm NYC

Length 2-hours

Level: Beginners curious about programming

Get started with interactive audio and MIDI, and discover the possibilities of the Max environment. In this series of workshops, you will learn how to manipulate audio, MIDI, virtual instruments and program your own interactive canvas.

Connect together Max’s building blocks to create unexpected results, and use them in your music productions. Through a series of guided exercises you will engage in the pragmatic creation of a basic MIDI sequencer device that features a wealth of musical manipulation options.

Learn from guided examples and live interactions with teachers and other participants.

This series of online workshops aims to enable you to work with Max confidently on your own.

Sessions overview: 

Session 1 – Understand the Max environment

Session 2 – Connect building blocks together and work with data

Session 3 – Master the user interface

Session 4 – Work with your MIDI instruments

Requirements

  • A computer and internet connection

  • A good working knowledge of computer systems

  • Access to a copy of Max 8

About the workshop leader 

Kyle Duffield is a Toronto based Interactive Experience Design Professional who creates immersive interactive installations and brand activations. He is also known for his affiliation with the studio space Electric Perfume. His decade-plus expertise spans audio, video, creative coding, electronics, and interaction design with the intent of bringing play and multisensory spectacle to public spaces. As an Educator, he has facilitated interactive media courses and workshops with various institutions, galleries, and universities across Canada, Shanghai, the UK, and online. Currently, Kyle is a Cycling 74 Max Certified Trainer, and is focusing on creating unforgettable technological experiences.

TouchDesigner meetup – August 28th

Date & Time: Saturday 28th August 4pm UK / 5pm Berlin / 8am LA / 11am NYC

Level: Open to all levels

Meetups are a great way to meet and be inspired by the TouchDesigner community.

What to expect? 

The meetup runs via Zoom, the main session will be 2-hours in length with an additional hour open to the community for collaboration and sharing in breakout rooms.

This session focuses on The Future of TouchDesigner and New Media Art and will feature presentations from expert practitioners.

The meetup will be hosed by Bileam Tschepe, the theme for this meetup is ‘The Future Of Interactive Art’ and we’re pleased to confirm the lineup of speakers: 

Scottie J. Fox – The Live-Edited Experience

  • Bio: Scottie is a real-time mixed visual artist and software developer from Boston, USA – specializing in improv, moment arts, dance and augmented reality
  • Description: An exploration into the possibilities and frontier of real time illusion of performance arts using mixed reality of both real and digital effects to create a showcase of what is now available at the user level, where previously only achievable in post studio production
  • To find out more: ://twitter.com/ScottieFoxTTV  & https://www.twitch.tv/scottie_fox/

Karyn Nakamura – Interactive Experiments With Kinect

  • Bio: Karyn is 20 year old from Tokyo currently studying design at MIT! She mostly works in Touchdesigner or JavaScript and is a big fan of early net art, post hardcore music, and modern Japanese history
  • Description: Showing some examples of interactive experiments using motion tracking with Kinect as well as my personal future plans with the Kinect and other rising technology
  • To find out more: https://www.instagram.com/frog_spit_simulation/

Elburz Sorkhabi – Your Career In Interactive & Immersive Media

  • Bio: Elburz Sorkhabi is the co-founder of The Interactive & Immersive HQ and one of the top TouchDesigner developers in the world. He brings insight he has used to lead clients including Google, Kanye West, Netflix, TIFF, Burj Khalifa, Nike, Under Armour, and many more around the world from Los Angeles, New York, San Francisco, Toronto, Montreal, Dubai, Shanghai, Singapore, Tokyo, and Paris
  • Description: One of the hardest parts of making the art you dream about is actually having a career that allows you to be creative and dedicate yourself full-time to your craft. In this talk, Elburz breaks down common barriers to building a career by providing actionable advice and answering common questions about how to get gigs and make a living doing the work you love

Following these presentations breakout rooms are created where you can: 

  • Talk to the presenters and ask questions

  • Join a room on topics of your choice

  • Show other participants your projects, ask for help, or help others out

  • Collaborate with others

  • Meet peers in the chill-out breakout room

Requirements

  • A computer and internet connection
  • A Zoom account

Berlin Code of Conduct

We ask all participants to read and follow the Berlin Code of Conduct and contribute to creating a welcoming environment for everyone.

Supported by TouchDesigner 

Build your own modular synth with MSP – On-demand

Level: Beginner/Intermediate

Learn to program patches with MSP to make a custom modular environment.

Cycling 74’s Max / MSP offers a vast playground of programming opportunities to create your own synthesis devices. In this series you will build custom modules to create your own modular synthesis environment. This series aims to provide you with suitable skills to begin exploring synthesis and UI design in the Max MSP environment.

Series Learning Outcomes

By the end of the series a successful student will be able to:

  • Build oscillator and filter networks with MSP objects

  • Build modulation patches with MSP objects

  • Build step sequencers with Max and MSP objects

  • Explore use of signal routing in interesting and creative ways using MSP objects.

  • Build custom modules using UI objects and bpatchers

Session 1 / 2 / 3 / 4

  • MSP objects for synthesis, filters and modulation 
  • MSP objects to control signal routing
  • UI objects and bpatchers
  • UI objects for sequencers

 

Requirements

  • A computer and internet connection

  • A web cam and mic

  • A Zoom account

  • Access to a copy of Max 8 (i.e. trial or full license)

About the workshop leader 

Ned Rush aka Duncan Wilson is a musician, producer and performer. He’s most likely known best for his YouTube channel, which features a rich and vast quantity of videos including tutorials, software development, visual art, sound design, internet comedy, and of course music.

Getting Started with Max – June Series

Dates & Times: Wednesdays 2nd, 9th, 16th & 23rd of June 6pm UK / 7pm Berlin / 10am LA / 1pm NYC – 2 hours live sessions

Level: Beginners curious about programming

Get started with interactive audio and MIDI, and discover the possibilities of the Max environment. In this series of recorded videos, you will learn how to manipulate audio, MIDI, virtual instruments and program your own interactive canvas.

Connect together Max’s building blocks to create unexpected results, and use them in your music productions. Through a series of exercises you will engage in the pragmatic creation of a basic MIDI sequencer device that features a wealth of musical manipulation options.

Learn from guided examples.

This on demand content aims to enable you to work with Max confidently on your own.

Learning outcomes: 

  • Understand the Max environment

  • Connect building blocks together and work with data

  • Master the user interface

  • Work with your MIDI instruments

Requirements

  • A computer and internet connection

  • A good working knowledge of computer systems

  • A Zoom account

  • Access to a copy of Max 8

Max and Machine Learning with RunwayML – On-demand

Level: Intermediate

RunwayML is a platform that offers AI tools to artists without any coding experience. Max/MSP is a visual programming environment used in media art that can be used to control RunwayML in a more efficient way. At the end of the workshop you will be able to train trendy machine learning models and generate videos by walking a latent space through Max and NodeJS.

Session Learning Outcomes

By the end of the course a successful student will be able to:

  • Understand the RunwayML workflow

  • Use Node4Max to control RunwayML and generate a video.

  • Explore ML trendy models

  • Create a Dataset

  • Train a ML model

  • Process videos with the VIZZIE library.

Session 1

– Introduction to the course

– What’s machine learning, deep learning and neural networks?

– What’s RunwayML?

– What’s Max/MSP/Jitter and NodeJS?
– Dataset and models training with RunwayML

Session 2

– What’s a GAN and styleGAN?

– Latent space walk

– Image and video generation with RunwayML, Max and Node4Max (part 1)

Session 3

– Image and video generation with RunwayML, Max and Node4Max (part 2)

Session 4

– processing Images and videos with VIZZIE2 and Jitter.

Session Study Topics

  • Generate images and video through AI

  • Request data to models and save images on your local drive

  • Generate video from images

  • Communication protocols (web sockets and https requests)

  • AI models used in visual art.

  • Video processing

  • Models training

Requirements

  • A computer and internet connection

  • Access to a copy of Max 8 (either trial or licence)

  • A code editor such as Visual Studio Code, Sublime or Atom
  • Attendees need to create a RunwayML account –  https://app.runwayml.com/signup.
    • Upon setting up an account you will receive 10$ credit for free
    • Approx. 50$ credits will be required to complete the course however these do not need to purchased in advance
    • 20% RunwayML discount code will be provided to participant who sign up to the course 

About the workshop leader 

Marco Accardi is a trained musician, multimedia artist, developer and teacher based in Berlin.

He is the co-founder of Anecoica, a collective that organises events combining art, science and new technologies.