JUCE Summit 2015
Besides my own Twitter feed, see also the @JUCELibrary feed and @AbletonDev's feed, and the stream #JUCESummit.
Videos of the talks, workshops and keynotes
The workshops and morning talks were on two separate tracks in two rooms, so there are two workshops and six talks I haven't seen and can't comment on.
Speakers and others are very welcome to send me more info and links to resources, and notify of any errors I may have made.
Day 1 - Thursday 19 November
#JUCESummit breakfast: juice. Almost too obvious. @ProudArchivist pic.twitter.com/6NtE5KQeba
— Brecht De Man (@BrechtDeMan) November 19, 2015
9:15 AM: Developing Audio Applications with JUCE (Fabian Renn-Giles and Timur Doumler) / Developing Graphical User Interfaces with JUCE (Julian Storer)
We kicked off the workshops! #JUCESummit pic.twitter.com/cm7uh5lCxE
— JUCE (@JUCElibrary) November 19, 2015
12:00 PM: Web-based Remote User Interfaces for MIDI Devices (Zoltán Jánosy) / Developing multitrack audio effect plugins for music production research (Brecht De Man)
Multitrack digital audio effects (Digital Audio Workstation plugins with more than two inputs and/or outputs) are a class of signal processing tools that provide significant opportunities for researchers and artists, as they allow audio features from different tracks to affect processing of others in real-time, within an otherwise conventional digital production environment. However, the development of such plugins comes with many interesting challenges, including the fact that most DAWs do not natively support it. This presentation focuses on both the possibilities of multitrack plugins and obstacles encountered when developing multitrack plugins with JUCE in particular.
Some resources referenced in the talk:
- SAFE Plugins (see also Sean Enderby's talk, Thursday 4:30 PM).
- 'Audio Effects: Theory, Implementation and Application' by Joshua D. Reiss and Andrew McPherson (download code examples using JUCE here)
- TouchKeys
- DAWs supporting true 'multitrack' plugins natively (>8 audio inputs and/or outputs): Cockos Reaper and AudioMulch
"Developing multitrack audio effect plugins for music production research" by @BrechtDeMan at #JUCESummit #dsp pic.twitter.com/clcouTqAGv
— Ableton Dev (@AbletonDev) November 19, 2015
Why multitrack audio plugins? @BrechtDeMan at #JUCESummit #DSP pic.twitter.com/mD5lC08cqC
— Ableton Dev (@AbletonDev) November 19, 2015
(in order of appearance)
- S. Mansbridge, S. Finn, and J. D. Reiss, “Implementation and evaluation of autonomous multi-track fader control,” in 132nd Convention of the Audio Engineering Society, April 2012.
- E. Perez-Gonzalez and J. D. Reiss, “Automatic gain and fader control for live mixing,” IEEE Workshop on applications of signal processing to audio and acoustics, October 2009.
- E. Perez-Gonzalez and J. D. Reiss, “Automatic equalization of multi-channel audio using cross-adaptive methods,” 127th Convention of the Audio Engineering Society, October 2009.
- S. Hafezi and J. D. Reiss, “Autonomous multitrack equalisation based on masking reduction,” to appear in Journal of the Audio Engineering Society, 2015.
- A. Clifford and J. D. Reiss, “Calculating time delays of multiple active sources in live sound,” in 129th Convention of the Audio Engineering Society, 2010.
- A. Clifford and J. D. Reiss, “Reducing comb filtering on different musical instruments using time delay estimation,” Journal of the Art of Record Production, vol. Issue 5, July 2011.
- N. Jillings, A. Clifford, and J. D. Reiss, “Performance optimization of gcc-phat for delay and polarity correction under real world conditions,” in 134th Convention of the Audio Engineering Society, 2013.
- Z. Ma, B. De Man, P. D. Pestana, D. A. A. Black, and J. D. Reiss, “Intelligent multitrack dynamic range compression,” Journal of the Audio Engineering Society, vol. 63, pp. 412–426, June 2015.
- T. Wilmering, G. Fazekas, and M. B. Sandler, “High-level semantic metadata for the control of multitrack adaptive digital audio effects,” in Audio Engineering Society Convention 133, 10 2012.
- A. McPherson, “TouchKeys: Capacitive multi-touch sensing on a physical keyboard,” in Proc. NIME, 2012.
- R. Stables, S. Enderby, B. De Man, G. Fazekas, and J. D. Reiss, “SAFE: A system for the extraction and retrieval of semantic audio descriptors,” in 15th International Society for Music Information Retrieval Conference (ISMIR 2014), October 2014.
- J. D. Reiss and A. McPherson, Audio Effects: Theory, Implementation and Application. CRC Press, 2015.
- S. Mansbridge, S. Finn, and J. D. Reiss, “An autonomous system for multi-track stereo pan positioning,” in 133rd Convention of the Audio Engineering Society, October 2012.
- E. Perez-Gonzalez and J. D. Reiss, “Automatic mixing: Live downmixing stereo panner,” in 10th International Conference on Digital Audio Effects (DAFx-10), 2007.
- E. Perez Gonzalez and J. D. Reiss, “A real-time semiautonomous audio panning system for music mixing,” EURASIP Journal on Advances in Signal Processing, 2010.
1:00 PM: Lunch break
2:00 PM: Keynote: Obsessive Coding Disorder (Julian Storer)
"Only an idiot would change code that works perfectly well. So I'll be that idiot."
Jules took apart zlib and showed many examples of inelegant code and crimes agains best practice. Interestingly, the code didn't get faster, but it was certainly more readable, elegant, and shorter (see below).
On the topic of making his improvement public, he wondered at which point completely transformed code is no longer 'plagiarised'. Zlib is freely available and its license is fairly liberal.
Jules' keynote 'Obsessive Coding Disorder' #JUCESummit #cplusplus #extrememakeover #beforeafter #developer pic.twitter.com/NLzAYnm6TN
— Brecht De Man (@BrechtDeMan) November 19, 2015
Martin is the author of 'Getting Started with JUCE' (Twitter feed)
3:30 PM: Squeezing JUCE out of your laptop, and into the Real World (Ryan McGill)
Presentation (Github)
Sample source code on GitHub
The plugins can be downloaded for free here. Please play around with them, we need more data!
More academic use of JUCE with Sean Enderby #JUCESummit https://t.co/CRhnT4YemG #automaticMixing pic.twitter.com/huncrJ1w9j
— JUCE (@JUCElibrary) November 19, 2015
Looking forward to learning more about SAFE at @DAFxInfo in #Norway, @MyBCU @c4dm! #JUCESummit cc @JackSchaedler @_hobson_ @jackmattson
— Ableton Dev (@AbletonDev) November 19, 2015
Spectacularly high-paced talk on how to be a better, more productive coder. It was filled with genius advice like 'Optimise the right thing', 'Less code, more software' (source), 'Improve code by removing it' and so on, but it was so fast it was impossible to take notes. I'm sure it inspired me though.
Pete on Blogspot: 'Speaking: JUCE Summit'
Pete on Twitter
6:00 PM: Banquet at ROLI
ROLI, the company that owns JUCE since over a year and which famously employs two full-time chefs to cater the vegetarian lunch, hosted us in their offices not far from the conference venue, where those very chefs treated speakers and other delegates to an amazing, seven course, vegetarian dinner. Most noteworthy is that the first item on the menu was 'Gin 'n JUCE', with grapefruit juice (Grapefruit is the name of the latest major JUCE release, JUCE 4).
#JUCESummit banquet @WeAreROLI: gin 'n JUCE #verypunny #7coursemenu #cheeseplatterofthecentury pic.twitter.com/h5rQsbH6cd
— Brecht De Man (@BrechtDeMan) November 19, 2015
Day 2 - Friday 20 November
#JUCESummit day 2: The early bird catches the croissants. pic.twitter.com/aBOg37k3SQ
— Ableton Dev (@AbletonDev) November 20, 2015
9:15 AM: Developing Android Apps with High Performance Audio (Google's Don Turner, Phil Burk, Ian Ni-Lewis, Glenn Kasten and JUCE's Fabian Renn-Giles) / Working with the Projucer on Mac (Timur Doumler and Joshua Gerrard)
The Projucer's most impressive feature is the JIT compilation ('live coding'), making it possible to tweak parameters in realtime as you see the interface or hear the audio change. See here for demo examples. You can get the Projucer (the sequel to the Introjucer, which remains available) from the JUCE website, but the JIT capabilities expire after a while if you don't subscribe/buy a license.
11:30 AM: Mobile development with JUCE and native APIs (Adam Wilson) / C++ IDE to make you more productive – myth or reality? (Anastasia Kazakova) Download Adam's slides from Slideshare
Code example: https://github.com/adamski/juce-native-navigation
12:00 PM: Using C++11 to Improve Code Clarity: Braced Initialisers (David Rowland) / Integrating Juce-based GUI in Max/MSP, OpenMusic or other computer music environments. (Thibaut Carpentier)
12:30 PM: A FM Synth in Iterations (Casper Ravenhorst) / Introduction to Native Instrument's Native Kontrol Standard (NKS) (Tim Adnitt and Tobias Baumbach)
An introduction of the Native Kontrol Standard, an extension of the VST standard to enable integration of Native Instruments controller keyboards.
Code of the FM synthesiser developed by Casper Ravenhorst can be found on his Bitbucket page.
Tim Adnitt & @tbaumbac from @NI_News on the Native Kontrol Standard #JUCESummit #cplusplus #VST pic.twitter.com/mDdPdlENzJ
— Brecht De Man (@BrechtDeMan) November 20, 2015
2:00 PM: Keynote: Developing Max/MSP with JUCE (David Zicarelli)
Rare insights into the history of Max/MSP from the CEO of Cycling '74, which was one of the 'early adopters' of JUCE.
Code example referenced in the keynote: https://github.com/cycling74/gen-plugin-export
"Developing Max/MSP in #JUCE" with David Zicarelli at #JUCESummit pic.twitter.com/fEZo9EzlSV
— Ableton Dev (@AbletonDev) November 20, 2015
JUCE's Timur Doumler delivered a sequel to his CppCon 2015 talk, this time on the use of atomic types, specifically floats. See below for a summary of why you would use them.
Why atomics? Timur wrapping up at #JUCESummit #cplusplus pic.twitter.com/cUOAWMle6x
— Ableton Dev (@AbletonDev) November 20, 2015
Mick started his presentation by saying it might be 'shambolic' (and that as an academic, that was allowed and even expected), and boy was he right. I don't know how many examples he demonstrated and coded live, but there were a LOT.
Get Maximilian from his GitHub page.
Another interesting project he touched on briefly is TextCircle, a website that allows 'live coding together', if I understood correctly.
Mick Grierson from @EAVI_Goldsmiths presents Maximilian at the #JUCESummit and we get to hear sine waves. pic.twitter.com/q5WLYyK2rX
— JUCE (@JUCElibrary) November 20, 2015
The most impressive aspect of Ivan's presentation was that it was written using JUCE - i.e. it was not a Microsoft PowerPoint, LaTeX Beamer or Prezi presentation, but an actual 'app' that read from a text file and even included a music player with built-in audio effects that allowed a demonstration of his work within the presentation.
See also Ivan's website and Twitter feed.
This crazy person made his presentation in @JUCElibrary. Feeling a lot less smug about using #LaTeX Beamer now. @MusicalEntropy #JUCESummit
— Brecht De Man (@BrechtDeMan) November 20, 2015
Gebre gave his view on the history and future of audio plugins, from his perspective of mastering engineer and plugin developer. For this, he interviewed renown mixing and mastering engineers at the 139th Convention of the Audio Engineering Society earlier this month in New York (see my previous post).
He also visited the Centre for Digital Music prior to the Summit, and gave a shoutout to the SoundSoftware projects page for its many interesting pieces of code.
Underway: "Evolution of Audio Plugins and Best Usability Practices" with @GebreWaddell at #JUCESummit pic.twitter.com/gyd2sbOfux
— Ableton Dev (@AbletonDev) November 20, 2015
Andrew comes from a primarily visual background, so not so much an audio coder, which made his talk all the more interesting, as he talked about his Cinder library (GitHub), perhaps the equivalent of JUCE in the parallel creative coding / visuals realm. Many cool examples of projects for multinational corporations and nonprofits.
With regards to the modelling of 'groups of organisms' (e.g. a CGI school of fish), he referred to this paper (essentially attraction from a large distance, repulsion when you come too close, neither at a certain distance).
Andrew's Twitter feed
We are excited to have Andrew Bell presenting C++ framework Cinder @LibcinderTweets #JUCESummit pic.twitter.com/99ulUhaTXR
— JUCE (@JUCElibrary) November 20, 2015
The most popular topic was the new licensing model, which among others means
- One license per developer, not per company
- A license for 'desktop' (Windows, OS X, Linux development), 'iOS' and 'Android' - i.e. if you're developing for multiple platforms, you may need to buy more than one and up to three licenses.
- The Projucer is not freely available (even for personal or academic use, except for a grace period).
More information on the JUCE website.
Last session for this very first #JUCESummit: Q&A with the @JUCElibrary team. Thank you, that was pretty awesome! pic.twitter.com/Rt7K8TGr0w
— Ableton Dev (@AbletonDev) November 20, 2015
Epilogue
I mainly replaced some deprecated functions (thanks Dr Rob Toulson for flagging this on Friday), homogenised the default dependency paths, and removed some redundant lines like unused variables.
I'm sure there's more scope for improvement, but it doesn't currently feature in my list of priorities - I did want it to at least run straight out of the box, though.
Download the audio effects examples here, on the SoundSoftware page.