set oroot = application.activeproject.activescene.root Set props = oRoot.Properties For Each elem In props If instr(elem.name,"keynoise") Then DeleteObj elem End If Next Set oPSet = oRoot.AddProperty("CustomProperty",false,"keynoise") anfang = getvalue("PlayControl.In") ende = getvalue("PlayControl.Out") oPSet.AddParameter3 "prandomvalue", siUByte, 2, 0, 20 oPSet.AddParameter3 "pstart", siInt4, anfang, 1, 100 oPSet.AddParameter3 "pend", siInt4, ende, 1, 100 Set oPPGLayout = oPSet.PPGLayout Set oItem = oPPGLayout.AddItem("prandomvalue","Random-Factor (in frames)", siControlNumber ) Set oItem = oPPGLayout.AddItem("pstart","Beginning", siControlNumber ) Set oItem = oPPGLayout.AddItem("pend","End", siControlNumber ) Set oItem = oPPGLayout.AddButton( "random","make noise" ) oPPGLayout.Language = "VBscript" oPPGLayout.Logic = "sub random_OnClicked" & vbCrlf & _ " noise = PSet.prandomvalue.value" & vbCrlf & _ " anfang = PSet.pstart" & vbCrlf & _ " ende = PSet.pend" & vbCrlf & _ " dim randarray()" & vbCrlf & _ " redim randarray(ende - anfang)" & vbCrlf & _ " randomize" & vbCrlf & _ " laenge = ende - anfang" & vbCrlf & _ " set col = createobject(""XSI.Collection"")" & vbCrlf & _ " for each elem in Selection" & vbCrlf & _ " col.add elem" & vbCrlf & _ " next" & vbCrlf & _ " set obj = selection(0)" & vbCrlf & _ " for each obj in col" & vbCrlf & _ " for i = 0 to laenge" & vbCrlf & _ " randarray(i) = rnd * noise - noise / 2" & vbCrlf & _ " next " & vbCrlf & _ " for i = 0 to obj.parameters.count - 1" & vbCrlf & _ " if obj.parameters(i).isanimated then " & vbCrlf & _ " set oPark = obj.parameters(i).source.keys" & vbCrlf & _ " for k = 0 to oPark.count - 1" & vbCrlf & _ " if (oPark(k).time > anfang) and (oPark(k).time < ende) then " & vbCrlf & _ " oPark(k).time = oPark(k).time + randarray(oPark(k).time - anfang)" & vbCrlf & _ " if oPark(k).time > ende then oPark(k).time = ende" & vbCrlf & _ " if oPark(k).time < anfang then oPark(k).time = anfang" & vbCrlf & _ " end if" & vbCrlf & _ " next" & vbCrlf & _ " end if" & vbCrlf & _ " next" & vbCrlf & _ " next" & vbCrlf & _ " End Sub" InspectObj oPSet