→ index of namespace default
 
→ index of project core
 
→ index of module core

Class core.Envelope


Synopsis: An array of time/value pairs.

  Base classes:
  Methods:
  Constants: Description:


Most of the methods assume that time is actually a number of ticks, i.e. an integer number.
The current time offset may be a fractional number resulting in a smooth interpolation ofsuccessive event values if the current interpolation function is set to something other thanENV_SHRESET or ENV_SH.


 
→ top of page

Method get
Return (interpolated) value and reset new_event flag (SH, SHRESET).
Signature
get():float
Returns
float–Interpolated value

 
→ top of page
Method getAndResetNew
Return (interpolated) value. Only reset new event flag if bResetNew is true.
Signature
getAndResetNew(boolean)
 :float
Arguments
boolean–
Returns
float–Interpolated value

 
→ top of page
Method getCurrentIndex
Return current envelope index (debug).
Signature
getCurrentIndex():int
Returns
int–Current envelope index

 
→ top of page
Method getDeltaTime
Return delta time to the next event
Signature
getDeltaTime():float
Returns
float–Delta time to the next event

 
→ top of page
Method getInterpolation
Return current interpolation function.
Signature
getInterpolation():int
Returns
int–Interpolation function id. See ENV_xxx.

 
→ top of page
Method getNextEventTimeAfter
Return absolute time of event after _t, or -1 if there is no event.
Signature
getNextEventTimeAfter(floatt)
 :float
Arguments
floatt–Absolute time
Returns
float–Absolute time of event after 't' or -1 if there is no event

 
→ top of page
Method getPreviousEventTimeBefore
Return absolute time of event before _t, or -1 if there is no event.
Signature
getPreviousEventTimeBefore(floatt)
 :float
Arguments
floatt–Absolute time
Returns
float–Absolute time of event before 't' or -1 if there is no event

 
→ top of page
Method getSpeed
Return the current envelope base speed.
Signature
getSpeed():float
Returns
float–The current envelope base speed.

 
→ top of page
Method getTime
Return the current time offset.
Signature
getTime():float
Returns
float–The current time offset

 
→ top of page
Method indexToTime
Return the absolute time offset of the given event number.
Signature
indexToTime(intevent)
 :float
Arguments
intevent–Event number (array index / 2)
Returns
float–Absolute time

 
→ top of page
Method insertReplaceEvent
Insert or replace an event at the given time offset.
Signature
insertReplaceEvent(floatt,
  floatv,
  floatw 
  )  
Arguments
floatt–Absolute time
floatv–New event value
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method insertReplaceEventLSB4
Insert or replace part of an (8bit) event at the given time offset (least significant nibble).
Signature
insertReplaceEventLSB4(floatt,
  bytev,
  floatw 
  )  
Arguments
floatt–Absolute time
bytev–New event value (most significant nibble)
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method insertReplaceEventMSB4
Insert or replace part of an (8bit) event at the given time offset (most significant nibble).
Signature
insertReplaceEventMSB4(floatt,
  bytev,
  floatw 
  )  
Arguments
floatt–Absolute time
bytev–New event value (most significant nibble)
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method insertReplaceEventPat1
Insert or replace part of an (7bit) event, formatted as '01A'..'32D' at the given time offset.
Signature
insertReplaceEventPat1(floatt,
  bytev,
  floatw 
  )  
Arguments
floatt–Absolute time
bytev–New event value (first digit)
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method insertReplaceEventPat2
Insert or replace part of an (7bit) event, formatted as '01A'..'32D' at the given time offset.
Signature
insertReplaceEventPat2(floatt,
  bytev,
  floatw 
  )  
Arguments
floatt–Absolute time
bytev–New event value (second digit)
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method insertReplaceEventPat3
Insert or replace part of an (7bit) event, formatted as '01A'..'32D' at the given time offset.
Signature
insertReplaceEventPat3(floatt,
  bytev,
  floatw 
  )  
Arguments
floatt–Absolute time
bytev–New event value (third digit)
floatw–Time window size
Description
Keep deltatime if event already exists within [t..t+w].

 
→ top of page
Method isNewEvent
Check whether the last tickPrecise() call hit a new key event.
Signature
isNewEvent():boolean
Returns
boolean–true If a new event has been reached, false otherwise

 
→ top of page
Method removeEvent
Remove event at the given time offset and shift all succeeding events.
Signature
removeEvent(floatt)
Arguments
floatt–Absolute time

 
→ top of page
Method removeRange
Remove all events within the given time window and shift the succeeding events.
Signature
removeRange(floatt,
  floatlen 
  )  
Arguments
floatt–Absolute time (window start)
floatlen–Window size

 
→ top of page
Method removeRangeSH
Remove range of sample&hold style envelope.
Signature
removeRangeSH(floatt,
  floatlen 
  )  
Arguments
floatt–Absolute time (window start)
floatlen–Window size
Description

In contrary to removeRange(), events will only be delete if they areentirely with the given range. If only covered partly, their deltatimes will be adjusted.

 
→ top of page
Method removeRangeUntilNext
Remove range until next event and keep abstime of following event (if any)
Signature
removeRangeUntilNext(floatt,
  floatlen,
  floatmaxT 
  )  
Arguments
floatt–Absolute time (window start)
floatlen–Window size
floatmaxT–Do not delete events after this point

 
→ top of page
Method reset
Reset time offset
Signature
reset()

 
→ top of page
Method rotateEvents
Rotate events within (startT..maxT) by delta time 'r'.
Signature
rotateEvents(floatr,
  floatstartT,
  floatmaxT 
  )  
Arguments
floatr–Rotation delta time
floatstartT–Rotation window start (must be >= 0)
floatmaxT–Rotation window end (must be > startT)

 
→ top of page
Method setInterpolation
Set the interpolation function.
Signature
setInterpolation(intinterpol)
Arguments
intinterpol–Interpolation function id. Must be one of ENV_SH, ENV_LINEAR, ENV_COSINE, ENV_QUADRATIC, ENV_CUBIC, ENV_QUINTIC, ENV_SHRESET.

 
→ top of page
Method setSpeed
Set envelope base speed.
Signature
setSpeed(floatspeed)
Arguments
floatspeed–Base time delta
Description

The default speed is 1.0f

 
→ top of page
Method setTime
Seek to the current time offset.
Signature
setTime(floatt)
Arguments
floatt–New (absolute) time offset

 
→ top of page
Method shiftEvents
Shift all events after the given time offset by the given number of ticks.
Signature
shiftEvents(floatt,
  floatl 
  )  
Arguments
floatt–Absolute time
floatl–Time shift

 
→ top of page
Method shiftNextEvent
Shift only next event and keep abstime of following event (if any / in range t..maxT)
Signature
shiftNextEvent(floatt,
  floatl,
  floatmaxT 
  )  
Arguments
floatt–Absolute time
floatl–Time shift
floatmaxT–Do not shift event after this point

 
→ top of page
Method tickPrecise
Increase time offset by the given time delta.
Signature
tickPrecise(floatdt)
Arguments
floatdt–Time delta

 
→ top of page
Method timeToIndex
Return the last event number (not array offset!) before the given time offset.
Signature
timeToIndex(floatt)
 :int
Arguments
floatt–
Returns
int–Event number (array index / 2)

 
→ top of page
Method valueAtTime
Seek and return (interpolated) value.
Signature
valueAtTime(floatt)
 :float
Arguments
floatt–Absolute time
Returns
float–Float value

 
→ top of page
Method valueAtTimeRaster
Return the value at the given absolute time offset in the given time window.
Signature
valueAtTimeRaster(floatt,
  floatres 
  )  
 :var
Arguments
floatt–Absolute time
floatres–Window size
Returns
var–Event value or void if there is no event within the given window

 
→ top of page
Method valueAtTimeSH
Return the value of the last event before the given point in time.
Signature
valueAtTimeSH(floatt)
 :var
Arguments
floatt–Absolute time
Returns
var–Event value or void if there is no event before the given point in time

 
→ top of page
Constant ENV_COSINE ()
Cosine interpolation
Description

y = y1 + (y2 - y1) * (1 - cos(PI * x)) / 2
Constant ENV_CUBIC ()
Cubic interpolation
Description

y = (y1 + y3 - (y0 + y2) * x3 + (2 * (y0 - y1) + y2 - y3) * x2 + (y2 - y0) * x + y1
Constant ENV_LINEAR ()
Linear interpolation.
Description

y = y1 + (y2 - y1) * x
Constant ENV_QUADRATIC ()
Quadratic interpolation.
Description

y = (y1 + (y2 - y1) * x) * (1 - x2) + (y2 + (y3 - y2) * (x - 1)) * x2
Constant ENV_QUINTIC ()
Quintic interpolation
Description

y = 3 * (y1 + y3 - y2 - y4) * x5 + (8 * (y2 - y1) + 7 * (y4 - y3)) * x4 + (6 * (y1 - y2) + 4 * (y3 - y4)) * x3 + (y3 - y1) * x + y2
Constant ENV_SH ()
Sample and hold (no interpolation)
Constant ENV_SHRESET ()
Sample and hold + reset (no interpolation).
Description

After reading a new key value, reset current value back to 0. Useful for one-shot triggers.

 

Project Modules:core 
Project Classes:Boolean , Buffer , Byte , Class , ClassArray , Condition , Configuration , Double , DummyStream , Envelope , Event , Exception , File , Float , FloatArray , FloatArray128 , FloatArray16 , FloatArray32 , FloatArray64 , FloatArray8 , Function , HashTable , IntArray , IntArray128 , IntArray16 , IntArray32 , IntArray64 , IntArray8 , Integer , LFSR , LFSR_NR , List , ListNode , Long , Mailbox , Mutex , Object , ObjectArray , PakFile , PointerArray , Pool , Process , Script , SharedBuffer , Short , Stack , StdErrStream , StdInStream , StdOutStream , Stream , String , String128 , String16 , String32 , String64 , String8 , StringArray , StringIterator , Thread , Time , TKS , TreeNode , UnsignedByte , UnsignedInteger , UnsignedLong , UnsignedShort , Value , ValueArray , Variable 
Project Functions:ceil , exit , floor , GetCurrentThread , getenv , lcchar , mathAbsMaxf , mathAbsMinf , mathAbsMini , mathAbsMini , mathCerpf , mathClampf , mathClampi , mathDistancePointPlane2d , mathFoldf , mathFoldi , mathGCD , mathLerpCyclicf , mathLerpf , mathMaxf , mathMaxi , mathMinf , mathMini , mathNextCyclicf , mathPowerf , mathPowerfC , mathPoweri , mathSerpf , mathSmoothStepf , mathSmoothStepNf , mathWrapf , mathWrapi , milliSeconds , milliSecondsDouble , psystem , putenv , srand , system , ucchar 
All Namespaces:default , graph , ui 
All Projects:core , eqxmms , ShaderVG , ShaderVG_Text , tkanalogrytm , tkchipmunk , tkclap , tkfileutils , tkfreeglut , tkfreetype2 , tkfreeverb , tkmath , tkmidi , tkmidipipe , tkminnie , tkoldmath , tkopengl , tkportaudio , tkradiastools , tksamplechain , tksampleedit , tksampler , tksdl , tksdl_net , tksidplay2 , tkspeexdsp , tksqlite , tktriangulate , tkui , tkvst2 , tkzip , ui , yingtest 


auto-generated by "DOG", the TkScript document generator. Tue, 3/Mar/2026 18:10:17