- AVS
- New AVS (and APE sdk) build
Archive: New AVS (and APE sdk) build
justin
13th September 2003 03:51 UTC
New AVS (and APE sdk) build
OK here it is.
http://genghis.winamp.com/~deadbeef/avs270pre.zip
What's new:
- updated maximum local variables to 256 from 64
- added global registers [reg00,reg01,... reg99] for debug and effect synchronization (or inter-preset communication)
- added global register watch in root list window (for debugging)
- added comments for eval code. // and /* bla */
- updated eval documentation
- added gettime() function to eval
- made annoying grey rectangle below tree go away when you aren't docked
- added new color modifier effect, which can be used to replace (with script) a lot of different effects (and be faster and more flexible).
- added 'minimum blend' mode for effect lists/line drawing
- added 'round up' option for Blur.
- made a generic avs directory scanner routine for subdirs (yay!), and made it only generate menus when opened, for speed
- made effects that use evallib reset variables to empty on recompile
- made avs track dirtiness of presets, and (optionally) prompt to save etc
- made avs resize images when resizing (optionally)
- added extended APE interface, that lets you access evallib, global registers, line blend/width modes. (see apesdk.zip)
Also, in WA5a5+ (or 5.0 beta for most of you), you will be able to freely size the AVS window.
Let me know what you think, and if you spot any glaring problems.
Also, text rendering bug? SSC bug? Explanations? :)
(edit)
Oh yeah I forgot.. mig also updated the trans / movement, so you can edit builtin movements directly. It's kinda part way done, but kinda useful.
Oh, and $PI and $E are available from eval code now, as constants.
(/edit)
-Justin
mikm
13th September 2003 04:00 UTC
First!
Will post back here again once I play with it.
With the text rendering bug, if you use an additive text, it will add more blue or something on 95/98 machines. I'm not sure about the SSC bug, but in the DM it will shift up and left (or right). With the SSC, it only takes the first 100 samples of spectrum data.
justin
13th September 2003 04:39 UTC
(I editted the original, but here is some more info on that:
so mig also updated the trans / movement, so you can edit builtin movements directly. It's kinda part way done, but kinda useful (the downside for the moment is that if you have your user code, and you switch presets, *boom* your user code is gone. Doh. If enough people complain I'll revert it back to the old one. Either that, or we can update it so that it only blows away your user code if you happen to edit one of the builtin ones... hmmm).
-Justin
Pixelcraft
13th September 2003 05:22 UTC
Aw, why did you remove the docking window? I always used to use that thing :(
Other than that it looks great, except I don't know what most of the stuff does, but oh well, I'll figure it out someday.
anubis2003
13th September 2003 06:22 UTC
It doesn't seem to be working correctly - with WA 2.91 anyway.
Doesn't seem to have beat detection...
Probably because I'm not using WA5. Darn.
sidd
13th September 2003 07:33 UTC
i think i just creamed my pants :o
Globals and the extended variable limit are the major things i was after, but I can imagine that the color modifier is going to be very useful. And the new ape structure will open some ideas im sure.
Btw, Pixelcraft, the docking window is still there, just hidden when its not in use.
Text render bug: slight blured border around all text (regaurdless of render mode and even when all borders/shadows are turned off), very noticable when you are dealing with large fonts. And espec when you are trying to clip the text using maximum blending etc. It looks like it might be something to do with antialiasing.
Dont know anyhting about no superscope render bugs. And that 'first 100 samples' bug was with the render/simple, not the superscope.
Another major thing people would like is multi line edit boxes with ALL of the scripted part.. (esp in the ssc).
[edit]
maybe you could jack up the update speed on the reg watch. Or make it specifiable.
Deamon
13th September 2003 08:39 UTC
wow... I think I really am going to love this :D
[Ishan]
13th September 2003 08:50 UTC
hehe...i'll have to cheack this out:D:D
Deamon
13th September 2003 09:42 UTC
everything in the main AVS directory doesn't seem to work over here. I'm talking about all APE's and pictures etc. Is this just with my comp, or do I just have to reinstall all my AVS stuff?
[edit]
Damn, Tuggummi's Bitmapped II looks ugly now :D
[/edit]
[edit2]
Second problem: Scope editing fucks up. When editing a scope it completely dissapears or it just keeps rendering old mistakes. Am I the only one with these problems?
[/edit2]
Jaak
13th September 2003 10:26 UTC
*DROOOOOL*
*Me hands Justin a beer... a hole box of THE beer*
skupers
13th September 2003 10:38 UTC
Wow, thanks a lot. I've experimentating with it and I am loving it already. :up: And subdirs :D , now I can finally organize my enormous avs list.
Originally posted by Deamon
everything in the main AVS directory doesn't seem to work over here. I'm talking about all APE's and pictures etc. Is this just with my comp, or do I just have to reinstall all my AVS stuff?
I don't have this problem, I can use all my pictures and APE's.
Second problem: Scope editing fucks up. When editing a scope it completely dissapears or it just keeps rendering old mistakes. Am I the only one with these problems?
I'm having this problem too. If you edit a scope, it disappears, and you have to exit and start avs again to see it again.
Deamon
13th September 2003 10:45 UTC
yep that's the same thing. Have you tried out the Color Modifier yet? It's so sweet :)
And about the first problem, I'm going to install winamp AND avs all over again when winamp 5 full version comes out, so that's no major problem anyway.
[edit]
never mind, I made a little mistake when re-organizing my AVS'es, it's working fine now :)
[/edit]
Jaak
13th September 2003 12:23 UTC
The regBLABLABLA (regbx,regby) would be really cool, coz ill have a BIG BIG BIG mess if i try to use only reg00-99 i dont understand later what each varjable does... yes, i know i can use the // and /*
but then i would really need the multible line beat, int and frame fields (hint, hint)
Montana
13th September 2003 12:26 UTC
cool, new version
jonasc1
13th September 2003 12:29 UTC
The "expresion help" is imposible to turn off when the screen is running in 800x600 mode(cant reach the OK button at the bottom and the X button in the corner dosent work). I also cant see all of it beacuse it is a little bigger now. a scroll will help.
Jaak
13th September 2003 12:36 UTC
Yea, i have the same problem, no one cares about the ppl who use the 800x600 :(
Anyways... one thing would make the color modifier a REALLY powerful too: add the x,y,r,d then you can even use it to raytrace (if you wish to make one wall blue and other red or something like this)
THAT would be amazing...
i hope the newer versions will come.
sidd
13th September 2003 12:42 UTC
Color Mod is freekin awsome. Ive toyed around abit with it. Can use it to replace color map, channel shift and multiplier ape's very easily. And faster in some cases.
[edit] maybe not channel shift.. :\
Yathosho
13th September 2003 13:19 UTC
i wrote a tool (using NSIS) called ClikBot, which allows a user to double-click an avs-file to open it directly in winamp. due to the nature of NSIS, i have not found a way to this without restarting winamp (which sucks).
would be nice if winamp/avs supports this natively.
UnConeD
13th September 2003 13:19 UTC
justin: Haven't played with the new one much, but here's some clarification for the SSC/Text 'bugs':
- The text bugs are Win9x/ME only as far as I know, and are twofold. One is that when the shadow color is set to RGB 0,0,0, the entire screen is always replaced (black bg w/ text), regardless of blend mode. The workaround is to set shadow color to something else (even if shadowing/outlining is turned off).
- The second text bug is that on Win9x/ME, in certain cases, the blue channel seems to contain value 1 rather than 0 for black, resulting in a slow, but steady blue-ification if you use some form of additive mode.
I don't have a 9x machine handy, so I can't be sure.
- The superscope bug that fsk was referring to is probably the hackish linedrawing algorithm, which has incorrect line-ends (horizontal/vertical rather than correct).
When drawing short segments of lines with a fat linewidth, this becomes really noticable and ugly. For a good example, take the default superscope (the spiral) and use linewidth 10. Notice the fringing at 45°.
Trans / Color Modifier is really neat, sort of like a codable Trans / Color Map (though without the output modes).
By the way, a lot of us have been using a res-hacked version of AVS, in which the superscope dialog has been changed to a similar layout as the DM, DMM or now CM: with multiline editboxes and vertical scrollbars.
The big block of explanation below the scope needs to go of course, but in its current form it's a big mess anyway (that most newbies seem to skip).
Another issue: it seems backwards compatibility is lost for presets that contain a Trans / Movement (resulting in a crash). Any way of fixing this?
Another movement issue... it seems clicking a default movement with supplied code will happily overwrite any code in the window at that time. I can see some precious code being lost this way. Possible solutions: always ask (annoying for non coders) or supply a button 'load as custom' (better).
And finally: some of the built-in movements depend on the real pixel coordinates of x,y rather than relative ones. Why not supply the w,h vars like the SSC and DM get?
(edit) forgot something... 'Adjustable Blend' and 'Blend 50/50' bug: this causes white+white to be blended into RGB 254. A simple trick is to add 1 to one of the input colors (after mmx unpacking).
To see this bug, add:
- Render / clear screen (white)
- Misc / Set Render Mode (adjustable or 50/50)
- Render / Superscope (white)
- Trans / Color Map (black/white, drag the black point all the way to the right to incrase the contrast).
sidd
13th September 2003 13:44 UTC
that is if justin has the color map :)
otherwise just use a color clip, below RGB 254 > black.
(this reminds me of another small bug: the color clip's below and above features actually perform "less than or equal to" and "greater or equal to". so you have to choose below RGB 254 instead of just white.
Also.. the color mod cant be used at all to perform channel shifting.. nor could it use x,y,r,d coords. It works much like the color map. eg: the 'level' code is run over 256 bands of brightness, from black to white. It doesnt relate in any way to the rgb values on the actual pixels. Eg. for each 'level', the red, green and blue values are necessarily all the same, until you change them.
Yathosho
13th September 2003 14:05 UTC
[deleted post]
uNDefineD
13th September 2003 14:43 UTC
I'm browsing through it now. This is fantastic! Thanks a lot to J. Save prompt and subdirs are really great, and so is the dynamic colour.
I'll probably do my NDD5 development using this if a final version comes along before January. I could add this to the reasons why I'm taking a break after I finish the MiniPaks (6 more presets to go!!!).
fsk
13th September 2003 15:10 UTC
hmm , about the SSC and text bugs.I think UnConeD told the text thing but not what I meant about the SSC (aldough the thing he mentined sucks too. I think that all three chanels dont align right (they dont drav in the same place one of them is shifted one pixel) this is obvious in fullscreen. I noticed it in my icecube preset where you can see a green line on the left side of the blue line that spins around. Im not sure its a SSC bug but that is what I meant.
mikm
13th September 2003 15:18 UTC
Global variables work great. I've gotten a ton of speed out of my presets because I don't need the pseudorandom number generator. Also, I noticed that if you manually save then open another preset, the save window still comes up. Otherwise, it works great.
Kagnar
13th September 2003 15:33 UTC
Originally posted by siddhartha_one
Btw, Pixelcraft, the docking window is still there, just hidden when its not in use.
I don't see it either.....how do you get it back?
mikm
13th September 2003 16:03 UTC
Right-click on the AVS window, select "Dock in config"
sidd
13th September 2003 16:03 UTC
right click on the view window and click "dock in config" right at the top, just under "full screen".
In the preset quick launch menu
Yathosho
13th September 2003 16:11 UTC
Originally posted by Pixelcraft
Aw, why did you remove the docking window? I always used to use that thing :(
i wasnt aware somebody even uses this stupid feature :p
justin
13th September 2003 17:01 UTC
You can also drag from the avs window into the config tree and it will dock.
Also, you can use 'sw' and 'sh' in Trans / Movement.
Try: d=d*0.93 + (((x*sw/2)&(y*sh/2)&1)*-0.3);
I'm gonna put up a big fix of a build later today, too. I just need someone to give me a preset that crashes Trans / Movement, hmm.
-Justin
UnConeD
13th September 2003 17:09 UTC
Justin: I meant, a preset that uses the new trans / movement, crashes the old AVS. Not sure if this is an issue, though other components do degrade more gracefully as 'unknown render objects'.
fsk: it sounds like your 'bug' is a sideeffect of the way fullscreen overlay works. It's designed for natural images and uses YUV colorspace. Interpolation of sharp images in yuv colorspace can causes color changes...
justin
13th September 2003 17:14 UTC
Originally posted by UnConeD
Justin: I meant, a preset that uses the new trans / movement, crashes the old AVS. Not sure if this is an issue, though other components do degrade more gracefully as 'unknown render objects'.
Ah doh, yeah that's a bug in the old AVS, since mig added new presets. I will update it so it doesn't happen again if we add more,
but old versions are old versions I'm afraid :(
Or I suppose I could make it encode it differently so the old version
ignores it, hmm...
-Justin
skupers
13th September 2003 17:19 UTC
Originally posted by justin
Also, you can use 'sw' and 'sh' in Trans / Movement.
Try: d=d*0.93 + (((x*sw/2)&(y*sh/2)&1)*-0.3);
Great, I always wanted this. Now I can do a movement that moves the pixel with an even y to the left, and those with an uneven y to the left. Thank you, Justin :D .
skupers
13th September 2003 17:22 UTC
Originally posted by justin
Ah doh, yeah that's a bug in the old AVS, since mig added new presets. I will update it so it doesn't happen again if we add more,
but old versions are old versions I'm afraid :(
Or I suppose I could make it encode it differently so the old version
ignores it, hmm...
-Justin
I don't think this is a problem. Why would someone use an old version of AVS? It's not like anyone now still uses an AVS version without the SSC and Dynmov. ;)
mikm
13th September 2003 17:35 UTC
Because they don't have the latest version. Some people still use AVS without dynamove becasue they don't have MMX and have to use 2.47.
zamuz
13th September 2003 18:09 UTC
really nice, specially subdirs :) thanks justin.
Raz
13th September 2003 19:01 UTC
I also notice that pi has been made a standard variable. :up:
UnConeD
13th September 2003 20:16 UTC
The main problem I get with scope editing is the wiping of all variables when you change code... when editing, you lose all your init-variables. This is definitely bad in my book and should be removed again.
dirkdeftly
13th September 2003 21:32 UTC
1337ness abound :D
A couple requests off the top of my head:
-Switch the new bitwise operators (| and &) to something different (e.g. the C++ versions, || and &&) so that old presets that used them don't go fuxery. (And update the expression help to show this.)
-Add a bitwise XOR operator
-Add the ability to save code presets, fruityloops style - have a save button at the bottom of a code construct that puts the code into a seperate folder, under a new extention (.acp or something). Making them universal would be cool, so you could quickly bring up a SSC preset into a DM.
-Add a button at the bottom of the AVS config for docking/undocking (small and inconspicuous and under the config dialogue somewhere). It's kind of cumbersome to have to have to go to the AVS window and click "Dock in config" every time...I miss the double-click shortcut ;)
-Kill the var resetting, like UCD said. It really sucks to be editing your code and have to watch it initialize every time you type something (sometimes upwards of 10 seconds, and I'm on a fast comp...). In place of it, put a "Reset vars (local)" button at the bottom of the dialogue, and a "Reset vars (global)" at the top of the AVS config.
-In movement, calculate the user defined movement when it's selected...and put that "Load as user defined" button at the top somewhere so it doesn't go erasing my movements ._.
-GET RID OF THE FUCKING WINDOW SNAPPING. I have no fucking idea why in the hell you decided to put this in but it's really fucking annoying.
-Add the ability to make your own global vars; something like, to make the variable "bleem" global, put bleem* in init. The regs are useful, but I like being able to remember what variables do from their names ;)
skupers
13th September 2003 22:00 UTC
Originally posted by Atero
-GET RID OF THE FUCKING WINDOW SNAPPING. I have no fucking idea why in the hell you decided to put this in but it's really fucking annoying.
I thought this was done by Winamp, not AVS.
dirkdeftly
13th September 2003 23:36 UTC
Nope, it's AVS. 2.6+ does it, 2.5.1- doesn't.
Zevensoft
14th September 2003 15:35 UTC
Originally posted by justin
Or I suppose I could make it encode it differently so the old version
ignores it, hmm...
-Justin
Justin, just embed it. If I'm not mistaken, each object in the AVS file has a header ID of 4 bytes, followed by the size in bytes (LongInt). Couldn't you just increase the size value? Or does AVS actually care more about the Null termination rather than the specified size?
And Atero, it's actually AVS 2.6 using Winamp's window system. So it's kind of both involved, as to remove it requires hacking winamp.exe, which is more dangerous than vis_avs.dll. Unless you just put the old code back in, heh good luck!
dirkdeftly
14th September 2003 17:18 UTC
That's what I meant. Instead of fucking with WA, just get rid of the use of WA's windows. It's useless and stupid and there's no reason it should be there in the first place.