------------------------------------------------------------------------------- ~~~ R e a k t o r P a t c h i n g a n d B e y o n d ~~~ ------------------------------------------------------------------------------- 0. What is Reaktor? * 1999: Generator + Transformator -> Reaktor 2003: Electronic Instruments 1 2004: Electronic Instruments 2 2005: Reaktor Core 2010: Reaktor 5.5 and New Additions 2015: Current Version 5.9.2 and ongoing development * audio-programming platform wiki says "Modular software music studio" * belongs to family of Max-like languages: - visual programming with "Boxes and Arrows" - event-based, real time - close to block diagram ------------------------------------------------------------------------------- Agenda 1. Hands-on Building 2. Primary Language Basics 3. Core Language Concepts 4. The Niche 5. Workflow Tips 6. Polyphonic Synthesis Example 7. Get Beyond with OSC 8. Over and out ------------------------------------------------------------------------------- 1. Hands-on Building - Step by step Primary: * starting from scratch * add useful macros from the User Library's StarterKit collection * demonstrate cross- and amplitude modulation in Primary - Step by step Core: * replace built-in Sine module with CoreCell * cleanup so only the Panel-related modules live outside - Results: * have something that works within a few mins * how much time would it take to try out the same with C++? - Find everything prepared in the online user library: http://www.ni.de/en/community/reaktor-user-library/entry/show/8526/ ------------------------------------------------------------------------------- 2. Primary Language Basics - Audio processing: * module ordering is determined after every change on the signal flow * for the Primary demo this should look like: In --> Sine --> Add --> Mult --> Out * each sample rate clock triggers a single calculation pass * feedback loops are simply cut - Event processing: * events are generated by Panel Elements, LFOs, etc. * follow depth-first order from their origin downstream ------------------------------------------------------------------------------- 3. Core Language Concepts (1) - Limited set of Built-in Modules: * RISC-like set of machine operations (like compare, add, etc.) * Modules are solid, atomic entities * Terminology: "Built-in Module" is a special "Module" - Macros are compositions: * by default Macros behave just like Build-in Modules * Macros are solid entities, but not atomic * Terminology: "Macro" is a special "Module" ------------------------------------------------------------------------------- 3. Core Language Concepts (2) - Unified event model: * same propagation rules for all events * execution order is determined automatically, depending on logical order - Simultaneous Events: * physically all calculations happen sequentially * logically order is determined from the need for results * events can be thought of happening simultaneously when logical orders are equal * consequence: one event in causes one event out ------------------------------------------------------------------------------- 4. The Niche * Core's automatic just-in-time compilation for efficient DSP with edit-compile-test cycle still in milliseconds * huge library offers a lot of stuff to be reused and customized * real time correctness built-in * easy to use polyphonic processing * playground for real-world audio DSP ------------------------------------------------------------------------------- 5. Workflow Tipps - some essentials for successful building * easy management for own set of building blocks: save as & search * enormous amount of example content in existing instruments and user library online * use Primary for GUI, use Core for everything else * not everything is ez: ask questions @stackoverflow! using "NI Reaktor" ------------------------------------------------------------------------------- 6. Polyphonic Synthesis Example * simple oscillator with frequency and amplitude * first voice runs base freuqency * further voices arranged around with fixed spread amount * number of voices simple to control * modulation effect by voices going out of sync and in-sync again ------------------------------------------------------------------------------- 7. Get Beyond with OSC * the good old MIDI protocal is great, but it's sooo limited * OSC provides next level of automation and is fairly easy to use! * control using multitouch device: iOS App KonktreetPerformer offers OSC automation * audio synthesis for the next gfx hack: vvvv talking to Reaktor * want more efficient audio generator for max? check out the Reaktor user library and find great stuff for free online! ------------------------------------------------------------------------------- O V E R A N D O U T Thanks for your attention & Happy Building! Stefan and the Reaktor Team @ NI -------------------------------------------------------------------------------