19th February 2002 06:31 UTC
Current AVS Wishlist
This post has been transformed into a sticky one that will be updated regularly with the latest discussed wishes. You should discuss new wishes in this forum and if others agree with your wish, it will get added here.
I put bugs in red, because they are obviously more important than new features.)
AVS Language Extensions
- XOR, bit-negation and bit-shifting operators (^, ~, >>, << )
- A full blown AVS language including flow control operations (repeat..until, while..do, if..then..else, case..of), commenting (/*..*/, //..CRLF), sub-routine definitions (function cube(x)=x*x*x), additional unary and binary operators (div, mod, shl, shr, inc, dec, etc.).
- Combine all the event boxes (OnInit, OnFrame, etc) into one large syntax highlighting editor in which one would write each part as a subroutine.
- Built-in support for imaginary numbers (you have to write your code to explicitly calculate with the real and imaginary parts of a complex number)
Drawing Options
- Ability to set dot-size for drawing (like line-width)
- Ability to specify either round or square dots
- The endpoints of thick diagonal lines are always horizontal or vertical. Having an option for correct endpoints would be very handy for advanced scopes.
General
- Make AVS more multithreaded, so that the sound-data doesn't freeze when doing UI-stuff.
- Include a version resource in the vis_avs.dll, so installers can easily check the AVS version (e.g. from an NSIS script).
Interface
- Add an option to the right-click menu to enable (desktop) overlay mode
- Replace all color selectors by either a color-blender (like most are now) or add a piece of code to assign red/green/blue-values. Expand the color blender with onbeat options (skip to next color, pick random color from the list, etc)
- Syntax hilighting and bracket colouring for the code-editboxes
- 'Always on top' (you can use Winamp's always-on-top in combo with "no minimize on winamp minimize" to achieve this now)
- Add a "save" button, on top of the current "Save..." menu option (which behaves as Save As...) to save to the same filename.
- Refresh/Reload, to reset all components in a preset
- Support for localisation
- Fix the preset structure tree sometimes showing an element in the wrong position after dragging it.
- Allow multiple selections, copying, pasting, etc in the preset structure tree.
- Improve AVS's userfriendlyness for VJ's: allow playlists of presets which can be composed real-time or loaded from disk, improve the keyboard interface and add support for multiple monitors, so that one can edit/load/save presets on one monitor and project the other which carries only the AVS image full-screen.
- Replace sliders by editboxes, or add editboxes next to them, for increased precision.
- Snap the AVS window's size when it comes close to the standard resolutions (320x240, 400x300, etc.)
- Allow the AVS editor to be resized (only resizing the preset-treeview is enough)
- Bug: When AVS is at the bottom right of the screen, and a user switches to a lower resolution, AVS becomes inaccessible (editing the .ini fixes this). Add a check to the saved x,y coordinates?
- Add an option for AVS to start in fullscreen mode.
Managing Presets
- A decent preset manager to organise your collection. Could have things like a small quick preview.
- Allow easy saving of parts of presets to be used as building blocks. Distinguish between multiple effects and individual component presets, so a user can build a library of neat superscopes, neat dynamic moves, but also neat mini-presets. They are intended as basic building or starting blocks when making presets, and should not be mixed with those presets intended for showing.
- Ability to link presets and sound files... when I play song A, AVS should load preset B.
New Component Suggestions
Existing Components
Effect List
- Add "current" to the buffer-list for Buffer Blending an effect-list. This would be like placing a Buffer Save at the end of your effect list and using that as blend-buffer.
- Allow for double or half-sized Effect lists so an author can choose between detail and speed better. Provide double/half sized buffer saves too and allow Dynamic Movements to read out of them.
Render / AVI
- Ability to provide code to define playback speed (or current frame)
Render / Bitmap
- Ability for Render -> Bitmap to read JPEG, PNG and/or GIF.
- The ability to supply a color-key for transparency. Optionally read this out of the original picture if the format supports this.
- The ability to supply a gray-scale bitmap for alpha-transparency. Optionally read this out of the original picture if the format supports this.
- Option for Bilinear Filtering of the image
- Render / Bitmap is very slow... an option to load the image into an AVS Buffer once (à la Buffer Save) would be very handy (or have the component cache it by itself).
Render / Superscope
- Ability to change between dot/lines mode in a SSC dynamically per frame and per point
- Built-in 3D abilities, makes 3D SSC calculations faster. Allow for camera positioning and rotation, perhaps with z-buffer support.
- A wrap feature that maps points outside (-1, 1) into this interval. When in line-mode, make sure that lines go around the edge too and don't cross the entire window.
- Add a checkbox that turns on a more intuitive colorspace such as HSV (Hue, Saturation, Luminance).
Render / Text
- Fix the bug in render/text additive blend which makes it look blueish (only on Win9x/ME?)
Trans / Colorfade
- An explanation of just what those sliders in Colorfade mean... I think most people sorta get them, but a correct description would be nice.
Trans / Dynamic Movement
- A checkbox for the dynamic movement that, when wrapping is on, tiles the image mirrored at the edges so that you don't get non-matching edges. The same as using x=asin(sin(x*1.57))/1.57. Preferably separate for X and Y.
- It seems a DM slowly fades out an image each frame, perhaps due to round-off errors. Could this be fixed? Replace a DM in a preset with an Invert/DM/Invert combination and notice the difference.
- A checkbox for the Dynamic movement that, when wrapping is on, chooses the nearest X,Y coordinates for a gridsquare (preferably separate checkbox for x and y). For example when one gridspot contains the coordinate (0.1,0.1) and the next contains (0.99, 0.99), then it would convert the second into (-0.01,-0.01). Or of course the first into (1.1,1.1), so that the 'shorter route' is taken instead of the long route.
- Bug: a blank dynamic movement still shifts the pixels slightly.
Trans / Dynamic Distance Modifier
- Bug: a blank dynamic distance modifier still shifts the pixels slightly
Trans / Dynamic Shift
- Wrap-ability for dynamic shift (have to use a 1x1 DM now)
Trans / Interferences
- Bug: Additive mode is completely broken and only affects the top of the image.
Trans / Movement
- An option to alternatively mirror movements in both the X and Y direction. Like the alternate buffer save/restore. Preferably separate for X and Y.
- Even better: allow 'n' movements to be entered and let the presetter write an expression that sets a var to a value in the range 0 - (n-1) selecting the correct movement table.
Last updated - January 10, 2004