Announcement

Collapse
No announcement yet.

AVS in Javascript

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grandchild
    replied
    Yes please do.

    And if you do it in the webinterface, and aren't scared, try pressing F12 (possibly followed by one or two hits of Esc) to see the console for any error messages!

    Leave a comment:


  • Yathosho
    replied
    Over the last couple of weeks, Grandchild and I have been working that JavaScript converter. Many bugs were fixed and the converter now even works with some very old AVS presets.

    We've also splitted it into several packages:


    It would help us tremendously if you could give it a go and test the conversion with as many presets as you can. If you run into problems, please file an issue on GitHub and make sure to include the preset that broke it.

    Thank you!

    PS: If you don't have Node installed (or don't want to), testing on the web is probably the easiest option. Take note that you can upload multiple presets at once!

    Leave a comment:


  • Yathosho
    replied
    @zeem do you use any instant messengers? send me your details as DM please

    Leave a comment:


  • Yathosho
    replied
    btw https://github.com/visbot/vis_avs

    Leave a comment:


  • Warrior of the Light
    replied
    Never attempted to compile it myself, I suck at coding presets, let alone writing software. Yes, you need that version and I know there are no resources or added comments or anything like that. Steve and Co. probably knew the code by heart and worked from there. There are some threads on this topic but I think DrO is the only one active on this board who ever really got it to work. I'm just hosting the files because noone else did

    Leave a comment:


  • Yathosho
    replied
    Originally Posted by z33m View Post
    Can anyone tell me, or point to resources on how to build and step through the AVS C++ source code?
    wotl and grandchild might able to shed some light on. from what i remember, you need 1998's (!) visual studio 6 to compile the source.

    Leave a comment:


  • QOAL
    replied
    DrO and Justin are the only people I'm aware of that have complied AVS of late, asking one of them nicely for build environment would be your best bet.

    Leave a comment:


  • z33m
    replied
    Can anyone tell me, or point to resources on how to build and step through the AVS C++ source code?

    Also, check this issue: https://github.com/azeem/webvs/issues/8. if anyone has a build setup and can spare some time, please check it out.

    Leave a comment:


  • z33m
    replied
    I have pushed the next increment of webvs. 1.1.0

    Changes:
    + added Texer Component and resources.
    + DynamicMovement aspect ratio fix
    + shader MULTIPLY blend fix
    + added EffectList expression support
    + Container component
    + Tree CRUD with clone support.
    + added Simple scope.
    + added UniqueTone.
    + added Movement.
    + DynamicMovement grid size fix

    Leave a comment:


  • z33m
    replied
    Originally Posted by QOAL View Post
    As the release version of Firefox now supports all the necessary web audio spec I would like to point out a problem with Dancer.
    The version of the web audio spec it targets is slightly different to how the spec is now, it seems.

    Two functions have been renamed (I assume Chrome has the old names as aliases):
    createJavaScriptNode is now createScriptProcessor
    createGainNode is now createGain
    More info here.

    Alas, even with those errors fixed there is still a problem where the audio only plays for about 250ms. (It reports it as still playing through.)

    Dancer has a distinct lack of activity on Github, and I'd like to think that its at fault not Firefox.
    I agree, Dancer is quite inactive now. There are a couple of things, in this area, that i think should be done in webvs.
    1) Create a separate, nicer AnalyserAdapter implementation. use some other well maintained library or write our own.

    + SoundManager2 looks promising. the downside is that its flash + doesnt have beat detection afaik.
    + Implementing our own doesnt seem too far fetched either, both firefox and chrome supports AnalyserNodes which gives you FFT spectrum and waveform data directly, unlike dancer which uses a JS FFT library on the raw sound samples. The browser implementation should be a lot faster also.

    2) Implement custom beat detection logic. For things like "Custom BPM" etc

    Originally Posted by QOAL View Post
    Anyway with that I've enabled the editor as standard in my editor.


    z33m: Would there be any benefit if WebVS used web workers? Pause reduction on the main thread etc.
    Havnt looked into this much yet. Im guessing nothing much, atleast from my limited understanding of how webworkers work. Basically they work through message passing, so dont know what kind of data can be passed around safely. They do not have access to the DOM and hence probably the webgl context too. So its pretty much limited to raw processing stuff, maybe to speed up expression parsing or something. The PEGS parser is a bit slow actually.

    But the UI responsiveness should be somewhat solved by the issue#5, since it greatly reduces expression+shader recompilations. Especially since the UI is only ever going to update components one at a time, so atmost max(clone) effect reinitialization per user interaction, which should be fast enough.

    Leave a comment:


  • QOAL
    replied
    As the release version of Firefox now supports all the necessary web audio spec I would like to point out a problem with Dancer.
    The version of the web audio spec it targets is slightly different to how the spec is now, it seems.

    Two functions have been renamed (I assume Chrome has the old names as aliases):
    createJavaScriptNode is now createScriptProcessor
    createGainNode is now createGain
    More info here.

    Alas, even with those errors fixed there is still a problem where the audio only plays for about 250ms. (It reports it as still playing through.)

    Dancer has a distinct lack of activity on Github, and I'd like to think that its at fault not Firefox.

    Anyway with that I've enabled the editor as standard in my editor.


    z33m: Would there be any benefit if WebVS used web workers? Pause reduction on the main thread etc.

    Leave a comment:


  • z33m
    replied
    Originally Posted by Yathosho View Post
    I'm missing the implementation of three of the most important effects of early AVS: Simple (Scope), Unique Tone and Movement. I'm sure they could be implemented—as aliases—within the existing SuperScope, ColorMap and Dynamic Movement effects. Actually, there are a couple of more render effects that I'm sure can be rebuild using SSC: Bass Spin, Dot Fountain and all that jazz.
    I think yes it is possible. It should be really simple to create a component Classes that inherits existing SuperScope, ColorMap or DynamicMovement classes and pass the appropriate parameters to the super constructor.

    To emulate winamp Trans/Movement behaviour, Webvs Dynamic movement has two settings 1) "noGrid": setting this to true disables grid interpolation, giving pixel accurate movement. 2) "compat": setting this to true makes webvs switch to a low precision bilinear filter code, makes things behave more like avs. Not very sure about Unique tone have to check the code, but should be a fairly simple shader code either ways.

    I'll add these to the issues list.

    Leave a comment:


  • Yathosho
    replied
    I'm missing the implementation of three of the most important effects of early AVS: Simple (Scope), Unique Tone and Movement. I'm sure they could be implemented—as aliases—within the existing SuperScope, ColorMap and Dynamic Movement effects. Actually, there are a couple of more render effects that I'm sure can be rebuild using SSC: Bass Spin, Dot Fountain and all that jazz.

    Leave a comment:


  • QOAL
    replied
    Could you look into why loadPreset fails when you call it again after the initial load?

    You can test the issue quickly by adding:
    code:
    setTimeout(function(){webvs.loadPreset(samplePreset);}, 1000);
    to the end of the the onload function in the examples.

    My editor doesn't look quite as robust as yours, however it's quite functional now. Although it supports the output of Grandchild's convert, and I'm not sure if there is total parity with WebVS with that yet.

    Leave a comment:


  • z33m
    replied
    Originally Posted by QOAL View Post
    Awesome.

    Heads up if you download the release archive from github:
    The examples will not run without editing the javascript includes in them, or renaming the dist folder/files.
    hmm, have to do something about this. examples work on the build files. you can just run
    code:
    grunt
    that would generate all the build files.

    Originally Posted by QOAL View Post
    Strange that one of the faces of the JelloCube doesn't show up.

    I'll give it a more thorough look later. (And try adding support for it in my editor)
    Yes a cube face is missing, lemme know if you figure out the problem. Im guessing this has something to do with the clone feature in webvs. I saw that lots of presets have to create several copies of the same superscope only with slight variations. In Webvs you can specify a clone number and that effect will be cloned N times at the same time a variable called "cid" becomes available in the superscope. The scope can change conditions based on cid.

    Also check webvsed. This is probably all completely broken now. But i had done some amount work on automatically generating the UI for each component. Basically, each component defines a JSON-Schema of its options object. A library then generates HTML form from this schema.

    Leave a comment:

Working...
X