Conference Year: 2024

Workshop: Klang: Live and Expressive C++ for Audio

A practical introduction to Klang, a C++ dialect (language extension) for audio, and rapIDE (rapid audio prototyping IDE), a complete C++ development environment in a DAW plugin, supporting live code editing, recompiling, and debugging. Developed to improve the liveness and usability of professional DSP practices, both tools facilitate the expressive design of new interfaces, sounds, and audio processes, while lowering the threshold to C++ for newcomers and learners, without compromising its expressive ceiling or performance.

ABOUT THE WORKSHOP

The workshop will feature discussions, live demonstrations, structured practical exercises, and assisted open exploration of the Klang language and rapIDE development platform, both available free for non-commercial use.

ABOUT THE TECHNOLOGIES

Screen shot of Klang Studio (rapIDE).The Klang language (http://github.com/nashaudio/klang) is a single header include, compatible with any C++17 enabled platform, transforming C++ into an audio programming language with rich support for audio types, processes, and DSP primitives - notably also adding support for concise, explicit expressions of signal flow, allowing C++ code to more closely mirror block diagrams:

  signal mod = lfo(3) * 0.5 + 0.5;
  in >> lpf(mod) >> out;

The rapIDE IDE (aka Klang Studio; http://nash.audio/klang/studio) is a suite of cross-platform (Windows/Mac) audio plugins (in VST and AU format) that contain a complete integrated development environment (IDE) based on the LLVM/clang toolchain, supporting live, in-plugin coding, compiling, hot-swapping, analysis, graphing, and debugging without stopping the host (or even playback). Designed for rapid prototyping of C++ audio processes (e.g. synthesisers, effects), rapIDE is designed to integrate with existing workflows, such as desktop, embedded, and web audio development, but also provide a more immediate and immersive way to explore sound with C++.

FURTHER INFORMATION

Both technologies are pre-release and under active development, maintained by nash.audio, a non-profit organisation supporting projects in music and technology. Delegates require a Windows or Mac laptop, and are recommended to download and install rapIDE (aka Klang Studio) from nash.audio/klang in advance of the session.

Filed under: Uncategorized

Workshop: GPU-Powered Neural Audio

Join our GPU AUDIO workshop where you'll dive into the exciting world of neural networks applied to real-time audio processing.

In this hands-on workshop, you’ll work with Neural Amp Modeler, an open-source project that uses deep learning techniques to replicate guitar amplifiers and pedals with state-of-the-art accuracy. You will learn how to port and scale the Neural Amp Modeler plugin to the GPU using GPU AUDIO technology stack.

With a focus on low-latency, parallel execution, and flexibility, you'll combine different neural building blocks to create high-performance audio models. Whether you're a neural network enthusiast or a DSP pro, this session will showcase how easily scalable models can be built with our specialized GPU neural building blocks.

Throughout the workshop, you'll work within a Jupyter environment, building and testing various versions of the Neural Amp Modeler.

After the session, you’ll gain access to the workshop’s codebase and environment, allowing you to set it up on your own machine and continue experimenting with real-time, low-latency audio processing.

Whether you're working with NVIDIA, AMD, or Mac (M-Silicon) platforms, this session serves as an exclusive sneak peek into our broader release of GPU-powered neural building blocks, unlocking the potential for real-time, scalable, low-latency audio processing like never before.

Filed under: Uncategorized

Workshop: Inclusive Design within Audio Products

Following the success of last year’s ‘An Introduction to Inclusive Design of Audio Products’, we are delighted to be presenting a follow up this year. The session will promote the work happening across the audio industry to support accessibility and inclusive design. We will focus on providing practical design principles for attendees to take away, backed up by engaging lived experience insights and demonstrations.

In particular, we will showcase the practices of two companies who have been making big waves within accessible music in the last year: Ableton and Arcana Instruments. Jay Pocknell and Tim Yates will be exploring how these companies involved the disabled musician community throughout the design of their products, as well as sharing accessibility top tips for attendees to take away, along with insights from musicians Elizabeth J. Birch, Andre Louis, and Tim Burgess.

Why is this important?

As the audio industry seeks to improve diversity within its workforce, and the music industry seeks to widen the diversity of artists creating music, it is essential that inclusion becomes woven into the design of the tools available.

But what do terms such as accessibility and inclusive design actually mean? How might developers begin to adopt inclusive design practices so that their software becomes accessible to a wider audience? What are some of the big-name audio companies doing to support accessibility and how can you learn from their experience?

These are the kind of questions that this workshop seeks to answer.

Panellists

Outline

  1. Introductions from all panellists. 10 mins.
  2. Overview of the social model of disability. 10 mins.
  3. Why design inclusively? The importance of accessibility in mainstream audio technology. 10 mins.
  4. Inclusive design principles and best practice guidelines for music-making and audio products, including examples from products already on the market. 40 mins.

[Break. 10 mins.]

  1. Case study – Developing with the community: what Ableton have learnt since investing in accessibility and connecting with their user community during the development of Live 12, Note, and Move. Andre Louis will also demonstrate the accessibility features of Ableton Move. 30 mins.
  2. Case study – From the ground up: how Arcana Instruments built a company around inclusive design and developed their first instrument, the Arcana Strum, for all. 30 mins.
  3. Panel Q&A. All panellists. 30 mins.
  4. Call to action. How to learn more, further resources to explore. 5 mins.
Filed under: Uncategorized

Workshop: Designing and Developing an AVB/Milan-Compliant Audio Network Endpoint

In this hands-on workshop, participants will learn how to design and develop an AVB/Milan-compliant audio network endpoint using the Panda-Board reference design. The session is divided into two sections: hardware and software. In the hardware section, participants will explore key components such as the PLL for clock recovery (Cirrus Logic CS2100CP), audio codecs (CS4272), and I/O interfaces (XLR, I2S, SPDIF). The software section will focus on configuring and deploying real-time audio streaming over a network. To demonstrate AVB/Milan protocol implementation practically, participants will work with lib_joyned, a collection of libraries that includes time-sensitive networking, I2S drivers, and an Ethernet stack, alongside the XMOS toolchain, offering insights into AVB/Milan systems.

Learning Outcomes:

  • Understanding AVB/Milan and Audio Networking: Learn the fundamental principles behind AVB/Milan protocols and their critical role in achieving synchronized, real-time audio networking.

  • Hardware Design for Audio Endpoints: Understand how to design an endpoint using key components like the Cirrus Logic CS2100CP for clock recovery, the CS4272 audio codec, and various I/O interfaces.

  • Software Development: Gain practical experience with the XMOS toolchain and lib_joyned libraries to configure and implement AVB/Milan-compliant endpoints.

  • Deploying Real-Time Audio Streaming: Develop software that facilitates low-latency, synchronized audio transmission over a network.

  • Testing and Debugging: Use professional tools like Wireshark to monitor and validate the performance of AVB/Milan endpoints in real-world applications.

Workshop Requirements:

  • Basic C Programming Knowledge: Familiarity with C programming is recommended, as participants will be working with the XMOS toolchain during the workshop.

  • Understanding of Embedded Systems: A basic knowledge of embedded systems and microcontrollers will aid in comprehending hardware-related tasks.

Filed under: Uncategorized

Workshop: Exploring Percussion Synthesis and Rhythm Generation in Python

In this hands-on workshop, we'll start from the principles of percussion synthesis, and progress to building a fully-fledged synthesised drum kit, using Python, Jupyter notebooks, and the SignalFlow DSP framework.

We will give an overview of how SignalFlow and Python notebooks can be used to interactively explore DSP algorithms, illustrating different approaches to percussion synthesis from vintage Roland drum machines to physical modelling methods. Once we've implemented each drum in our virtual kit, we'll look at approaches to sequencing and pattern generation, including generative techniques to add complexity and variety.

The workshop will cover:

  • Setting up Visual Studio Code for interactive Python development
  • Sound synthesis concepts in SignalFlow: graph-based signal processing, nodes, patches, and buffers
  • Assembling a synthesised drum kit: hats, kick, toms, shakers, and gongs
  • Adding interactive UI elements to prototype sound designs
  • Sequencing rhythm patterns and modifying them on-the-fly with live coding

And finally, we will try to synchronise everyone's laptops to create a massive collective rhythm section.

 

Requirements

This is a hands-on workshop that is designed to get you up and running with prototyping audio in Python, so we recommend you bring a laptop (Mac, Linux or Windows) and headphones.

Some elementary knowledge of Python is helpful, but we'll start from scratch and take things at a pace that a pace that everybody can follow, whilst providing more advanced materials for those who want to explore further.

 

About the frameworks

SignalFlow is a free Python sound synthesis library, designed for fluid and intuitive expression of sonic ideas. With a built-in library of over 100 synthesis node classes and an expressive syntax using familiar Python idioms, it enables rapid, interactive development of sound design concepts that can easily interoperate with the wider Python ecosystem of data science, ML, sensor I/O and web frameworks.

Filed under: Uncategorized

Workshop: DSP In Practice

In this workshop, you will learn the complete process of designing and implementing an audio effect plugin, specifically a flanger.

You will connect the dots between theory and practice: how to reason about musical features of your plugin before implementing it and how to translate a block diagram into a working implementation.

This workshop covers all the essential steps in professional audio effect development.

What You'll Learn

You will learn:

  • the basics of digital signal processing: samples, sample rate, and delay,
  • how DSP engineers represent and analyze signal flow,
  • how to reason about delay-based effects,
  • how to quickly prototype your effects in Python,
  • how to set up a C++ audio plugin project using JUCE and CMake,
  • how to create reusable DSP “building blocks” and combine them to create more advanced effects from your diagrams,
  • how to create user interface controls for your plugin and connect them to your effect,
  • how to code, build & test your plugin.

The workshop will include both theoretical and practical components.

Requirements

Since there is no guarantee on WiFi availability at the conference venue, all attendees should go through the "Getting started" section of the workshop repository before the conference: https://github.com/JanWilczek/adc24-workshop

Filed under: Uncategorized

Workshop: Practical Machine Learning

In this workshop we’ll explore the fundamentals of Machine Learning. We will run through an easy to follow machine learning model that will:

  • Be easy for beginners
  • Run on the CPU
  • Be real time

This will cover an intro to Machine Learning, small vs large models and an introduction to a training environment in python. We aim to make this workshop as interactive as possible, with the idea of having a trained model in session for everyone to use/play with.

This will be a self-contained workshop aiming to be accessible to all levels of learning - all elements used in the practical part of the workshop will be thoroughly explained in the introduction.

Dynamic Cast - Who Are We?

Dynamic Cast is a peer-to-peer C++ study group, a safe space for underrepresented groups (women, LGBTQIA+, minority ethnic). The Dynamic Cast workshop at ADC is designed to create an entry point to the industry for newcomers, everyone is welcome.

Requirements for this Workshop

A laptop and paper/pen would be beneficial, but no one will be turned away.
More information to be advised before the workshop!

Filed under: Uncategorized