TxPlus


Author V. C. Mohan
Date May 2021
EMail: mohanvc

The functions in this plugin are very similar to those of TransAll. Mostly recoded for handling more bit depths and formats for Avisynth+. All functions are thread safe MT_NICE

The TxPlus plug-in creates transition from one clip to another clip having equal frame width, height, pitch, color format. and similar Audio formats. The scene will gradually form from the firs Clip to the second Clip during the specified overlap duration. Audio of the first clip fades out while of the second fades in during ition. (24 bit audio is not accepted).. Brief description of all the functions within this plugin is given in the Synopsis. Around 150 distinct itions can be created with these functions. In the detailed descriptions typical images seen during ition are depicted.

Place the TxPlus.dll in the appropriate Avisynth+ plugin folder . A LoadPlugin call will be needed if the plugin is put in any other folder. As there are many functions in this plugin , it may be preferable to keep this plugin in a different folder and invoke loadplugin. All parameters excepting input clips and overlap time, have default values.


A sample script may look like this :

#LoadPlugIn("C:\............\All.dll")
A=avisource("C:\...........\xxxxx.avi")
B=avisource("C:\...........\yyyyy.avi")
#any desired ition call in place of Sprite below
Sprite(A,B,t)
Copy of my test script to check most of the functions is after synopsis on this page.

Avisynth+ r2247 or later supported all color formats ( excepting stacked) are accepted


Synopsis of TxPlus plugin for Avisynth

Accord: A Clip opens out revealing the B Clip or the B Clip closes over the A Clip in an Accordion Type folding. Single or Twin sections, openjng or closing, vertical or horizontal direction are the options.

Bloom: B Clip blooms out of A Clip or A clip withers into B clip


Bubbles:Bubbles of B Clip randomly move on to A Clip and lock into position.

Central: B (second) clip emerges from A clip or A clip disappears into B clip. While emerging or disappearing the frame is resized to fit and or rotated by desired number of turns clockwise or counterclock wise.

Crumple: This function crumples or fanfolds (as one does with paper) A Clip over the B Clip thus revealing B Clip or uncrumples (unfolds) B Clip over A Clip thus masking A Clip.

Disco: B (second) clip emerges over the A(First)clip or the A Clip disappears into B Clip as circular rotating Disks during ition. Radius of discs, Emerge or disappear and number of revolutions and direction of rotation are options.

FlipPage: A (first) clip is flipped either A or B or up or down as viewing in an album revealing B Clip

FlipTurn: B Clip (the second Clip) emerges flipping vertically and horizontally and rotating while gradually replacing the A Clip. The number of times to flip horizontally, vertically, number of turns during effect, clock or anticlockwise are other parameters. Vertical and horizontal flips acan be considered as rotations about x and y axis, while turning is around z axis and therefore this is a 3d rotation ition.

Funnel: This function funnels out(wraps around a funnel shape) the A Clip (the First Clip) and reveals the B(the second) Clip while moving in any of the 4 (up down, A or B) directions.

Marbles: Over A Frame, B Frame appears as gradually enlarging circular disks. Magnification in the disks produces the effect of viewing through glass marble. If drop is true the magnification in the discs vary from center to edges, otherwise remain constant through. Radius of discs, magnification and whether drop effect is required can be specified.

Paint: This function, from pieces of B Clip frame, builds a fence or a brick wall or paint strips with brush strokes on A clip and completes the build by the end of transition.

Push: B Clip pushes out the A Clip in any of the four (up down,Left, Right ) direction.

Ripple: A gradually increasing water ripple covers fully the A Clip during 1/3 of transition (overlap) length. Thereafter the B Clip emerges in the center as a growing Ripple fully covering frame by 2/3 of overlap length. This ripple then subsides (withdraws) revealing the B Clip. The wave length lambda and wave amplitude can be specified.

Ripples: Gradually increasing two water ripples cover fully the A Clip during 1/3 of transition (overlap) length. Thereafter the B Clip emerges in 2 ripples from opposite sides or positions and then the ripples subside. lambda and wave amplitude besides number and location of ripples can be specified.

Roll. A (first) clip rolls out revealing B Clip, or B clip Rolls in masking out A Clip.

Scratch: B (second) clip gradually is revealed by scratching the A Clip image, in a desired style similar to scratch cards. Falling rain, tv noise, water fountain, laser beams, dust storm, horizontal lines, vertical lines are the styles currently available.

Shuffle: A (first) clip moves out on top, while B Clip moves from below in opposite direction halfway, then B clip moves back to the top position while A clip slides under in opposite direction resembling movement of shuffling of cards. Four directions (up down, A or B) of shuffling are possible.

Slide: B (second) clip slides in over A Clip or A clip slides out. If center is selected then A clip disappears towards the center of B Clip shrinking in all directions or B emerges from center of A clip. Any of 8 directions or center can be opted.

Sprite: B (second) clip squeezes out A clip thereby appearing like a rotating sprite, exhibiting different faces. Movement can be specified as any of four possible directions.

Swing: B (second) clip swings in or the A clip swings out as doors hinged at corners, thereby fully revealing or assembling the B Clip. The number of doors can be one (single door attached at the selected corner swings out or in), two (twin doors hinged at opposite corners swing) and four (4 doors each at a corner swing).

Swirl: A gradually increasing swirl that covers fully the A Clip by 1/3 overlap length is created. Thereafter the B Clip emerges in the center as a growing Swirl fully covering frame by 2/3 overlap length. This Swirl then subsides (withdraws) over the B Clip thus revealing it. The swirling can be clockwise or anticlockwise. The coarseness of depicting swirl can be specified.

TwinDoors: Twin vertical or Horizontal doors made out of A Frame open or those made out of B Frame close revealing B Frame.

VenetianBlinds: In this transition vertical or Horizontal slats open (as Venetian blinds do) revealing B Frame. Instead of linear blinds, checks or diamond pattern can also be opted. Pattern width can also be specified.

Weaving: Interleaving together thin strips of B frame over the A frame the transition occurs. The interleaving styles options are horizontal, vertical, jigsaw puzzle and (basket) weave.

Wipe: B Frame wipes away A Frame in any of the 8 directions.



Script to test most of the functions at one go:-
Loadplugin call required only if All.dll is not in Avisynth+ auto load
 plugins folder

#loadPlugin ("------\TxPlus.dll")
#for avisynth+ uncomment next line and a line at end of this script
#SetFilterMTMode("DEFAULT_MT_MODE",MT_NICE)
time = 1

fps = 30
colorbars().trim(0,30)
Lanczosresize(600,400)

#converttoYUY2()

#converttoYV12()
#converttoRGB32()
#converttoRGB24()
#converttoY()

#converttoYV16()

#converttoYV24()
#ConvertToPlanarRGB()
#ConvertToPlanarRGBA()

##
#ConvertBits(10)
#ConvertBits(12)
#ConvertBits(14)
#ConvertBits(16)
#ConvertBits(32)

#converttoRGB48()
#converttoRGB64()

#converttoY()
#ConvertToYUV420() 

#ConvertToYUV422
#ConvertToYUV444 
#ConvertToYUV411
#ConvertToPlanarRGB()
#ConvertToPlanarRGBA()
fps = 30
a = invert() 
#turnleft().turnleft()
/*
audio = Tone (length= 1,frequency = 1000)
a=audiodub(a,audio)
audio = Tone (length= 1,frequency = 100)
b = audiodub( audio)
*/
t = (a.FrameCount-1) / a.FrameRate() 
d = a.width / 4
left = a
right = b
time = t

x= false
y = true


Accord(left,right,time,"hor",false,true)
last ++Accord(left,right,time,"hor",false,false)
last ++ Accord(left,right,time,"hor",true,true)
last ++ Accord(left,right,time,"hor",true,false)
last ++ Accord(left,right,time,"vert",false,true)
last ++ Accord(left,right,time,"vert",false,false)
last ++ Accord(left,right,time,"vert",true,true)
last ++ Accord(left,right,time,"vert",true,false)

TA = last.subtitle(" A c c o r d",text_color=0,align=5,size=32)

Bloom(left,right,time,emerge = true)
last ++ Bloom(left,right,time,emerge = false)
TB = last.subtitle(" B L O O M ",text_color=0,align=5,size=32)

Bubbles(left,right,time,false)
last ++ Bubbles(left,right,time,true)
TBL = last.subtitle(" B U B B L E S",text_color=0,align=5,size=32)
TTT = TB + TBL
TB = TB + TBL

Central(left,right,time,false,false,-2)
last ++ Central(left,right,time,false,true,2)	# check RGB32
Last ++ Central(left,right,time,true,false,-2)
Last ++ Central(left,right,time,true,true,2)	#YUY2 RGB32
TCN = last.subtitle(" C E N T R A L",text_color=0,align=5,size=32)
TTT = TCN

Crumple(left,right,time,"fan",false).subtitle(" C R U M P L E fan unfold",text_color=0,align=5,size=32)
last ++ Crumple(left,right,time,"fan",true).subtitle(" C R U M P L E fan fold",text_color=0,align=5,size=32)

TCL = last #.subtitle(" C R U M P L E",text_color=0,align=5,size=32)
TTT = TCL

Disco(left,Right,time,40,2,false)
last ++ Disco(left,Right,time,20,2,false)
last ++ Disco(left,Right,time,40,2,true)
last ++ Disco(left,Right,time,20,-2,true)
TDS = last.subtitle(" D I S C O",text_color=0,align=5,size=32)
TTT = TDS

FlipPage(left,right,time,"up")
last ++ FlipPage(left,right,time,"left")
TFP = last.subtitle(" F L I P P A G E",text_color=0,align=5,size=32)
TTT = TFP

FlipTurn(left,right,time,0,6,3)
last ++ FlipTurn(left,right,time,6,0,3)
last ++ FlipTurn(left,right,time,2,4,3)
Last ++ FlipTurn(left,right,time,4,2,-3)
Last ++ FlipTurn(left,right,time,4,2,0)
TFT = last.subtitle(" F L I P T U R N",text_color=0,align=5,size=32)
ttt = tft

part1 = (TA ++  TB++TCN++TCL++TDS++TFP++TFT)

Funnel(left,right,time,"right")
Last ++ Funnel(left,right,time,"left")
Last ++ Funnel(left,right,time,"up")
Last ++ Funnel(left,right,time,"down")
TFN = last.subtitle(" F U N N E L",text_color=0,align=5,size=32)
TTT = TFN

Marbles(left,right,time,60, 16,true)
last ++ Marbles(left,right,time,60,16, false)
last ++ Marbles(left,right,time,32,20,true)
TMB = last.subtitle(" M A R B L E S",text_color=0,align=5,size=32)
TTT = TMB

Paint(left,right,time,"wall")
last ++ Paint(left,right,time,"fence")
last ++ Paint(left,right,time,"strips")

TPN = last.subtitle(" P A I N T",text_color=0,align=5,size=32)
TTT = TPN

Push(left, right, time,"left")
last ++ Push(left, right, time,"right")
last ++ Push(left, right, time,"up")
last ++ Push(left, right, time,"down")
TPS = last.subtitle(" P U S H",text_color=0,align=5,size=32)
TTT = TPS 

Ripple(left,right,time,origin = "se",  lambda =64)
last ++ Ripple(left,right,time,origin = "ne", lambda = 48)
last ++ Ripple(left,right,time,origin = "nw" )
last ++ Ripple(left,right,time,origin = "sw")
last ++ Ripple(left,right,time, origin = "north")
last ++ Ripple(left,right,time, origin = "south")
last ++ Ripple(left,right,time, origin = "west")
last ++ Ripple(left,right,time, origin = "east")
last ++ Ripple(left,right,time, origin = "center")
TRP = last.subtitle(" R I P P L E",text_color=0,align=5,size=32)
TTT = TRP

Ripples(left,right,time,origin = "se",  lambda =64)
last ++ Ripples(left,right,time,origin = "ne", lambda = 48)
last ++ Ripples(left,right,time,origin = "nw" )
last ++ Ripples(left,right,time,origin = "sw")
last ++ Ripples(left,right,time, origin = "north")
last ++ Ripples(left,right,time, origin = "south")
last ++ Ripples(left,right,time, origin = "west")
last ++ Ripples(left,right,time, origin = "east")
TRPS = subtitle(" R I P P L E S",text_color=0,align=5,size=32)
TTT = TRPS

Roll(Left, Right, time,dir = 1, rollin = true)
last ++ Roll(Left, Right, time,dir = 1, rollin = false)
last ++ Roll(Left, Right, time,dir = 2, rollin = true)
last ++ Roll(Left, Right, time,dir = 2, rollin = false)
last ++ Roll(Left, Right, time,dir = 3, rollin = true)
last ++ Roll(Left, Right, time,dir = 3, rollin = false)
last ++ Roll(Left, Right, time,dir = 4, rollin = true)
last ++ Roll(Left, Right, time,dir = 4, rollin = false)
last ++ Roll(Left, Right, time,dir = 5, rollin = true)
last ++ Roll(Left, Right, time,dir = 5, rollin = false)
last ++ Roll(Left, Right, time,dir = 6, rollin = true)
last ++ Roll(Left, Right, time,dir = 6, rollin = false)
last ++ Roll(Left, Right, time,dir = 7, rollin = true)
last ++ Roll(Left, Right, time,dir = 7, rollin = false)
last ++ Roll(Left, Right, time,dir = 8, rollin = true)
last ++ Roll(Left, Right, time,dir = 8, rollin = false)
TROL = last.subtitle(" R O L L",text_color=0,align=5,size=32)
TTT=TROL

Scratch(left,right,time, style = "laser")
last ++ Scratch(left,right,time, style = "rain")
last ++ Scratch(left,right,time, style = "dust")
last ++ Scratch(left,right,time, style = "tv")
last ++ Scratch(left,right,time, style = "hline")
last ++ Scratch(left,right,time, style = "vline")
#last ++ Scratch(left,right,time, style = "laser")
last ++ Scratch(left,right,time, style = "fount")
TSCR = last.subtitle(" S C R A T C H",text_color=0,align=5,size=32)
TTT=TSCR

PART2 = TFN ++ TMB ++ TPN ++ TPS  ++ TRP ++ TRPS++ TROL ++ TSCR 

Shuffle(left,right,time,"left")
last ++  Shuffle(left,right,time,"right")
last ++ Shuffle(left,right,time,"up")
last ++ Shuffle(left,right,time,"down")
TSF = last.subtitle(" S H U F F L E",text_color=0,align=5,size=32)
ttt = TSF


slide(Left, Right, time,dir = 1, slidein = true)
last ++ slide(Left, Right, time,dir = 1, slidein = false)
last ++ slide(Left, Right, time,dir = 2, slidein = true)
last ++ slide(Left, Right, time,dir = 2, slidein = false)
last ++ slide(Left, Right, time,dir = 3, slidein = true)
last ++ slide(Left, Right, time,dir = 3, slidein = false)
last ++ slide(Left, Right, time,dir = 4, slidein = true)
last ++ slide(Left, Right, time,dir = 4, slidein = false)
last ++ slide(Left, Right, time,dir = 5, slidein = true)
last ++ slide(Left, Right, time,dir = 5, slidein = false)
last ++ slide(Left, Right, time,dir = 6, slidein = true)
last ++ slide(Left, Right, time,dir = 6, slidein = false)
last ++ slide(Left, Right, time,dir = 7, slidein = true)
last ++ slide(Left, Right, time,dir = 7, slidein = false)
last ++ slide(Left, Right, time,dir = 8, slidein = true)
last ++ slide(Left, Right, time,dir = 8, slidein = false)
last ++ slide(Left, Right, time,dir = 0, slidein = true)
last ++ slide(Left, Right, time,dir = 0, slidein = false)
TSI = LAST.subtitle(" S L I D E ",text_color=0,align=5,size=32)
TTT = TSI

Sprite(left,right,time,"left")
last ++ Sprite(left,right,time,"right")
last ++ Sprite(left,right,time,"up")
last ++ Sprite(left,right,time,"down")
TSP = LAST.subtitle(" S P R I T E",text_color=0,align=5,size=32)
TTT = TSP

PART3 = TSF  ++ TSI ++  TSP

Swing(left,right,time,true,1,1)
last ++ Swing(left,right,time,true,1,2)
last ++ Swing(left,right,time,true,1,3)
last ++ Swing(left,right,time,true,1,4)
last ++ Swing(left,right,time,true,2,1)
last ++ Swing(left,right,time,true,2,2)
last ++ Swing(left,right,time,true,2,3)
last ++ Swing(left,right,time,true,2,4)
last ++ Swing(left,right,time,true,4,1)
last ++ Swing(left,right,time,true,4,2)
last ++ Swing(left,right,time,true,4,3)
last ++ Swing(left,right,time,true,4,4)
last ++ Swing(left,right,time,false,1,1)
last ++ Swing(left,right,time,false,1,2)
last ++ Swing(left,right,time,false,1,3)
last ++ Swing(left,right,time,false,1,4)
last ++ Swing(left,right,time,false,2,1)
last ++ Swing(left,right,time,false,2,2)
last ++ Swing(left,right,time,false,2,3)
last ++ Swing(left,right,time,false,2,4)
last ++ Swing(left,right,time,false,4,1)
last ++ Swing(left,right,time,false,4,2)
last ++ Swing(left,right,time,false,4,3)
last ++ Swing(left,right,time,false,4,4)
TSWG = LAST.subtitle(" S W I N G",text_color=0,align=5,size=32)
TTT = TSWG

Swirl(left,right,time,"anti",4)
last ++ Swirl(left,right,time,"clock",8)
last ++ Swirl(left,right,time,"anti",12)
last ++ Swirl(left,right,time,"clock",16)
last ++ Swirl(left,right,time,"anti",20)
last ++ Swirl(left,right,time,"clock",24)
TSWR = last.subtitle(" S W I R L",text_color=0,align=5,size=32)
TTT=TSWR

TwinDoors(left,right,time,false,true)
last ++ TwinDoors(left,right,time,false,false)
last ++ TwinDoors(left,right,time,true,true)
last ++ TwinDoors(left,right,time,true,false)
T2D = last.subtitle(" T W I N D O O R S",text_color=0,align=5,size=32)
TTT = T2D

Venetianblinds(left,right,time,16,"diam")
last ++ Venetianblinds(left,right,time,20,"cheq")
last ++ Venetianblinds(left,right,time,20,"hor")
last ++ Venetianblinds(left,right,time,20,"vert")
last ++ Venetianblinds(left,right,time,16,"diam",open = x)
last ++ Venetianblinds(left,right,time,20,"cheq",open = x)
last ++ Venetianblinds(left,right,time,20,"hor",open = x)
last ++ Venetianblinds(left,right,time,20,"vert",open = x)
TVB = last.subtitle(" V E N E T I A N B L I N D S",text_color=0,align=5,size=32)
TTT = TVB

Weaving(left,right,time,"jigsaw")
last ++ Weaving(left,right,time,"vert")
last ++ Weaving(left,right,time,"hor")
last ++ Weaving(left,right,time,"weave")
last ++ Weaving(left,right,time,"jigsaw", open = x)
last ++ Weaving(left,right,time,"vert",open = x)
last ++ Weaving(left,right,time,"hor",open = x)
last ++ Weaving(left,right,time,"Weaving",open = x)
TWV= last.subtitle(" W E A V I N G ",text_color=0,align=5,size=32)
TTT = TWV

Wipe(left,right,time,dir = 0)
last ++ Wipe(left,right,time,dir = 1)
last ++ Wipe(left,right,time,2)
last ++ Wipe(left,right,time,3)
last ++ Wipe(left,right,time,4)
last ++ Wipe(left,right,time,5)
last ++ Wipe(left,right,time,6)
last ++ Wipe(left,right,time,7)
last ++ Wipe(left,right,time,8)
last ++ Wipe(left,right,time,9)
TWP = LAST.subtitle(" W I P E",text_color=0,align=5,size=32)
TTT = TWP
/**/
PART4 = TSWG ++ TSWR ++ T2D ++ TVB ++ TWV ++ TWP

all = PART1 ++ PART2 ++ PART3 ++ PART4

last = all
## following 2 lines to enable virtualdub to display
ConvertBits(8)
converttoRGB32()

return (last)
#for avisynth+ delete comment
#prefetch(4)




To my index page To Avisynth