Archive: Cockos Happy AVS


7th August 2010 18:18 UTC

Cockos Happy AVS
Hello everybody,

We've done some modifications to the version of AVS that is on nullsoft.com, and merged back into it our own modified version of EEL (that we use for Jesusonic, REAPER, etc).

The current build is here: http://1014.org/shiz/vis_chavs.dll

We will definitely open source this version soon, but the important differences are:

1) Variables can be longer in length (16 characters)

2) You can use a newer syntax for if(), below(), assign(), etc.

For example, instead of:


if (above(x,0),assign(y,3),0);
or
if (above(x,0),assign(y,3),assign(y,4));
or
if (above(x,0),exec2(assign(y,3),assign(z,2)),assign(y,4));


You can do:


x > 0 ? y=3;
or
x > 0 ? y=3 : y=4;
or
x > 0 ? ( y = 3; z = 2; ) : y=4;


3) Instead of megabuf(x+y) or gmegabuf(x) you can just use x[y] or gmem[x].


There are other changes -- for more information on the new syntax, see:

http://www.reaper.fm/sdk/js/js.php#js_basic

(most "advanced functions" are JS only, except loop(), while(), freembuf(), memcpy(), and memset()).

I know AVS may be somewhat stagnant at this point, but hopefully this might help get some life back into it.

If anybody finds this useful let me know...

-Justin

7th August 2010 20:00 UTC

Justin, you are a legend.

The new syntax looks miles better! (Code will actually be human readable now :))

Thank you for releasing an updated AVS after such a long time.
There isn't many people left (here at least) now, but who knows who'll turn up now, for a look.

(Looking at the file name, I was thankful to see it wasn't a prank visualisation of some chavs when I ran it.)

I'll go play with it now.

Cheers!


8th August 2010 07:27 UTC

nice... i feel like writing a c program now :)


9th August 2010 13:57 UTC

Wow, I certainly didn't expect this anymore.
Thanks a lot!
I really hope this was what we needed to get more artists active.

Qoal already mentioned that the code will be humanly readable, which is a big plus.
several people have said that the sourcecode was very hard to read and, because of that, even harder to improve. How's that for this version?


11th August 2010 09:23 UTC

unexpected behavior:
The rand() function should only give integers.
Example: rand(2) should only result in 0 or 1, but is now somewhere between 0 and 1.9[..]99.

Or is this intended?


12th August 2010 19:02 UTC

Originally posted by Warrior of the Light
unexpected behavior:
The rand() function should only give integers.
Example: rand(2) should only result in 0 or 1, but is now somewhere between 0 and 1.9[..]99.

Or is this intended?
Thanks, will fix this in a new build later today.

-Justin

15th August 2010 01:18 UTC

Thank you so much for keeping it alive. I really love AVS, and it is a true understatement to say I really appreciate all the work that has gone into it's development and the development of the presets.

Unfortunately I'm not very well informed on the technical end of things, but does this help stability on newer operating systems? XP was really good for AVS, but then Vista and 7 were bad for me. I'm currently running 64-bit windows 7 ultimate, and I get better stability on Windows 7's "XP Mode" than 7 without it. Hopefully playing with this new version will be better.

Either way, thank you very much for all the work you've done.


15th August 2010 17:02 UTC

In fact, it hasn't crashed on me at all this far (keeping my fingers crossed) on XP pro (32bits)


15th August 2010 17:40 UTC

HEY! I figured it out! (or maybe someone else did first and I didn't read about it)

My problem even with this new version was that AVS refused to stay fullscreen more than a second or two.

My solution is to tell the computer to automatically disable Windows Aero each time I open Winamp. This works on my version of windows (7 Ultimate x64). I'm hoping other Aero versions of 7 and Vista have the same ability.

1.) Right click on the shortcut that one uses to open Winamp.
2.) Click properties.
3.) Click the compatibility tab.
4.) Click/check the "Disable desktop composition" checkbox.
5.) Click the Apply button.
6.) Click ok.

As a result of this procedure, Aero will automatically become disabled when you open winamp, but will also automatically re-enable itself each time you exit Winamp. While Winamp runs without Aero, AVS works very well just like on XP, if not better.

Thanks again for releasing "Cockos Happy AVS"!


24th August 2010 09:48 UTC

Looks like interesting, i'll check out now ;)


24th August 2010 10:59 UTC

-have you thought about including bigfug freeframe streaming into the official avs build?

-have you thought about reworking the UI of the avs editor? there are several mods available already (visbot, micro.d and serveral privately kept mods).

all of these mods have one thing in common: they have been created because the official UI is pretty limited and old-fashioned. personally, i prefer a larger window with a big avs window docked into the editor. i also prefer buttons over menus - the latter can act slowly when performing avs live, with buttons you can switch much faster through the settings.

i acknowledge, that my prefered avs editor (from the visbot mod) has one big disadvantage: it requires a rather huge desktop resolution. but i think this could be solved through a cleverly made, resizable editor window. certain elements of the editor like the treeview on the left and the text fields should resize with the entire window size, which -i think- is not possible when using the resize APE.

though this might never happen, as it's too much work, i think the best thing would be to have the avs editor as an OSD. it makes good sense to run avs in fullscreen, so why not allow editing and navigation (selection of presets etc.) in fullscreen? milkdrop and many other visualization tools offer this already.


24th August 2010 23:23 UTC

Where can I get that visbot mod? I use 1920x1200, so resolution won't be a problem.

The only resolution problem I have is keeping the fps up. I can go native fullscreen with a reasonably smooth frame rate (20-60 fps) but usually only with pixel doubling checked. Since my last post, I have had a couple crashes, but I was told it may be because of some old APEs. Overall, I really like this release. Making presets is a little easier now.


25th August 2010 14:23 UTC

http://visbot.net/tools (screenshot)


26th August 2010 01:11 UTC

Thanks, I'll give it a try. :)


31st August 2010 04:16 UTC

Thanks for the updated version of avs :)


31st August 2010 13:58 UTC

i've attached the resource file for avsmod, in case somebody wants to use it when compiling the current sourcecode


7th September 2010 17:57 UTC

Hi Justin, a friend and I have recently made updates and fixes to the released AVS code, mostly related to the LASER compiler switch. Maybe we can combine this with your updates for the new source release?


10th September 2010 19:29 UTC

whoa! an updated version? really? :) I just came across the forums for old time's sake.. and I find good news! The syntax seems better... maybe those glorious AVSing days will return!


11th September 2010 15:40 UTC

It's funny, all these years and really, no one has come up with any program like it, except maybe Milkdrop which I don't feel is as versatile in terms of the different types of visualizations one can make.

Long live AVS!


22nd September 2010 00:31 UTC

wowow! that syntax is just awesome!
well yathosho has the point. i'm using avs for vj-ing and the original editor is not the best for using it live. so i've made my version.
only problem i have with it that it freezes after 2 presets (i mean it loads happily the initial preset then i can load another one and then when i want to load yet another one it freezes). interesting that winamp continues to work but it won't respond when i want to close it (or stop avs).


11th October 2010 21:48 UTC

amazingly eeltrans.ape seems to work with both 2.83 (from winamp 5.56) and 2.9 (from here, fetched 2010-10-10)

the new EEL should still be able to interpret eeltrans's output
I didn't test all of the new EEL features, so some of those might still break, but I'm quite optimistic that they don't :)

some more testing revealed that the new EEL is a bitch and silently ignores errors. should be fixed

eeltrans features that might still be helpful even with the better EEL:
- C-style #define macros
- compatibility with older avs versions :) (that is, provided you don't use the new EEL features)

the irony is that eeltrans contains hackery at a much lower level and yet works, while aperesize breaks
I might look into fixing it later, but I neither promise that I do nor that I'll fix it.


14th October 2010 17:58 UTC

Sorry Justin, but this is too little very too late. For majority of the people AVS was not about the code, it was the freedom of doing hundreds of different kind of presets with only minor changes to the effects. I personally left AVS because anything original you could accomplish was through very heavy coding.

You want to revive avs? Make it more user friendly, notice that user friendly does not mean "dumbing down", I never understood fully any of the code I wrote and I did some pretty complicated stuff, that was because I learned from other members of the community, I copied their code, I shaped it, I molded it, I made it fit my preset. That is what AVS was for me, I hope that is what it can be in the future.


15th October 2010 03:35 UTC

Perhaps that would make quite a revival. Really all I ever knew how to do was steal other people's code and trial-and-error it (I guess the in thing to say would be "remix") until I found something I liked, and I really never submitted any packs or presets because of how shamelessly "ripped" they were. [I also had a lot of fun adding images to many existing presets too.] If I understood more about it, I might be more willing to create more of my own stuff and possibly contribute.

I wouldn't go as far as too little too late, because every step to making things more human friendly is significant, regardless of how long it takes. Art (including mediums) can often be an evolution rather than a revolution.


15th October 2010 09:18 UTC

you can't even really trial-and-error anymore now, since it simply ignores pieces with errors and goes on with the next, without showing you the error


22nd October 2010 14:04 UTC

The one thing I really want in AVS : change presets by receiving MIDI prg changes instead of (as well as) using hotkeys.

Any chance of seeing something like this added, Cockos?


27th October 2010 00:14 UTC

This could be done with an APE. no need for a change in AVS itself

though it would probably be easier with some kind of api to mess with the current preset etc


8th November 2010 14:45 UTC

@justin: are you even reading the feedback? would be good to let us know :)


9th November 2010 05:02 UTC

In the last 5 years, he his account shows 3 posts, two of which are in this thread - I'd say that's giving a lot more attention than normal. I'm just glad he was willing to release the updated software.


6th January 2011 18:28 UTC

i've put together a new version of avsmod, based on chavs. same interface as previous mods, plus correct version resource for the dll.

get it here!


6th January 2011 20:07 UTC

you should really modify aperesize instead, so it resizes dynamically :)
that way you also don't have to patch again for each new binary release.

I can explain you the code if you want, too


3rd January 2013 15:52 UTC

Oops, sorry I forgot to update CHAVS. Here are new builds (v2.91):

http://1014.org/shiz/vis_chavs.dll

and the code:

http://1014.org/shiz/code/chavs.zip

(the code now includes the required bits from WDL, too, so no need to git clone anything).

This should fix the rand() bug, and also updates to even newer EEL-compilation, which has some fancy stuff such as basic code optimization.


3rd January 2013 16:04 UTC

oh the irony of two v2.91 on the same day.

as i've been looking into fixing things from your 2.9 and just put up this 20mins before you (as trying to get something stable in the distribution again).

were there any code changes on your side in the last 2 weeks? as that's within the time scale of when i pulled down the code from git.

-daz


3rd January 2013 18:25 UTC

Originally posted by DrO
oh the irony of two v2.91 on the same day.

as i've been looking into fixing things from your 2.9 and just put up this 20mins before you (as trying to get something stable in the distribution again).

were there any code changes on your side in the last 2 weeks? as that's within the time scale of when i pulled down the code from git.

-daz
Hah, bizarre!

I actually intended to do this two days ago, but that ended up getting derailed...

As far as recent changes to code goes, EEL2 hasn't changed recently, so you should be fine there, but avs_eelif.cpp has been updated:

void AVS_EEL_IF_resetvars(NSEEL_VMCTX ctx)
{
NSEEL_VM_freeRAM(ctx);
- NSEEL_VM_resetvars(ctx);
+ NSEEL_VM_remove_all_nonreg_vars(ctx);
}


(NSEEL_VM_resetvars() is no longer defined so old chavs.zip shouldn't compile against the newer EEL versions). There are also changes to NSEEL_addfunctionex() lines in that file, but they aren't critical (just some casts removed).


---

Also, I forgot to mention, also new in the latest CHAVS is support for functions, see:

http://www.reaper.fm/sdk/js/js.php#js_userfunc

3rd January 2013 18:38 UTC

i know that feeling well, heh.

rightio, will sort out a diff from my 2.91 against things and roll out a test 2.92 in a day or so in order to get us back on an even footing with all of the changes (as 2 x v2.91 isn't going to help with the fragmentation of things as is).

-daz


29th January 2013 22:51 UTC

Originally posted by TomyLobo
you should really modify aperesize instead, so it resizes dynamically :)
that way you also don't have to patch again for each new binary release.

I can explain you the code if you want, too
actually, that sounds good. talk on #avs?

30th January 2013 23:33 UTC

that offer is 2 years old, i'm not even sure i have the source anymore or that i understand it any better than you would


2nd March 2013 18:21 UTC

Quote:


http://1014.org/shiz/vis_chavs.dll
vis_chavs.dll
MD5: b7adf0e8f6c63c8c5160f8190255860e

shows as "Advanced Visualzation Studio v.2.81b [vis_chavs.dll]" inside winamp and is giving me a CTD when ever i try to run it in Winamp 5.63...

vis_chavsmod-2.9_avsmod-0.5.5.dll still works perfectly fine for me but the new one listed above doesn't

anyone else having this problem?

Originally Posted by justin (Post 2905850) Oops, sorry I forgot to update CHAVS. Here are new builds (v2.91):

http://1014.org/shiz/vis_chavs.dll

and the code:

http://1014.org/shiz/code/chavs.zip

(the code now includes the required bits from WDL, too, so no need to git clone anything).

This should fix the rand() bug, and also updates to even newer EEL-compilation, which has some fancy stuff such as basic code optimization.

23rd April 2013 04:47 UTC

The problem i was having with vis_chavs.dll it seems was caused by the box for "SMP support" (AVS Editor -> Settings -> Display) being checkmarked