Announcement

Collapse
No announcement yet.

AVS in Javascript

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

  • #46
    Hi guys,

    I've put together most of the changes that i've been working on into Webvs v1.0.0.

    Changes
    + Lot of refactoring. Pretty much rewrote lots of stuff.
    + Lot of shader code uncluttering
    + Source tree organization is now slightly different. Moved out editor program
    + Added many tests
    + Documentation, lots of it
    + Added ColorClip
    + Added BufferSave
    + DynamicMovement fixed, more accurate.
    + New example UnConed-JelloCube

    Comment


    • #47
      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.

      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)
      count!last.fmplanner

      Comment


      • #48
        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.

        Comment


        • #49
          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.
          count!last.fmplanner

          Comment


          • #50
            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.
            NSIS IDE for Atom | NSIS for Visual Studio Code | NSIS for Sublime Text | NSIS.docset

            Comment


            • #51
              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.

              Comment


              • #52
                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.
                count!last.fmplanner

                Comment


                • #53
                  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.

                  Comment


                  • #54
                    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

                    Comment


                    • #55
                      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.

                      Comment


                      • #56
                        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.
                        count!last.fmplanner

                        Comment


                        • #57
                          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.
                          NSIS IDE for Atom | NSIS for Visual Studio Code | NSIS for Sublime Text | NSIS.docset

                          Comment


                          • #58
                            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
                            Jesus loves you [yes, you] so much, he even died for you so that you will not need to die, but live forever

                            Comment


                            • #59
                              btw https://github.com/visbot/vis_avs
                              NSIS IDE for Atom | NSIS for Visual Studio Code | NSIS for Sublime Text | NSIS.docset

                              Comment


                              • #60
                                @zeem do you use any instant messengers? send me your details as DM please
                                NSIS IDE for Atom | NSIS for Visual Studio Code | NSIS for Sublime Text | NSIS.docset

                                Comment

                                Working...
                                X