Technical Principal, Audio Engine Team @ableton

Berlin
Joined November 2007
📣Instruments in Xcode 16.3 Beta 2 contains a brand new tool for analyzing CPU workloads: Processor Trace. It uses hardware execution tracing to accurately reconstruct program execution and is available on M4 and all iPhone 16 devices. Learn more on developer.apple.com/document…
3
23
2
107
11,200
Ryan Brown retweeted
Ableton Move is out now. Take it anywhere. Create whenever. Trust your instincts. Learn more about Move: bit.ly/4gX2jj1
50
130
100
974
203,669
Ryan Brown retweeted
Introducing Live 12 – with countless new ways to kickstart ideas and keep your creativity moving. See what’s in store: ableton.com/live
129
354
564
2,190
914,377
Ryan Brown retweeted
Update: I started a Youtube channel!🎥 In addition to writing, I've found that I really enjoy recording screencasts Currently videos on: - Watchpoints - glibc internals - LLDB memory corruption bug I found - Linux kernel Take a look and subscribe if you like my teaching style:
2
9
120
21,004
Boom! Happy to finally be able to share what my team and I have been working on for so long.
Introducing Note: a playable iOS app for forming musical ideas. Learn more: ableton.com/note
23
Ryan Brown retweeted
Introducing Note: a playable iOS app for forming musical ideas. Learn more: ableton.com/note
104
370
447
2,647
Finally managed to do a long hiking trip: 13 days solo from Germany to Italy over the Alps on the L1. Definitely had my fill of Kaiserschmarrn, Kniffel and Mau-Mau for the year. 🏔️🥾 out.ac/ad4dG
8
TIL: some Linux distros patch clang to enable -fstack-protector-strong by default, which can add a branch to functions. Including hot per-sample DSP functions that go to great lengths to avoid all branches. Set -Rpass=stack-protector to see which functions are impacted and why.
1
1
11
10 years at Ableton today 🎉
4
63
What a day - @ThrowingSnow has finally a new album out on the ever amazing @HoundstoothLBL. I've been a fan since day one and its amazing to see an artist take such a big journey, knowing that this album is just a step to something much bigger! throwingsnow.bandcamp.com/al…
2
1
2
Dezember 2019: Neuartiges Corona-Virus wird entdeckt. April 2021: Bundesregierung beschließt zeitnah eine Notbremse.
19
169
6
3,273
Cooked for the parents. Homemade hummus with fried onions and garlic, kisir, boiled eggs and matzah 🤤
2
1
14
Been busy gathering examples, relevant research and summarizing thoughts based on my experience working with large legacy codebases at @AbletonDev and @cycling74 for @audiodevcon. Hope to chat if you're attending, love this annual gathering of the music tech community👌#ADC20
5
11
5
88
Ryan Brown retweeted
This pair of blog posts that blows up the idea that you can benchmark by running a warm-up period and then taking the last N results without looking at the underlying data are some of the best performance blog posts I’ve ever seen: tratt.net/laurie/blog/entrie… tratt.net/laurie/blog/entrie…
9
141
15
561
C++ name mangling guide to social distancing #cplusplus
11
134
9
504
TIL: iterating over a large std::tuple can result in code bloat (=instruction cache misses), since the machine code is copy-pasted per element rather than looped over. godbolt.org/z/57xTdv We need an optimizer pass that does the opposite of loop unrolling.
2
2
Functions called per tuple element are also inlined more aggressively, polluting the i-cache: godbolt.org/z/GcjWhE tupleIteration(): 8050 lines of asm arrayIteration(): 384 lines @chandlerc1024 @PiotrPadlewski Any ideas for how to prod clang into generating a loop here?
2
Machine outlining (opposite of inlining) is a thing on ARM/AArch64, maybe it’ll help here. reviews.llvm.org/D57054 – at Berlin, Germany