• Aucun résultat trouvé

Lua What is LuaSynth – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Lua What is LuaSynth – Cours et formation gratuit"

Copied!
7
0
0

Texte intégral

(1)

LuaSynth

Celso Aguiar

Adobe

®

Audio Scripting with Lua

(2)

Audition

 Plug-ins == DLLs

 Supports VST plug-in standard

 1 plug-in == 1 signal processing algorithm

 Limitation: # of plug-ins shipped w/ product

 Engineers: C/C++ AND signal processing

 No common definition of what an oscillator means

 Not pushing the VST forefront

 Focus on C/C++ community

(3)

Audition + LuaSynth

 Another plug-in

 VST standard

 1 plug-in can be many signal processing algorithms

 Limitation: # of Lua scripts you can write

 Engineers: Lua, signal processing not critical

 Same oscillator used through-out

 Pushes the VST to the forefront

(4)

What is LuaSynth

 Sound/Music processing APIs in Lua

 CLM C libs (CCRMA/Stanford package)

 Freeverb (Jezar’s studio quality reverberation)

 STK (Open source, physical modeling)

 C Sound

 You name it!

 Lua VST GUI API

 Console App + VST Plug-in (POCs)

(5)

sample Lua plugin-script

pitch1=param(0)*4000; pitch2=param(1)*4000

amp = .2; dur = 8.0; maxIndex = 8; srate=44100

ends = dur * srate

o1 = Osc(pitch1); o2 = Osc(pitch2)

e1 = Env({0, 1, .2, .3, 1, 0}, amp, 0, 200, ends)

e2 = Env({0, 1, .1, .1, 1, 0}, .2, 0, 100, ends)

c1 = Comb(.312, 1155)

c2 = Comb(.212, 733)

F = FreeVerb(.8, 1, 1.5, 1.0, .2, param(2))

function processIt(nSamples)

for i = 0, nSamples-1, 1 do

s = env(e1) * osc(o2, maxIndex * param(3) * env(e2) * osc(o1, 0.0))

lo,ro = freeVerb(F, s, 0, .5)

(6)

Some Numbers

 Complex algorithms in real-time

 Around 50 osc + FreVerb on a 1.8GHz PC

 Lua versus Native C implementation

 ~1.7x slower

 toLua binding only outside sample loop

 ~3-5 times slower

(7)

Références

Documents relatifs

(In the current implementation, that index cannot be a pseudo-index.) In case of runtime errors, that function will be called with the error message and its return value will be

• Userdata environments help link between userdata and corresponding Lua objects. • eaiser

● This is a presentation about how Lua was used in Grim Fandango, an adventure game by LucasArts.. ● I don't work for

io.output ([file]) sets file as default output file (the current output file is not closed); file can be either an open file object or a file name; in the latter case the file is

• Node , Op, Val, Var, Stmts, Block Parrot Opcode Syntax Tree. • Node , Ops, Op, Label, Sub

• At each step, traverses a grey object (turning it black) and mark new accessible objects as grey. • Stops when there are no more grey objects; white objects

Try to load image and use getfiletype to determinate the image type.. Image image.new(width,

• “Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular.”.