David Rowland - Using JUCE value trees and modern C++ to build large scale applications (ADC'17)

  Рет қаралды 10,087

ADC - Audio Developer Conference

ADC - Audio Developer Conference

Күн бұрын

Using JUCE value trees and modern C++ to build large scale applications
David Rowland, Lead Software Developer, Tracktion
JUCE ValueTrees are a tree based data structure capable of holding free-form data. They have a callback interface for being notified of changes to data members or the tree structure and have undo capability built in. Think XML on steroids! These features make them an ideal candidate for the data model of many applications. Building on the ideas presented at last year’s ADC “Using Modern C++ with JUCE to Improve Code Clarity” this talk aims to unwrap the complexities involved in dealing with ValueTrees and expose the elegant nature contained within them, utilising them to build large scale graphical and audio applications quickly. The talk aims to give an in-depth explanation of ValueTree best practices and how apply them to many coding situations using clear, concise, modern C++. Throughout the talk there will be special emphasis on the reference counted nature of these objects and the synchronous/asynchronous nature of the callback events generated and how these relate to performance, thread safety and debugging. Common application tasks such as serialisation, copy/paste and undo/redo are also explored and how they are simply implemented with ValueTrees. Additionally the talk will look at ways to build your own utility classes on top of ValueTrees where it is sensible to do so. Custom developed classes such as the ValueTreeObjectList are explored which allow type-safe, concrete object creation managed by ValueTree state. This example-led talk aims to ensure attendees of all experience levels leave with a solid understanding of how to quickly build C++ JUCE applications utilising ValueTrees in a modern, safe and fun way.
Presented at ADC 2017, Code Node, London.
juce.com/adc-2017

Пікірлер: 12
@Soundemote1
@Soundemote1 5 жыл бұрын
20:11 - Slide 42 - struct Clip 20:38 - Slide 43 - struct Clip with CachedValue example 25:19 - Slide 49 - ValueTreeObjectList 27:10 - Slide 50 - ValueTreeObjectList example 27:24 - Slide 51 - ValueTreeObjectList implementation 28:49 - Slide 52 - struct ClipList : ValueTreeObjectList implementation
@tim_arterbury
@tim_arterbury 5 жыл бұрын
This is such an informative talk. I have watched this probably 10 times through and every time I learn a bit more and understand ValueTree architecture a bit better. This is a pretty complicated topic, but is explained by David Rowland so clearly, yet with such depth!
@MatkatMusic
@MatkatMusic 6 жыл бұрын
It's always great when the camera is only showing the Presenter and not the slides for the majority of a slide's time being displayed (18:45-19:23)
@DKDiveDude
@DKDiveDude 3 жыл бұрын
You meant that as a joke right?
@Soundemote1
@Soundemote1 5 жыл бұрын
The information is as good as the presentation. I can actually understand and follow along because the level of complexity is taken one step at a time from most basic to more complex and more useful.
@davidrowland3342
@davidrowland3342 7 жыл бұрын
Slides and examples now available here: github.com/drowaudio/presentations/tree/master/ADC%202017%20-%20Using%20JUCE%20ValueTrees%20and%20Modern%20C%2B%2B%20to%20Build%20Large%20Scale%20Applications
@maxmoney7pcgaming
@maxmoney7pcgaming 7 жыл бұрын
Mind-blown. Thank you for the talk. I'm on my 4th or 5th time watching it. Very excited to get this working in my project :)
@moritzsur997
@moritzsur997 2 жыл бұрын
David Rowland is a genius
@vapon
@vapon Жыл бұрын
24:12 why use of static_cast on this: const Type start = static_cast(StartValue); ?
@chuckkhubbard610
@chuckkhubbard610 2 жыл бұрын
Thank you, this appears to be very informative and useful. One suggestion: why not raise the volume of the recording so it can be understood in other environments than a studio? Compress... Normalize... It would not have taken 60 seconds. I try to find informative videos for when I'm on the road and can't actually work, but his voice is so quiet I can't hear him.
@made.online2149
@made.online2149 11 ай бұрын
This is perfectly intelligible on my laptop at half volume.
David Zicarelli - Code generating Littlefoot (ADC'17)
32:52
ADC - Audio Developer Conference
Рет қаралды 542
Ian Hobson - The use of std variant in realtime DSP (ADC'17)
40:45
ADC - Audio Developer Conference
Рет қаралды 4,6 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 54 МЛН
Ivan Cohen - Fifty shades of distortion (ADC'17)
52:40
ADC - Audio Developer Conference
Рет қаралды 17 М.
Developing Audio Applications with JUCE, Fabian Renn-Giles and Timur Doumler, JUCE Summit 2015
1:41:02
AI Is Making You An Illiterate Programmer
27:22
ThePrimeTime
Рет қаралды 299 М.
Yvan Grabit - VST3 history, advantages and best practice (ADC'17)
34:41
ADC - Audio Developer Conference
Рет қаралды 4 М.
The Golden Rules of Audio Programming - Pete Goodliffe - ADC16
51:25
ADC - Audio Developer Conference
Рет қаралды 50 М.
Lessons Learned from a Decade of Audio Programming
26:14
GDC 2025
Рет қаралды 135 М.
The Return of Procedural Programming - Richard Feldman
52:53
ChariotSolutions
Рет қаралды 65 М.
Introducing Tracktion Graph: A Topological Processing Library for Audio - Dave Rowland - ADC20
49:12
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН