View Full Version : New AviSynth tool - AvsP v1.4.0 (6/5/07)
qwerpoi
4th September 2006, 01:57
Update: I created a website (http://www.avisynth.org/qwerpoi/) for AvsP, be sure to check it out, there's a ton of info in there, even long-time users are bound to learn something.
AvsP is (yet another) text editor for AviSynth, with all the exptected bells and whistles (syntax highlighting, autocompletion, calltips, video preview, etc). So what's different about this one? Let's take a look at this screenshot:
http://img168.imageshack.us/img168/4764/screenshotv110ha6.png (http://www.avisynth.org/qwerpoi/Demo.htm)
Notice the slider bars next to the video image? Basically, you can define any number of them to replace any numerical value in your script (in this case, the "hue" and "sat" arguments to Tweak), essentially giving your AviSynth script an instant gui environment. Cool, huh? (Note that you don't have to memorize any syntax, see link to demo below.) Also notice that the program is a tabbed text editor with a single attached video preview. What that means is that you can compare the video of different scripts without having to align multiple windows (anyone remember alt-tabbing multiple instances of VirtualDub? :) ) Anyway, the program has tons of other features, such as:
> built-in crop editor
> bookmark frame numbers in menu
> macro language for complete control of the program
> graphical front-end for avs2avi
You should read the program's readme for more info. The program itself doesn't require installation, doesn't write to the registry, and doesn't require installing any framework, so no harm in giving it a try, just unzip it to your directory of choice and off you go. You can download it here (the filesize is 5.2MB):
AvsP Download page (http://www.avisynth.org/qwerpoi/Download.html)
-> bugfix for v1.4.0 (http://forum.doom9.org/showthread.php?p=1029437#post1029437)
Mirror for v1.4.0 (http://www.savefile.com/files/784607) (savefile.com)
Mirror for v1.3.9 (http://www.savefile.com/files/696932) (savefile.com)
Mirror for v1.3.8 (http://www.savefile.com/files/667523) (savefile.com)
Mirror for v1.3.7 (http://savefile.com/files/536560) (savefile.com)
Mirror for v1.3.6 (http://savefile.com/files/507148) (savefile.com)
Mirror for v1.3.5 (http://www.savefile.com/files/414243) (savefile.com)
Japanese translation (http://niiyan.s8.xrea.com/blosxom/avisynth/tool/20060920-avsp-ja.htm) (translated by niiyan)
Russian translation (http://avisynth.org.ru/avsp) (translated by Fizick)
German translation (http://forum.gleitz.info/showpost.php?p=301023&postcount=14) (translated by Henrikx)
French translation (http://homepages.nildram.co.uk/~cestial/AvsP/) (translated by Alain2)
Spanish translation (http://forum.doom9.org/showthread.php?p=1000504#post1000504) (translated by zemog)
Portuguese translation (http://forum.doom9.org/showthread.php?p=1011750#post1011750) (translated by Veiga)
Italian translation (http://people.ee.ethz.ch/~rporetti/AvsP_Trad/AvsP_translationITA.zip) (translated by khs81)
The program runs on Windows XP and win98. Anyway, I feel that the program can really revolutionize the way you use AviSynth (I've been developing it on and off for more than 2 years), so please give it a shot, and post back with any feedback.
If you're still not convinced, check out this flash-based demo (http://www.avisynth.org/qwerpoi/Demo.htm), it goes over the program's fundamental features, including a demonstration of creating user sliders.
Pookie
4th September 2006, 02:57
Hey ! Nice app. I'm testing it out right now. Seems peppy. Python, right ?
Can't seem to do an external preview at the moment. Looks like the opened *.AVS file isn't being passed as a variable name to the player.
unskinnyboy
4th September 2006, 05:02
Quite nice! Toying around with it right now.
I know this is still under development, but couple of quick questions anyway:
1) Why does commenting a line or a block of text comes up as '#~' instead of just '#'. I know it doesn't matter what comes after the # once it is commented, but still curious as to why.
2) Entering a frame no. at the bottom and hitting enter takes quite an amount of time (a few seconds, but noticably annoying still) for the preview window to reposition itself at the new frame. I can understand taking time to seek to a new frame thousands of frames away, but there is a notable lag to seek to even a 100 frames away. But, if no one else has a problem with this, it is probably just my slow laptop (1.4 GHz P4M, 1 GB RAM).
Maybe more later once I poke around more..Best thing I like so far -> the preview window being attached to the main window.
Great tool. Thanks. :)
P.S: External preview is b0rked. Confirmed. Sounds like either a path problem (spaces in path?) or a name issue (what is being opened is sample.avs but what is being passed is previewX.avs, where X = 1,2,3..etc).
qwerpoi
4th September 2006, 05:25
@Pookie,
Hmm, strange about the external preview not working, works fine for me using media player classic - can you tell me what program you're trying to run (shot in the dark)? And yes, it's python (with wxpython) - how did you know? :)
@unskinnyboy,
1) Block comments use #~ to distinguish them from regular comments, basically to allow commenting or uncommenting a bunch of selected text (which would get screwed up if there were commented lines in the selected text).
2) Yes, jumping to a frame might be slow on older machines, but it may also depend on the script, try a simple AviSource on a reasonable resolution file and see if it's still slow. Runs pretty well on my laptop which has similar specs to yours.
And yes, despite all the features the program has, I also think that the attached video preview is the best one - it's pretty much the reason I wrote the whole thing to begin with :) .
danpos
4th September 2006, 05:38
@qwerpoi
It's a neat piece of software. The external preview is working fine in my system (tested with MPC, Mplayer).
Keep up the good work. :)
Regards,
Mug Funky
4th September 2006, 06:58
couple of suggestions (i really dig the slider idea...)
- f5 to refresh script, rather than shift-f5. mainly because VDmod does it that way, and i keep inadvertently closing and opening the preview window (also 1 key is quicker than 2 for an action that's likely to be performed often).
- preview window is docked onto script window... perhaps it could be free-floating? it could get tricky with big frame sizes is all.
another thing that'd be cool is if sliders could get some kind of realtime update... like if the last processed frame were held in memory and manipulated from there, rather than the script itself updating each time. this is probably not too workable though.
qwerpoi
4th September 2006, 07:25
@danpos
Thanks :)
@Mug Funky
- You're right about the F5 keyboard shortcut, I'll change it in the next version. As a temporary workaround you can hit F5 twice for the same effect, hee hee :)
- Yes, the preview window is docked, and will ALWAYS REMAIN THAT WAY! :devil: I know that there are advantages to a free-floating window (primarily screen real estate), but the docked window allows for a tight interaction between multiple scripts and the video preview, useful for filter chain comparisons without any window management. It's a design choice, so far I find the advantages outweigh the disadvantages, I'll wait and see what others think.
As far as realtime update for the sliders, as you mentioned, not easy. Perhaps possible if the program was communicating with avisynth directly instead of through .avs files, which is something I've considered doing (although not anytime soon :) ).
Pookie
4th September 2006, 07:29
@Pookie,
Hmm, strange about the external preview not working, works fine for me using media player classic - can you tell me what program you're trying to run (shot in the dark)?
Mplayer (of the Mencoder family)
qwerpoi
4th September 2006, 07:40
Mplayer (of the Mencoder family)
Ah, someone correct me if I'm wrong, but last I checked mplayer can't play back .avs files, which is what the external preview function uses to achieve playback.
unskinnyboy
4th September 2006, 11:15
Block comments use #~ to distinguish them from regular comments, basically to allow commenting or uncommenting a bunch of selected text (which would get screwed up if there were commented lines in the selected text).
OK, then what is the keyboard/menu shortcut for commenting/uncommenting a single line? I can't seem to find it. Which is why I thought commenting via CTRL+Q seems to be the only option you have provided.
Ah, someone correct me if I'm wrong, but last I checked mplayer can't play back .avs files, which is what the external preview function uses to achieve playback.
MPlayer can play avs files. For me, the external preview doesn't work in MPC (v6.4.9.0) or VirtualDubMoD (v1.5.10.2) - the only two I have tried so far. VirtualDubMoD gives me a Cannot open file "preview1.avs": The system cannot find the path specified message. MPC gives me a File not found error. To confirm that it wasn't an issue with spaces in the path (once too often I have seen this issue with alpha/beta versions of many software), I moved MPC to C:\ root, but same error.
qwerpoi
4th September 2006, 18:08
OK, then what is the keyboard/menu shortcut for commenting/uncommenting a single line? I can't seem to find it. Which is why I thought commenting via CTRL+Q seems to be the only option you have provided.
Sorry, no command for single line commenting/uncommenting, the Ctrl-Q command is provided for temporarily killing some lines of code (following the scheme of some programming editors such as SciTe).
MPlayer can play avs files. For me, the external preview doesn't work in MPC (v6.4.9.0) or VirtualDubMoD (v1.5.10.2) - the only two I have tried so far. VirtualDubMoD gives me a Cannot open file "preview1.avs": The system cannot find the path specified message. MPC gives me a File not found error. To confirm that it wasn't an issue with spaces in the path (once too often I have seen this issue with alpha/beta versions of many software), I moved MPC to C:\ root, but same error.
Ah ha, you caught me! Spaces in the external program filename are not a problem, but spaces in the .avs filename are. To verify this, you should be able to save a script like C:\test.avs and preview it just fine. I'll fix this asap.
qwerpoi
4th September 2006, 18:46
Okay, new version 1.0.3 (see first post to download), only two changes:
* fixed issue with spaces in filenames when using external preview (thanks unskinnyboy, Pookie)
* changed refresh keyboard shortcut to F5 (to be more similar to vdub), shift-F5 now hides the preview (suggested by Mug Funky)
Anyone needing to update from an older version, just replace the old exe with the new one.
danpos
4th September 2006, 19:10
@qwerpoi
A small suggestion: what about do you open an account at geocities (http://geocities.yahoo.com/) and so host there yours files? It's free and hasn't such annoying tickets for download anything like rapidshare.
Regards,
qwerpoi
4th September 2006, 19:40
@qwerpoi
A small suggestion: what about do you open an account at geocities (http://geocities.yahoo.com/) and so host there yours files? It's free and hasn't such annoying tickets for download anything like rapidshare.
Regards,
Aw, I didn't want to do anything like get a geocities account and manage a website and stuff :( . But since I don't like rapidshare either and since you asked so nicely, it's done (the download link on the first post has been updated).
Pookie
4th September 2006, 19:42
Yes indeed, v1.03 is working with external preview. :D
Thanks a lot for the app.
G_M_C
4th September 2006, 20:29
Aw, I didn't want to do anything like get a geocities account and manage a website and stuff :( . But since I don't like rapidshare either and since you asked so nicely, it's done (the download link on the first post has been updated).
But for me ... neither screenshot nor download-link is working atm.
Is there some alternative ?
qwerpoi
4th September 2006, 22:44
But for me ... neither screenshot nor download-link is working atm.
Is there some alternative ?
The screenshot should be working now, for the program download, it seems that you have to right-click and "save target as" to download (url gets mangled otherwise), I added the rapidshare link in case the first link doesn't work. Sorry about any temporary inconvenience.
danpos
5th September 2006, 01:02
@qwerpoi
Thanks for take my suggestion into account, mate! You're superb! :)
Regards,
Richard Berg
5th September 2006, 06:34
This is super cool.
Aw, I didn't want to do anything like get a geocities account and manage a website and stuff
I will PM you once I get some stupidity ironed out.
ricardo.santos
5th September 2006, 10:05
geocities download not working
Jacquers
5th September 2006, 10:24
Geocities (free version) has some limits on how much data per hour you can download. Wait a while and try again.
qwerpoi
5th September 2006, 17:41
Geocities (free version) has some limits on how much data per hour you can download. Wait a while and try again.
Yep, sorry about the awful geocities hourly download limit (it works out so only one person can get the program in an hour :scared: ), you can always use the rapidshare link if the first one isn't working. Hopefully there'll be a better distribution method forthcoming.
Jeremy Duncan
5th September 2006, 18:48
Yep, sorry about the awful geocities hourly download limit (it works out so only one person can get the program in an hour :scared: ), you can always use the rapidshare link if the first one isn't working. Hopefully there'll be a better distribution method forthcoming.
Try savefile.com
http://www.savefile.com/
Pookie
5th September 2006, 19:51
Mirror for v1.03
http://dl025.filefactory.com/dl/f/b7bcba/b/9/h/3c73f7dffb264c8f/
qwerpoi, I'll remove the link if you don't want it mirrored.
foxyshadis
5th September 2006, 20:43
Can you serialize your options into a text format, like xml? Also, can you split options into actual options, and a separate syntax.def for avisynth syntax? If you do, I can quickly add definitions for many third party plugins out there and submit them to you. I'd also like to know if you can add the definition popup whenever it reaches a comma, as well, to see what other arguments are available, as well as perhaps using italics to separate named from unnamed arguments (instead of the script-function convention of quotes).
I think I'm going to be using this; even if it's not as refined as editplus, the popup and preview are too cool!
Oddly, it doesn't seem to like % (modulo) at all, syntax highlighting on the rest of the line is disabled. Not that it's used often in avisynth, heh.
qwerpoi
5th September 2006, 21:19
I'll be updating the download links using avisynth.org's ftp shortly (you've got PM Richard Berg), which should solve any download issues (thanks for the help and suggestions Richard Berg, Pookie, danpos, Jeremy Duncan, and anyone I may have missed :) ).
Can you serialize your options into a text format, like xml? Also, can you split options into actual options, and a separate syntax.def for avisynth syntax? If you do, I can quickly add definitions for many third party plugins out there and submit them to you.
I kind of like having all my options come from the single dat file, but I can understand what you're saying. At least as a temporariy comprimise I can work on optionally reading avisynth syntax from a seperate file. I'm not sure if you already know this, but you can quickly add (or delete) third party filter info from the menu command Options -> AviSynth filters (in fact nearly all the options the user would want to edit can be configured in the Options menu). But I agree it is a bit of a pain to add a bunch of filters at one time.
I'd also like to know if you can add the definition popup whenever it reaches a comma, as well, to see what other arguments are available, as well as perhaps using italics to separate named from unnamed arguments (instead of the script-function convention of quotes).
Definition popup calltips on comma should be doable, I'm not so sure about italics in the popup calltips though (I'm using wxpython's implementation of Scintilla, which afaik doesn't have rich-edit capabilities in popup calltips seen in other programming editors). I'll look it over.
Oddly, it doesn't seem to like % (modulo) at all, syntax highlighting on the rest of the line is disabled. Not that it's used often in avisynth, heh.
Yep, you caught me - I cheated with the syntax highlighting, I'm using a pre-defined lexer for the Octave language, which is similar to avisynth except for minor differences like you found (comments in Octave are either # or %). I'll have to write my own custom lexer for avisynth eventually, which is not entirely straightforward with wxpython. A bit sloppy on my part, but I wanted to release the program since it's mostly unnoticeable and the program offers so many other benefits. Thanks for all the suggestions, I appreciate it, and I'm glad you like the program :).
tsp
5th September 2006, 22:32
qwerpoi:
This program looks very good. But as foxyshadis wrote it could be nice if you could add support for reading the syntax from a seperate file as I'm creating a small program that reads the syntax for all installed plugins and write it to a file else I would have to figure out the syntax of your options.dat file.
Another thing would be if it could be posible to use named argument with the sliders like
pointresize(target_width=[<"width", 16, 1024, 512>])
qwerpoi
5th September 2006, 22:55
The link on the first post has been updated, hosted on avisynth.org so everything should be gravy (thanks again Richard Berg).
qwerpoi:
This program looks very good. But as foxyshadis wrote it could be nice if you could add support for reading the syntax from a seperate file as I'm creating a small program that reads the syntax for all installed plugins and write it to a file else I would have to figure out the syntax of your options.dat file.
My dat file doesn't have a syntax, it's a binary file (cPickled if you're familiar with Python), but I'll try to allow reading info from a separate file as well. Your program sounds interesting, I didn't know it could be done - I'm looking forward to it.
Another thing would be if it could be posible to use named argument with the sliders like
pointresize(target_width=[<"width", 16, 1024, 512>])
Actually, if you're referring to AviSynth optional arguments it's already possible. Try something like:
Tweak(hue=[<"hue", -180, 180, 91>])
Basically, the chunk of text [<...>] is replaced by a single number when it's saved to an avs script. Your example won't work because pointresize(target_width=640) won't work either (as far as I know). You may have been mislead by my popup calltips, only arguments in double-quotes are optional, a notation I borrowed from the AviSynth docs.
Henrikx
5th September 2006, 23:18
@qwerpoi
Good messages over good programs come fast to Germany ;)
http://forum.gleitz.info/showthread.php?t=31104
Great Work ! Thank You !
tsp
6th September 2006, 00:23
qwerpoi: You can try my little program. It's written in c++ and source is included.
Get it here:
http://www.avisynth.org/tsp/extract.zip
qwerpoi
6th September 2006, 01:56
@qwerpoi
Good messages over good programs come fast to Germany ;)
http://forum.gleitz.info/showthread.php?t=31104
Great Work ! Thank You !
Thanks :)
qwerpoi: You can try my little program. It's written in c++ and source is included.
Get it here:
http://www.avisynth.org/tsp/extract.zip
Thanks for the link, I'll try it out when I get a chance. Maybe I can learn a bit more about AviSynth's internals from it (not sure I'm ready for it, though).
qwerpoi
6th September 2006, 08:47
I made a flash-based demo highlighting some of the program's features, you can view it here (http://www.avisynth.org/qwerpoi/Demo.htm) (I added the link to the first post as well).
qwerpoi: You can try my little program. It's written in c++ and source is included.
Get it here:
http://www.avisynth.org/tsp/extract.zip
I tried to run your ExtractFilters program but got a runtime error (abnormal program termination) - does it require a specific version of AviSynth? (I'm running 2.53 on my laptop). Anyway, if you can post some sample output (including some filters with optional arguments) I can try to have my program read from the same format.
Pookie
6th September 2006, 09:45
The slider feature is very cool. Good info in the flash demo. If you can make it small enough, perhaps include an Xvid (or mpeg1 or flv) tutorial with future distributions - it'll cut down on having to answer the more basic questions.
tsp
6th September 2006, 12:02
qwerpoi:
It works with avisynth 2.5.6. It includes the dll from 2.5.7 alfa(called avisynth257.dll) as it includes a fix so it is posible to get the parameters for the external filters. The dll should be located in the same directory as ExtractFilters. I have updated the zipfile so that it includes an example of the output in avsfilters.txt and extract the internal filters. If you want another output format it should be posible to fix that.
krisq
6th September 2006, 15:53
I just want to thank you for this excellent tool.
So... :thanks:
mimage
6th September 2006, 19:39
I can't thank you enough!!! This program is outstanding! I've been waiting for something just like this for a long time, and never expected to get something this outstanding. It's a lot like the options that some filters have in Vdub where there is a preview button so you can see changes made in the video as you mess with the filters options but instead of only a few filters it seems to work with just about anything.. I've actually never figured out a way to make any filter in avisynth to work like those filters in vdub with the preview button. This is soo great you have made me soo happy! :D
And again
:thanks:
qwerpoi
6th September 2006, 22:32
New version 1.0.4 (see first post for download), again minor changes:
* read in filter info from text file named "avsfilters.txt" (suggested by foxyshadis, tsp)
* popup calltips show whenever cursor is anywhere inside a filter's arguments (suggested by foxyshadis)
* calltips close on left mouse click in the text
A changelog was added to the end of the program's readme.txt. The first new feature, reading filter info from "avsfilters.txt", works like this. Let's say you make a text file containing filter information like this:
AviSourcePlus(clip)
SharpenTwice(clip, amount)
Each line is a separate filter, and there must be at least one open parentheses in the line. If you name this file "avsfilters.txt" and put it in the same directory as AvsP.exe, the next time you start the program up it will read the data from the text file and update its internal database accordingly. Note that you can always edit this info from the menu command "Options -> AviSynth filters", but this gives a convinient way to update a lot of info in one shot. Plus, tsp has made a cool app to automatically generate this info based on all the plugins installed on your specific computer (works with AviSynth 2.5.6 and above), get it here (http://www.avisynth.org/tsp/extract.zip).
As an aside, while we're mentioning editing the filter information, here's a cool tip for you to try. The info that you edit in "Options -> AviSynth filters" determines what shows up for the popup calltips. But they don't just have to be filter arguments, you can add notes to any filter you want. For example, if you have certain settings you use often for a filter like TemporalSoften, you can edit the info in the "Filter arguments" text box like this:
(clip, int radius, int luma_threshold, int chroma_threshold, int "scenechange", int "mode")
Good starting values: TemporalSoften(4,4,8,15,2)
For noisy videos: TemporalSoften(5,4,9,16,3)
(I made up some of those numbers, so don't yell at me later :) ) Now every time you get a popup calltip for TemporalSoften you'll see your notes along with the filter arguments. Especially useful for resize filters, to keep reminders of good width/height values for different aspect ratios.
@Pookie
The flash demo consisted of over 100 screenshots at 800x600, and comes up to 1MB in size. I'm don't think I can convert it to video in under a meg without having it look terrible, but I don't claim to be a low-bitrate champion, so if anyone's up to the challenge, let me know.
@krisq
You're welcome (I seem to be lacking a you're welcome smiley)
@mimage
Wow, I guess those are tears of joy from your avatar :) . Glad you like the program.
krisq
6th September 2006, 22:51
is there a way to make sliders jump by mod16 (for resizing)?
I hope you know what i mean because my english is pretty bad ;)
Fizick
6th September 2006, 22:54
qwerpoi,
what is license of your prog?
qwerpoi
6th September 2006, 22:56
is there a way to make sliders jump by mod16 (for resizing)?
I hope you know what i mean because my english is pretty bad ;)
Unfortunately no, but it's something I've been thinking about. Basically it might be possible to extend the slider syntax to allow the user to define an arbitrary list (doesn't even have to be numbers!). I'll have to go over it in my head some more. In the meantime, I'm sure some savvy scripter can come up with an AviSynth function which takes in a number and converts it to an appropriate mapping (input 1, get 16, input 2, get 32, etc).
qwerpoi
6th September 2006, 23:02
qwerpoi,
what is license of your prog?
Dunno :confused: . I developed the program for myself, didn't really intend on releasing it, but it got so good I felt it could benefit the community (gee, I'm the king of modesty). I guess I could gpl it and release the source if the demand is high enough, but I kind of want to be able to control the direction of its development (it's the first gui program I've ever written), at least for now. For the moment, let's just say it's freeware, use at your own risk, feel free to distribute for non-profit reasons. Sorry for the long-winded answer :)
Mtz
6th September 2006, 23:51
I'm not good in avisynth, but I have 2 questions:
- how to use "directshowsource" when loadin an avi for example?
- will be ever possible when inserting filter automatically appear sliders for all functions of the filter, with let say "default values"?
When I want to enter a filter it require first letter to be Caps.
enjoy,
Mtz
qwerpoi
7th September 2006, 00:38
- how to use "directshowsource" when loadin an avi for example?
If you want to use "directshowsource" when inserting an avi, you can edit the exension-based template using the menu command "Options -> Extension templates", hopefully it's self explanatory. Of course, then all your avi files will be loaded with direcshowsource, so it might be better to just type "DirectShowSource" and then insert the filename (from the context menu, keyboard shortcut is Shift-F9). If you don't like that either, then you can be bold and try and make a macro. Here's the code from the "Template Example" macro included with the program (located in the Macros subdirectory):
# Get the filename via an open dialog box
filename = avsp.GetFilename()
if filename:
# Create a new tab
avsp.NewTab()
# Create and insert the script into the tab
avsp.InsertText(
'AviSource("' + filename + '")\n'
'Sharpen(1.0)\n'
'Info()\n'
)
# Show the video preview
avsp.ShowVideoFrame()
The macro's language is Python, which would be a bit of a chore for a beginner to learn just to make AvsP macros, but hopefully it's simple enough to understand such that you can modify this example to create your own template. Any macro you make will automatically show up in the "Macros" menu. Whew! Them's a lot of options!
- will be ever possible when inserting filter automatically appear sliders for all functions of the filter, with let say "default values"?
It's currently not possible, since my program doesn't directly communicate with AviSynth, all it does is make .avs text files. In theory it's possible assuming AviSynth can provide the appropriate info for any given filter (min and max values for each numerical argument), someone who knows more than me on the subject (tsp?) would be able to answer the question better.
When I want to enter a filter it require first letter to be Caps.
Yep, a word starting with a capital letter is what triggers the autocompletion. Kind of strange, but otherwise the box would pop up whenever you type anything, which would be annoying. You can always manually trigger autocompletion with the keyboard shortcut Ctrl-Space.
I guess all in all it's best not to think of AvsP as some complete graphical environment for AviSynth. AviSynth is and always will be about making text scripts, the beauty is in the simplicity. I wrote AvsP as a means of aiding in that process, not as an alternative or replacement to it.
foxyshadis
7th September 2006, 00:47
Cool update! I like the ingenuity of reusing the Octave parser. =D I'm sure writing an avisynth parser would be as simple as slightly modifying the Octave one; it's probably written in a lexical compiler so it shouldn't be too painful.
btw, is your python dist stripped down as much as it can be? That 5 mb will hurt for bandwidth, especially if it gets popular.
qwerpoi
7th September 2006, 01:05
Cool update! I like the ingenuity of reusing the Octave parser. =D I'm sure writing an avisynth parser would be as simple as slightly modifying the Octave one; it's probably written in a lexical compiler so it shouldn't be too painful.
Yep, I took a look at some of the sources, but I wasn't able to get an external parser to work with wxPython's implementation of scintilla, wxStyledTextCtrl. Admittedly, I haven't tried very hard, and if any wxpython guru out there wants to make a wxpython-compatible avisynth lexer, I'd be happy for the help :)
btw, is your python dist stripped down as much as it can be? That 5 mb will hurt for bandwidth, especially if it gets popular.
Well, that's about the smallest I've heard anyone getting it down to using py2exe along with upx compression. It should in theory be possible to strip out more python modules, but the bulk of the filesize comes from the python dll and the wxpython dll, which are required. The only other way to reduce the filesize is to use a different gui library. If I use venster (http://venster.sourceforge.net/), for example, I could get the filesize to less than 2mb - unfortunately, venster is not nearly as complete as wxpython (I'm using a lot of tricks with wxpython's snazzy features) and isn't being developed much. The whole filesize thing used to really bug me (I once swore never to write an app bigger than 1MB), but I've come to terms - 4.5mb is reasonable, and I'd rather be developing new features for my program than working with an underdeveloped or extremely difficult framework for the sake of reducing the program's filesize. Still, it's damned embarassing that AvsP clocks in as a bigger download than AviSynth itself :(
Koti
7th September 2006, 03:04
Wow , very very cool
Ty :D :D :D
Dr.D
7th September 2006, 08:42
Thanks for the great program!
Couple of issues:
1. Could you please add a zoom feature in preview? It's really hard to see the difference between clips starring to tiny window.
2. Numeric keypad's keys (arrows, Ins etc.) don't work.
qwerpoi
7th September 2006, 09:17
1. Could you please add a zoom feature in preview? It's really hard to see the difference between clips starring to tiny window.
Well, I'll think about it, but ultimately it would be an artificial comparison - the window's as small as your input video, any zoom besides a doubling point resize would be innaccurate for the sake of comparison. Maybe a magnifying lens sort of feature would work. You could always resize the video in your script if it's that big of a deal, or use AviSynth's Subtract filter if the differences are that subtle.
2. Numeric keypad's keys (arrows, Ins etc.) don't work.
Whoa whoa whoa - that's the first I've heard of that! I've recently been testing on my laptop, so I guess anything's possible. Exactly when does this occur (always, or just in a certain window)?
Mtz
7th September 2006, 09:51
... my program doesn't directly communicate with AviSynth, all it does is make .avs text files. In theory it's possible assuming AviSynth can provide the appropriate info for any given filter (min and max values for each numerical argument), someone who knows more than me on the subject (tsp?) would be able to answer the question better.
I was thinking that the creators of the filters (some of them wich require values in the script) for all parameters have some min. and max. values. Avsp to read them from the filter, not from avisynth. ;)
tsp
7th September 2006, 10:14
qwerpoi: Thanks for the update. Works great with the import from the textfile. Would you like a dll version that you can include with avsP?
Mtz: Sorry that is not posible. Likewise it is not posible to figure out what parameters has default values assigned.
foxyshadis
7th September 2006, 10:56
Well, you sort of can... if you want to really horribly hack into avisynth's guts. :p Call the filter with no optional args, patch the constructor pointer in the vtable to your own vararg function, and examine the stack. Alternately, scan the initializer function's code for calls to AVSValue::AsBool, AsInt, etc, and read back a few bytes for the correct push instruction.
Of course, the documentation exists so we don't have to actually attempt that. ;D
Dr.D
7th September 2006, 16:08
Well, I'll think about it, but ultimately it would be an artificial comparison - the window's as small as your input video, any zoom besides a doubling point resize would be innaccurate for the sake of comparison. That's right, but from another hand we watch a clip in full screen finally :-).
Well, 2x zoom will be fine, I think, as well as full screen preview.
Whoa whoa whoa - that's the first I've heard of that! I've recently been testing on my laptop, so I guess anything's possible. Exactly when does this occur (always, or just in a certain window)?
Always and on both of my computers.
Fizick
7th September 2006, 16:54
qwerpoi,
filters decriptions import in v.1.04 is quite good,
but IMHO the better is not to import this data to options.dat, but simply use this avsfilters.txt file as is (or to import to some separate file, not to options.dat). It is for easy updating of this list. Now we must or delete whole options.dat, or remove every filter one by one.
And the best solution is to get this info directly from Avisynth.
al least in near future we will have (I hope) the final v2.5.7 with full functions info support. See this link (avsFilmCutter editor by Ebobtron) for compatibility of various Avisynth versions (Filter / Function List details):
http://members.aol.com/avsfilmcutter/fcwebguide1.html
qwerpoi
7th September 2006, 18:13
qwerpoi: Thanks for the update. Works great with the import from the textfile. Would you like a dll version that you can include with avsP?
A dll version would be great, but note that my program is written in python using ctypes, so I'd need a c-compatible dll using the stdcall calling convention, which might be a pain (for c++ dlls you have to make macros to export functions compatible with c, and possibly have to make a def file, and other stuff I don't know much about :) ). Definitely would be handy, though.
That's right, but from another hand we watch a clip in full screen finally :-).
Well, 2x zoom will be fine, I think, as well as full screen preview.
Again, a full screen comparison is unfair - your video card or something else is doing a resize algorithm to the clip. I'll work on a doubling zoom, though. If you're just looking to preview a single clip in full screen, use the external preview feature (hit the play button, select a player like media player classic or something, and you're off).
Always and on both of my computers.
Okay, I'm going to need some more info. Specifically which keys don't work (every key on your numpad, just the arrow keys, etc)? Is the video preview shown or hidden? Does this happen to anyone else?
but IMHO the better is not to import this data to options.dat, but simply use this avsfilters.txt file as is (or to import to some separate file, not to options.dat). It is for easy updating of this list. Now we must or delete whole options.dat, or remove every filter one by one.
If you use tsp's program, you don't need to delete every filter - any filter from the avsfilters.txt will override the internal filter info in the options.dat. The reason for keeping them separate is what I mentioned in an earlier post - the filter info stored in options.dat can store more than just the filter name and arguments, you can store comments or notes, min and max values for certain arguments to help with user sliders, etc (from the menu Options -> AviSynth filters). This format conflicts with the text format (one filter per line), and I didn't want to keep saving and converting between the two - it's sort of a compromise.
And the best solution is to get this info directly from Avisynth.
al least in near future we will have (I hope) the final v2.5.7 with full functions info support. See this link (avsFilmCutter editor by Ebobtron) for compatibility of various Avisynth versions (Filter / Function List details):
http://members.aol.com/avsfilmcutter/fcwebguide1.html
Yes, reading from AviSynth is the best way to do it, but currently my program is not so sophisticated (it doesn't communicate with AviSynth directly, it just makes and saves .avs files). Certainly this can be viewed as a big drawback, it's something I'll work on (although it's hardly crippling, the majority of the usability is already there imo). Again, tsp's program is already able to generate the text file (assumming you're using AviSynth 2.5.6 or above). Anyway, thanks for the link, I'll try to read up on it.
qwerpoi
7th September 2006, 19:21
Holy schnoz, Batman! Someone made a website in Japanese about AvsP on the avisynth.info wiki! It's looks like a tutorial in an effort to translate all the features, it's got a bunch of screenshots (I should feel ashamed, since I didn't even make an official homepage :) ), looks very well done, check it out here:
http://www.avisynth.info/?AvsP
This plus the german doom9 post, wow, I'm glad my program supports unicode filenames :)
Fizick
7th September 2006, 20:33
the filter info stored in options.dat can store more than just the filter name and arguments, you can store comments or notes, min and max values for certain arguments to help with user sliders, etc (from the menu Options -> AviSynth filters). This format conflicts with the text format (one filter per line), and I didn't want to keep saving and converting between the two - it's sort of a compromise.
In this case, can you use not general options.dat, but some another file (filters.dat) for this?
Fizick
7th September 2006, 20:35
About japanese, german, russian: how we can localize the AvsP program interface? (menu items, etc)
Dr.D
7th September 2006, 21:09
Again, a full screen comparison is unfair - your video card or something else is doing a resize algorithm to the clip. I'll work on a doubling zoom, though.
OK, thanks!
If you're just looking to preview a single clip in full screen, use the external preview feature (hit the play button, select a player like media player classic or something, and you're off).
No, I'm looking for comparison.
Okay, I'm going to need some more info. Specifically which keys don't work (every key on your numpad, just the arrow keys, etc)? Is the video preview shown or hidden? Does this happen to anyone else?
All "white" numpad keys don't work ("Grey" keys work though).
With and without the video preview.
qwerpoi
7th September 2006, 21:29
In this case, can you use not general options.dat, but some another file (filters.dat) for this?
Hmm, I'd like to keep all the options in a single file if possible. Would be equivalent if I gave a way to clear all the filter info (either in the program or with the avsfilters.txt)?
About japanese, german, russian: how we can localize the AvsP program interface? (menu items, etc)
Whoa, I guess I never thought it out that far. I'll take a look into how difficult it would be to read this kind of info from files (if you could let me know of any programs that do this gracefully, that would help).
All "white" numpad keys don't work ("Grey" keys work though).
With and without the video preview.
Um, what are "white" keys and what are "grey" keys? Regardless, I'll try to investigate on some different pcs when I get the chance.
foxyshadis
7th September 2006, 22:12
http://pyicu.osafoundation.org/ is one of the more robust frameworks, based on the same stuff (ICU) java's i18n is. Use information can be found at icu's sourceforge site (http://icu.sourceforge.net/userguide/strings.html), which is sloooooooooooow today. Besides that, wx has the gettext() library for basic string translation.
Dr.D
7th September 2006, 22:41
Um, what are "white" keys and what are "grey" keys? Regardless, I'll try to investigate on some different pcs when I get the chance.
Sorry,
Arrows, Home, End, PgUp, PgDn, Ins, Del - do NOT work.
/, *, -, +, Enter - work.
mimage
7th September 2006, 22:59
Thanks for the great program!
Couple of issues:
1. Could you please add a zoom feature in preview? It's really hard to see the difference between clips starring to tiny window.
I must say it works fine for me.. I don't know why you call the screen tiny?? I guess it would be a nice added feature I guess it would be like the zoom option in vdub though I never use it. Might use something like that if I could adjust filters as look at a specific part of the picture. If not then I don't think I'd go through the trouble.. wouldn't be needed really IMO.
Maybe a default button for the user slider options. Have a place to set the number and then have a button like on the right side of the sliders. Like there's the "Initial Value" option but that changes around as you mess with your settings and I have to put the default one I had in wordpad or in a separate avs script just incase I want to put it back to the way it was before. Maybe have this as a side option because I guess there is needed space for the sliders so a default button might take up space.
I've found out the defaults and the mins of maxes of certain filters and made user sliders out of them..
Tweak(hue=[<"Tweakhue", -180, 180, 0.0>],sat=[<"Tweaksat", 0, 10.0, 1.0>],bright=[<"Tweakbright", -255, 255, 0.0>],cont=[<"Tweakcont", 0, 10.0, 1.0>])
Levels([<"Lvlsinputlow", 0, 255, 0>],[<"Lvlsgamma", 0.010, 10.000, 1.000>],[<"Lvlsinputhigh", 0, 255, 255>],[<"Lvlsoutputlow", 0, 255, 0>],[<"Lvlsoutpthigh", 0, 255, 255>])
msharpen(threshold=[<"mshrpnthrshhld", 0, 255, 10>],strength=[<"mshrpnstrnght", 0, 255, 100>])
mftoon(strength=[<"mftoon", 0, 255, 255>])
aWarpSharp(depth=[<"awarpsdepth", 0.0, 64.0, 16.0>],blurlevel=[<"awarpsblur", 1, 4, 2>],thresh=[<"awarpthresh", 0.0, 1.0, 0.5>],cm=[<"awarpcm", 0, 2, 2>])
Just thought I'd post them incase they might be of some use for someone.
Wish I could insert them easier instead of copying these settings from an RTF file. Maybe the option's there and I just haven't ran into it yet.
One of my main concerns is not having to look back at the RTF file to find out what the defaults were for the filters. Also one of the filters settings I posted above may not have the exact defaults set for it.. and I didn't know the min/max for certain filters as well.. for the Levels I just copied the min/max from the filter in VirtualDub but they can go higher(well duh they say so in the help options under avisynth)
I hope maybe those settings I put up there are helpful so people don't have to go through the trouble of typing them in. I'd appreciate the same help.
Edit: I'll put up more slider settings to the list in this post. All Initial value settings set are based off of what the default value are for the filters displayed under the Parameters in avisynth or it was explained in the notes found in a zip package for the filter, mentioned in the Avisynth Manual or I found the info on some website. Sometimes the Initial value settings will not be set to the default that's for the filter because I couldn't find out what the default was for the filter.
And a final note, I appreciate your work and thanks a bunch! This is one of the most helpful programs I use for cleaning up footage! I sure have a load of a lot easier time on finding the settings I want! ^__^
Mtz
8th September 2006, 00:08
Thanks mimage for your samples. I put them to look how they work and after saw them I have some suggestions for qwerpoi:
- can you made sliders smaller to enter more? or something to scroll if them are more than can enter in the program window.
- can you make a Reset button like I drawed on the right. The Reset button to be for the default value. Also a small "l" for the default value?
- if I I have too many sliders I can't resize the preview window
All I described is in the screenshot:
http://img60.imageshack.us/img60/5194/avspslidersgr4.th.jpg (http://img60.imageshack.us/my.php?image=avspslidersgr4.jpg)
enjoy,
Mtz
mimage
8th September 2006, 00:27
Also have a scroll bar for the User sliders. I don't like it that if I have a lot of sliders up that it stretches so maybe a scroll bar for that would be nice. Maybe have the up and down button placed on the bottom right or something and have it not effect the length of the sliders or how much of the slider shows on the screen. It would kinda suck to have to scroll left and right just to see the rest of the sliders because they are being covered off because of some added scroll bar feature and the size of the sliders are really nice.. I hope in future releases you don't have to make them smaller for any reason. Not saying have a scroll bar for the video preview window but it would be nice to have something worked out for the sliders.
mitz wrote: "can you made sliders smaller to enter more? or something to scroll if them are more than can enter in the program window."
Yes it seems limited on how many I could put up because some of the sliders aren't showing up when I have a bunch of sliders set.
Here's what it looks like when I completely maximize the window on my pc screen.
http://img67.imageshack.us/img67/5273/screenhunter001co9.th.jpg (http://img67.imageshack.us/my.php?image=screenhunter001co9.jpg)
qwerpoi
8th September 2006, 01:54
Holy cow that's a lot of sliders :D ! I never really thought anyone would use like, more than four, but I guess I should have expected it. What I'll do is put the sliders in a scroll window like Mtz and mimage suggested, it'll take a little restructuring on my part but it should be doable. Let me throw out a warning, though - every time you release a slider, you are creating and loading a new .avs script. So you'll consume quite a lot of ram if you're sliding around a lot. Well, it's a video editing app, so I guess that's expected, but just thought I'd let you know.
Wish I could insert them easier instead of copying these settings from an RTF file. Maybe the option's there and I just haven't ran into it yet.
No option like that yet, but it's something that can be worked on. It has suggested that there may be ways to get info from the plugins or AviSynth itself, but right now it doesn't seem to be straightforward. I'll try and work on an easy way to store and load slider info.
Edit: Wait a sec, if you just want a quick way to insert a chunk of predefined text, you can make a macro pretty easily. Make a text file with the following text:
avsp.InsertText('Tweak(hue=[<"Tweakhue", -180, 180, 0.0>])')
Save the text file into your "Macros" directory and name it "TweakWithSlider.py" (or any name you want, but make sure about the .py extension). Start up AvsP.exe, you can now insert this text from the Macros menu. Note that only the first four macros get keyboard shortcuts, so this isn't a complete solution, but it's a good temporary workaround, I'll still think of ways to do this more specifically for slider info.
- can you make a Reset button like I drawed on the right. The Reset button to be for the default value. Also a small "l" for the default value?
Okay, let me think about ways to make this work.
mimage
8th September 2006, 03:14
- can you make a Reset button like I drawed on the right. The Reset button to be for the default value. Also a small "l" for the default value?
Okay, let me think about ways to make this work.
And could you make it so you could set what you want as the default in the "Define user slider" window? I used photoshop and added a line were you can add that info as an example..
http://img115.imageshack.us/img115/7380/defineuserslidertk8.jpg
Kind of like that.
Dr.D
8th September 2006, 04:49
Looks like only me is so stupid...:(
How to save
1. Sliders.
2. Whole "project", I mean when I reopen the program I would like to see all the tabs, all the sliders again.
Looks like everybody can do this easy, someone created zillions of sliders in one script, I can't beleive that he inserts all of them each time...
qwerpoi
8th September 2006, 05:00
Looks like only me is so stupid...:(
How to save
1. Sliders.
2. Whole "project", I mean when I reopen the program I would like to see all the tabs, all the sliders again.
Looks like everybody can do this easy, someone created zillions of sliders in one script, I can't beleive that he inserts all of them each time...
No, you're not stupid, there's currently no way to save sliders or a project. Some people are copying their script into a separate text editor in order to keep the slider text. There's no built-in way to save sliders because to me, sliders are meant to be a temporary way to evaluate good filter strength values, similar to virtualdub, or photoshop, or something. But I'll try and add a feature to save a project, which will save the scripts in all open tabs with the slider info, it's a reasonable request.
Balm
8th September 2006, 09:40
Just want to say "Great work!!!" :thanks:
Cu Balm
krisq
8th September 2006, 10:14
I've just stumbled on a little problem. I've set avsp as my default editor for .avs files. When I create new .avs (i'm using Total Commander, i'm creating new file with shift+f4) the name of the file is not passed to avsp and when i'm saving i have to enter the name again in the save dialog. Notepad and others do not have this problem.
qwerpoi
8th September 2006, 10:50
@Balm
b^_^ (this is my custom "you're welcome" smiley)
I've just stumbled on a little problem. I've set avsp as my default editor for .avs files. When I create new .avs (i'm using Total Commander, i'm creating new file with shift+f4) the name of the file is not passed to avsp and when i'm saving i have to enter the name again in the save dialog. Notepad and others do not have this problem.
Hmm, that's interesting, works fine for me. Can you tell me the exact name of the text file you're having trouble with?
krisq
8th September 2006, 11:00
I don't know if you've understood me correctly so:
shift+f4, i get the dialog from TC where i enter the name of the file to create (test.avs), press 'ok' and then avsp shows up but the name is not passed to it. All i get is 'New Tab' instead of test.avs.
BTW download link is dead for some reason :)
qwerpoi
8th September 2006, 11:23
I don't know if you understood me correctly so:
shift+f4, i get the dialog from TC where i enter the name of the file to create (test.avs), press 'ok' and then avsp shows up but the name is not passed to it. All i get is 'New Tab' instead of test.avs.
Okay, I think I understand, I'll download total commander and investigate the issue.
BTW download link is dead for some reason :)
You're right, it's not just the download link though, avisynth.org is down for the moment (hopefully it's maintenence and not because my prog is sucking too much bandwith :scared: )
Mtz
8th September 2006, 11:37
Is possible when clicking in the area from the picture the slider to be moved with only one unit? If the distance between min and max values is big I cannot fine tune the slider.
http://img213.imageshack.us/img213/9871/avspclickjm7.jpg
I think instead the "slider arrow" you can make a small "slider rectangle" to save space for sliders.
Thanks for the "TweakWithSlider.py" idea. I hope someday we will have a database with sliders for all filters. Them can be very useful for learning more easy avisynth. Now I learned how to... "Tweak the Hue":cool:. If we already have sliders, Dr.D will not need the option to save them, even I like also his idea.
enjoy,
Mtz
Henrikx
8th September 2006, 12:26
@qwerpoi
Is it possible to write a multi language Wiki ?
Possibly someone begins with English,and than Russian,German,French..etc ?
And please,no directly links to Decrypter,etc.. ,like meGUI Wiki,that is forbidden in Germany.Sad but Truth !
krisq
8th September 2006, 14:05
Okay, I think I understand, I'll download total commander and investigate the issue.
That's great because I can't live without TC :D
Also, is there a way to make avsp use only one instance?
if I 'do the enter' on two .avs files i get two instances of avsp instead of one with two tabs.
mkanel
8th September 2006, 15:10
@tsp,
Good idea on the extractfilters application. Would it also be possible to read the syntax from user defined functions (avsi) in the Avisynth plugin directory?
@qwerpoi,
Thanks, great program.
Mike.
Dr.D
8th September 2006, 15:23
No, you're not stupid, there's currently no way to save sliders or a project. Some people are copying their script into a separate text editor in order to keep the slider text. There's no built-in way to save sliders because to me, sliders are meant to be a temporary way to evaluate good filter strength values, similar to virtualdub, or photoshop, or something. But I'll try and add a feature to save a project, which will save the scripts in all open tabs with the slider info, it's a reasonable request.Thanks, it will be a good feature of your wonderful program!
mkanel
8th September 2006, 16:09
@qwerpoi,
To make it easier to use your program with user defined functions (*.avsi), could you have it treat an avsi extension as it does an avs extension? If I try to open an avsi or use drag and drop AvsP tries to open it with the DirectShowSource filter instead of letting me edit the function. Currently to edit an avsi with AvsP I need to open the avsi with another text editor and then copy and paste the contents into AvsP.
Thanks. Mike.
qwerpoi
8th September 2006, 17:20
Download link is working okay again.
Is possible when clicking in the area from the picture the slider to be moved with only one unit? If the distance between min and max values is big I cannot fine tune the slider.
Yep, I might try to add some buttons, trick is not to use up too much screen space. In the meantime, here's a trick to getting fine tuning - left-click on the slider tab and don't release, then use the keyboard arrow keys. A bit of twister action for those less coordinated, but it works for now.
I think instead the "slider arrow" you can make a small "slider rectangle" to save space for sliders.
Don't know what you mean by a slider rectangle. Are you referring to the dragging tab, or the whole slider in general?
Thanks for the "TweakWithSlider.py" idea. I hope someday we will have a database with sliders for all filters. Them can be very useful for learning more easy avisynth. Now I learned how to... "Tweak the Hue":cool:. If we already have sliders, Dr.D will not need the option to save them, even I like also his idea.
Ho ho, the upcoming version will have a way to store slider info on a filter-per-filter basis, look forward to it :)
Is it possible to write a multi language Wiki ?
Possibly someone begins with English,and than Russian,German,French..etc ?
And please,no directly links to Decrypter,etc.. ,like meGUI Wiki,that is forbidden in Germany.Sad but Truth !
Multi language? I'm only fluent in two languages, English and AviSynth :). But you're right, there's definitely a need for complete documentation, all these features are getting out of hand. I guess I'll get working on it after I finish with this upcoming release.
That's great because I can't live without TC
Help me out then, for me tc keeps opens new avs files with notepad! I've registered .avs files with AvsP.exe such that double-clicking in either windows explorer or tc works, I even used "Associate With..." in tc, but it still opens avs files with notepad using the Shift-F4 feature. Am I missing something?
Also, is there a way to make avsp use only one instance?
if I 'do the enter' on two .avs files i get two instances of avsp instead of one with two tabs.
Should be doable, I'll look into it.
To make it easier to use your program with user defined functions (*.avsi), could you have it treat an avsi extension as it does an avs extension?
Good point, I'll take care of that.
krisq
8th September 2006, 18:32
Help me out then, for me tc keeps opens new avs files with notepad! I've registered .avs files with AvsP.exe such that double-clicking in either windows explorer or tc works, I even used "Associate With..." in tc, but it still opens avs files with notepad using the Shift-F4 feature. Am I missing something?
no problem :). 'configuration/options/edit/view' and there you can set default editor.
i'm using something called 'choiceeditor' for tc that basically lets you choose different editors for each extension. but this should do the trick without the need to install any third-party plugins.
tsp
8th September 2006, 23:02
A dll version would be great, but note that my program is written in python using ctypes, so I'd need a c-compatible dll using the stdcall calling convention, which might be a pain (for c++ dlls you have to make macros to export functions compatible with c, and possibly have to make a def file, and other stuff I don't know much about ). Definitely would be handy, though.
the calling convention is not a problem. But currently it only registers the autoloaded plugins while manually loaded plugins and user functions (including the ones in .avsi) is not included.
A solution could be to export two functions from the dll:
const char* __stdcall GetParam()
that returns all autoloaded user function and plugins in same format as the current avsfilters.txt
and
const char* __stdcall GetParam(const char* plugin)
that returns the filters and parameters in the dll file plugin
This would require avsP to scan the avs file and imported avs files for LoadPlugin and call GetParam for each instance. At the same time you could add user functions as well
qwerpoi
8th September 2006, 23:45
no problem :). 'configuration/options/edit/view' and there you can set default editor.
i'm using something called 'choiceeditor' for tc that basically lets you choose different editors for each extension. but this should do the trick without the need to install any third-party plugins.
Found the problem (issue with switching working directories), it'll be fixed in the new release (which hopefully be out in a few days). Thanks for bringing it to my attention.
A solution could be to export two functions from the dll:
const char* __stdcall GetParam()
that returns all autoloaded user function and plugins in same format as the current avsfilters.txt
and
const char* __stdcall GetParam(const char* plugin)
that returns the filters and parameters in the dll file plugin
This would require avsP to scan the avs file and imported avs files for LoadPlugin and call GetParam for each instance. At the same time you could add user functions as well
I think it would be okay to just get all autoloaded functions as a start. I imagine dynamically adding plugin info from scanning the script would cause me some complications with syntax highlighting and such, and since AviSynth is not a declaritive language it could be error prone. But it's worth trying out, so having both functions would be great. One favor you could do for me is if you haven't already compiled the dll, name the second function GetParamFromDll (or something), since I'm not sure how good ctypes is at handling overloaded stuff.
Mtz
9th September 2006, 02:10
Don't know what you mean by a slider rectangle. Are you referring to the dragging tab, or the whole slider in general?
Something like this:
http://img61.imageshack.us/img61/2166/rectanglexa2.jpg
enjoy,
Mtz
JoeBG
9th September 2006, 05:53
Hi,
how can I manage it to write a macro for just inserting scripts like the following:
#
##DeLogo##
import("C:\Video\Avisynth\AviSynth 2.5\DeLogo\DeLogo.avs")
DeLogo( x1, y1, "RO", "ARD", Cmix=0.0, Lmix=0.0)
#
The name of the skript is DeLogo and I want to insert it with a simple click. Any idea how to manage this?
foxyshadis
9th September 2006, 05:56
C++ compiles overloaded functions into these really ugly names that encode all the arguments & types (as well as which should be passed on the stack and which as registers - none with stdcall), see this page (http://www.kegel.com/mangle.html). It's so much friendlier calling from C when it's declared as extern C with explicitly different names.
vcmohan
9th September 2006, 13:17
I have been trying to use this new tool for the last two days. I get some times errors even for opening DirectShowSource file but not always. Sometimes it just hangs. I also got a semipersistant ( for a few trials) error stating that an unexpected character [ was found. Now I am not getting this error without me doing any thing.May be My system is going bad
I have tried using some thing like this.
fht = a.height() or 480 and tried putting this in the maximum value of a parameter like.
[<"hmax",0,fht,20>]. But I got an slider error stating invalid entry. As shown in one Macro it should be possible to get these values as fht=avsp.GetHeight() and use. Will it be required each time to %,...%...%.>], fht, fht, fht)
Is there a way to select true or false entry with radio buttons may be?
If my string of params have some true/ false, some integer variables, some string variables how can I input the string variable and bool value in the param specification?As below?
Myplugin( reverse = false, option = "one", xx=[< "xx",0,100,4>],...)
qwerpoi
9th September 2006, 19:06
Hi,
how can I manage it to write a macro for just inserting scripts like the following:
#
##DeLogo##
import("C:\Video\Avisynth\AviSynth 2.5\DeLogo\DeLogo.avs")
DeLogo( x1, y1, "RO", "ARD", Cmix=0.0, Lmix=0.0)
#
The name of the skript is DeLogo and I want to insert it with a simple click. Any idea how to manage this?
Easy enough, the Template Example.py in your macros directory is a good thing to look at for basic text insertion. Here's the DeLogo macro, copy and paste into a text file in your Macros directory named DeLogo.py:
avsp.InsertText(
'''#
##DeLogo##
import("C:\Video\Avisynth\AviSynth 2.5\DeLogo\DeLogo.avs")
DeLogo( x1, y1, "RO", "ARD", Cmix=0.0, Lmix=0.0)
#'''
)
The macro is only using one function, avsp.InsertText(), which by default inserts the given text into the current tab at the current cursor position. Also note the text was surrounded by triple single quotes, which is a special string that preserves newlines and stuff. This macro will show up in the Macros menu the next time you start up AvsP, the first 4 macros get keyboard shortcuts F1 through F4, so you may need to rename some of the macro files to get them in the order you want (they are sorted alphabetically). You can read the macros_readme.txt if you want to learn about other available functions.
I have been trying to use this new tool for the last two days. I get some times errors even for opening DirectShowSource file but not always. Sometimes it just hangs. I also got a semipersistant ( for a few trials) error stating that an unexpected character [ was found. Now I am not getting this error without me doing any thing.May be My system is going bad
The way the sliders work internally is that whenever you preview the video, the program searches for chunks of text "[<...>]" and replaces it with the last number. So if you get an error about the unexpected character [, then either the program failed to properly find all the "[<...>]" text or there is an extra bracket somewhere in the script (the AviSynth language does not use brackets).
I have tried using some thing like this.
fht = a.height() or 480 and tried putting this in the maximum value of a parameter like.
[<"hmax",0,fht,20>]. But I got an slider error stating invalid entry. As shown in one Macro it should be possible to get these values as fht=avsp.GetHeight() and use. Will it be required each time to %,...%...%.>], fht, fht, fht)
Your example of using an AviSynth variable fht for a slider parameter will currently not work, since it would require either directly communicating with AviSynth or parsing the script syntax, of which my program does neither (although it's a good idea for the future). Basically, you will run into the least amount of trouble if you create user sliders with the dialog box (in the right-click menu, or use keyboard shortcut F12). Looks like it might be annoying for the script you're trying to make, but that's the way it is for now :( . Note that the macro example you brought up, avsp.GetHeight(), is getting info from the script's output, as opposed to getting info internally from AviSynth itself. I guess it's important to keep in mind that the user sliders aren't very sophisticated, they just allow a way to define a slider with a min and max numerical value, it actually has very little to do with AviSynth specifically. If you're still getting issues with slider bars, post your entire script here.
Is there a way to select true or false entry with radio buttons may be?
If my string of params have some true/ false, some integer variables, some string variables how can I input the string variable and bool value in the param specification?As below?
Myplugin( reverse = false, option = "one", xx=[< "xx",0,100,4>],...)
It's not currently possible, but it's a good idea, one that I've thought about occasionally. It took me quite a while to determine a syntax for the current style of user sliders that was both flexible and easy to understand, it's probably take a lot of work to extend the syntax without blowing up the complexity. I'll try and think about it some more.
vcmohan
10th September 2006, 03:18
Thanks for the quick response. One more issue. Even if I comment out a line which has slider specifications the sliders still appear.
qwerpoi
10th September 2006, 03:37
Thanks for the quick response. One more issue. Even if I comment out a line which has slider specifications the sliders still appear.
Yup, I noticed that a little while ago too. I'll try to have it fixed by the next release, thanks for bringing it to my attention.
mimage
10th September 2006, 11:43
Thanks for the quick response. One more issue. Even if I comment out a line which has slider specifications the sliders still appear.
Isn't better to keep it that way and have it so you press refresh on the video to have them disappear? I don't know.. I'm very non technical with this stuff.. I might have misunderstood what problem you said you have. But I think it would be nice to have to just refresh.
Mtz
10th September 2006, 12:39
I come with some ideas:
1. what do you think to create a new tab called filters. When clicking on that tab to apear filters grouped by category and in every category to apear on the right when pointing to that category the available filters. (like you did for example at Video > Go to Bookmark > Last scrolled frame).
When clicking on a filter, if the user already defined sliders for that filter to pop-up a window asking something like: "Sliders available. Do you want to load them?" and a Yes, No and Cancel (Cancel for not loading the filter at all).
2. A small X button on the left of the filters line to delete the entire line.
http://img213.imageshack.us/img213/7883/avspnewtabym2.jpg (http://imageshack.us)
enjoy,
Mtz
midelic
10th September 2006, 13:57
Small sugestion.
Multiple tabs situation.
-Menu on the tab -Right click-close(to avoid go to "File" - "Close tab")
JoeBG
10th September 2006, 18:02
Easy enough, the Template Example.py in your macros directory is a good thing to look at for basic text insertion. Here's the DeLogo macro, copy and paste into a text file in your Macros directory named DeLogo.py:
avsp.InsertText(
'''#
##DeLogo##
import("C:\Video\Avisynth\AviSynth 2.5\DeLogo\DeLogo.avs")
DeLogo( x1, y1, "RO", "ARD", Cmix=0.0, Lmix=0.0)
#'''
)
The macro is only using one function, avsp.InsertText(), which by default inserts the given text into the current tab at the current cursor position. Also note the text was surrounded by triple single quotes, which is a special string that preserves newlines and stuff. This macro will show up in the Macros menu the next time you start up AvsP, the first 4 macros get keyboard shortcuts F1 through F4, so you may need to rename some of the macro files to get them in the order you want (they are sorted alphabetically). You can read the macros_readme.txt if you want to learn about other available functions.
Many thank for your quick help. I managed to insert some of my favourite skripts
qwerpoi
10th September 2006, 18:22
Isn't better to keep it that way and have it so you press refresh on the video to have them disappear? I don't know.. I'm very non technical with this stuff.. I might have misunderstood what problem you said you have. But I think it would be nice to have to just refresh.
What vcmohan means is that even when you refresh the video, any sliders in comments still show up in the video preview. This is because I simply searched for all instances of "[<...>]" in the text, regardless of whether it was in a comment or not. I've fixed this, it'll be in the next release, which will come out either today or tomorrow.
1. what do you think to create a new tab called filters. When clicking on that tab to apear filters grouped by category and in every category to apear on the right when pointing to that category the available filters. (like you did for example at Video > Go to Bookmark > Last scrolled frame).
When clicking on a filter, if the user already defined sliders for that filter to pop-up a window asking something like: "Sliders available. Do you want to load them?" and a Yes, No and Cancel (Cancel for not loading the filter at all).
Hmm, interesting idea. For now I have a different mechanism to load user sliders (new release either today or tomorrow), but your idea might be more clear for the average user. I'll give it some thought.
2. A small X button on the left of the filters line to delete the entire line.
You can already delete an entire line by left-clicking in the margin once, which highlights the entire line, then hit backspace or something.
Small sugestion.
Multiple tabs situation.
-Menu on the tab -Right click-close(to avoid go to "File" - "Close tab")
You can already close a tab quickly by clicking on it with the middle mouse button (like Firefox or other tabbed controls). Or use the keyboard shortcut Ctrl-W to close the current tab. I may put a right click menu on tabs in the future, though.
qwerpoi
10th September 2006, 23:37
New version 1.1.0, see first post for download link and updated screenshot, this one's a bigger update than the previous ones. The full changelog's at the end of the readme.txt, here's a list of requested changes in this release:
* scrolled window for user sliders (suggested by Mtz, mimage)
* buttons on user sliders for fine tuning (suggested by Mtz)
* click blue slider value to reset to initial value (suggested by Mtz, mimage)
* method for storing filter auto-complete presets (suggested by mimage)
* separate filters.dat (suggested by foxyshadis, Fizick)
* save all scripts as session with user sliders (suggested by Dr. D)
* video preview zoom levels (suggested by Dr. D)
> fixed improper opening files of .avsi files (thanks mkanel)
> fixed minor issue with working dir when opening files (thanks krisq)
> fixed commented sliders (thanks vcmohan)
You can see from the updated screenshot in the first post that for user sliders, buttons were added for fine tuning of numbers (the preview doesn't update until you release the button, similar to dragging the slider). Also you can click the blue numbers to reset the slider to its initial value.
There now exists an advanced way to store presets for each defined filter. In the "Options -> AviSynth filters..." you are able to edit, delete, or add new AviSynth filters and arguments - this is not a new feature. What's new is that if you add a line to the "Filter arguments" text box starting with "Preset: ", the program will use the preset text for autocompletion. Best explained with an example: if you find the function Tweak in the "Options -> AviSynth filters" dialog, you'll see the text box for the filter arguments containing:
(clip, float "hue", float "sat", float "bright", float "cont", bool "coring")
To add a preset, change the text as follows:
(clip, float "hue", float "sat", float "bright", float "cont", bool "coring")
Preset: Tweak([<"TweakHue", -180, 180, 0>], [<"TweakSat", 0, 10.0, 1.0>])
Click OK on the dialog box, restart the program, and now every time you use the autocomplete feature (keyboard shortcut Ctrl-Space or start a word with a capital letter) with Tweak, it will enter the preset text instead of "Tweak(". This way you can store custom preset values or user sliders for each individual filter, without having to jump back and forth with documentation. Note that the options.dat has been split into filters.dat and options.dat, where filters.dat contains all the AviSynth filter information, which makes it easier for people to share some of their filter info customizations.
Anyway, there are a couple of requested features that didn't make it into this release, most importantly a method for localizing the program interface for different languages - I'll still be working on those things. But I think unless there are any pressing issues the major focus will be putting together some complete documentation in one place (not exactly looking forward to it :) ). Let me know if there are any problems with the new release.
matrix
11th September 2006, 01:57
What I noticed is that when pressing the blue number to reset to the initial value, if it's a whole number, it adds a decimal , witch causes a script error.
BTW this is a great program. I love it.
Thank you very much.
Edit:
Also, F1 to F4 to insert macros, don't work anymore.
It asks to choose a directory, and creates an avs script for every file in that directory.
DirectShowSource("C:\AvsP\macros\TweakWithSlider.py")
Sharpen(1.0)
Info()
qwerpoi
11th September 2006, 02:49
What I noticed is that when pressing the blue number to reset to the initial value, if it's a whole number, it adds a decimal , witch causes a script error.
By gum, you're right! A small bug on my part - I updated the link with the corrected version (same version number, I added your fix to the changelog).
Also, F1 to F4 to insert macros, don't work anymore.
It asks to choose a directory, and creates an avs script for every file in that directory.
DirectShowSource("C:\AvsP\macros\TweakWithSlider.py")
Sharpen(1.0)
Info()
Sorry if I was unclear earlier, F1 through F4 run the first four macros, they don't insert macros. The version you download has four example macros, by hitting F2 you ran the "Batch example" macro, which does exactly as you described, it asks you to choose a directory and creates avs scripts accordingly. In order to insert a macro you've written into the menu, simply put the .py file in your Macros folder and start the program. Again, sorry if I was unclear in an earlier post.
krisq
11th September 2006, 09:03
Found the problem (issue with switching working directories), it'll be fixed in the new release (which hopefully be out in a few days). Thanks for bringing it to my attention.
Great news :D. One more thing. I think that separator between script window and video window should be 'moveable'.
hmm... v1.1.0 still not working for me as it should. the name of created file is not passed to avsp :(
qwerpoi
11th September 2006, 09:40
hmm... v1.1.0 still not working for me as it should. the name of created file is not passed to avsp :(
Arrgh, last-minute change with the save session feature broke the fix :mad:. I updated the link on the first post (same version number) - sorry about the inconvenience. Man, I'm running 0 for 2 on the bug score, hopefully those numbers will improve soon!
I think that separator between script window and video window should be 'moveable'.
Yeah, and it might be in the future, but for now that would give me all sorts of trouble. Basically there's a lot of work going on dynamically sizing the video output window along with the region for user sliders, with potential scroll bars on the video preview and the user slider area it makes things a lot cleaner on my side to keep the preview size fixed to the video height. If you need a quick shortcut to hide the video preview, try middle-mouse clicking anywhere on the video when it's shown.
krisq
11th September 2006, 09:52
OMG! That was fast :D. Everything is perfect now. Thanks!
qwerpoi
11th September 2006, 10:06
OMG! That was fast :D. Everything is perfect now. Thanks!
Whew!
I also forgot to mention, you asked before if the program can run as a single instance app, that's not in this version. From what I found, programs typically accomplish this by having the program post info to a port using server/client/thread stuff. I found some code and implemented it, but it ended up increasing my dependencies such that the program filesize went up about a megabyte :(. I'll try and find another way to do it, in the meantime, you can open a single file, then drag any other files onto the program, they'll open up in new tabs if they are .avs or .avsi files.
krisq
11th September 2006, 10:54
Whew!
I also forgot to mention, you asked before if the program can run as a single instance app, that's not in this version. From what I found, programs typically accomplish this by having the program post info to a port using server/client/thread stuff. I found some code and implemented it, but it ended up increasing my dependencies such that the program filesize went up about a megabyte :(. I'll try and find another way to do it, in the meantime, you can open a single file, then drag any other files onto the program, they'll open up in new tabs if they are .avs or .avsi files.
Not a big deal. You can put that on the bottom of your 'todo' list :). :thanks: again.
Fizick
11th September 2006, 15:14
qwerpoi, thanks for new version.
New suggestion for interface:
Place player buttons to top of window (under main menu), to prevent its disapperance for big frame height.
niiyan
11th September 2006, 15:48
To add a preset, change the text as follows:
(clip, float "hue", float "sat", float "bright", float "cont", bool "coring")
Preset: Tweak([<"TweakHue", -180, 180, 0>], [<"TweakSat", 0, 10.0, 1.0>])
I tried as you mentioned above, but it didn't work. Then I changed "Preset: ..." to "Presets", it works now.
[Edit] Sorry, I misunderstood this new feature. But it doesn't still work for me.
I added the preset line to Tweak as follows:
(clip, float "hue", float "sat", float "bright", float "cont", bool "coring")
Preset: Tweak([<"TweakHue", -180, 180, 0>], [<"TweakSat", 0, 10.0, 1.0>])
Then click [OK] and restart AvsP.exe. But it looks like no change.
Revgen
11th September 2006, 16:12
Thanks for the program. I appreciate it.:)
qwerpoi
11th September 2006, 18:04
New suggestion for interface:
Place player buttons to top of window (under main menu), to prevent its disapperance for big frame height.
I might add that as an option in a future release (it would look weird though, don't you think?). Anyway, there shouldn't be an issue with accessing the buttons on the bottom. Basically, you can control the max size of the video preview under "Options -> Setttings -> Video -> Max video frame width/height". If a video is larger than that size, it shows up with scrollbars. It's still possible for the program to resize such that the video controls go off the screen, but you can just drag the program up, it should never resize to something bigger than your desktop resolution unless you set the max video frame width/height incorrectly.
I added the preset line to Tweak as follows:
(clip, float "hue", float "sat", float "bright", float "cont", bool "coring")
Preset: Tweak([<"TweakHue", -180, 180, 0>], [<"TweakSat", 0, 10.0, 1.0>])
Then click [OK] and restart AvsP.exe. But it looks like no change.
First, start up AvsP.exe and make sure that the preset is still there under "Options -> AviSynth filters -> Tweak". If so, close the dialog box, then go to the blank text in a new script tab and type a capital "T". You should see a list box of filter names that begin with "T". Use the arrow keys to select "Tweak" (or continue typing "w", "e", etc), when it's selcted press either return or tab, you should see your preset entered into the text. Note that double-clicking on "Tweak" in the list box does not work, it triggers the autocomplete differently - I'll try to get that fixed.
Thanks for the program. I appreciate it.:)
You're very welcome b^_^d
niiyan
11th September 2006, 19:42
Note that double-clicking on "Tweak" in the list box does not work, it triggers the autocomplete differently - I'll try to get that fixed.
Ah... I have double-clicked on "Tweak". Preset works now by pressing return or tab key. Thank you for your reply.
matrix
11th September 2006, 21:27
Thanks for the fix and for your program.
Sorry if this might sound stupid, but I don't really know what you mean by "middle-mouse clicking" :stupid:
qwerpoi
11th September 2006, 21:40
Sorry if this might sound stupid, but I don't really know what you mean by "middle-mouse clicking"
Ah, I meant click on the tab with the middle mouse button. Many programs with tabs have the shortcut where clicking on the tab with the middle mouse button closes the tab. If your mouse doesn't have a middle button, or if you're using a laptop or computer without a mouse, you'll have to make do with the keyboard shortcut Ctrl-W, at least for now. Sorry if I was unclear earlier.
tsp
11th September 2006, 21:50
matrix: Look at this (http://en.wikipedia.org/wiki/Image:Logitech_3_buttons_mouse.jpeg) picture of a computer mouse. Notice that there are 3 button. When you push down the middle (http://www.answers.com/middle) button and release it again you are performing the action knowns as "middle-mouse clicking":). On some computer mouse clicking the scroll wheel acts as the middle mouse button.
qwerpoi: I'm thinking about adding a third function
const char* __stdcall GetParamFromScript(const char* script)
that extract the functions from an AVS script so you can maintain a list of current available user function for autocompletion besides the autoloaded ones.
qwerpoi
11th September 2006, 22:24
I'm thinking about adding a third function
const char* __stdcall GetParamFromScript(const char* script)
that extract the functions from an AVS script so you can maintain a list of current available user function for autocompletion besides the autoloaded ones.
Sounds cool - at a cursory glance it seems pretty tricky to me, since you basically have to implement a rudimentary AviSynth parser, and be able to account for syntax errors and other stuff, maybe I'm thinkng about the wrong way to do it. Still, if it's doable then that would be cool. Unfortunately I would probably only update when you preview the video, otherwise I would have to call up the function every time you type a character, unless I'm thinking about it incorrectly.
tsp
11th September 2006, 22:47
well it's only the LoadPlugin, Import and function keywords the parser needs to recognice and if you only call the function when previewing the video syntax error should matter less as avisynth would produce an error in that case. But if I manage to make it could you add some more usage for the parameters like the tooltips in visual studeo (picture of what I'm trying to say here (http://img246.imageshack.us/img246/8295/tooltiprl2.png))
This could make it easier to understand when someone uses a syntax like this
foobar(as,32,31,443,123,"aaa",c,1.34,c.trim(,100-1),-1)
qwerpoi
12th September 2006, 00:41
But if I manage to make it could you add some more usage for the parameters like the tooltips in visual studeo (picture of what I'm trying to say here (http://img246.imageshack.us/img246/8295/tooltiprl2.png))
This could make it easier to understand when someone uses a syntax like this
foobar(as,32,31,443,123,"aaa",c,1.34,c.trim(,100-1),-1)
If you're referring to bolding the current argument, I think I can do it, but correct me if I'm wrong, it'll get screwed up with AviSynth named arguments, since the order of the arguments change and specifying the argument name is not required.
matrix
12th September 2006, 00:47
Thanks tsp.
Never seen a mouse like that. I set my scroll weel for middle mouse.
I have another problem.
When I have telecide and decimate as sliders, plus another filter(s) and rotate between the sliders to see the difference, the program grows horizontaly. The more I do it, the wider it gets.
Anybody else noticed that?
tsp
12th September 2006, 00:58
avisynth ignores the named argument when looking at the order of the unamed arguments so
fft3dfilter(clip, float sigma, float beta, int plane, int bw, int bh, int bt)
if specified like this
FFT3DFilter(beta=1.2,bh=8,100)
is the same as
FFT3DFilter(beta=1.2,bh=8,sigma=100)
or
FFT3DFilter(100,beta=1.2,bh=8)
or
FFT3DFilter(beta=1.2,100,bh=8)
So when you calculate the order for an unnamed argument just ignore all the named argument
qwerpoi
12th September 2006, 03:26
When I have telecide and decimate as sliders, plus another filter(s) and rotate between the sliders to see the difference, the program grows horizontaly. The more I do it, the wider it gets.
Anybody else noticed that?
Yeah, this can happen occasionally, it's most likely due to sloppy dynamic size calculations on my end. If you could post an exact sample script(s) which causes this to happen, I'll try to fix the problem.
avisynth ignores the named argument when looking at the order of the unamed arguments so
fft3dfilter(clip, float sigma, float beta, int plane, int bw, int bh, int bt)
if specified like this
FFT3DFilter(beta=1.2,bh=8,100)
is the same as
FFT3DFilter(beta=1.2,bh=8,sigma=100)
or
FFT3DFilter(100,beta=1.2,bh=8)
or
FFT3DFilter(beta=1.2,100,bh=8)
So when you calculate the order for an unnamed argument just ignore all the named argument
I think I've got it figured out (except afaik your second and last example won't work, since all named arguments have to be at the end, maybe not true in a newer version of AviSynth), I'll give it a shot when I get the chance.
midelic
12th September 2006, 22:47
I have got a problem.When I open one of my old script "gendenoise.avs." whith Avsp ...I receive this avisynth line and when I try to close this message pop-up in the window(see picture).
The problem is ......my script "gendenoise.avs" has over 20 lines (openned in Notepad) nothing similar.
I-ve eliminated almost all the lines but the problem remain.
http://img214.imageshack.us/img214/7779/test0th8.jpg
Ok .I discovered the problem.The problem was the extension. Avsp accept only ".avs" not ".AVS"
Shouldn't it accept also ".AVS"?
matrix
13th September 2006, 00:03
I was comparing this scripts:
AVISource("D:\clip.avi")
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
AVISource("D:\clip.avi").ConvertToYV12()
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
aWarpSharp(depth=16.0,blurlevel=2,thresh=0.5,cm=2)
AVISource("D:\clip.avi")
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
UnFilter(60,60)
qwerpoi
13th September 2006, 01:54
Ok .I discovered the problem.The problem was the extension. Avsp accept only ".avs" not ".AVS"
Shouldn't it accept also ".AVS"?
You're absolutely right, thanks for finding the bug. I'll update the fixed version (along with a few other improvements) soon, once I take care of a couple more things.
I was comparing this scripts:
AVISource("D:\clip.avi")
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
AVISource("D:\clip.avi").ConvertToYV12()
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
aWarpSharp(depth=16.0,blurlevel=2,thresh=0.5,cm=2)
AVISource("D:\clip.avi")
Telecide(order=1,guide=1,post=2,vthresh=30.0)
Decimate(5,0)
UnFilter(60,60)
Thanks for the reply, I'll try and find the source of the bug. Could you tell me which specific numbers had sliders?
matrix
13th September 2006, 03:09
There is a slider for every number in the scripts.
I don't know if it's going to make any difference, but during the transition between views, I can see something going on in the 1st slider for telecide, "order". Something like a small slider overimposed on the name "Telecide_order". It's very fast, can't tell for sure.
This is my macro for telecide:
avsp.InsertText('Telecide(order=[<"Telecide_order", 0, 1, 1>],guide=[<"Telecide_guide", 0, 3, 1>],post=[<"Telecide_post", 0, 5, 2>],vthresh=[<"Telecide_vthresh",0.0, 255.0, 30.0>])')
It doesn't do that if I don't have any other filter in there, or if there is a filter but without a slider.
qwerpoi
14th September 2006, 10:43
New version 1.1.2 (see first post for download), some cool changes:
* highlight current argument in calltips (suggested by tsp)
* editing AviSynth filter info no longer requires program restart
* enable localization of program's interface language (suggested by Fizick)
* added popup messages to example macros to prevent confusion
> fixed issue with case-sensitive extensions (thanks midelic)
> cleaned up dynamic preview sizing code (thanks matrix)
> fixed some stray bugs with wx namespace
The most noticeable new feature is with the popup calltips - the argument your cursor is on in the script gets highlighted in the calltip (should be helpful for those of you who have extremely long lines because of user sliders :) ).
Another big feature for those whose native language is not English is the ability to translate the program's interface language. Included is a file called "__translation.py", it contains all the messages shown by AvsP. To translate, open the file in a text editor and simply add translated messages next to each message (you can even type unicode directly), rename the file to "translation.py" and run the program. There are some instructions in the file itself, be sure to read them as well.
Other than that, some few bugfixes, some interface improvements (it's no longer necessary to restart when you edit AviSynth filter info). Try it out and let me know what you think.
niiyan
14th September 2006, 16:52
Another big feature for those whose native language is not English is the ability to translate the program's interface language.
Cool! I tried to translate to Japanese and now finished only top menu (but I have no plan to finish all ...).
I have a question and a suggestion.
Can I distribute translation.py on my homepage?
How about selecting the interface language in the settings? For example, create sub directory "./locale", put the translation files (ja.py, en.py, ru.py, etc.) in it and then select one from those languages in the settings.
I deleted the link to the image on my homepage, because an attached image was approved.
Henrikx
14th September 2006, 19:38
German translation in work...........;)
qwerpoi
14th September 2006, 20:06
Can I distribute translation.py on my homepage?
Sure! Post a link here when it's ready, and I'll add it to the first post.
How about selecting the interface language in the settings? For example, create sub directory "./locale", put the translation files (ja.py, en.py, ru.py, etc.) in it and then select one from those languages in the settings.
Okay, I'll work on something like that. By the way, if it's easier for translators to use a more familiar gnu gettext interface, I could try to work on that. I tried gettext and couldn't get all the unicode codec issues worked out, so I figured it would be easier to use a python script, since my program is already written in python, it's easier for me to maintain. But if translators are more comfortable with the gettext .mo/.po format, let me know.
German translation in work...........;)
Very cool! Again, post the file or a link when you've got something ready and I'll add it to the first post.
Henrikx
14th September 2006, 20:19
Originally Posted by fizick German translation in work ??? scrabble - Game with my name ?
qwerpoi
14th September 2006, 23:31
??? scrabble - Game with my name ?
Whoops, pasted the wrong name. I corrected the post, sorry about that :p
mkanel
15th September 2006, 15:28
When using Find (Ctrl-F) or Find Next (Ctrl-Shift-F) on a large script if the text is found outside of the visible window it is highlighted but the visible window does not shift to show the text, you must scroll through the script to find the text. Could you make the visible window shift to show the highlighted text?
Thanks qwerpoi for the program and all the improvements. Mike.
niiyan
15th September 2006, 16:27
But if translators are more comfortable with the gettext .mo/.po format, let me know.
I haven't ever used gettext, so I have no problem with the current python format.
By the way, I noticed the following:
To select "File" -> "NextTab"/"Previous Tab" shows the same message in the status bar, "Switch to next script tab".
To select "Video" -> "Zoom" -> "200%"/"300%" also shows the same message in the status bar.
Can I translate [Browse] button in the General settings?
Does change for "Max video frame width(height)" in the Video settings need restart?
qwerpoi
15th September 2006, 19:56
When using Find (Ctrl-F) or Find Next (Ctrl-Shift-F) on a large script if the text is found outside of the visible window it is highlighted but the visible window does not shift to show the text, you must scroll through the script to find the text. Could you make the visible window shift to show the highlighted text?
Good catch, I never noticed that. I'll fix it in the next release, thanks.
By the way, I noticed the following:
To select "File" -> "NextTab"/"Previous Tab" shows the same message in the status bar, "Switch to next script tab".
To select "Video" -> "Zoom" -> "200%"/"300%" also shows the same message in the status bar.
Can I translate [Browse] button in the General settings?
You're right, looks like I made some sloppy mistakes with my messages. I've fixed them, it'll be in the next release. Thanks for pointing them out, it's a big help. And just so you know, when I release the new version I'll mark any changes in the new "__translation.py", so all you will have to do is copy and paste any new messages into your current "translation.py", which should make things easier.
Does change for "Max video frame width(height)" in the Video settings need restart?
No, but if your video preview is visible when you make the change it might require you to hide and show the video preview.
niiyan
16th September 2006, 14:55
And just so you know, when I release the new version I'll mark any changes in the new "__translation.py", so all you will have to do is copy and paste any new messages into your current "translation.py", which should make things easier.
Good news! I already finished translating almost 90% of words. So, I'll release Japanese language file soon.
No, but if your video preview is visible when you make the change it might require you to hide and show the video preview.
I see.
Fizick
16th September 2006, 19:48
qwerpoi,
suggestion:
context help for current (sdelected) avisynth filter from avisynth documentation (or may be from plugins docs too).
It is not easy, and may be done by various ways.
Bh4i
16th September 2006, 23:23
When i try to open an divx i get an error that i have no decoder:
AVISource: couldn't locate a decompressor for fourcc div3
Isnt ffdshow enough to decode? Xvid does work...
danpos
16th September 2006, 23:38
When i try to open an divx i get an error that i have no decoder:
AVISource: couldn't locate a decompressor for fourcc div3
Isnt ffdshow enough to decode? Xvid does work...
ffdshow is enough since that you configurate it properly. In order to open up a .avi encoded with DivX 3 low motion/high motion codec using AviSynth, you've to go into VFW Codec Configuration on ffdshow start menu folder and there enable support to DivX 3 (libavcodec). It's simple, fast and doesn't hurt. :D
Regards,
Bh4i
16th September 2006, 23:46
I enabled it, and im getting another error...
Evaluate: System exception - Access Violation
foxyshadis
16th September 2006, 23:56
That means your script or one of the plugins is causing a crash, it's not related to AvsP.
Bh4i
17th September 2006, 00:09
I only have 1 line in the script:
AVISource("D:\test.avi")
qwerpoi
17th September 2006, 00:17
qwerpoi,
suggestion:
context help for current (sdelected) avisynth filter from avisynth documentation (or may be from plugins docs too).
It is not easy, and may be done by various ways.
That's a good suggestion, but I can't think of a decent way for it to work consistently. Even assuming you're online, searching google for "avisynth filtername" doesn't give an appropriate hit on the first link (although this might change with the new avisynth wiki). I'll think about it some more, any suggestions on how to make this work are welcome.
I enabled it, and im getting another error...
Evaluate: System exception - Access Violation
As foxyshadis mentioned, your problem may not be related to AvsP itself. To make sure, try making the same avisynth script using Notepad and preview it using windows media player or virtualdub, and see if you get the same error.
danpos
17th September 2006, 00:57
I only have 1 line in the script:
AVISource("D:\test.avi")
Try this out:
AVISource("D:\test.avi",audio=false)
Regards,
Fizick
17th September 2006, 16:40
qwerpoi,
Ebobtron (try contact him) in his avsFilmCutter editor implemented simple context-sensetive F1 help. It works if the function name coinside with htm file name in installed avisynth docs package.
Probably we can for example to parse filters.dat and build list of functions and correspondent files. Properly named htm (html, txt ?) files may be searched both in plugins dir and in some other (current) dir.
qwerpoi
17th September 2006, 19:31
qwerpoi,
Ebobtron (try contact him) in his avsFilmCutter editor implemented simple context-sensetive F1 help. It works if the function name coinside with htm file name in installed avisynth docs package.
Probably we can for example to parse filters.dat and build list of functions and correspondent files. Properly named htm (html, txt ?) files may be searched both in plugins dir and in some other (current) dir.
Yep, that by itself shouldn't be too difficult to implement. It seems a bit fragile though, it depends on the file structure of the installed avisynth docs (docs/english/corefilters or externalfilters) which may change in the future. I think it would be ideal for the context sensitive help to rely on the online avisynth wiki (so long as the urls are consistent), then any updating or adding new filters would be taken care of universally on the wiki side. But as a first attempt, finding the appropriate installed docs seems good enough, so I'll try and have it in the next release.
Fizick
17th September 2006, 19:38
we (you) can build list:
function name - file pathname
..
and make this list file editable by user.
You also may distinguish internal and external plugins.
and I am not sure in good future of wiki.
foxyshadis
18th September 2006, 01:21
Wiki would be far too problematic to scrape for information (and slow too), there's no enforced standard and many third-party entries are stubs pointing to the real documentation.
Fizick's idea is what I'd suggest, as well.
qwerpoi
18th September 2006, 02:33
Wiki would be far too problematic to scrape for information (and slow too), there's no enforced standard and many third-party entries are stubs pointing to the real documentation.
Fizick's idea is what I'd suggest, as well.
Actually, I wasn't referring to scraping the wiki, I was saying if the urls were consistent (like how Crop documentation is located at http://www.avisynth.org/Crop in the current wiki), the help would just open your browser to the appropriate url. But even that is fragile, so I'll implement Fizick's suggestion about storing the filter doc info (whether it's a file or url) per filter, it's the most flexible way to handle it.
Dr.D
18th September 2006, 04:20
Well, I have to say that this program is a revolution in AviSynth usage for me. I was looking for something like this for a long time. May be I just didn't know right programs or tools, but everything what I tried was a way way way less powerful than AvsP. Thank you, qwerpoi, great job!
Also thank you for the implementing of some features what I've suggested. Now, here is a little bit more :-):
Bugs:
- When zoomed, mouse wheel scrolling doesn't work.
- Keypad still doesn't work, did you test this on another computer?
Features:
- Remember path where session saved.
- Way to turn on/off a filter without manual editing. Same idea as sliders, but just checkbox instead.
Fizick
18th September 2006, 04:58
qwerpoi,
probably we can use some special variables (like %internal%, %external%, %plugins%) to point to general places, if the filter name is simple name.htm
Plugin functions now have (at least) two entries:
MVAnalyse and MVTools_MVAnalyse, so we can get DLL name.
Internal fuctions have one, but its list is fixed.
Problem is that Sharpen function is located in Blur.htm.
More discussion is needed.
qwerpoi
18th September 2006, 05:45
Well, I have to say that this program is a revolution in AviSynth usage for me. I was looking for something like this for a long time. May be I just didn't know right programs or tools, but everything what I tried was a way way way less powerful than AvsP. Thank you, qwerpoi, great job!
Thanks for the complement, always nice to hear :D . As far as I know (based off an old poll), the tools people tend to use with AviSynth are VirtualDub and Notepad, although quite a few people use their own favorite text editor instead of Notepad. It always bothered me that VirtualDub was pretty much a requirement for using AviSynth - not because I dislike VirtualDub, I think it's a fantastic program, but because it's essentially a competitor to AviSynth, many functionalities overlap, and I felt it was not an optimal way to work with AviSynth. This is the fundamental reason I made AvsP, I'm glad it works well for you too. Now, down to business:
- When zoomed, mouse wheel scrolling doesn't work.
You're probably right (not using a mouse on my laptop right now), it's likely due to the scrollbars in the video window, I'll try to find a way to fix it in the next release.
- Keypad still doesn't work, did you test this on another computer?
I haven't tested much, but on one computer the keys seemed to work fine, page up/page down jumps by 1 minute in the video, etc. I'll try to test different computers when I get the chance.
- Remember path where session saved.
Good idea, it'll be in the next release.
- Way to turn on/off a filter without manual editing. Same idea as sliders, but just checkbox instead.
I'm not sure I fully understand. If you mean turning off a filter without using comments in the script, that would be a bit tricky, since filters can be buried within a line or even span multiple lines. It's an interesting idea, though, I'll think about it some more.
qwerpoi,
probably we can use some special variables (like %internal%, %external%, %plugins%) to point to general places, if the filter name is simple name.htm
Plugin functions now have (at least) two entries:
MVAnalyse and MVTools_MVAnalyse, so we can get DLL name.
Internal fuctions have one, but its list is fixed.
Problem is that Sharpen function is located in Blur.htm.
More discussion is needed.
My thinking is that I can supply appropriate filenames for all the built-in filters. For third-party plugins, the program will search (only one time) for docs in the %internal%, %external%, and %plugin% directories - if not found then no context documentation is provided (or maybe a google search would be a default). The user can always be able to add or edit the docpath from the menu command "Options -> AviSynth filters" (it's not there right now, I will have to modify the dialog box accordingly). This isn't a fully automated approach, but it's fairly stable. Let me know what you think.
Dr.D
18th September 2006, 06:48
I'm not sure I fully understand. If you mean turning off a filter without using comments in the script, that would be a bit tricky, since filters can be buried within a line or even span multiple lines. It's an interesting idea, though, I'll think about it some more.
Something like the following will be ok for me:
DeHalo_alpha(rx=1.5, ry=1.5) [<"DeHalo">]
and checkbox "DeHalo" in sliders area.
Another, more universal, idea:
dull = last
sharp = dull.LimitedSharpenFaster(strength=250)
Soothe(sharp, dull, keep=50)
but it's may be too complicated.
foxyshadis
18th September 2006, 07:33
Since AvsP doesn't parse and execute the script itself, just hands that off to avisynth, it's probably not possible, with the exception of a full-line disable (you might need to have the script handy with checkboxes by every line), or as mentioned, regions. Something like:
###
Sharpen().UnSharpMask()
###
Thinking about it, I couldn't even tell you how incredibly useful that would be. So many times, I've done nothing but flip back and forth between vdub and editplus to enable and disable one line (usually I just use interleave if I realize I'm going to be doing it).
Ebobtron
18th September 2006, 08:20
So many times, I've done nothing but flip back and forth between vdub and editplus to enable and disable one line (usually I just use interleave if I realize I'm going to be doing it).Hi foxy,
You can program a tool button on FilmCutter (http://members.aol.com/avsfilmcutter)to launch VirtualDub load your script and view the changes. When VirtualDub closes your back in FilmCutter. One click.
But then Fizick told me about VirtualDubMod's script editor so I implemented the preview mode shown in the second shot below.
http://members.aol.com/avsfilmcutter/ss_01.jpg
Edit your script then click update. This thing is a long way from perfect but it works.
http://members.aol.com/avsfilmcutter/ss_03.jpg
qwerpoi,
Ebobtron (try contact him) in his avsFilmCutter editor implemented simple context-sensetive F1 help. It works if the function name coinside with htm file name in installed avisynth docs package.So Fizick,
Are you trying to tell me that it works. :rolleyes:
:thanks:
@ qwerpoi,
I just love the sliders. ;)
mgh
18th September 2006, 13:13
Superb tool for tweaking parameters of Avisynth filters. The sliders make it very easy. Works with your own functions as well.
Three cheers
qwerpoi
19th September 2006, 09:57
Another, more universal, idea:
dull = last
sharp = dull.LimitedSharpenFaster(strength=250)
Soothe(sharp, dull, keep=50)
but it's may be too complicated.
Thinking about it, I couldn't even tell you how incredibly useful that would be. So many times, I've done nothing but flip back and forth between vdub and editplus to enable and disable one line (usually I just use interleave if I realize I'm going to be doing it).
Hmm, I may be able to pull off the ... syntax. Ultimately, though, whatever I do for section toggling, it probably won't be as memory efficient as making separate scripts in multiple tabs. In other words, the toggling mechanism requires reloading a modified script every time you toggle (unless I build a script for every permutation of toggle sections). Using multiple tabs loads a script only once per tab, and is easy to switch between (middle-mouse scroll, Ctrl-Tab, keyboard shortcuts ~, 1, 2, 3, 4, etc). But I'll still give this idea a shot, could be useful for large permutations.
@ qwerpoi,
I just love the sliders. ;)
Many thanks. When I get some time, I'll try out your program, I never noticed it before (I need to read the forums more carefully it seems). It looks like you did a great job with all the encoding features, very cool stuff.
Superb tool for tweaking parameters of Avisynth filters. The sliders make it very easy. Works with your own functions as well.
Three cheers
:thanks: Glad you like the program.
krieger2005
19th September 2006, 14:09
Your Program can't handle String-Expressions (Syntax-Highlight is wrong) like that:
ScriptClip(Z, """
\ YV12LutXY(X,Y,"<something>")
\""")
Fizick
19th September 2006, 15:54
zoom 300% is broken?
niiyan
19th September 2006, 17:28
Japanse translation file is here:
http://niiyan.net/?AvsP
Fizick
19th September 2006, 17:36
And Russian is here:
http://avisynth.org.ru/avsp/avsp112translation-ru.zip
qwerpoi
19th September 2006, 18:40
Your Program can't handle String-Expressions (Syntax-Highlight is wrong) like that:
ScriptClip(Z, """
\ YV12LutXY(X,Y,"<something>")
\""")
Yes, you're right, it doesn't properly handle triple-quoted strings. As I mentioned in an earlier post, I didn't write a syntax highlighter for AviSynth, I just borrowed an already written one for a similar language (Octave). Eventually I'll have to write my own highlighter, it may not be for a while (my to-do list is getting enormous), sorry about the inconvenience.
zoom 300% is broken?
If you're referring to the status bar messages, yes, it's a bug, it'll be fixed in the next release.
Japanse translation file is here:
http://niiyan.net/?AvsP
And Russian is here:
http://avisynth.org.ru/avsp/avsp112translation-ru.zip
Very cool, I tested both out, they work great. I added the links to the first post. As I mentioned before, with any new version I'll be sure to mark any new or changed messages in "__translation.py" so you can just modify your own accordingly.
And just so you guys know, I've been pretty busy lately, the next release will probably be during or right after the weekend. I'm currently working on putting together some documentation for the program as well, something that has been lacking. Well, unless you can read Japanese (http://www.avisynth.info/?AvsP) :) - I believe that wiki was put together by niiyan, not me, so it's about time I start writing docs as well.
wuziq
19th September 2006, 22:49
just discovered this app today.. it's awesome. thanks for all your work.
krieger2005
20th September 2006, 00:43
Yes, you're right, it doesn't properly handle triple-quoted strings. As I mentioned in an earlier post, I didn't write a syntax highlighter for AviSynth, I just borrowed an already written one for a similar language (Octave). Eventually I'll have to write my own highlighter, it may not be for a while (my to-do list is getting enormous), sorry about the inconvenience.
I can imagine the length of your to-do-list :). It has many aficionados. I am one of them :). Thank you very much.
niiyan
20th September 2006, 17:27
Well, unless you can read Japanese (http://www.avisynth.info/?AvsP) :) - I believe that wiki was put together by Niiyan, not me, so it's about time I start writing docs as well.
You're right. I wrote it because I'm very impressed by your program. But what I wrote is just an introduction of AvsP. I'm looking forward to your docs. I can discover something I don't know yet :)
I hope you will call me not "Niiyan" but "niiyan" (in lowercase) ;)
qwerpoi
20th September 2006, 20:13
just discovered this app today.. it's awesome. thanks for all your work.
b^_^d You're welcome.
I can imagine the length of your to-do-list :). It has many aficionados. I am one of them :). Thank you very much.
Thanks for understanding. It's actually pretty important that I write my own syntax highlighter for other reasons, since I have user sliders and other AvsP-specific syntax. But it's a fair bit of work, and I never managed to make an external syntax highlighter work with my framework (wxPython), so I'm going to save that task for a later date, since it's unclear how long it will take.
You're right. I wrote it because I'm very impressed by your program. But what I wrote is just an introduction of AvsP. I'm looking forward to your docs. I can discover something I don't know yet :)
I hope you will call me not "Niiyan" but "niiyan" (in lowercase) ;)
Hee hee, sorry about the name mispelling, I edited my earlier post.
For those interested, I've finished a good number of features for the next release, context sensitive help (I think you'll be happy with the implementation), section toggling using the second syntax proposed by Dr. D as discussed earlier, etc. I need to take care of a few small things before releasing, and hopefully I can get the docs out at the same time.
krisq
20th September 2006, 20:34
just got an idea:
is it possible for you to add some modifier key ('shift' maybe?) to make sliders jump by mod16 (would be great to set that value in options)? you know, for resizing and stuff...:)
qwerpoi
20th September 2006, 21:03
just got an idea:
is it possible for you to add some modifier key ('shift' maybe?) to make sliders jump by mod16 (would be great to set that value in options)? you know, for resizing and stuff...:)
Hum, I think it can be done, I'll try and have something like that in the coming release (no guarantees, though). It's a good request, since sliders can't be used effectively with resizers, but what I wanted to do was to handle resizing with some sort of resize/aspect ratio calculator (like gordian knot), sort of similar to AvsP's crop editor, which is separate from sliders, gives mod information, etc. But since the resize calculator isn't coming anytime soon, I'll try and implement your idea, it could be useful for other things as well.
Dr.D
20th September 2006, 21:33
just got an idea:
is it possible for you to add some modifier key ('shift' maybe?) to make sliders jump by mod16 (would be great to set that value in options)? you know, for resizing and stuff...:)
I vote for this idea too, recently I was thinking about this when I tried to use slider for ChromaShift(C), C could be only even.
May be just add an aditional optional parameter for sliders - step:
ChromaShift(C=[<"C", 2, 8, 4, 2>])
means from 2 to 8 with step 2?
krisq
21st September 2006, 07:29
I vote for this idea too, recently I was thinking about this when I tried to use slider for ChromaShift(C), C could be only even.
May be just add an aditional optional parameter for sliders - step:
ChromaShift(C=[<"C", 2, 8, 4, 2>])
means from 2 to 8 with step 2?
excellent idea :cool:
Henrikx
21st September 2006, 19:39
German translation for AvsP 1.1.2
http://forum.gleitz.info/showpost.php?p=301023&postcount=14
Thx again to qwerpoi
qwerpoi
21st September 2006, 19:48
I vote for this idea too, recently I was thinking about this when I tried to use slider for ChromaShift(C), C could be only even.
May be just add an aditional optional parameter for sliders - step:
ChromaShift(C=[<"C", 2, 8, 4, 2>])
means from 2 to 8 with step 2?
I've implemented this in the coming version, slightly differently. Instead of the additional parameter, you specify the step in the slider label, in your example it would be [<"C % 2", 2, 8, 4>], a resize width would look like [<"width % 16", 320, 640, 320>], etc. This upcoming version is going to be tasty :)
German translation for AvsP 1.1.2
http://forum.gleitz.info/showpost.php?p=301023&postcount=14
Thx again to qwerpoi
Excellent! I'll add the link to the first post.
Henrikx
22nd September 2006, 20:57
@qwerpoi
I try to explain.....
In my first German-translation of AsvP,somebody wished,that I translate Ctrl to Strg (German keyboard) .
For Example : "Cut\tCtrl-X" : u"Ausschneiden\tStrg-X",
But than,every lover-case character becomes interpreted as Control-Funktion ? For Example : Key O without Crtl(Strg) ,a window opened ?
Why ?
qwerpoi
22nd September 2006, 21:12
@qwerpoi
I try to explain.....
In my first German-translation of AsvP,somebody wished,that I translate Ctrl to Strg (German keyboard) .
For Example : "Cut\tCtrl-X" : u"Ausschneiden\tStrg-X",
But than,every lover-case character becomes interpreted as Control-Funktion ? For Example : Key O without Crtl(Strg) ,a window opened ?
Why ?
Oh, the short answer is that you should not translate the keyboard shortcut part of the strings, they are used by the program to register the actual keyboard shortcuts. I can't explain exactly what happens when you translate "Ctrl" to "Strg", but for the moment you should leave those parts alone.
Actually I'm not sure what's the recommended way to handle this situation, obviously it would be nice to translate the keyboard shortcuts as well. I'll do a little research on this.
Henrikx
22nd September 2006, 21:30
THX qwerpoi
qwerpoi
23rd September 2006, 09:06
New release, version 1.1.5 (download link in the first post), this one's a big one. Here's the list of changes:
* show filter documentation by clicking the calltip (suggested by Fizick)
* toggle portions of script text (suggested by Dr. D)
* now possible to specify modulo values with user sliders (suggested by krisq)
* remember path of last saved session (suggested by Dr. D)
* reworked filter presets to be easier to edit
> fixed mouse wheel tab switching when zoomed (thanks Dr. D)
> fixed text visibility issue when using Find or Find next (thanks mkanel)
> fixed small mistakes with some messages (thanks niiyan)
> fixed small bug with recentdir pathname
> fixed minor video preview window sizing issues
> fixed minor bug when closing the only tab
I also created a website (http://www.avisynth.org/qwerpoi/), it covers the majority if not all of AvsP's features, be sure to check it out. The site's a bit rough around the edges (it's my first website, I have no html or css skills), and looks a bit fugly in Internet Explorer. Any comments or suggestions are certainly welcome, but just so you know I'm not going to spend tons of time trying to design a great looking website.
The most noticeable new feature is the ability to open a filter's documentation by clicking on a popup calltip. AvsP automatically tries to find the filter's documentation in certain directories based on filenames. You can edit the search directories, or even specify a file or url to open for each filter. Read more about it here (http://www.avisynth.org/qwerpoi/Text.html) in the "Calltips" section.
Another big new feature is the section toggle tags, as discussed several posts earlier. Section toggle tags allow you to tag a portion of your script for quick enabling/disabling with a check box. Read about it here (http://www.avisynth.org/qwerpoi/UserSliders.html) in the "Section toggle tags" section.
A new addition for user sliders is the ability to specify mod step sizes, useful for resize filters where you want mod 16 widths, etc. Detailed description of the the syntax can be found here (http://www.avisynth.org/qwerpoi/UserSliders.html), at the bottom of the "Basic usage" section. And don't worry, the new syntax is completely backwards compatible, no need to rewrite any macros or scripts.
There are a lot of other changes in this release, so be sure to try it out and report back with any comments or problems.
Note to translators: the new version has about 20 new messages to translate, the new messages are marked in "__translation.py", here's a couple of lines from the file:
messages = {
"Find" : u"",
"Replace" : u"",
"Could not find docs for filter %(name)s!" : u"", # New in v1.1.5
So in order to update your translations, you can find each line with the text "# New in v1.1.5", translate the message, then copy it into your own translation file (the order of the messages is not important). Also note that at the very bottom of the new "__translation.py" is a list of messages that are no longer used (only two), you can delete them from your translation file (although there's no harm in leaving them in).
krisq
23rd September 2006, 09:55
Really great stuff :D. :thanks:
Henrikx
23rd September 2006, 14:44
...Update German translation to AvsP 1.1.5
niiyan
23rd September 2006, 16:22
Updated Japanese translation, too.
http://niiyan.net/?AvsP
Fizick
23rd September 2006, 18:58
qwerpoi,
thanks for your work!
Avisynth docs for filters works well.
For russian docs I set russian path before english.
One suggestion. I like to open russian general avisynth help on menu
Help -> avisynth help
Can you make its path selectable too?
I like to have
qwerpoi
23rd September 2006, 19:41
Really great stuff :D. :thanks:
You're welcome b^_^d . Hope the mod sliders are working out okay for you, let me know if you find any problems with them.
...Update German translation to AvsP 1.1.5
Updated Japanese translation, too.
http://niiyan.net/?AvsP
Wow, that was fast! Thanks!
One suggestion. I like to open russian general avisynth help on menu
Help -> avisynth help
Can you make its path selectable too?
Sure, it will be in the next release, which will most likely be in a couple of days, I want to wait a bit to see if there are any small bugs or other simple feature requests posted here that need to be changed as well.
Fizick
23rd September 2006, 20:07
Russian translation v1.1.5 is at http://avisynth.org.ru/avsp
Bh4i
24th September 2006, 12:34
This is a GREAT tool for beginners like me. Thanks man :)
Revgen
24th September 2006, 18:50
@qwerpoi
Would you mind implementing a hexadecimal slider. I want to be able to use the slider feature to change the color of the BlankClip filter.
The hexadecimal color values are like these: http://www.avisynth.org/ColorPresets
Only instead of "#" being in front, a "$" has to be used instead. Kinda like "color_blue" is $0000FF instead of #0000FF.
BTW thanks for this wonderful tool.
qwerpoi
24th September 2006, 20:35
Russian translation v1.1.5 is at http://avisynth.org.ru/avsp
Thanks, I updated the links on the first post and on the website's download page appropriately.
This is a GREAT tool for beginners like me. Thanks man :)
b^_^d You're welcome man, glad you like the program.
@qwerpoi
Would you mind implementing a hexadecimal slider. I want to be able to use the slider feature to change the color of the BlankClip filter.
The hexadecimal color values are like these: http://www.avisynth.org/ColorPresets
Only instead of "#" being in front, a "$" has to be used instead. Kinda like "color_blue" is $0000FF instead of #0000FF.
BTW thanks for this wonderful tool.
Well, implementing arbitrary list sliders is something I've been thinking about. It may appear in some shape in a future release, but I think there's a very elegant way to deal with your situation already. In your case, you can take advantage of the decimal color format AviSynth uses and make a user defined function. Here's an example script:
function rgb2decimal(int r, int g, int b)
{
return r*65536 + g * 256 + b
}
BlankClip(color=rgb2decimal([<"red", 0, 255, 0>], [<"green", 0, 255, 0>], [<"blue", 0, 255, 0>]))
Now you will have a slider for r, g, and b, which I think is a bit more intuitive than a single slider for the full range of colors. Basically, you can make your own arbitrary list sliders with user defined functions, particularly by taking advantage of AviSynth's Select function. I'll probably add a section to the website describing this type of approach.
Revgen
25th September 2006, 00:49
Thanks, I updated the links on the first post and on the website's download page appropriately.
b^_^d You're welcome man, glad you like the program.
Well, implementing arbitrary list sliders is something I've been thinking about. It may appear in some shape in a future release, but I think there's a very elegant way to deal with your situation already. In your case, you can take advantage of the decimal color format AviSynth uses and make a user defined function. Here's an example script:
function rgb2decimal(int r, int g, int b)
{
return r*65536 + g * 256 + b
}
BlankClip(color=rgb2decimal([<"red", 0, 255, 0>], [<"green", 0, 255, 0>], [<"blue", 0, 255, 0>]))
Now you will have a slider for r, g, and b, which I think is a bit more intuitive than a single slider for the full range of colors. Basically, you can make your own arbitrary list sliders with user defined functions, particularly by taking advantage of AviSynth's Select function. I'll probably add a section to the website describing this type of approach.
Yeah, I know about that. I just hate having to use 3 sliders though.:D
I'll just use that method for now. It's better than having no sliders.
Thanks.
foxyshadis
25th September 2006, 03:04
But how would you even work a single slider that includes the full range? Changing just the red would be incredibly painful, as you then have to try to realign the green and blue (or, changing just the luma and having to line the two chroma planes back up).
The best solution is a real colorpicker, but who knows how long that could take to implement (and for a function not often used); in the meantime a triple slider is the most functional.
niiyan
25th September 2006, 16:36
@qwerpoi
Can you add VirtualDub's "Jump to frame" feature to AvsP?
When you choose "Go > Go To Frame..." in VirtualDub menu or just click "Ctrl + G", "Jump to frame" window appears.
Enter the frame number (or frame at time) in the input box in the window, then you can jump to the frame.
mkanel
25th September 2006, 17:05
qwerpoi,
I hate to add to your workload but I've found a bug. When using one of my own functions AvsP reports an error during preview even though I can preview it in AVSEdit and other software.
Here's the report from AvsP:
Traceback (most recent call last):
File "AvsP.py", line 2899, in OnMenuVideoRefresh
File "AvsP.py", line 4093, in ShowVideoFrame
File "wxp.pyo", line 708, in SetRange
NameError: global name 'sys' is not defined
The function just makes a collage of a selectable number of rows and columns and a selectable border size.
You can call it with this Version.Collage
Here's the function that triggered the error:
function Collage(clip clip, int "NumberOfRows", int "NumberOfColumns",int "Borders")
{
NumberOfRows=default(NumberOfRows,2)
NumberOfColumns=default(NumberOfColumns,2)
Borders=default(Borders,2)
Global NumberOfRows=NumberOfRows
Global NumberOfColumns=NumberOfColumns
Global Borders=Borders
Global frame=clip
Global Row=SH(frame.trim(0,-1).addborders(0,0,Borders,Borders),0,0) #Stack Horizontally
MakeCollage=SV(Row,0)
return MakeCollage
}
#Stack Horizontally
Function SH(clip H, int n, int c)
{
n=n+1
return (n==NumberOfColumns) ? H.crop(0,0,-Borders,-0)
\ : SH(stackhorizontal(H,frame.trim(c*NumberOfColumns+n,-1)
\ .addborders(0,0,Borders,Borders)),n,c)
}
#Stack Vertically
function SV(Clip Rows, int c)
{
c=c+1
NewRow=SH(frame.trim(c*NumberOfColumns,-1).addborders(0,0,Borders,Borders),0,c)
return (c==NumberOfRows) ?Rows.crop(0,0,-0,-Borders) : SV(stackvertical(Rows,NewRow),c)
}
Let me know if you need any more information.
Now a question. I would like to have some of my user functions appear with syntext highlighting, I can add them one at a time under options>avisynth filters. I tried adding them to the file avsfilters.txt created by tsp's ExtractFilters progam but AvsP doesn't recognize them. Should it?
Your program keeps getting better and better, Thanks for all the hard work? Mike.
qwerpoi
26th September 2006, 00:40
@qwerpoi
Can you add VirtualDub's "Jump to frame" feature to AvsP?
When you choose "Go > Go To Frame..." in VirtualDub menu or just click "Ctrl + G", "Jump to frame" window appears.
Enter the frame number (or frame at time) in the input box in the window, then you can jump to the frame.
This feature is already there, the text box on the video controls at the bottom of the program works almost exactly like VirtualDub's "Jump to frame" window. Just type in a frame or time and hit enter.
I hate to add to your workload but I've found a bug. When using one of my own functions AvsP reports an error during preview even though I can preview it in AVSEdit and other software.
Thanks for bringing it up, I'll try and find out what's going on. And don't worry about my workload, I'm always interested in squashing bugs.
Edit: Found and fixed the problem, it'll be in the next release (a bugfix release, it'll be out in a day or two).
Now a question. I would like to have some of my user functions appear with syntext highlighting, I can add them one at a time under options>avisynth filters. I tried adding them to the file avsfilters.txt created by tsp's ExtractFilters progam but AvsP doesn't recognize them. Should it?
By gum, you're right, I must have broken the feature when I changed the file format a couple of versions ago. I'll get this fixed by the next release.
Your program keeps getting better and better, Thanks for all the hard work? Mike.
You're welcome? :)
nibbles
26th September 2006, 01:24
What a great app, but I can't try your new version until my 36 hour encode gets finished!
Any possibilty to get an aspect ratio right click off the preview? Some of my vids are anamorpherric.
AvsP is a huge help. It's brilliant. A bit disconcerting while zooming in and out and switching
between tabs the way it sort of burgers the workspace or doesn't resize the sliders, but you know
that was the old version, where you said the new one has fixes to the preview... so I must try!
Good vibes on this thread. Ok, thanks. :)
mkanel
26th September 2006, 02:27
And don't worry about my workload, I'm always interested in squashing bugs.
OK, one more. When using Replace... (Ctrl-H) Replace All works fine but Replace, replaces not the highlighted text but the next instance of the text. So if you want to replace most instances of "ZZZ" with "YYY" if you click on Find Next it will highlight the first instance of "ZZZ" when you click Replace it replaces the NEXT instance not the highlighted instance of "ZZZ" with "YYY". I think I just said the same thing two times, that's my own bug. :)
Thanks again. Mike.
qwerpoi
26th September 2006, 05:21
Any possibilty to get an aspect ratio right click off the preview? Some of my vids are anamorpherric.
Um, maybe. Any resize like that makes for an unfair comparison (resizing filters the image), so in my opinion it's best to work with your scripts in its native aspect ratio. If you wanted to see your script in action you could always use the external preview and set the appropriate aspect ratio with your media player. Or you can resize your script with AviSynth itself - any resize my program would do would likely be of lower quality. I'll still give it some thought, though.
AvsP is a huge help. It's brilliant. A bit disconcerting while zooming in and out and switching
between tabs the way it sort of burgers the workspace or doesn't resize the sliders, but you know
that was the old version, where you said the new one has fixes to the preview... so I must try!
Be sure to report back if there are any such problems with the new version, I'm still working on making all that layout code as robust as possible.
OK, one more. When using Replace... (Ctrl-H) Replace All works fine but Replace, replaces not the highlighted text but the next instance of the text.
Good catch! I took a look at my find and replace code, it was a little sloppy (written a loong time ago), I fixed the replace issue, it'll be in the next release.
honai
26th September 2006, 06:05
Whoa, great app!
You could make it a little bit more HD-friendly (where screen estate to the right and bottom of the preview pane is limited) by positioning the sliders not to the right of the preview window, but to the right of the code section in a separate pane, preferably resizable.
qwerpoi
26th September 2006, 07:36
Whoa, great app!
You could make it a little bit more HD-friendly (where screen estate to the right and bottom of the preview pane is limited) by positioning the sliders not to the right of the preview window, but to the right of the code section in a separate pane, preferably resizable.
It's a good suggestion, but unfortunately one that I probably won't follow up on any time soon. I am aware that the current layout of all the elements is not optimal, particularly for widescreen videos, but the layout code has gotten to be a huge mess, it wouldn't be easy to change. I kind of like the way things are, but ultimately as you say there should be options to make the sliders and/or video preview separate dockable windows.
krisq
26th September 2006, 07:57
I've got a stupid question :). Is there a shortcut to switch between text editor and video window?
BTW modulo for sliders is working perfectly :D
qwerpoi
26th September 2006, 08:22
I've got a stupid question :). Is there a shortcut to switch between text editor and video window?
Umm, I guess not directly. You can use the Shift-F5 shortcut to hide the preview which automatically shifts focus to the text editor, and from there you can use F5 to show the preview. Is that what you need?
krisq
26th September 2006, 09:11
It's a little inconvenient solution for me. Would be a problem to add such a shortcut? Sometimes I need to jump few frames and make a correction in the script and again jump few frames and I hate to use the mouse for this.
qwerpoi
26th September 2006, 10:04
New version 1.1.6, mostly a bugfix version, get it from the download page (http://www.avisynth.org/qwerpoi/Download.html). Here are the changes:
* added ability to specify a file or url for AviSynth help (suggested by Fizick)
* added shortcut Shift-Tab to switch focus between the text and video (suggested by krisq)
> fixed bug with one frame long video (thanks mkanel)
> fixed read from avsfilters.txt feature (thanks mkanel)
> fixed minor bug with Replace and Find Next (thanks mkanel)
> cleaned up calltip and argument highlight code to be more robust
One other thing to note is that I added a section on the website about using arbitrary lists with user sliders, you can read about it here (http://www.avisynth.org/qwerpoi/UserSliders.html#sliders-for-non-numbers). Basically it goes over how to use AviSynth scripting to do stuff like make a slider which switches between a list of strings. This is the example script from the website:
AVISource("C:\test.avi")
Histogram(Select([<"HistogramMode", 0, 2, 0>], "classic", "levels", "color"))
This script has a user slider which goes between 0, 1, and 2, and uses AviSynth's Select function to map those values to the strings "classic", "levels", and "color" (which are several possible values for the mode argument for Histogram). Again, you can read about it in a little more detail at the webpage (http://www.avisynth.org/qwerpoi/UserSliders.html#sliders-for-non-numbers).
And for Team AvsP Translators :D , be aware that there are about 5 new messages to translate, and zero "no longer used" messages.
krisq
26th September 2006, 10:39
w00t! Amazing, thanks :D
Henrikx
26th September 2006, 13:17
Update German translation to AvsP 1.1.6
niiyan
26th September 2006, 16:31
This feature is already there, the text box on the video controls at the bottom of the program works almost exactly like VirtualDub's "Jump to frame" window. Just type in a frame or time and hit enter.
I didn't notice that feature. It has been written in your online documents, but I haven't read it yet... I'm sorry. Next time, I will read your docs before I ask you.
And here is my apology :)
http://niiyan.net/?AvsP (update Japanese translation)
qwerpoi
26th September 2006, 19:27
w00t! Amazing, thanks :D
No problem. Actualy, I'm finding that Shift-Tab shortcut to be pretty handy myself, so thanks for bringing it up. I'll update the website to mention it when I get the chance.
Update German translation to AvsP 1.1.6
Cool, fast as always!
I didn't notice that feature. It has been written in your online documents, but I haven't read it yet... I'm sorry. Next time, I will read your docs before I ask you.
And here is my apology :)
http://niiyan.net/?AvsP (update Japanese translation)
Don't worry about it, I'm always happy to answer questions (if for no other reason than a free bump for my thread :) ). The online docs are not 100% complete, so any question is valid. And thanks for the speedy translation!
krisq
27th September 2006, 11:22
another idea: aspect ratio information on the status bar would be handy :)
Champs
27th September 2006, 15:59
@qwerpoi
hi, first of all thank you for this awesome Avs script editor/previewer! So awesome that I have almost completely stopped using VDubMod for my editing/previewing task.
A few feature requests or something of that sort...
1)
Regarding the "Ctrl+G jump-to-frame" feature request made by niiyan, I have been using the box at the bottom, but my request would be to have a shortcut key(s) to shift focus (cursor/prompt) into the box. IMHO what's nice about "Ctrl+G" feature of VDub/AviUtl/MPC is that the cursor is already in the box so no need to move and click a mouse to set a prompt there. If you could assign "Ctrl+G" to such a task that'd be great as I'm so used to it, but since you just added the Shift-Tab shortcut to switch focus b/w text editor and video pane, maybe a similar key combo would be aesthetically preferred by you, I don't know...in any case having a shortcut key will be very helpful.
2)
Speaking of Shift-Tab, I have been using Ctrl+Tab to switch tabs and this is a nice feature, but also find it very difficult to press (I've been trying to use my left pinky and wedding finger), I may be the only one w/ this difficulty, but may I possibly ask for a change to another key-combo that's easier to press?
(I may find a similar difficulty w/ Shift-Tab but this combo's much easier)
3)
When I try to replace all occurences of a single word/phrase by another using Ctrl+H, I can do so w/o problems, but some sort of an error message always pops up. I don't think it's suposed to.
4)
If I have a script like:
PLUGIN_PATH = String("C:\Program Files\AviSynth 2.5.6\otherPlugins")
Loadplugin(PLUGIN_PATH + "\degrainmedian.dll")
Loadplugin(PLUGIN_PATH + "\vaguedenoiser.dll")
...
then the coloring scheme works fine, but if I change this to
PLUGIN_PATH = String("C:\Program Files\AviSynth 2.5.6\otherPlugins\")
Loadplugin(PLUGIN_PATH + "degrainmedian.dll")
Loadplugin(PLUGIN_PATH + "vaguedenoiser.dll")
...
then all the function calls (e.g. Loadplugin, Import, Mpeg2source etc) and comment lines are colored wrongly (purple by default setting). As shown above, I'm not having a problem, and I don't know if it can even be called a bug, but I just wanted to report it to you, as it may not be an intended outcome.
Regards.
nibbles
27th September 2006, 18:26
It was probably user error the way I didn't set the max height
and max width of the preview window to enable scroll bars rather
than let the preview window, when zooming, overrun the sliders.
Having done a bunch of layout in Java, I understand what you
mean when the code gets complex. Thanks for discussing
aspect ratios in the preview versus in a seperate application.
Your suggestion of having the preview be unaltered is the
better way to go, yes. The option to zoom seemed like the
option to adjust aspect ratios, that's all I was thinking.
I have a runtime issue with 1.1.6. I unzip a fresh copy.
Avsp is installed in: C:\Program Files (x86)\AvsP
Avisynth is in: C:\Program Files\AviSynth 2.5.7RC1
I click Options -> Settings...
I click the OK button.
I get an error popup:
qwerpoi
27th September 2006, 20:42
another idea: aspect ratio information on the status bar would be handy :)
I should be able to do it, but it would be a little tricky. In other words it's trivial to show the decimal width divided by height, but I assume that people would want to see 16:9 or 4:3 when appropriate. I'm not much of an aspect ratio guru, so (a) I don't know all the "key" aspect ratios, and (b) I don't know how much tolerance is acceptable (ie, does 1.35 still count as 4:3). If someone can point out a link, great, otherwise I'll try and implement it showing the width/height decimal only.
Edit: Looks like doom9's aspect ratio page had all the info I needed. I implemented the feature, great stuff, especially handy with the crop editor! I'll try to get the new release out in a couple of days.
1)
Regarding the "Ctrl+G jump-to-frame" feature request made by niiyan, I have been using the box at the bottom, but my request would be to have a shortcut key(s) to shift focus (cursor/prompt) into the box. IMHO what's nice about "Ctrl+G" feature of VDub/AviUtl/MPC is that the cursor is already in the box so no need to move and click a mouse to set a prompt there. If you could assign "Ctrl+G" to such a task that'd be great as I'm so used to it, but since you just added the Shift-Tab shortcut to switch focus b/w text editor and video pane, maybe a similar key combo would be aesthetically preferred by you, I don't know...in any case having a shortcut key will be very helpful.
Hah, I was thinking the same thing. I'll use Ctrl-G since everyone who uses AviSynth is used to vdub. It'll be in the next release.
2)
Speaking of Shift-Tab, I have been using Ctrl+Tab to switch tabs and this is a nice feature, but also find it very difficult to press (I've been trying to use my left pinky and wedding finger), I may be the only one w/ this difficulty, but may I possibly ask for a change to another key-combo that's easier to press?
(I may find a similar difficulty w/ Shift-Tab but this combo's much easier)
Hmm, Ctrl-Tab and Ctrl-Shift-Tab are the standard shortcuts for tabbed programs (Firefox, um, K-Meleon, uh, I can't think of any other examples at the moment :) ). If you want to suggest another set of shortcuts (you'll have to peruse through the menus to see what's already being used), or if you can find other programs which use different shortcuts, I'm willing to listen. By the way, if the video preview is visible, there are a couple of more keyboard shortcuts available, read more here (http://www.avisynth.org/qwerpoi/Video.html#comparing-multiple-scripts).
3)
When I try to replace all occurences of a single word/phrase by another using Ctrl+H, I can do so w/o problems, but some sort of an error message always pops up. I don't think it's suposed to.
If you can see the error message (most of the time it will pop up in a separate window), paste the exact message here, I'll get on it.
4)
If I have a script like:
PLUGIN_PATH = String("C:\Program Files\AviSynth 2.5.6\otherPlugins")
Loadplugin(PLUGIN_PATH + "\degrainmedian.dll")
Loadplugin(PLUGIN_PATH + "\vaguedenoiser.dll")
...
then the coloring scheme works fine, but if I change this to
PLUGIN_PATH = String("C:\Program Files\AviSynth 2.5.6\otherPlugins\")
Loadplugin(PLUGIN_PATH + "degrainmedian.dll")
Loadplugin(PLUGIN_PATH + "vaguedenoiser.dll")
...
then all the function calls (e.g. Loadplugin, Import, Mpeg2source etc) and comment lines are colored wrongly (purple by default setting). As shown above, I'm not having a problem, and I don't know if it can even be called a bug, but I just wanted to report it to you, as it may not be an intended outcome.
The short answer is don't end any string with a backslash, and it will highlight correctly. The long answer is that I didn't write the code to colorize the text, I borrowed code that was written to colorize a different progamming language (Octave), so you'll end up seeing weird issues like this. I guess this will have to be bumped up on my to-do list :scared: .
I have a runtime issue with 1.1.6. I unzip a fresh copy.
Avsp is installed in: C:\Program Files (x86)\AvsP
Avisynth is in: C:\Program Files\AviSynth 2.5.7RC1
I click Options -> Settings...
I click the OK button.
I get an error popup:
I can't see the attachment yet (it's pending approval), when I can I'll get on it.
Edit: I think I know what the problem is, it's a stupid mistake on my part. The problem is with the "AviSynth help file/url:" entry in the "General" tab, replace %avisynthdir% in that text box with your actual AviSynth directory (in your case, C:\Program Files\AviSynth 2.5.7RC1). You should be able to hit OK from now on with no problems. I'll get that fixed by the next release.
nibbles
27th September 2006, 21:06
Yes that was this issue. Thanks for checking into it. Also I wanted to mention
that the preview pane is working better for me in 1.1.6.
Fizick
27th September 2006, 21:37
I can not save to avi with avs2avi in localized Russian version 1.1.6.
english version works fine.
qwerpoi
28th September 2006, 00:29
Also I wanted to mention
that the preview pane is working better for me in 1.1.6.
Whew! Thanks for letting me know. I'm sure that there still are some issues, but I'll be happy so long as the preview window behaves as expected under reasonable conditions.
I can not save to avi with avs2avi in localized Russian version 1.1.6.
english version works fine.
Aah, the problem is caused by the fact that I failed to translate one of the messages, I'll fix right away. I also noticed that there's quite a few messages in the avs2avi that I didn't make translatable, so that will be in the new release as well.
Seed
28th September 2006, 06:31
If you want to suggest another set of shortcuts (you'll have to peruse through the menus to see what's already being used), or if you can find other programs which use different shortcuts, I'm willing to listen.
I'm not Champs, but just a suggestion. Maxthon browser (a popular tabbed browser based on IE engine) uses F2 for switching tabs from right-to-left direction and F3 for left-to-right direction.
BTW, a very useful program, and thanks for all the effort.
qwerpoi
28th September 2006, 07:43
I'm not Champs, but just a suggestion. Maxthon browser (a popular tabbed browser based on IE engine) uses F2 for switching tabs from right-to-left direction and F3 for left-to-right direction.
BTW, a very useful program, and thanks for all the effort.
Ah, Maxthon, I used to use that program (back in the day when it was called MyIE2). I eventually switched to Firefox and then to K-Meleon (sort of a lightweight version of Firefox), but in many ways it sometimes feels like Maxthon does it better.
Anyway, back on topic, using F2 and F3 for tab switching sounds reasonable, but I've already reserved F1 through F4 for the first four macros. I did this because theoretically you would write a macro that you couldn't live without, or a macro that requires a lot of activation (the insanely complex "Manual Telecide" macro for example), and you would want to be able to access it as fast as possible. This already screws with the standard F3 shortcut for "Find next" which you'll find on nearly every program (although I guess not on Maxthon or ie), which I changed to Ctrl-Shift-F, which is kind of ugly.
So. I'm willing to change things around, let's say macros get Ctrl-F1 through Ctrl-F4, then F2 can be used to switch to the previous tab, F3 would switch to the next. I could leave the Ctrl-Tab and Ctrl-Shift-Tab shortcuts alone so as not to upset the Firefox/Foobar/every tabbed program in existence :) crowd. But I'm not going to change anything until more people chime in, either with approval or other possible shortcuts. Until then, you'll just have to live with the standard shortcuts, or spend more time with your mouse (shudder).
Henrikx
28th September 2006, 08:26
Aah, the problem is caused by the fact that I failed to translate one of the messages...I copied from the beginning the 6 new entries from 1.1.6 to 1.1.5. German Version works fine.
krisq
28th September 2006, 10:12
I should be able to do it, but it would be a little tricky. In other words it's trivial to show the decimal width divided by height, but I assume that people would want to see 16:9 or 4:3 when appropriate. I'm not much of an aspect ratio guru, so (a) I don't know all the "key" aspect ratios, and (b) I don't know how much tolerance is acceptable (ie, does 1.35 still count as 4:3). If someone can point out a link, great, otherwise I'll try and implement it showing the width/height decimal only.
Edit: Looks like doom9's aspect ratio page had all the info I needed. I implemented the feature, great stuff, especially handy with the crop editor! I'll try to get the new release out in a couple of days.
Actually, width/height decimal was extacly what I've had on my mind but hey, if you did it the better way... I won't argue with ya :D
Cheers.
[EDIT]
I think checkboxes for section toggling should be hierarchicly in the same place as in the script.
AVISource("c:\Download\movie.avi")
ConvertToYUY2()
HDRAgc (coef_gain=[<"HDR Gain", 0.0, 3.0, 1.0>], coef_sat=[<"HDR Saturation", 0.0, 3.0, 1.0>])
LanczosResize([<"Lanczos Width % 16", 352, 720, 640>],[<"Lanczos Height % 16", 352, 720, 480>])
In this case instead of:
Toggle HDR
Toggle Lanczos
4 x sliders
I would expect something like this:
Toggle HDR
2 x sliders
Toggle Lanczos
2 x sliders
qwerpoi
28th September 2006, 19:47
...I copied from the beginning the 6 new entries from 1.1.6 to 1.1.5. German Version works fine.
The dialog box shows up, but nothing happens when you hit the "Run" button if you translate the label to something else. It's a small mistake on my part, the code is supposed to check the translated label instead of "Run".
I think checkboxes for section toggling should be hierarchicly in the same place as in the script.
AVISource("c:\Download\movie.avi")
ConvertToYUY2()
HDRAgc (coef_gain=[<"HDR Gain", 0.0, 3.0, 1.0>], coef_sat=[<"HDR Saturation", 0.0, 3.0, 1.0>])
LanczosResize([<"Lanczos Width % 16", 352, 720, 640>],[<"Lanczos Height % 16", 352, 720, 480>])
In this case instead of:
Toggle HDR
Toggle Lanczos
4 x sliders
I would expect something like this:
Toggle HDR
2 x sliders
Toggle Lanczos
2 x sliders
Yeowch, that would be pretty difficult for various reasons, the primary one being that I would have to rewrite my layout code, which I just got to a nearly stable state. I'd follow up on your request if it were easy, but since it's not, and since I prefer using multiple tabs over toggle sections, I'm going to leave things as is, at least for now. Well, if other people feel the same way as you, I might do something about it then.
PS - I gave myself an avatar to help distinguish my posts in this thread. 5 style points to the first person who can tell me where it's from :D
krisq
28th September 2006, 20:18
No problem, I thought it was a simple thing to do :D I'll start to get use to it then :)
Zarxrax
28th September 2006, 21:02
Wow, I just tried AvsP and I absolutely love it! I've never even considered using anything besides notepad, but this has definately become my default avs editor!
I've got a couple suggestions for it.
1. Custom keyboard shortcuts. Some of the keyboard shortcuts seem strange to me, or some features I might use may not have a shortcut, so it would be nice if they were customizable.
2. Add an option to update the preview each time you change a line and then move focus to a different line. As you make changes to the script, it will automatically update the preview, so you dont have to keep pressing f5 to see the change.
3. Try to catch script errors in AvsP. If there is an error in the syntax, highlight the line, and maybe have a popup that tells the exact error. Instead of showing the error in the video preview, it can just show you right in the text editor. This feature would go a long ways towards making idea #2 actually usable. It would also be extremely nice to get some realtime feedback as you are typing. For instance, if I forget a comma somewhere, it would be nice if this could be highlighted immediately as im typing.
4. On the popup that shows the filter parameters, it would be nice if you could just click on certain parameters to add them to your script (and also let this be done via keyboard shortcuts).
For example, if I type the tweak command, the popup will show all the various parameters such as hue, sat, bright, etc. If you were to click on "sat" it would insert "sat=" into your script. As for the help function that it currently goes to when you click, I suppose that could be moved to the right-click (whch currently seems to give an error message!).
5. Double-click a tab to duplicate it. This will make comparing two scripts much quicker, as it would save you the trouble of making a new tab, going back to the original tab, copying, going back to the new tab, paste...
That's all the suggestions I've got for now. Thanks so much for this wonderful program!
qwerpoi
28th September 2006, 22:05
Wow, I just tried AvsP and I absolutely love it! I've never even considered using anything besides notepad, but this has definately become my default avs editor!
Excellent! My goal is to get all the die-hard notepad/virtualdub people to use AvsP, nice to see I'm on the right track.
1. Custom keyboard shortcuts. Some of the keyboard shortcuts seem strange to me, or some features I might use may not have a shortcut, so it would be nice if they were customizable.
A very good request, a fairly difficult request, for me at least. It's definitely on my to-do list - in the meantime, let me know which shortcuts are strange or which features require shortcuts and I'll try to accommodate.
2. Add an option to update the preview each time you change a line and then move focus to a different line. As you make changes to the script, it will automatically update the preview, so you dont have to keep pressing f5 to see the change.
Hmm, not sure how many people will use this, I imagine you'll get a lot of errors as you build your script line by line. But I'll try and make it an option.
3. Try to catch script errors in AvsP. If there is an error in the syntax, highlight the line, and maybe have a popup that tells the exact error. Instead of showing the error in the video preview, it can just show you right in the text editor. This feature would go a long ways towards making idea #2 actually usable. It would also be extremely nice to get some realtime feedback as you are typing. For instance, if I forget a comma somewhere, it would be nice if this could be highlighted immediately as im typing.
Ah, catching errors like vdubmod does is impossible for AvsP at the moment. AvsP is written in Python, not c++, so it actually doesn't communicate with AviSynth at all, it just makes .avs scripts. Obviously that's not to say that it's impossible, but it would require writing an AviSynth wrapper dll that's callable by Python's ctypes (something I've played around with a bit with little success). Future versions of AvsP (AvsP 3.0? :) ) really should have this level of communication available, but currently it works in a simplified fashion.
4. On the popup that shows the filter parameters, it would be nice if you could just click on certain parameters to add them to your script (and also let this be done via keyboard shortcuts).
For example, if I type the tweak command, the popup will show all the various parameters such as hue, sat, bright, etc. If you were to click on "sat" it would insert "sat=" into your script. As for the help function that it currently goes to when you click, I suppose that could be moved to the right-click (whch currently seems to give an error message!).
Huh. An interesting idea, but I don't think the editing component I'm using (scintilla) has a way to detect which argument you clicked on. I'll look into it a bit further. Also thanks letting me know about that right-click error, I'll fix it right away!
5. Double-click a tab to duplicate it. This will make comparing two scripts much quicker, as it would save you the trouble of making a new tab, going back to the original tab, copying, going back to the new tab, paste...
Now this I can do, a great suggestion. Keep in mind there are a couple of shortcuts already, adding a new tab already copies any selected text from the current tab (making it possible to duplicate a script with keyboard shortcuts entirely, Ctrl-A then Ctrl-N), also you can drag-and-drop text in the tab area to create a new tab with that text. But your suggestion is even faster, so it'll be in the next release. Thanks for all the feedback.
Zarxrax
28th September 2006, 23:10
Ah, I didn't know about the Ctrl+A, Ctrl+N trick.
As for the syntax checking, it should be possible to do a lot of it without reading errors directly from avisynth. Since I would assume AvsP is quite aware of what constitutes proper syntax, it should be possible to determine when you type something that blatantly violates the syntax. If you have ever used Microsoft Visual Studio, this is the kind of thing I am talking about--whenever you type something wrong, it will underline it with a squiggly line. Of course, I'm not sure how much work something like that would be. Maybe it's not feasible.
doxville
30th September 2006, 23:39
First of all: A big THANKS for the great tool!!
Excellent! My goal is to get all the die-hard notepad/virtualdub people to use AvsP, nice to see I'm on the right track.I am already very close to switch over to AvsP completely because of its great features, BUT...
I miss something like VDubMod's 'Cut' and 'Insert Frameset As Trims' function. With VDubMod, I find it very simple to cut out the commercial breaks out of TV-captures, and after that, with a simple click, you get the appropriate 'trim(...) ++ trim(...) ++ trim(...)' line for the script.
Would it be possible (or is it already planned) to implant this feature? This would also mean, the preview-function would have to be changed a little, so that the preview picture would be updated much more often than at the moment (not just at the position where you stop the slider, but all the way while you scroll the slider), to make it easier to find the right part of the movie.
Still, great, great tool, please keep up the excellent work!! :thanks:
foxyshadis
1st October 2006, 04:44
Well, avsfilmcutter does that very well - that's its main purpose in life. It'd be neat is avsp got it, but at least there's a tool around now.
qwerpoi
1st October 2006, 06:20
Sorry about not getting the new release out yet, I'm currently working on making keyboard shortcuts customizable, which should make some of you out there very happy. It'll probably be out sometime soon after the weekend.
As for the syntax checking, it should be possible to do a lot of it without reading errors directly from avisynth. Since I would assume AvsP is quite aware of what constitutes proper syntax, it should be possible to determine when you type something that blatantly violates the syntax. If you have ever used Microsoft Visual Studio, this is the kind of thing I am talking about--whenever you type something wrong, it will underline it with a squiggly line. Of course, I'm not sure how much work something like that would be. Maybe it's not feasible.
I'm not sure how much work it is either, but I'm guessing it's difficult. I think Microsoft Visual Studio can pull this stuff off with the C++ language because it's statically typed (ie, you must declare "int x" before saying "x=5", etc). The AviSynth language does not have this strict structure, which makes it more difficult to determine "on-the-fly" syntax errors. So my gut feeling is that to pull this off with the AviSynth language would be a lot of work with a lot of heuristics. Of course I could be wrong, anybody with any thoughts on the subject are welcome to bring it up.
I miss something like VDubMod's 'Cut' and 'Insert Frameset As Trims' function. With VDubMod, I find it very simple to cut out the commercial breaks out of TV-captures, and after that, with a simple click, you get the appropriate 'trim(...) ++ trim(...) ++ trim(...)' line for the script.
Would it be possible (or is it already planned) to implant this feature? This would also mean, the preview-function would have to be changed a little, so that the preview picture would be updated much more often than at the moment (not just at the position where you stop the slider, but all the way while you scroll the slider), to make it easier to find the right part of the movie.
Interesting request, I've never used vdubmod's script editor that much. I'll see what I can do, although the way I end up implementing it might be a bit different than vdubmod's method. As far as updating the picture while dragging, I'll try to make that an option. I find updating on release instead is more graceful (ever hear the crunching noise when you're dragging around in a large video in vdub?), and you can always use the keyboard shortcuts to fine tune positions (up/down skips by a second, pgup/pgdn skips by a minute), but in the end it's user preference.
Ebobtron
1st October 2006, 09:29
Well, avsfilmcutter does that very well - that's its main purpose in life. It'd be neat is avsp got it, but at least there's a tool around now.
Thanks foxy, wasn't sure anyone around here liked it.
I have AvsP v1.1.6 programmed in a tool button on my version of FilmCutter, open a script or name a new one and click the AvsP icon. When AvsP is done with the script just close and you are back, edited script loaded.
sorry qwerpoi, haven’t clicked it to much. But when I do the video preview jumps off the bottom of my screen. Mine is only 480 p high.
I am sure you are aware of it. But I must applaud your work on the filter parameter dialog box (and the rest of your work), coding all of that must have been a pain.
If I enhance avsFilmCutter's command line switches to include play. I could click AvsP from FilmCutter and then assign FilmCutter as the external player from your program.
Would that violate the looping rules? :)
I need some time off. ;)
Ebt
edman
1st October 2006, 14:01
Hi,
how do i make it show a preview of my source?
If i load the Plugins and the source it just shows me a big greyed out window. I can move the slider and AvsP counts the frames but no picture appears. When i try to zoom in the preview window just becomes black. Loading the Script in VD works fine. I'm using v.1.1.6.
Here's the script:
LoadPlugin("d:\encode\dgmpgdec148\DGDecode.dll")
LoadPlugin("d:\encode\dgmpgdec148\mpasource_25_dll_20031214\mpasource.dll")
MPEG2Source("d:\encode\alpha.d2v",cpu=3)
MPASource("d:\encode\alpha - DELAY -8ms.mpa")
AudioDub(video,audio)
thx
Ebobtron
1st October 2006, 14:19
Hi,
how do i make it show a preview of my source?
If i load the Plugins and the source it just shows me a big greyed out window. I can move the slider and AvsP counts the frames but no picture appears. When i try to zoom in the preview window just becomes black. Loading the Script in VD works fine. I'm using v.1.1.6.
Here's the script:
LoadPlugin("d:\encode\dgmpgdec148\DGDecode.dll")
LoadPlugin("d:\encode\dgmpgdec148\mpasource_25_dll_20031214\mpasource.dll")
MPEG2Source("d:\encode\alpha.d2v",cpu=3)
MPASource("d:\encode\alpha - DELAY -8ms.mpa")
AudioDub(video,audio)
thx
the script you show is not going to work at all
try
video = MPEG2Source("d:\encode\alpha.d2v",cpu=3)
audio = MPASource("d:\encode\alpha - DELAY -8ms.mpa")
AudioDub(video,audio)
edman
1st October 2006, 14:34
the script you show is not going to work at all it does work, i get no errors opening it in vd or mplayer.
try
video = MPEG2Source("d:\encode\alpha.d2v",cpu=3)
audio = MPASource("d:\encode\alpha - DELAY -8ms.mpa")
AudioDub(video,audio)
Same result, no difference at all
foxyshadis
1st October 2006, 15:45
Well, you anonymized the script or something, if you got no errors, because you removed a few required variable definitions from what you posted.
Anyway, no idea, since audiodub works fine here. But if you can replicate it with a few seconds of the video, it'd be useful to post it, or if you find out that it only happens to things of a certain length.
Back to avsP. The preview's gotten pretty nice, and I certainly have no problem with following its message to the offending line. You'll need a C++ hook to get any deeper. Three minor feature requests: Tab inserts actual tab option; tabstop length; and use .avst as templates. Bug fix: .avsi should not be a template. (When opening an avsi, working, and saving, it will save to an avs of the same name. Buggy behavior, but it'd be great to do the same thing for a "template".) Oh yeah, editplus has the neat feature of automatically saving your session when you close and reloading everything when you close. It's very handy, I hardly ever use manual sessions because of it, and it might be the #1 reason I use editplus.
Since you have binary config files, maybe a place in the options where you can open up a list of everything and its configuration would be nice, sort of like mozilla's about:config. That way you don't have to give gui space to every option.
nibbles
1st October 2006, 19:11
I like the idea of about:config, though I find Azureus preferences
easier to work with because it has decent groupings. The
tabbed options settings that AvsP uses now work well I figure.
I don't need syntax checking as I type. I would rather
concentrate than be distracted with things coming at me.
I also think the line has to be drawn somewhere at writing code
vs dropping objects from your toolbox onto the script window.
I'm not sure where to draw that line or what the future plans
for AvsP are, but it seems to be mostly text now. I think you
open a Pandora's box when you go down the road of syntax
checking or object centered creation. Every time a filter or
some piece of code is changed, the author somehow has to
keep track of those and code for them.
The idea of in/out markers that yield trim() commands is fantastic!
Requests:
How about an (x,y) readout of where the mouse is?
How about a way to bookmark a line in your script?
Then you could Ctrl+. or Ctrl+, your way to each marker.
Maybe create a framework for plugins? ;)
That way, no more Ebobtron looping code, heh. :)
EDIT: How about getting AvsP listed on Avisynth website?
http://www.avisynth.org/Section+1%3A+About+AviSynth#q1.20
foxyshadis
1st October 2006, 21:20
Oh, here's one that I have no idea how complex would be to implement: a syntax like
LimitedSharpen()
[Sharpen else]
Sharpen()
As a way to compare two options without needing two groups, just a check on and off. Not too important, it just came to mind.
Does anyone have half-finished custom syntax files I can start from? Otherwise I'll just start on everything.
tsp
1st October 2006, 22:58
qwerpoi: Very nice to see that avsp progress as fast. About the calltips could you make avsp a little more intelligent about detecting when the first argument is defined with filters that has a clip as the first argument. Like this script:
blackness()
info()
the calltip for blackness bolds the second argument (length) instead of the first argument (clip1) because blackness is on the first line the first argument should be in bold instead.
The first argument should be used instead of the second for filters that takes a clip as the first argument when:
1)it's the first filter on a line (detect if the filter is before a . )
and
a)it's on the first line in the script
or
b) a } is on the line before
or
c) a variable is assigned on the line before (detect if the first non alfanumeric character is a = )
empty lines does not count
and I'm soon done with the dll to get the filter arguments (currently I can get the autoloaded plugin arguments for all version of avisynth 2.5 and import them into python using ctypes)
foxyshadis
1st October 2006, 23:09
Whoa, I just noticed a huge VM leak. Not a real memory leak, but after a few hundred taps on the toggles the access violations start, and pretty soon after that it hits 2GB and everything goes... weird, man. Haven't closed it yet just because I'm trying to get it to crash on its own. :p I suppose I could use /3GB in the meantime.
and I'm soon done with the dll to get the filter arguments (currently I can get the autoloaded plugin arguments for all version of avisynth 2.5 and import them into python using ctypes)
Does this include .avsi, or just dlls? Thanks for it!
edman
1st October 2006, 23:52
video = MPEG2Source("d:\encode\alpha.d2v",cpu=3)
audio = MPASource("d:\encode\alpha - DELAY -8ms.mpa")
AudioDub(video,audio)
This works
[CODE]
video = DirectShowSource("d:\encode\alpha.mpv")
qwerpoi
1st October 2006, 23:53
Three minor feature requests: Tab inserts actual tab option; tabstop length; and use .avst as templates. Bug fix: .avsi should not be a template. (When opening an avsi, working, and saving, it will save to an avs of the same name. Buggy behavior, but it'd be great to do the same thing for a "template".) Oh yeah, editplus has the neat feature of automatically saving your session when you close and reloading everything when you close. It's very handy, I hardly ever use manual sessions because of it, and it might be the #1 reason I use editplus.
I'll try and get the tab options, the avsi bugfix, and the save session on exit feature in the upcoming release.
Edit: I forgot about the template request. I'm not sure what you mean by using .avst templates, got confused when you said templates should be like the avsi bug. Could be I'm not thinking straight, so please elaborate, thanks.
Since you have binary config files, maybe a place in the options where you can open up a list of everything and its configuration would be nice, sort of like mozilla's about:config. That way you don't have to give gui space to every option.
My gut feeling is that the about:config interface is a bit daunting for beginners (I would even go so far as to say an ini file is daunting for beginners). If at all possible I'd like to keep the options configurable by dialogs, which offers explanations and validation. It's trivial for me to add a new option, since I wrote a small framework to automatically construct the options dialog box given a list data structure. But of course it sucks when the number of options gets so large that dozens of tabs are required, so it's still something to think about.
Requests:
How about an (x,y) readout of where the mouse is?
How about a way to bookmark a line in your script?
Then you could Ctrl+. or Ctrl+, your way to each marker.
Maybe create a framework for plugins? ;)
That way, no more Ebobtron looping code, heh. :)
The mouse xy position I could do, although I'm not sure how useful it is in AviSynth. I'm not sure it will be in the upcoming release (my status bar message is getting stuffed :) ).
Bookmarking script lines is a good idea, it would be a bit of work for me (adding new margin and marker code). I'll take a look into it.
As far as plugins go, my original intent was for people to be able to write python/wxpython scripts which would get imported from the "Tools" subdirectory (doesn't currently exist). That's why there's a "Tools" menu in AvsP with nearly nothing in it. I'll probably put this together in the future, but I'm not sure how many people would use it. Keep in mind that AvsP has a very complete macro language (http://www.avisynth.org/qwerpoi/Macros.html), which will probably suit many purposes in the meantime.
EDIT: How about getting AvsP listed on Avisynth website?
Yeah, and how does one get a mention on doom9's main page? I figure I haven't really "made it" until AvsP is up there :)
Oh, here's one that I have no idea how complex would be to implement: a syntax like
LimitedSharpen()
[Sharpen else]
Sharpen()
As a way to compare two options without needing two groups, just a check on and off.
Off the top of my head it seems difficult, but I'll think about it some more.
qwerpoi: Very nice to see that avsp progress as fast. About the calltips could you make avsp a little more intelligent about detecting when the first argument is defined with filters that has a clip as the first argument. Like this script:
blackness()
info()
the calltip for blackness bolds the second argument (length) instead of the first argument (clip1) because blackness is on the first line the first argument should be in bold instead.
The first argument should be used instead of the second for filters that takes a clip as the first argument when:
1)it's the first filter on a line (detect if the filter is before a . )
and
a)it's on the first line in the script
or
b) a } is on the line before
or
c) a variable is assigned on the line before (detect if the first non alfanumeric character is a = )
empty lines does not count
I'll try and do this for the upcoming release.
and I'm soon done with the dll to get the filter arguments (currently I can get the autoloaded plugin arguments for all version of avisynth 2.5 and import them into python using ctypes)
Great news! Thanks for testing it out with python!
Whoa, I just noticed a huge VM leak. Not a real memory leak, but after a few hundred taps on the toggles the access violations start, and pretty soon after that it hits 2GB and everything goes... weird, man. Haven't closed it yet just because I'm trying to get it to crash on its own. :p I suppose I could use /3GB in the meantime.
Yeah, it could be my fault :( , I don't know how bulletproof my avi code is. Since python has no direct way to read AVI frames, I wrote a class using python's ctypes to call up AVIFile functions from avifil32.dll. Now I'm no AVIFile guru, I just read the couple of tutorials available on the net to get it working. I guess the best thing to do is to release my source (sigh), hopefully some developer types can take a look at it and make sure there's no serious problems. I'm not sure I'll release the sources in the upcoming release, so if anyone wants to take a look at my avi code right away (it's less than 300 lines), pm me.
foxyshadis
2nd October 2006, 03:34
I just made up "avst" for templates, but I just realized all you need to do is set it to read-only, so the program can pop up a box asking where to save it instead. (Right now it's just an error.)
The other ones aren't really important, it's pretty cool how it is now, for sure.
Fizick
2nd October 2006, 04:54
Oh, here's one that I have no idea how complex would be to implement: a syntax like
LimitedSharpen()
[Sharpen else]
Sharpen()
As a way to compare two options without needing two groups, just a check on and off. Not too important, it just came to mind.
Does anyone have half-finished custom syntax files I can start from? Otherwise I'll just start on everything.
May be instead of it, somehow group existing blocks, and replace this group's checkboxes to radio buttons.
But better forget about it.
qwerpoi
2nd October 2006, 09:24
New version 1.2.0, download it here (http://www.avisynth.org/qwerpoi/Download.html). This is possibly the biggest changelog yet:
* customizable keyboard shortcuts (suggested by Zarxrax)
* aspect ratio info on status bar in video mode (suggested by krisq)
* added option for constant video update when dragging (suggested by doxville)
* added option for line-by-line video preview update (suggested by Zarxrax)
* center window when it goes off the screen (suggested by Ebobtron)
* added ability to mark and add trim selections (suggested by doxville)
* make shortcut Ctrl-G highlight frame text ctrl (suggested by Champs)
* copy a script by double-clicking the tab (suggested by Zarxrax)
* added options for using text tabs, tab length (suggested by foxyshadis)
* auto save session on exit, load on startup if no args (suggested by foxyshadis)
* minor improvements to calltip argument highlight code (suggested by tsp)
* minor improvements to avs2avi frontend
> fixed bug in "Options -> Settings" dialog (thanks nibbles)
> fixed bug with avs2avi frontend and translation (thanks Fizick)
> fixed error when right-clicking a popup tooltip (thanks Zarxrax)
> fixed bug saving .avsi file with .avs extension (thanks foxyshadis)
The biggest change is that you can customize all the keyboard shortcuts with a very easy to use dialog box, just click on "Options -> Configure shortcuts...". Because of this option, I changed some of the shortcuts around to be more "standard", and the first 4 macros no longer get the keyboard shortcuts F1 through F4 (you can always add the shortcuts yourself, though).
Another change which requires a bit of discussion is the ability to add a Trim sequence based off of video frame bookmarks. This is essentially a feature to satisfy people used to vdubmod's script editor. By clicking "Edit -> Insert bookmark Trims" (keyboard shortcut Ctrl-I), AvsP will insert a sequence of Trim commands into your script based on the bookmarks you have set. It goes through each pair of bookmarks, treating each pair as a section of the video to remove. So if you bookmarks are "1000, 2000, 4000, 5000", then the Trim sequence would look something like this:
Trim(0, 999) ++ Trim(2000, 3999) ++ Trim(5000, 23493)
This is equivalent to cutting out frames 1000 to 1999 and frames 4000 to 4999 (of course AviSynth does not have a Cut() function, hence the sequence of Trim commands).
There is an option for line-by-line video updating, it's off by default, you can turn it on in "Options -> Program settings..." under the "Video" tab. When this option is turned on, every time the text cursor moves to a different line the video preview is updated automatically. Of course this will lead to a lot of AviSynth error videos when writing complex scripts, but it may be a handy time saver when doing relatively simple scripting (which is arguably most of the time).
Anyway, the next thing I need to work on is getting the online documentation caught up with the program, it's gotten a fair bit out of date. As always, let me know of any problems you encounter with the new version.
Note to translators: There were a LOT of changed messages, so updating the translation might be more difficult this time. I've sent each of you a pm with some info.
foxyshadis
2nd October 2006, 09:58
I'm in awe. It works so well and smoothly, like magic. And only a few weeks ago it was new! It's always nice to see promising software fulfilled. :D
check
2nd October 2006, 10:22
I started using this yesterday, I'm a convert too - and it even supports macros in the only scripting language I've spent more than a week learning! (not that I can use it :P)
How hard would it be to include a 'recent avs files' file menu item? Very useful for me, as I keep all my different project all over the place depending on what drive has the most gigs free ;). The ability for it to auto session save when you quit and have that ready to load would be similarly excellent.
qwerpoi
2nd October 2006, 11:10
I'm in awe. It works so well and smoothly, like magic. And only a few weeks ago it was new! It's always nice to see promising software fulfilled. :D
Thanks :). I'm really pleased by the response the program's gotten (I can brag that the program's been released for less than a month and already it's been translated in three different languages), but I really can't take all the credit - big props go to the AviSynth developers and doom9's forum (and of course the diligent translators niiyan, Fizick, and Henrikx). And keep in mind that although I released the program about a month ago, I've been developing it for personal use for more than 2 years, I rewrote the whole thing from scratch about three times, using several gui frameworks until I was happy (I'm a bit of a perfectionist when it comes to certain things :p ).
I started using this yesterday, I'm a convert too - and it even supports macros in the only scripting language I've spent more than a week learning! (not that I can use it :P)
Well, when you get comfortable with Python, take a detailed look at the macros that come with the program - the "Manual Telecide" macro is pretty insane! It's basically my proof of concept of what kind of detail and interaction you can achieve with the macros. I've never used YATTA, but I imagine the core functionality (building the Telecide override file with a gui) is the same.
Edit: Well, after doing some quick reading about YATTA, I guess the "Manual Telecide" macro is nothing like it :( . It seems YATTA is geared for finding appropriate thresholds through gui feedback, the "Manual Telecide" macro simply gives you a way to build a Telecide override file visually using multiple tabs and keyboard shortcuts instead of juggling programs/copy and pasting frame numbers/reloading scripts. Sorry if I was being misleading.
How hard would it be to include a 'recent avs files' file menu item? Very useful for me, as I keep all my different project all over the place depending on what drive has the most gigs free ;).
Good suggestion, didn't think about that - I'll try and get it in the next release.
The ability for it to auto session save when you quit and have that ready to load would be similarly excellent.
This is somewhat implemented in version 1.2.0. When you close the program, AvsP will still prompt you to save each script, then it saves the session. The next time you run the program this session is automatically loaded IF it gets no command line arguments (ie, double-click the exe or a shortcut, instead of double-clicking an avs file). This is more or less the way Notepad++ handles it, I can modify the behavior if anyone has different ideas or existing examples of how it's done.
krisq
2nd October 2006, 12:58
what an excellent update :D. :thanks:
Henrikx
2nd October 2006, 14:35
Update .....;)
German translation AvsP 1.2.0
Zarxrax
2nd October 2006, 18:31
Wow! It just gets better and better! Thanks for the huge updates!
communist
2nd October 2006, 19:53
Big thanks - what a beatiful program :)
Oh if possible could you add sub 100% zoom factors (25 / 50 / 75%)?
Having to specify pixels gives you evil scrollbars ;)
(Though in some cases scrollbars are quite useful - if you're tweaking a specific region only)
And 2nd suggestion could you add a shortcut or other way for moving lines up or down (in order to test filter order)? With Ctrl+Shift+ Up or down or something like this?
qwerpoi
2nd October 2006, 23:34
what an excellent update :D. :thanks:
b^_^d You're welcome!
Wow! It just gets better and better! Thanks for the huge updates!
b^_^d You're welcome!
Update .....;)
German translation AvsP 1.2.0
Awesome! The Japanese and Russian translations have been updated as well, you can get them from the AvsP download page. You guys are fast, less than 24 hour turnaround time!
Big thanks - what a beatiful program :)
Oh if possible could you add sub 100% zoom factors (25 / 50 / 75%)?
Having to specify pixels gives you evil scrollbars ;)
(Though in some cases scrollbars are quite useful - if you're tweaking a specific region only)
Sub zoom factors should be doable, but might look hideous. I'm not sure what you mean when you say "having to specify pixels gives you evil scrollbars". Not the evil part, I agree, scrollbars are fugly :), but the specifying pixels part - what are you referring to? Keep in mind that if your desktop is big enough you can change the max size of the video preview in Options -> Program settings... in the Video tab, change the max width and height to as big as you can.
And 2nd suggestion could you add a shortcut or other way for moving lines up or down (in order to test filter order)? With Ctrl+Shift+ Up or down or something like this?
Hmm, interesting idea, I'll give it some thought. For the moment you can highlight an entire line by clicking once on the margin, then drag-and-drop it wherever you want. But as you point out, there's no quick way with a keyboard shortcut, so it may be worth adding (since the AviSynth language works very much on a line-by-line basis).
Alain2
3rd October 2006, 01:05
Interesting editor! I am still using my notepad++ and vdub for previewing because I am too used to it, but I may switch to AvsP sometime soon ^^
Here are a few points / requests you may want to consider :) :
- Adding another toolbar below the File/Edit/etc menu. And in this add a toggle button that when activated will prevent any update of the video window. That way if I make a mistake / wrong shortcut / whatever, if it has to do with the video window it won't hang for a few seconds to apply the script (my avs are "mf" slow usually ^^ )
- I read you don't like the idea of a resizeable window because it's not really representative as the algorithm that rescale won't be the one chosen in avisynth, but it would be nice if we could drag the video window and have the video resized with it (like in vdub), with a fixed 1:1 ratio. This is helping me a lot to see properly what I am doing.. and having a choice of only 100% or 200% is not convenient for me
- The tooltip for the functions used is a nice and useful idea, but I don't like that it cover the text under in the following script lines.. For instance, can you add another toolbar that would contain a copy of the currently edited line (like in excel for instance), but instead of the parameters in brackets for the recognized functions, put what you have in your tooltip (all the parameters names, highlighting the one where the cursor is currently focused on) ?
- I love the fact you can link a function to its help file! I know I can call the help for functions recognized when the tooltip is shown by clicking in it, but is there a shortcut (like F1) that could do the same ? I didn't find it.. Same for the general Avisynth Help menu (so maybe Shift F1 for this one ? or vice versa)
- Add an optional mod factor (like 2) for the crop editor
- Add a wrap text option ? And in that case, a current line highlight option as well (well this is the n++ habits that come in ^^ )
- Would be nice if you could expand a bit the syntax coloration, like in n++ again ^^ maybe even in xml, and even compatible with the xml format of n++ ! (oh well I had to try ^^ )
Long post, but your editor is really a neat thing, thank you very much for all the efforts you put in it so far !
doxville
3rd October 2006, 11:25
Great and fast update!! Do you ever sleep...? :)
The new preview-while-dragging works great and so does the trim-editor! Good job! Now I found it would be handy, if there was an option (maybe to activate in a sub-menu) to show the bookmarked sections on the timeline-slider, to have a quick overview, which sections are IN and which are OUT, before you choose to insert the 'trim'-line. Something like in the screenshot I attached.
Thanx in advance, I hope it's not too complicated to integrate. :D
qwerpoi
3rd October 2006, 17:49
- Adding another toolbar below the File/Edit/etc menu. And in this add a toggle button that when activated will prevent any update of the video window. That way if I make a mistake / wrong shortcut / whatever, if it has to do with the video window it won't hang for a few seconds to apply the script (my avs are "mf" slow usually ^^ )
mf slow, that's hilarious :D (I wonder how many people here get the reference?) Anyway, I never thought about that, so I'll try and add an option to "lock" the video preview. As far as a toolbar is concerned, ugh, in general I hate toolbars. They're usually an eyesore filled with buttons you mostly never use. But it's a good place to place a toggle switch like you point out, so it's something for me to consider.
- I read you don't like the idea of a resizeable window because it's not really representative as the algorithm that rescale won't be the one chosen in avisynth, but it would be nice if we could drag the video window and have the video resized with it (like in vdub), with a fixed 1:1 ratio. This is helping me a lot to see properly what I am doing.. and having a choice of only 100% or 200% is not convenient for me
Well, let's get to the heart of the matter - if it were easy to implement a good-looking scaling resize, I might do it, but it's pretty difficult. For the longest time virtualdub had fixed zooms like AvsP, I believe the new resizable video window works by using directx, which is more work than I'm willing to get into, at least for now.
- The tooltip for the functions used is a nice and useful idea, but I don't like that it cover the text under in the following script lines.. For instance, can you add another toolbar that would contain a copy of the currently edited line (like in excel for instance), but instead of the parameters in brackets for the recognized functions, put what you have in your tooltip (all the parameters names, highlighting the one where the cursor is currently focused on) ?
Ugh, in general I hate toolbars, they're usually...wait, I already said that :o . Well, I'm not sure I agree with your complaint about tooltips covering other lines - the way AvsP does it is the same way every programming editor does it! What may be your problem is that AvsP shows tooltips gratuitously compared to other editors - other editors usually show tooltips only upon autocompletion, AvsP shows tooltips whenever your cursor is inside a filter's arguments. I'll add an option to change this behavior to be more similar to other editors, hopefully that will solve your issue.
- I love the fact you can link a function to its help file! I know I can call the help for functions recognized when the tooltip is shown by clicking in it, but is there a shortcut (like F1) that could do the same ? I didn't find it.. Same for the general Avisynth Help menu (so maybe Shift F1 for this one ? or vice versa)
There's currently no shortcut equivalent to clicking the tooltip, but it's a good idea, I'll add that feature for the next release. For the general AviSynth help, that feature is in the menu command Help -> AviSynth help - just add the keyboard shortcut of your choice (Options -> Configure shortcuts...).
- Add an optional mod factor (like 2) for the crop editor
Why? The status bar tells you what your mod is, and there are various ways to fine tune the crop values. The reason I'm hesitant to implement your idea is that it can lead to complications - for example, cropping 9 pixels from the left and 7 pixels from the right could be a valid crop, but would be difficult to do if the values were locked to even numbers.
- Add a wrap text option ? And in that case, a current line highlight option as well (well this is the n++ habits that come in ^^ )
It's easy for me to add these features, so I'll do it. Out of curiousity, do you really wrap text when writing AviSynth scripts?
- Would be nice if you could expand a bit the syntax coloration, like in n++ again ^^ maybe even in xml, and even compatible with the xml format of n++ ! (oh well I had to try ^^ )
Umm, no :devil: . Seriously, I can't imagine needing a super-configurable syntax highlighting format, since AvsP is only used with one language, AviSynth. You can change the fonts and colors from Options -> Program settings... in the Font tab, if there's something further you want to be able to configure, let me know.
Great and fast update!! Do you ever sleep...? :)
Of course I sleep; what a silly question. Of course, when I sleep, I only dream of new AvsP features and electric sheep. :p
The new preview-while-dragging works great and so does the trim-editor! Good job! Now I found it would be handy, if there was an option (maybe to activate in a sub-menu) to show the bookmarked sections on the timeline-slider, to have a quick overview, which sections are IN and which are OUT, before you choose to insert the 'trim'-line. Something like in the screenshot I attached.
Thanx in advance, I hope it's not too complicated to integrate. :D
Haha, that screenshot is making me hungry! Anyway, that's a good idea, but unfortunately impossible with the slider control, which only allows for a single selection. It's possible if I implement my own slider control from scratch, which is a lot of work (I might do it sometime in the future, just not right now).
krieger2005
3rd October 2006, 19:08
Well, let's get to the heart of the matter - if it were easy to implement a good-looking scaling resize, I might do it, but it's pretty difficult. For the longest time virtualdub had fixed zooms like AvsP, I believe the new resizable video window works by using directx, which is more work than I'm willing to get into, at least for now.
When i understand the workflow of your Program right (with interpretation of sliders and so on) you create an own "avs-file", which you modify when a slider was moved. why do you not use an internal avisynth-scale-function. Then you can add at the end of the script something like:
ConvertToRGB24().LanczosResize(<desired_restX>, <dest_Y>)
ConvertToRGB24 is used just because it can scale then by Pixel.
foxyshadis
3rd October 2006, 19:38
I was going to point out what krieger did first :p
mf slow, that's hilarious :D (I wonder how many people here get the reference?) Anyway, I never thought about that, so I'll try and add an option to "lock" the video preview. As far as a toolbar is concerned, ugh, in general I hate toolbars. They're usually an eyesore filled with buttons you mostly never use. But it's a good place to place a toggle switch like you point out, so it's something for me to consider.
Maybe instead of a new toolbar, just put it on the preview's existing toolbar.
nibbles
3rd October 2006, 21:15
Nice update! It's great to hear that you had time to try out
different gui frameworks. Ever use Swing?
About the mouse coordinates idea, I was thinking that people
dealing with logos and subtitles, NTSC safe areas, or chroma
shifting would benefit from the option to display the x,y position,
but they could always add a filter and a couple of sliders to do
those tasks I suppose. The combination of macros and sliders
is tremendously powerful! Thanks btw for your willingness to
adjust the F1-F4 key bindings and make the rest configurable.
I'm always finding myself trying to use Alt+f,s out of habit to
Save a file, but that's not bound, only Alt+f,e is setup for Exit.
Have a great day! :)
qwerpoi
3rd October 2006, 21:42
When i understand the workflow of your Program right (with interpretation of sliders and so on) you create an own "avs-file", which you modify when a slider was moved. why do you not use an internal avisynth-scale-function. Then you can add at the end of the script something like:
ConvertToRGB24().LanczosResize(<desired_restX>, <dest_Y>)
ConvertToRGB24 is used just because it can scale then by Pixel.
I was going to point out what krieger did first :p
Man, you guys won't give up about this resizable preview thing! :) Well, I'll see what I can do, the only reason I'm hesitant is because I'll have to do some significant overhaul to my layout code, which is a lot more hairy than you would think at first glance.
Maybe instead of a new toolbar, just put it on the preview's existing toolbar.
Yep, but I don't want to get into the habit of adding random buttons on the video toolbar. What I'll likely do is something like let you right-click the toggle button to lock, which would gray out all the controls. It's not a perfect solution, but I imagine it's not a feature everyone will use anyway (although it's certainly a nice feature to have).
Nice update! It's great to hear that you had time to try out different gui frameworks. Ever use Swing?
No, I'm more of a C/C++ kind of guy (certainly no expert, though), don't know no Java (although I'm aware it's not that different from C++). As far as I know, it's not straightforward to compile standalone executables from Swing, maybe I'm totally wrong. I looked into mfc, wtl, raw win32, wxwidgets, wxpython, venster (some more briefly than others) before settling on wxpython. Mind you I don't think wxpython is perfect, far from it, but it was the framework I found myself most productive in. Actually, I couldn't make heads or tails out of most of those other frameworks :), I'm really not a very good programmer on a technical level.
About the mouse coordinates idea, I was thinking that people
dealing with logos and subtitles, NTSC safe areas, or chroma
shifting would benefit from the option to display the x,y position,
but they could always add a filter and a couple of sliders to do
those tasks I suppose.
I'll try and implement it and see how it looks, my only concern is that there will be too much info in the status bar - to me it's less useful if it's too cluttered to visually pick out the info you want.
Alain2
3rd October 2006, 23:23
Ugh, in general I hate toolbars, they're usually...wait, I already said that :o . Well, I'm not sure I agree with your complaint about tooltips covering other lines - the way AvsP does it is the same way every programming editor does it! What may be your problem is that AvsP shows tooltips gratuitously compared to other editors - other editors usually show tooltips only upon autocompletion, AvsP shows tooltips whenever your cursor is inside a filter's arguments. I'll add an option to change this behavior to be more similar to other editors, hopefully that will solve your issue.
Ah ok maybe ^^ I don't use programming editors so I didn't know, but yes if you implement a different behaviour like showing the tooltip only when changing the content in bracket and not just anityme the cursor is there, then yes that would be ok for me :)
There's currently no shortcut equivalent to clicking the tooltip, but it's a good idea, I'll add that feature for the next release. For the general AviSynth help, that feature is in the menu command Help -> AviSynth help - just add the keyboard shortcut of your choice (Options -> Configure shortcuts...).
Oups missed this one in the keyboard shortcut dialog ^^ And thanks for adding a new shortcut in the next releases !
Why? The status bar tells you what your mod is, and there are various ways to fine tune the crop values. The reason I'm hesitant to implement your idea is that it can lead to complications - for example, cropping 9 pixels from the left and 7 pixels from the right could be a valid crop, but would be difficult to do if the values were locked to even numbers.[quote]
Hum indeed.. that was a bad request ^^
[QUOTE=qwerpoi;883081]It's easy for me to add these features, so I'll do it. Out of curiousity, do you really wrap text when writing AviSynth scripts?
Yes sometimes ^^ I work in 1600x1200 but sometimes I happen to hae long string chains (masktools expr...) that I can't break with \ in the middle.. I could make and name a string, and break it into several lines that way before using it in masktools with its name, but I don't like creating variables when it's not necessary ^^
Umm, no :devil: . Seriously, I can't imagine needing a super-configurable syntax highlighting format, since AvsP is only used with one language, AviSynth. You can change the fonts and colors from Options -> Program settings... in the Font tab, if there's something further you want to be able to configure, let me know.
Ok.. It's true it may not be very useful here. What I like to do for me in n++ is to separate the functions in coloring categories ; I use all 4 categories available in n++ like that : 1. Internal Avs functions, 2. Definition / Properties, 3. User dll functions, 4. User Avs functions. Examples of what I am talking about : 1 (http://img374.imageshack.us/img374/2155/tempjx6.jpg) 2 (http://img417.imageshack.us/img417/2014/tempzo9.jpg). Would be great if I could have several categories of functions like on my n++ for separate syntax coloring properties :)
Oh and I tried what krieger2005 suggested for resizing, works well ^^ But now, maybe... can you make the sliders in a separate window, maybe dockable to the right of the picture if we want, but that we can move away as well so that when resizing the pictures it is not interacting with the sliders position / sizes ? Well this request is not very important, I can already work well as it is at the moment when fixing correct video window dimensions limits in the options
foxyshadis
4th October 2006, 01:16
In avisynth you can break a string like
"this is an " \
+ "awesome string"
I rarely have a use for resizing other than 100%/200%, though the flexibility is nice for HD or when 150% is "just right". But I'm not that concerned about it. Which python image library do you use?
I do kind of like the idea of scalar (math and string, mostly) and clip functions having different colors. And a separate right-hand slider/check dock. I'm not sure how much more I'd like them, just interesting.
krieger2005
4th October 2006, 01:53
Man, you guys won't give up about this resizable preview thing! :) Well, I'll see what I can do, the only reason I'm hesitant is because I'll have to do some significant overhaul to my layout code, which is a lot more hairy than you would think at first glance.
I don't need it. It was just an idea. For my taste the editor do now more then enough. Some enchancement of the existing function would be nice, but your to-do list is long enough. Thank you.
Alain2
4th October 2006, 02:08
In avisynth you can break a string like
"this is an " \
+ "awesome string"
Not directly in a masktools call ; the string is not parsed properly if entering that way (well I had this problem sometime ago and it took me a while to see it was coming from that, and since I don't use \ line breaks in one parameter description)
@qwerpoi
French translation (homepages.nildram.co.uk/~cestial/AvsP/AvsP.1.2.0.translation.rar)
qwerpoi
4th October 2006, 03:37
What I like to do for me in n++ is to separate the functions in coloring categories ; I use all 4 categories available in n++ like that : 1. Internal Avs functions, 2. Definition / Properties, 3. User dll functions, 4. User Avs functions. Examples of what I am talking about : 1 2. Would be great if I could have several categories of functions like on my n++ for separate syntax coloring properties
Ouch, unfortunately we're getting back to the issue that I didn't write a custom AviSynth parser, so it may not be possible until I do. I wonder how notepad++ and other scintilla-based editors pull that stuff off, they must have implemented some sort of generic lexer - it's something I'll look into.
I rarely have a use for resizing other than 100%/200%, though the flexibility is nice for HD or when 150% is "just right". But I'm not that concerned about it. Which python image library do you use?
I'm not using any extra image library, just the functions that come with wxpython, which ultimately wraps the win32 gdi stuff. That means any image scaling is equivalent to a point resize (I think). Anyway, it doesn't seem like a good idea to use a higher quality image library like PIL, since AvsP would have to resize every frame individually, could get slow/intensive. The better scheme is what you and krieger2005 suggested with an AviSynth video resize, if I wanted to do it. Along the same lines you were mentioning, I'm thinking it might be better to allow both the video preview window and the video slider window to be separate dockable windows, but that may be even more work.
I don't need it. It was just an idea. For my taste the editor do now more then enough. Some enchancement of the existing function would be nice, but your to-do list is long enough. Thank you.
Well, when I use AvsP myself, I tend to have enough room for everything. But in this day and age, I guess it's entirely possible to be editing video with roughly the same resolution as your desktop resolution, so I'll be the first to admit that the current way AvsP is organized is not optimal in that regard. So I'll be giving it some serious thought, just don't expect results right away. :)
@qwerpoi
French translation (homepages.nildram.co.uk/~cestial/AvsP/AvsP.1.2.0.translation.rar)
Awesome! I added a link to the download page, I linked to the directory instead of the file itself to make it easier to update for newer versions, let me know if that's a problem.
nibbles
4th October 2006, 05:05
...I'll try and implement it and see how it looks...
Forget about the pointer giving video coordinates back.
You'd be faced with some ugly conversions between display
position and video pixels! (square? dv? pc? zoom? scrollbar?)
Threads are easy in Swing. How about Python? I was really
impressed the way I could be slewing through my video
with an arrow key and simultaneously be rolling the mouse
wheel, switching between tabs and filters with no pause
in the playback!
You might want to take a quick look at JEdit (http://www.jedit.org/), a great Java editor
that has line numbering similar to AvsP and has markers.
Is it possible to preset the width of the line number margin
to support one to three digit numbers without having to widen
itself? If you make 9 blank lines then a 10th, you will see that
the margin gets wider. The problem I often face is that I'll be
comparing scripts, some having fewer than 10 lines, some
more, and when I switch tabs, the text stutters horizontally.
Ok super good. nibbles.
zemog
4th October 2006, 15:57
This is mi first post in the forum. Hello everybody and sorry for my poor english
qwerpoi: Thanks for these great app. I use it a lot last two weeks. It does work fine for most of my needs. I have saved a lot of time in my last MiniDV tape edition.
I attach mi contribution: Spanish translation.
Some comments about these:
- I have add three lines (the last three) that I think are missing in __translation.py file.
- In the attached .rar file I include a .doc file with some screenshots where you can see English words that can’t be translated.
qwerpoi
5th October 2006, 02:26
Threads are easy in Swing. How about Python? I was really
impressed the way I could be slewing through my video
with an arrow key and simultaneously be rolling the mouse
wheel, switching between tabs and filters with no pause
in the playback!
Well, I believe Python has good thread stuff, but I wouldn't know firsthand - I don't have to take care of threads directly for the gui code with wxPython, which has an event handling system that's a bit tricky at first but is pretty straightforward after a while.
You might want to take a quick look at JEdit (http://www.jedit.org/), a great Java editor
that has line numbering similar to AvsP and has markers.
Thanks for the link, I'll look it over when I get the chance. Keep in mind though, I have no aspirations in making AvsP the best programming editor out there, I'd much rather focus on developing the really unique AviSynth-specific features. Then again, most people are stubborn in letting go of their personal editors (with good reason), so I'll try and do what it takes to keep those people happy as well. :)
Is it possible to preset the width of the line number margin
to support one to three digit numbers without having to widen
itself? If you make 9 blank lines then a 10th, you will see that
the margin gets wider. The problem I often face is that I'll be
comparing scripts, some having fewer than 10 lines, some
more, and when I switch tabs, the text stutters horizontally.
Ok super good. nibbles.
No problem, it'll be in the next release.
This is mi first post in the forum. Hello everybody and sorry for my poor english
qwerpoi: Thanks for these great app. I use it a lot last two weeks. It does work fine for most of my needs. I have saved a lot of time in my last MiniDV tape edition.
I attach mi contribution: Spanish translation.
Some comments about these:
- I have add three lines (the last three) that I think are missing in __translation.py file.
- In the attached .rar file I include a .doc file with some screenshots where you can see English words that can’t be translated.
Sorry for the late reply, I wanted to wait until the attachment was approved (still waiting). Thanks for doing the translation, I'll be sure to add the link on the download page when I can access the file. As far as untranslatable messages go, it's possible that some dialog boxes cannot be translated, since they are handled by windows, not by AvsP. If that's the case, you may be able to do something about it by changing the windows regional settings, but I don't know much about it.
nibbles
5th October 2006, 08:24
When the script window is in focus and the preview window is open
and the line by line update is disabled, inserting the current frame
number inside an unclosed argument causes a Shift+Tab sort of
operation and an error because
c1.Trim(0,354998).DeleteFrame(12345
code like that isn't ready for previewing. Would you take a look at
it when you have some free time? Ok, thanks q. I started to think
that your avatar was from The Wall....
krisq
5th October 2006, 12:01
Just a thought. Would be cool if slider like this:
Shadows = (Select([<"Shadows", 0, 1, 0>], true, false))
could show 'boolean' values instead of numbers (like 'true' or else).
foxyshadis
5th October 2006, 16:37
Well, as a workaround what you can do instead is
Shadows=false
Shadows=true
Then if you check it it'll be true.
krisq
5th October 2006, 18:51
Yeah, I know. But i'd like to have everything in one place. And this gives me checkbox above 20 other sliders from different filters.
Besides, this one would be trickier:
Histogram(Select([<"HistogramMode", 0, 3, 0>],"classic","levels","color","luma")))
qwerpoi
5th October 2006, 20:24
@zemog
I took a look at the attached file, you did a very complete job! These are the translation strings I was missing:
"Enter tag name:"
"Tag definition"
"OK"
"Cancel"
You also put down several strings which seem to translate fine on my computer:
"AviSynth plugin (*.dll)|*.dll"
"AviSynth script (*.avs)|*.avs|All files (*.*)|*.*"
It's possible that there's an issue with the open file dialog box; can any other translators confirm this?
Also, you should be aware that the keyboard shortcuts in the menus cannot be translated currently, since the strings are used by the program to register the actual keyboard shortcuts. I'm still working on this issue.
When the script window is in focus and the preview window is open
and the line by line update is disabled, inserting the current frame
number inside an unclosed argument causes a Shift+Tab sort of
operation and an error because
c1.Trim(0,354998).DeleteFrame(12345
code like that isn't ready for previewing. Would you take a look at
it when you have some free time? Ok, thanks q. I started to think
that your avatar was from The Wall....
Hey, you're right - thanks for catching that bug! It'll be fixed in the next release. Oh and my avatar's not from The Wall, I'm not that hip - it's a really obscure reference and I'd be relatively surprised if anyone knew what it was. :)
Just a thought. Would be cool if slider like this:
Shadows = (Select([<"Shadows", 0, 1, 0>], true, false))
could show 'boolean' values instead of numbers (like 'true' or else).
Yeah, it would be cool, but also a bit strange. Essentially, a slider is not ideal for representing arbitrary lists (there's no meaning for the min and max values, etc).
What we're really getting at is that there should be a series of different "scriptable gui elements". In other words, sliders are good for numbers, toggle tags are good for checkboxes, and we're missing a syntax for either radio boxes or drop-down lists. Instead of having three separate syntaxes, it would be ideal if it were possible to combine them or unify them somehow. Of course I'm talking purely theoretically, I don't know how if it's even possible to have a parsable syntax for everything. If anyone can think of a complete scheme, I'm all ears, until then, you'll have to live with integer-mapping sliders. :)
kurt
5th October 2006, 21:07
hm, can't get access to the website: http://www.avisynth.org/qwerpoi/Download.html
is it down? can s.o. confirm?
krisq
5th October 2006, 21:58
hm, can't get access to the website: http://www.avisynth.org/qwerpoi/Download.html
is it down? can s.o. confirm?
yep, down for me also.
If anyone can think of a complete scheme, I'm all ears, until then, you'll have to live with integer-mapping sliders. :)
I think it's fine the way it is, but in this case
Histogram(Select([<"HistogramMode", 0, 3, 0>],"classic","levels","color","luma")))
instead of:
0<--------||---->3 1
I would like to see something like this:
0<--------||---->3 "levels"
qwerpoi
5th October 2006, 22:17
hm, can't get access to the website: http://www.avisynth.org/qwerpoi/Download.html
is it down? can s.o. confirm?
Yeah, avisynth.org goes down occasionally, usually it's fine after an hour or two.
I think it's fine the way it is, but in this case
Histogram(Select([<"HistogramMode", 0, 3, 0>],"classic","levels","color","luma")))
instead of:
0<--------||---->3 1
I would like to see something like this:
0<--------||---->3 "levels"
Yes, but from an implementation perspective it would require parsing the script to check if any user sliders are within an AviSynth Select function, which may be very difficult to do properly. It would actually be easier to make a new syntax like this:
Histogram([<"HistogramMode", ["classic","levels","color","luma"]>])
Not to say it's easy to parse this syntax, it looks doable but tricky (very error prone in terms of validation). But if I were to do this, again I would argue that it would be better to go all out and develop a good generic syntax, one which allows for all the basic gui elements (sliders, check boxes, drop-down lists, etc). Or maybe not - perhaps I'm overthinking things. It just seems the natural extension of things, I think it would be nicer if the section toggle syntax was combined with the slider syntax (the fact that the syntax is totally different is one of the reasons why they show up in separate places).
krisq
5th October 2006, 23:03
Histogram([<"HistogramMode", ["classic","levels","color","luma"]>])
I agree, this would be very neat. I get your thinking now. Very reasonable actually. It's easy for me to propose things when I don't have to 'do' them :D
foxyshadis
6th October 2006, 02:01
Histogram([<"HistogramMode", Select:["classic";"levels";"color";"luma"]>])
For a drop-down. Or maybe Drop:.
Histogram([<"HistogramMode", Select:["classic":0;"levels":1;"color":2;"luma":3]>])
Would give integers a meaningful label.
Histogram([<"HistogramMode", Select:["Plain":"classic";"Spicy":"levels";"Tripout":"color";"luma"]>])
Here the last value would show up as luma since it has no tag.
Histogram([<"HistogramMode", OnOff>])
OnOff, Bool, YesNo, Checkbox, TrueFalse, I don't know.
Histogram([<"HistogramMode", Multi:["Dude":1;"Whoa":2;"Keanu":3]>])
Same, but radio instead of drop-down.
Histogram([<"HistogramMode", [0, 3, 0]>])
Unlabeled it's synonymous with the current method. You could totally skip labeling and encapsulation and just guess each time, but I think that would be pretty nuts. :p
Of course it can be extended to presets...
Histogram([<"HistogramMode", Multi:["Preset 1":mode="color",expand=true;"Preset 2":mode="levels",expand=false]>])
Since in the end, it's just replacing with the relevant text between : and ;.
Just throwing ideas out there.
As an aside, check out TBilateral's GUI for what happens when you thrown in everything and the kitchen sink. :p
Richard Berg
6th October 2006, 03:41
See here for website status: http://status.leafyhost.com/
qwerpoi
6th October 2006, 06:37
I've mirrored version 1.2.0 on rapidshare since avisynth.org is down for the moment:
http://rapidshare.de/files/35670265/AvsP_v1.2.0.zip.html
It seems kind of a waste, since I'll be updating a new version soon, but this will tide you over if you gotta have it now.
I agree, this would be very neat. I get your thinking now. Very reasonable actually. It's easy for me to propose things when I don't have to 'do' them :D
No, I appreciate any and all feature requests, honestly. As a developer I precisely need feedback from people who don't know how difficult something is going to be to implement (otherwise my lazy factor will kick in). I'm not saying I will implement every request, I'm just saying it helps me keep an open mind. Plus, people on the doom9 boards tend to be pretty rational, any requests I have shot down were almost always because difficulty of implementation outweighed the benefit of the feature, not because the idea itself was bad.
Histogram([<"HistogramMode", Select:["classic";"levels";"color";"luma"]>])
For a drop-down. Or maybe Drop:.
Histogram([<"HistogramMode", Select:["classic":0;"levels":1;"color":2;"luma":3]>])
Would give integers a meaningful label.
Histogram([<"HistogramMode", Select:["Plain":"classic";"Spicy":"levels";"Tripout":"color";"luma"]>])
Here the last value would show up as luma since it has no tag.
Histogram([<"HistogramMode", OnOff>])
OnOff, Bool, YesNo, Checkbox, TrueFalse, I don't know.
Histogram([<"HistogramMode", Multi:["Dude":1;"Whoa":2;"Keanu":3]>])
Same, but radio instead of drop-down.
Histogram([<"HistogramMode", [0, 3, 0]>])
Unlabeled it's synonymous with the current method. You could totally skip labeling and encapsulation and just guess each time, but I think that would be pretty nuts. :p
Of course it can be extended to presets...
Histogram([<"HistogramMode", Multi:["Preset 1":mode="color",expand=true;"Preset 2":mode="levels",expand=false]>])
Since in the end, it's just replacing with the relevant text between : and ;.
Just throwing ideas out there.
As an aside, check out TBilateral's GUI for what happens when you thrown in everything and the kitchen sink. :p
Some interesting ideas, I'll give it some thought. If I ever implement this stuff, it's very likely to look similar to what you posted here. In reality, I'd like to go nuts and drop the labeling :), in a vain effort to preserve the simplicity of the syntax. If you look at the screenshot on the first post, you can see how each aspect of the slider syntax (label, min, max, value) directly corresponds with what you see on the graphical slider in terms of physical layout. As you start allowing definition of different gui elements, this tight correlation seems impossible, but I think it's very important to try (not for advanced users, but for newcomers or people who know nothing about AvsP trying to stare at a completely bizarre avs script).
Anyway, the whole concept of scriptable gui elements intrigues me, it's like adding new syntax to the AviSynth language itself. Since AvsP is written in wxPython (a scripted gui framework), dynamically building gui elements is the easy part, the hard part is coming up with a correct, concise, and understandable syntax. Of course in order to do it right, it gets to the point where AvsP would need a complete AviSynth parser (otherwise it's impossible to use AviSynth variables within a slider, etc). Ultimately though, I think the majority of the added functionality comes from the already implemented numerical sliders, so in my eyes we're talking about a lot of work for a little benefit. Not to say I won't ever work on it, just saying that other more urgent feature requests will come first.
foxyshadis
6th October 2006, 08:24
Fair enough. How about this: On the slider gui, have a radio button for "numeric" and "other", and for other get the name like now, and have a multiline textbox where people can add true/false (maybe a button for that?) or custom items, and generate code just like krisq's Select syntax. It's kind of ugly - and that word wrap will come in very handy - but it works. It could generate a proper syntax at some point down the line, too.
A button to then render the script as currently set might be useful as the sliders and checkoffs pile up, and the actual script gets lost behind the noise. It could show all the generated areas in some other color, I'm picturing red, and be read-only (or a new tab).
Oh, and I don't know if this is really possible, but can you put a box around all the sliders from the same line? One line doesn't always correspond to one function, but it's good enough for government work.
Richard Berg
7th October 2006, 23:13
Small suggestions for the Fonts tab:
- have a master font option, then only bring up the color dialog for each font
- default to a monospace font like Lucida Console
qwerpoi
8th October 2006, 00:00
Fair enough. How about this: On the slider gui, have a radio button for "numeric" and "other", and for other get the name like now, and have a multiline textbox where people can add true/false (maybe a button for that?) or custom items, and generate code just like krisq's Select syntax. It's kind of ugly - and that word wrap will come in very handy - but it works. It could generate a proper syntax at some point down the line, too.
A button to then render the script as currently set might be useful as the sliders and checkoffs pile up, and the actual script gets lost behind the noise. It could show all the generated areas in some other color, I'm picturing red, and be read-only (or a new tab).
Oh, and I don't know if this is really possible, but can you put a box around all the sliders from the same line? One line doesn't always correspond to one function, but it's good enough for government work.
Whew, that's a lot to think about, my brain is kinda fried recently. I'll get to thinking and working on this stuff after I finish the new release, should be a good one (keep reading).
Small suggestions for the Fonts tab:
- have a master font option, then only bring up the color dialog for each font
- default to a monospace font like Lucida Console
Aha, one step ahead of you (sorta). The next release will have much improved syntax highlighting (I am nearly finished with my custom AviSynth lexer), so I'll likely get rid of the Fonts tab in the Program options dialog and make a whole new dialog, where you can configure every font, color, and highlight color individually for each AviSynth style. The styles include strings, triple-quoted strings, comments, built-in filters, external filters, etc (I'm still working out the details, but basically I'm trying to allow you to be able to configure everything I can). It will take me a while to work everything into a release-worthy form, so expect the new release in 3 or 4 days, worst case a week from now.
As far as a monospace font as a default, well, there's a catch. If you look at the default fonts right now, you'll notice that there are different fonts and different sizes for things like comments, strings, etc. This text variation improves readability (well, I guess that's my opinion, the default values in AvsP are the same as the default values in SciTe text editor), but obviously screws with a monospaced font maintaining constant column size. The way SciTe deals with this is by having the menu option to switch to a monospaced font (of your choice) at any time, which overrides the fonts for all the styles (basically the "master font" option you mention), and you can always switch back. I'll try to implement something like this, but I can't guarantee that it will be in the upcoming release.
Richard Berg
9th October 2006, 04:30
Sorry about the server guys. I'm really pissed, but what can ya do.
Since I couldn't work on the site, I spent some time learning Python. Fun language. Can't say the same for Py/C++ interop though...unbelievably annoying...
Good news is I've done all the hard work for you. Here's a taste:
import avisynth
env = avisynth.CreateScriptEnvironment()
def GetAVSList (suffix, lst):
return [sorted(env.GetVar(x+suffix).AsString().split()) for x in lst]
def RemoveAltNames (funcNames):
ret = []
continueFor = False
f = None
for func in funcNames:
f = func + "" # make a copy
while f.find("_") > 0:
f = "_".join(f.split("_")[1:])
if f in funcNames:
continueFor = True
break
if continueFor:
continueFor = False
continue
else:
ret += [func]
return ret
funcTypes = ["$Internal", "$Loaded", "$Plugin"]
allFuncs = GetAVSList("Functions$", funcTypes)
List2Dict = lambda l1, l2: dict((l1[i], l2[i]) for i in range(len(l1)))
allParams = []
nonAltFuncs = []
for names, funcs in List2Dict(funcTypes, allFuncs).iteritems():
allParams += ["%s!%s!Param$" % (names, func) for func in RemoveAltNames(funcs)]
nonAltFuncs += [func for func in RemoveAltNames(funcs)]
allParams = GetAVSList("", allParams)
print List2Dict(nonAltFuncs, allParams)
Output:
{'MVMask': ['c[vectors]c[ml]f[gamma]f[kind]i[Ysc]i[thSCD1]i[thSCD2]i[mmx]b[isse]b'], 'JDL_SpliceVertical': ['cci'], 'UPlaneMedian': ['c'], 'lcase': ['s'], 'MotionFPS': ['c[FPS]f[method]i[chromamethod]i[source]i[motion]c'], 'JDL_ShowFrameOffset': ['c[cycle]i[height]i'], 'Warp': ['[warpinterpolation]i[moveinterpolation]i'], 'TransVenetianBlinds': ['cci[width]i[type]s'], 'LogOpen': ['s[append]b'], 'SangNom': ['c[order]i[aa]i'], 'MotionProtectedFPS': ['cf[mode]i[protection]i[iterate]i[reset]i[initialise]i'], 'Histogram': ['c[mode]s'], 'JDL_SelectTopField': ['c'], 'TBilateral': ['c[diameterL]i[diameterC]i[sDevL]f[sDevC]f[iDevL]f[iDevC]f[csL]f[csC]f[d2]b[chroma]b[gui]b[ppClip]c[kernS]i[kernI]i[resType]i'], 'LoadVirtualdubPlugin': ['ss[preroll]i'], 'TomsMoComp': ['ciii'], 'SumStretchMask': ['c[multiplier]i'], 'TransMarbles': ['cci[radius]i[mag]i[drop]b'], 'Spline36Resize': ['cii[src_left]f[src_top]f[src_width]f[src_height]f'], 'GMC_UnExpand': ['c'], 'FadeIn': ['ci[color]i[fps]f'], 'midstr': ['si[length]i'],......etc.......]
You get the idea.
http://rapidshare.de/files/36038409/AVSPython.zip.html - 6MB
I've included a full debug environment in the download since (a) it's a real bitch to compile everything on Windows; every package required messy template and/or macro workarounds (b) I only ported about 3% of avisynth.h, and you'll definitely want a full debug stack if you continue the work (c) it uses AVS 2.6 + some diffs. Namely, the plugin interface is more consistently named and finally includes dynamically loaded functions & plugins. I also got about 1/3 of the way thru fixing all the MSVC8 warnings. I'm tired and traveling all next week, peace out for now..
qwerpoi
9th October 2006, 18:56
@Richard Berg
Wow, that's pretty damn impressive, considering you just learned python! Well, it took me only a couple of days to learn Python myself, but I was pretty far from lambda functions, list comprehensions, and c++ bindings (which is probably the most complex thing you'll ever encounter with Python).
I see you're using Boost for the c++ bindings, there's also SWIG - I've used Boost before, I've looked at SWIG, I don't like either one. One other possibility is to wrap the c++ code with c code and compile a dll, Python can call c dlls directly using ctypes (used to be a third-party plugin, now part of the standard Python distribution since v2.5). I realize that there already exists avisynth_c.dll, but from my experiments it's not compatible with ctypes.
So, I want to understand what advantages a Python binding to AviSynth can bring to AvsP, beyond function enumeration (something tsp is working on). I realize that I should look at the avisynth cpp source myself, which I will do, just want to avoid any misunderstandings on my part. First, it would be cool to use AviSynth to get the output video, currently I'm using AVIFile functions from avifil32.dll. To display a frame, AvsP requires pointers to a windows bitmap header and data - is this directly possible with AviSynth? Secondly, AvsP would benefit from being able to parse the script for variable information, ie currently it's not possible to use an AviSynth variable within a user slider. I'm not sure how this can be achieved. Thirdly, although this isn't a direct benefit to AvsP, but I believe with a full port you should be able to write AviSynth plugins in Python. The performance hit will make this impractical for most purposes, but it may be cool to script custom plugins either for one-time use or for prototyping, would probably be a good fit with AvsP's macros. I'm sure there are other advantages to a Python binding to AviSynth, this is what comes to my mind right now. Anyone familiar with the AviSynth source, feel free to either correct me or add new ideas.
Edit: Just realized that python bindings to avisynth could result in a significant speed/memory boost for user sliders, since it would be possible to get individual frames as opposed to reloading the entire video with a new .avs file (I actually mentioned this in one of the earlier posts, must be going senile). If this is true then it would be possible to constantly update the video as you drag a user slider, which would be cool.
tsp
9th October 2006, 21:20
So, I want to understand what advantages a Python binding to AviSynth can bring to AvsP, beyond function enumeration (something tsp is working on). I realize that I should look at the avisynth cpp source myself, which I will do, just want to avoid any misunderstandings on my part. First, it would be cool to use AviSynth to get the output video, currently I'm using AVIFile functions from avifil32.dll. To display a frame, AvsP requires pointers to a windows bitmap header and data - is this directly possible with AviSynth?
not directly but you can get an avisynth frame that contains the raw data so it should be easy to convert it to a windows bitmap (or create a c wrapper to do it)
Secondly, AvsP would benefit from being able to parse the script for variable information, ie currently it's not possible to use an AviSynth variable within a user slider. I'm not sure how this can be achieved.
you will need to process the script until just before the filter where the slider appears. When you call GetVar to get the content of the varible and use it with the slider. Then you process the rest of the script
Thirdly, although this isn't a direct benefit to AvsP, but I believe with a full port you should be able to write AviSynth plugins in Python. The performance hit will make this impractical for most purposes, but it may be cool to script custom plugins either for one-time use or for prototyping, would probably be a good fit with AvsP's macros. I'm sure there are other advantages to a Python binding to AviSynth, this is what comes to my mind right now. Anyone familiar with the AviSynth source, feel free to either correct me or add new ideas.
[quote]
Edit: Just realized that python bindings to avisynth could result in a significant speed/memory boost for user sliders, since it would be possible to get individual frames as opposed to reloading the entire video with a new .avs file (I actually mentioned this in one of the earlier posts, must be going senile). If this is true then it would be possible to constantly update the video as you drag a user slider, which would be cool.
you will still need to reload the script every time the slider is moved (unless you are creative with scriptclip) because the parameters you change are used by the filters when the script is created.
if you use scriptclip you can assign the slider value to a avisynth variable using setvar, the problem with using scriptclip is that the filter is recreated for each frame even if the slider value hasn't change.
Richard Berg: qwerpoi will need to use the included version of avisynth to get AVSPython to work or at least avisynth 2.5.7?
Richard Berg
9th October 2006, 22:47
Well, it took me only a couple of days to learn Python myself, but I was pretty far from lambda functions, list comprehensions, and c++ bindings (which is probably the most complex thing you'll ever encounter with Python).
Part of the reason Python was on my list of languages to learn is because it's a friendly intro to functional programming. Test.py make have been my first program, but remember I spent 2 whole days making it work and refactoring it with cool Python features :) Haskell is next...
I don't like either one.
I don't like it either. I actually had to fix a bug in Boost::Python::details in order to make it compile __stdcall / __cdecl decorations correctly. Have you ever tried to debug someone else's template metaprogramming before? I don't recommend it.
But that's behind us now. Translating the rest of avisynth.h will be straightforward with the tools I provided.
I'm sure there are other advantages to a Python binding to AviSynth
From what I've seen of Python, writing video filters would be even more annoying than slow. Lots of people malign C++ raw pointer access, but it makes working with video data quite natural & intuitive IMO, especially now that we have planar colorspaces.
For "big" applications of this line of work, I thought of something even more radical: replacing the AVS scripting language with Python. Didee scripts and AvsP macros would both become a lot more powerful & easy... What do you think?
you will need to process the script until just before the filter where the slider appears.
Correct. In fact, without a lot of work, you'll need to reload the whole script. Partitioning the script by adjustable-filters is a great optimization but will be tricky to get right.
If you use it with avisynth 2.5.7 then you'll need to change the GetVar call.
2.5.7:
$InternalFunctions$ Should contain function names of all internal functions.
$InternalFunctions!Functionname!Param$ Should contain all parameters for each internal function.
$PluginFunctions$ Should contain all plugins.
$Plugin!Functionname!Param$ Should contain all parameters.
2.6.richardb:
$InternalFunctions$
$Internal!Functionname!Param$
$PluginFunctions$
$Plugin!Functionname!Param$
$LoadedFunctions$
$Loaded!Functionname!Param$
Alain2
9th October 2006, 23:58
For "big" applications of this line of work, I thought of something even more radical: replacing the AVS scripting language with Python. Didee scripts and AvsP macros would both become a lot more powerful & easy... What do you think?
Do you suggest that Didee and others start scripting in a python language instead of avs ? If it's the case, do you think it will be easy for others like me to learn python and understand Didee's scripts ? Or to convert my own scripts to python ? Avs is a simple and yet powerful language, very easy for anybody to learn and easy to read, I am not sure about python.. ?
Richard Berg
10th October 2006, 00:06
Python is very easy to read and learn. It's also quite similar to AVS. But don't worry -- if we ever added another language (and that would be a long way off), we wouldn't remove the old one, of course.
Ebobtron
10th October 2006, 05:23
Edit: Just realized that python bindings to avisynth could result in a significant speed/memory boost for user sliders, since it would be possible to get individual frames as opposed to reloading the entire video with a new .avs file (I actually mentioned this in one of the earlier posts, must be going senile). If this is true then it would be possible to constantly update the video as you drag a user slider, which would be cool.
Some months back while I was looking for a solution to my use of the prehistoric MCI (Media Control Interface) video viewer in FilmCutter (http://forum.doom9.org/showthread.php?t=97438). I remembered toying with the following two AviSynth plug-ins.
avsmon "AviSynth monitor" (by johann.Langhofer)
http://forum.doom9.org/showthread.php?s=&threadid=32125
tritical's Tmonitor
http://bengal.missouri.edu/~kes25c/
Neither plug-in when running consumed more than 15 percent cpu resources above what a player / viewer was already using. Two viewers running real time (simple scripts), seem very exciting.
What I saw in the source code suggested to me that a very quick and efficient viewer could be developed using the script environment get frame thing to output frames directly to the screen. But I do suffer from the advantage of not knowing what I am doing.
Lacking help and ability, the inspiration soon deserted me, maybe you will have better luck.
2.5.7:
$InternalFunctions$ Should contain function names of all internal functions.
$InternalFunctions!Functionname!Param$ Should contain all parameters for each internal function.
$PluginFunctions$ Should contain all plugins.
$Plugin!Functionname!Param$ Should contain all parameters.
When Fizick found the bug in 2.56 (http://forum.doom9.org/showthread.php?p=737582#post737582), I discoverd that " $InternalFunctions!Functionname!Param$ " didn't work as advertized, " $Plugin!Functionname!Param$ " does work for both internal and plug-in functions in current builds of 2.57.
@qwerpoi
"Thanks for your works", to quote Fizick
@Richard
Thanks to you too, sir, for AviSynth.org.
rfmmars
10th October 2006, 05:48
In my HDRagc script the "shift_u & shift_v functions work as they should.
I have added sliders for most of the functions without a problem, however when making the sliders for the "shift function" they act only as a color level controls.
HDRAGC([<"max_gain", .1, 5, 2.3>], [<"min_gain", .1, 5, 2.0>], [<"blackclip", 0, 1, 0.5>],[<"coef_sat", 0, 4, 4>],[<"reducer", .1, .9, 0.4>],[<"Shift_u", -44, +44, 33>][<"Shift_v", -44, 44, 35>],corrector=.7)
Is this a bug or can there be a work around?
Richard
qwerpoi
10th October 2006, 07:23
you will still need to reload the script every time the slider is moved (unless you are creative with scriptclip) because the parameters you change are used by the filters when the script is created.
if you use scriptclip you can assign the slider value to a avisynth variable using setvar, the problem with using scriptclip is that the filter is recreated for each frame even if the slider value hasn't change.
I thought that may be the case. Still, that's better than what is being done now, using AVIFile functions AvsP has to write out a new .avs script to the hard drive every time a slider value is changed, which is obviously problematic for instantaneous updating.
For "big" applications of this line of work, I thought of something even more radical: replacing the AVS scripting language with Python. Didee scripts and AvsP macros would both become a lot more powerful & easy... What do you think?
Wow, that's is a radical idea. Given the similarities between the languages, and given the fact that Python is an absolutely complete language, I think it would be very cool (at the minimum there would no longer be a need to hack for loops in AviSynth :) ). It seems to me that it would be possible to make the Python syntax nearly 100% compatible with the AviSynth syntax (although I'm not sure how the implicit "last" variable would work out), which would be awesome.
Avs is a simple and yet powerful language, very easy for anybody to learn and easy to read, I am not sure about python.. ?
I am in complete agreement about AviSynth as a language, I would argue it's the best way to teach a beginner how to program :eek: . Python is a very easy to learn language, in many ways it removes much of the complexity out of programming, but in reality it is geared towards people who are already familiar with an object oriented language like C++. I don't think many people will agree with me, Python is often recommended as the ideal programming language for beginners. Again, I would say AviSynth is better - you get to learn the concept of variables and program flow, no need for a compiler, all syntax errors are caught and displayed with a video, and most importantly, you can immediately see the benefit of learning how to program (improving video quality or compressibility is something that absolutely anyone can appreciate). Of course after understanding the basics with AviSynth, you could move on to other languages for advanced programming concepts, I would clearly recommend Python for that.
Some months back while I was looking for a solution to my use of the prehistoric MCI (Media Control Interface) video viewer in FilmCutter (http://forum.doom9.org/showthread.php?t=97438). I remembered toying with the following two AviSynth plug-ins.
avsmon "AviSynth monitor" (by johann.Langhofer)
http://forum.doom9.org/showthread.php?s=&threadid=32125
tritical's Tmonitor
http://bengal.missouri.edu/~kes25c/
Neither plug-in when running consumed more than 15 percent cpu resources above what a player / viewer was already using. Two viewers running real time (simple scripts), seem very exciting.
What I saw in the source code suggested to me that a very quick and efficient viewer could be developed using the script environment get frame thing to output frames directly to the screen. But I do suffer from the advantage of not knowing what I am doing.
Lacking help and ability, the inspiration soon deserted me, maybe you will have better luck.
Hah, I have no idea what I'm doing either :) . Really a lot of the stuff being discussed in these last several posts are a bit over my head, it's certainly interesting, a lot of exiting possibilities, and I will spend effort trying to make the most of it, but I will again stress that I'm not a great programmer on a technical level. Stuff like compiler issues and dll compatibility give me a headache, I never was even able to successfully make an AviSynth plugin (I guess mostly because I quit, though :p ). The reason I eventually went to python/wxpython is because I don't need to be a technical whiz in order to get impressive results.
In my HDRagc script the "shift_u & shift_v functions work as they should.
I have added sliders for most of the functions without a problem, however when making the sliders for the "shift function" they act only as a color level controls.
HDRAGC([<"max_gain", .1, 5, 2.3>], [<"min_gain", .1, 5, 2.0>], [<"blackclip", 0, 1, 0.5>],[<"coef_sat", 0, 4, 4>],[<"reducer", .1, .9, 0.4>],[<"Shift_u", -44, +44, 33>][<"Shift_v", -44, 44, 35>],corrector=.7)
Is this a bug or can there be a work around?
Richard
In the script you posted you are missing a comma between the shift_u and the shift_v slider.
If that doesn't solve the problem, then try these things out. First, you should make sure that you don't have any other sliders in your script with the same names. Second, you should get rid of ALL user sliders, and test whether the filter behaves as you expect when you change the numbers manually. If this does not solve the problem, then you may need to post some screenshots, since I am not certain about the expected behavior of the hdr agc filter.
Pookie
10th October 2006, 08:45
May I add a request to your "when I get around to it" list? What about a menu choice like "Transcode with External App" which would have a path field for a command line app (FFmpeg, x264, Mencoder come to mind), a field for switches, and a place to add an output file name - everything could be typed in manually.
Thanks, man. :)
qwerpoi
10th October 2006, 08:53
May I add a request to your "when I get around to it" list? What about a menu choice like "Transcode with External App" which would have a path field for a command line app (FFmpeg, x264, Mencoder come to mind), a field for switches, and a place to add an output file name - everything could be typed in manually.
Thanks, man. :)
Haha, you read my mind (or did I read yours?). In the next release there will be a way to do this via macros, so you can have as many external apps as you want in the menu and assign them whatever keyboard shortcuts you want. I'll supply a sample macro, all you would have to do is change the path to the app and the command line arguments. The new release is coming soon, perhaps in 2 days...
rfmmars
10th October 2006, 17:53
"In the script you posted you are missing a comma between the shift_u and the shift_v slider.
If that doesn't solve the problem, then try these things out. First, you should make sure that you don't have any other sliders in your script with the same names. Second, you should get rid of ALL user sliders, and test whether the filter behaves as you expect when you change the numbers manually. If this does not solve the problem, then you may need to post some screenshots, since I am not certain about the expected behavior of the hdr agc filter."
Sorry for the comma missing but that made no difference. I deleted all non "HDRagc" scripting and the problem remained.
Moving the "shift functions to an earlier position of the code line gives an "avisynth" error with no other information. The same script without the AVSp notation works fine. All the sliders appear but the first shift slider acts like a colour level control, and the second does nothing.
I will post a picture but I don't think it will help.
Richard
Ignus2
10th October 2006, 22:39
Great program! Just what I needed, EXACTLY what I needed.
Thank you for it!
And now my problem:
The video preview always closes, when I switch tabs.
Is this intended?
--
Greets,
B.
qwerpoi
10th October 2006, 22:59
Sorry for the comma missing but that made no difference. I deleted all non "HDRagc" scripting and the problem remained.
Moving the "shift functions to an earlier position of the code line gives an "avisynth" error with no other information. The same script without the AVSp notation works fine. All the sliders appear but the first shift slider acts like a colour level control, and the second does nothing.
I will post a picture but I don't think it will help.
Richard
The reason I need a picture is that since I'm not familiar with the filter, I can't tell whether the slider is working or not based on the output video. So if you could post a picture of AvsP with a script with no sliders, and another picture of AvsP with a script with the problematic slider set to the same value, I can see for myself how the video outputs are different when they should be the same. Also, it would help if you could post any scripts that cause unexpected errors.
The video preview always closes, when I switch tabs.
Is this intended?
The video preview will close when you switch tabs IF the two videos do not have similar properties (same width, height, and framecount). This is done to avoid any confusing behavior when comparing multiple script outputs. I would give you a link to the online docs for more info, but avisynth.org is down for the moment :( .
rfmmars
11th October 2006, 00:51
[QUOTEThe reason I need a picture is that since I'm not familiar with the filter, I can't tell whether the slider is working or not based on the output video. So if you could post a picture of AvsP with a script with no sliders, and another picture of AvsP with a script with the problematic slider set to the same value, I can see for myself how the video outputs are different when they should be the same. Also, it would help if you could post any scripts that cause unexpected errors. :( .[/QUOTE]
I have shorten the script, it all shows in each pic.
Here are the shots, The first is without the Shift_xxx sliders, everthing is normal
http://www.uploading.com/files/QKMVIZE1/No_Shift.jpeg.html
Here is the problem, the one shift slider act like a level control, depending where you put it, is effect is never correct but different, even alone, and the other has no effect, good or bad.
http://www.uploading.com/files/6SAR87OW/Shift.jpeg.html
This is what it should look like. The shift settings are manually set
http://www.uploading.com/files/MGZ7WLWH/Shift_Manualyy.jpeg.htm
I am not saying its your program, I am looking for a solution, and the problem may be with HDRagc.
Richardl
qwerpoi
11th October 2006, 01:20
I have shorten the script, it all shows in each pic.
Here are the shots, The first is without the Shift_xxx sliders, everthing is normal
http://www.uploading.com/files/QKMVIZE1/No_Shift.jpeg.html
Here is the problem, the one shift slider act like a level control, depending where you put it, is effect is never correct but different, even alone, and the other has no effect, good or bad.
http://www.uploading.com/files/6SAR87OW/Shift.jpeg.html
This is what it should look like. The shift settings are manually set
http://www.uploading.com/files/MGZ7WLWH/Shift_Manualyy.jpeg.htm
I am not saying its your program, I am looking for a solution, and the problem may be with HDRagc.
Richardl
Thanks for posting the pics! It looks like the HDRAGC plugin has all optional arguments, so you must specify the names if your arguments are not in the default order. Something like this script should fix your problem:
AVISource("C:\hdragc.avi")
HDRAGC(shift_u=[<"shift_u", -30, +30, -22>], shift_v=[<"shift_v", -30, +30, -2>])
Most likely you got accidentally confused with the slider name and the optional argument name - the user sliders do not automatically input optional argument names into the filter. Let me know if there are still issues.
rfmmars
11th October 2006, 01:25
Thanks for posting the pics! It looks like the HDRAGC plugin has all optional arguments, so you must specify the names if your arguments are not in the default order. Something like this script should fix your problem:
AVISource("C:\hdragc.avi")
HDRAGC(shift_u=[<"shift_u", -30, +30, -22>], shift_v=[<"shift_v", -30, +30, -2>])
Most likely you got accidentally confused with the slider name and the optional argument name - the user sliders do not automatically input optional argument names into the filter. Let me know if there are still issues.
Just super, that did it...........EXCELLENT
Richard
qwerpoi
11th October 2006, 06:28
avisynth.org may be down, but we must continue onwards! New version 1.2.1, get it from here (http://rapidshare.de/files/36377094/AvsP_v1.2.1.zip.html) (rapidshare). It's another big changelog:
* custom syntax highlighter, more than 30 individually configurable fonts/colors
* added ability to override all fonts with a monospaced font (suggested by Richard Berg)
* added recent files menu (suggested by check)
* added shortcut for moving lines up/down (suggested by communist)
* added method to disable video preview (suggested by Alain2)
* added option to specify initial line margin width (suggested by nibbles)
* added optional arguments to pass to external player
* updated several macro functions, see new examples and macros_readme.txt for info
* added option to disable frequent calltips, show only upon typing open parentheses
* added ability to use keyboard shortcut for filter help file (suggested by Alain2)
* added option to wrap the text (suggested by Alain2)
* added option to highlight current line (suggested by Alain2)
* added 25% and 50% zoom levels (suggested by communist)
* moved line-by-line update mode to menu option, to allow for keyboard shortcut
* changed data format for options files to editable text files
> fixed minor bug with improper video updating (thanks nibbles)
> fixed small mistakes with some messages (thanks zemog)
> fixed minor bug with tabs and spaces
> fixed minor bug with session saving/loading
> cleaned up minor issues with tooltip code
The biggest change is the custom syntax highlighter which I finally got around to implementing. All the tiny issues with things like triple-quoted strings and % coloring should be handled properly now. You can configure practically every font and color in the menu option "Options -> Fonts and colors...". The info is stored in a separate file, textstyles.dat. Be aware that I implemented the highlighting code in Python, not c++, so it may be slower (I didn't notice any performance issues). If it turns out that there are issues with the new highlighter, you can revert back to the old one in "Options -> Program settings..." under the "Misc" tab.
Another noteworthy change is that you can now have as many external players that you want, via macros. There's a new sample macro called "Secondary player.py", make a copy of it and change the exe path and arguments to whatever you need. There are also new sample macros which show how to feed the current script in AvsP to an encoding program, good stuff if you use command-line encoders.
One final thing I'll mention is that now the data format for the options files is text instead of binary. It's not necessarily human readable (not much worse than xml imo :) ), but it is editable if that sort of thing is appealing to you.
As always, with big changes come big bugs, so report back with any problems with the new version.
niiyan
11th October 2006, 16:27
@qwerpoi
When I type ")", AvsP v1.2.1 always displays "(".:o
Henrikx
11th October 2006, 17:12
Update German translation to AvsP 1.2.1
qwerpoi
11th October 2006, 20:07
@qwerpoi
When I type ")", AvsP v1.2.1 always displays "(".:o
Whoa, that's a big problem! I believe it only affects certain non-us keyboards, sorry about that. I updated the links with a fixed version (same version number, does not affect translation work), you can get it here (http://rapidshare.de/files/36377094/AvsP_v1.2.1.zip.html). Just to be clear, if you are not experiencing this problem, there is no reason to re-download version 1.2.1.
Update German translation to AvsP 1.2.1
Wow, that was fast, I thought this one would take a bit longer, there were a lot of new messages! Hope you are liking the new version.
Henrikx
11th October 2006, 20:36
@qwerpoi
The sense of the sentence in German language is sometimes difficult. Example : Triple-quoted string..but a Thread ,called Translate Technical terms, by Forum Gleitz help me much ...special LigH and Doxville
Therefore I only can answer No to I thought this one would take a bit longer and Yes to Hope you are liking the new version.
communist
11th October 2006, 21:55
Just to be clear, if you are not experiencing this problem, there is no reason to re-download version 1.2.1.
Thanks! English XP SP2 with german keyboard setup, had the problem - was fixed with the 'latest' 1.2.1.
New version just rocks!
krisq
11th October 2006, 22:23
Excellent update, as always :D
Thanks!
Alain2
12th October 2006, 01:35
French translation updated :)
Good work again ! Thank you ;)
Do you think it would be possible to make the video window independant of the editor window, and maybe put the sliders / block tick boxes in a separate window or to the right of the editor window, with a fixed width selectable in the options ? That way the sliders wouldn't change when we resize AvsP window or when the video window is resized. Also this may enable an easy video resizing with its window size ^^ (ok that's the last time I bother you with this video preview resizing business ^^)
Let me quickly explain how I usually compare filters effects in a script : What I usually do is to use the interleave function (or my own clipcomp script); a simple script like this would be:mpeg2source("mov.d2v")
# some filters here..
a=last
filter1(arg1=a,..)
b=last
a
filter1(arg1=b,..)
interleave(b.subtitle("a"),last)
I open this in vdubmod, find some interesting positions to look at, and flick through the interleaved frames to see the différences (thanks to avosynth keeping in a buffer the frames it's possible to go back and forth at a position very quickly when the frames have been processed once). That way it's very fast so you clearly see the effect (I often resize with a 1:1 ratio the vdubmod window to the width of my screen to beeter see the effect). And to change an argument and see the effect I just do alt+tab to come back to n++, do the change, alt+tab to come back to vdubmod, and hit F5 to refresh at the current position. This proves very effective, and I am nearly able to do it with AvsP.
What I currently don't like with the duplication of a script in several tabs for comparing is that although it's fast to switch tabs, everytime I seek to a new position, all scripts need to be reloaded to that position, and with slow filters (motion compensation etc) it is rather slow to reload all these full scripts rather than the interleave function (that save rebuilding all filters before the part you're interested in, and avoids duplicating frames in memory at a position as its only one clip that contains it all). But I love everything else in AvsP ^^ That's why if I could reproduce something similar to what I have with n++/vdubmod, I would be really happy; but if you don't do it I understand, I am probably in minority for this request anyway, and all the syntax highlighting + calltips + filters help access you've added to AvsP already qualify it as an excellent avisynth dedicated editor that will very effectively replace my n++ for avs editing :)
Ah a small thing: when I toggle the disable preview window, it first goes back to frame 0 and then switch it off, thus it takes some time to go to frame 0, and it looses the current position..
qwerpoi
12th October 2006, 02:27
Thanks! English XP SP2 with german keyboard setup, had the problem - was fixed with the 'latest' 1.2.1.
New version just rocks!
Whew, glad that is fixed now, and glad you like the new version :) .
Excellent update, as always :D
Thanks!
You're welcome, as always!
French translation updated :)
Excellent! Thanks!
Do you think it would be possible to make the video window independant of the editor window, and maybe put the sliders / block tick boxes in a separate window or to the right of the editor window, with a fixed width selectable in the options ? That way the sliders wouldn't change when we resize AvsP window or when the video window is resized. Also this may enable an easy video resizing with its window size ^^ (ok that's the last time I bother you with this video preview resizing business ^^)
No, it's a valid request, and it's probably the next big thing I need to work on. As I mentioned in an earlier post, the way the preview and sliders are currently layed out works fine with me, but I certainly can understand how it is not ideal when working with large resolution files. It won't be easy to rearrange all the layout code, but it's something I will have to do eventually (but I can't make any guarantees as to when, let's just say it's getting near the top of my todo list).
Let me quickly explain how I usually compare filters effects in a script : What I usually do is to use the interleave function (or my own clipcomp script); a simple script like this would be:
I open this in vdubmod, find some interesting positions to look at, and flick through the interleaved frames to see the différences (thanks to avosynth keeping in a buffer the frames it's possible to go back and forth at a position very quickly when the frames have been processed once). That way it's very fast so you clearly see the effect (I often resize with a 1:1 ratio the vdubmod window to the width of my screen to beeter see the effect). And to change an argument and see the effect I just do alt+tab to come back to n++, do the change, alt+tab to come back to vdubmod, and hit F5 to refresh at the current position. This proves very effective, and I am nearly able to do it with AvsP.
What I currently don't like with the duplication of a script in several tabs for comparing is that although it's fast to switch tabs, everytime I seek to a new position, all scripts need to be reloaded to that position, and with slow filters (motion compensation etc) it is rather slow to reload all these full scripts rather than the interleave function (that save rebuilding all filters before the part you're interested in, and avoids duplicating frames in memory at a position as its only one clip that contains it all).
I see the problem, but I'm not sure what the solution would be. Clearly you can use the interleave function in AvsP in a single tab just like you would when using notepad++/vdub, it would be identical. As far as I see it, using multiple tabs requires loading multiple frames (the first time), I don't see any other way around it. Perhaps I'm misunderstanding your request, so feel free to correct what I'm saying here.
Ah a small thing: when I toggle the disable preview window, it first goes back to frame 0 and then switch it off, thus it takes some time to go to frame 0, and it looses the current position..
Yeah, this was done to avoid strange behavior when changing scripts. In other words, if you disable the preview and it stays at frame 5000, then you switch tabs to a script with only 200 frames, the video slider is in a position which doesn't exist. If you think that behavior is acceptable, I'll do some tests to see if it doesn't cause any problems and change the behavior in the next release.
Pookie
12th October 2006, 03:02
MonoSpaced Fonts for the Masses
http://www.tobias-jung.de/seekingprofont/
http://www.proggyfonts.com/index.php?menu=download
http://www.netalive.org/tinkering/triskweline/
Richard Berg
12th October 2006, 05:54
Yeah, this was done to avoid strange behavior when changing scripts. In other words, if you disable the preview and it stays at frame 5000, then you switch tabs to a script with only 200 frames, the video slider is in a position which doesn't exist.
Look at how VDub does it. When you refresh, the slider says 5000, which is obviously wrong, but hitting Left takes you to frame 199. That seems like a decent compromise.
kypec
12th October 2006, 08:29
MonoSpaced Fonts for the Masses
http://www.tobias-jung.de/seekingprofont/
http://www.proggyfonts.com/index.php?menu=download
http://www.netalive.org/tinkering/triskweline/
Many thanks for all of these:goodpost:
krisq
12th October 2006, 10:52
No, it's a valid request, and it's probably the next big thing I need to work on. As I mentioned in an earlier post, the way the preview and sliders are currently layed out works fine with me, but I certainly can understand how it is not ideal when working with large resolution files. It won't be easy to rearrange all the layout code, but it's something I will have to do eventually (but I can't make any guarantees as to when, let's just say it's getting near the top of my todo list).
I've been working with hdv files lately and that's exactly what came to my mind. Working with large resolutions would be so much easier with undockable preview window. So I second this request. :)
niiyan
12th October 2006, 16:27
@qwerpoi
I have no problem with the modified version. Thanks a lot.
And I updated Japanese translation. You can get it from the following links:
http://niiyan.net/?AvsP
http://niiyan.s8.xrea.com/blosxom/avisynth/tool/20060920-avsp-ja.htm
The files in these 2 pages are the same. But second page is written by Japanese (for Japanese users).
Alain2
12th October 2006, 19:29
No, it's a valid request, and it's probably the next big thing I need to work on. As I mentioned in an earlier post, the way the preview and sliders are currently layed out works fine with me, but I certainly can understand how it is not ideal when working with large resolution files. It won't be easy to rearrange all the layout code, but it's something I will have to do eventually (but I can't make any guarantees as to when, let's just say it's getting near the top of my todo list).
Great! for me it's not that urgent anyway, I can do the same by disabling the video and use vdubmod to preview scripts (with the interleave method it's ok)
I see the problem, but I'm not sure what the solution would be. Clearly you can use the interleave function in AvsP in a single tab just like you would when using notepad++/vdub, it would be identical. As far as I see it, using multiple tabs requires loading multiple frames (the first time), I don't see any other way around it. Perhaps I'm misunderstanding your request, so feel free to correct what I'm saying here.
Well I don't know the solution either ^^ just wanted to give you a flavour of what I was doing, but I can't think either of a way around it using AvsP features.
Yeah, this was done to avoid strange behavior when changing scripts. In other words, if you disable the preview and it stays at frame 5000, then you switch tabs to a script with only 200 frames, the video slider is in a position which doesn't exist. If you think that behavior is acceptable, I'll do some tests to see if it doesn't cause any problems and change the behavior in the next release.
Personnaly this behaviour is acceptable, I never work on totally different avs at the same time, so this case is unlikely to happen for me (and with my interleave way of doing things I definitely won't have this multi-clips problem ^^)
Look at how VDub does it. When you refresh, the slider says 5000, which is obviously wrong, but hitting Left takes you to frame 199. That seems like a decent compromise.
If what Richard is suggesting is easy enough for you to do, that would be a very acceptable compromise :)
[edit] As the site is down can you add my translation webpage to your first post ? Or I can just show the direct link at every update of AvsP : AvsP French Translations (http://homepages.nildram.co.uk/~cestial/AvsP/)
qwerpoi
12th October 2006, 19:51
MonoSpaced Fonts for the Masses
http://www.tobias-jung.de/seekingprofont/
http://www.proggyfonts.com/index.php?menu=download
http://www.netalive.org/tinkering/triskweline/
Good stuff, I use the proggy fonts occasionally myself. One thing to keep in mind is that not all monospaced fonts have the same width when bold, so your columns may not line up perfectly when using the monospaced font option in AvsP. If this bothers you, you can either undo all the bold fonts in "Options -> Fonts and colors..." or simply make sure you use a monospaced font with same bold width.
Look at how VDub does it. When you refresh, the slider says 5000, which is obviously wrong, but hitting Left takes you to frame 199. That seems like a decent compromise.
The frame slider in AvsP already has bounds checking, so I don't think there will be any difficulties with this. I guess I didn't like the idea of undefined positions, but it's probably just me being a bit anal about it :) .
I've been working with hdv files lately and that's exactly what came to my mind. Working with large resolutions would be so much easier with undockable preview window. So I second this request. :)
Yeah, it's been brought up quite a few times, so I guess I better start cracking on it. I want to give it some thought, since the whole reason for an attached video preview was to avoid managing a bunch of windows, which will definitely be an issue if the video preview, the slider window, and the script editor are all separated. I'll see what I can come up with.
@qwerpoi
I have no problem with the modified version. Thanks a lot.
And I updated Japanese translation. You can get it from the following links:
http://niiyan.net/?AvsP
http://niiyan.s8.xrea.com/blosxom/avisynth/tool/20060920-avsp-ja.htm
The files in these 2 pages are the same. But second page is written by Japanese (for Japanese users).
Glad the fixed version works okay, and thanks for the translation update!
Edit: The second link did not work for me. Also, did you want me to link to the english or japanese page on the AvsP website (when avisynth.org is back up)?
As the site is down can you add my translation webpage to your first post ? Or I can just show the direct link at every update of AvsP : AvsP French Translations (http://homepages.nildram.co.uk/~cestial/AvsP/)
Good point, I'll add the links to the translations to the first post as soon as possible.
nibbles
13th October 2006, 02:56
Ever consider making directly editable slider values the way the
frame number is editable? Awesome changelist. Excellent
things you're doing with Flash, too. Ok nibs.
Veiga
13th October 2006, 05:39
For the first time...
Hello for @All and sorry for my poor english too
qwerpoi congratulation for your very good work and tool. This is the tool !
Something that really make our life easy. Since the... and day after day become better.
I was encouraged to test a lot of plugins
Nothing to suggestion at moment. A little contribution if someone needs, a Portuguese(BR) translation:
qwerpoi
13th October 2006, 06:37
Ever consider making directly editable slider values the way the
frame number is editable? Awesome changelist. Excellent
things you're doing with Flash, too. Ok nibs.
Yes, it's a good idea, unfortunately for many people the sliders often take up too much space as it stands. As I mentioned earlier, I'm going to start working on a way to combat this space issue, but for now, you can use the cumbersome workaround of editing the numbers directly in your script and refreshing the preview. Oh, and I can't take credit for the cool stuff with the Flash demo - I made the demo using Wink (http://www.debugmode.com/wink/), a completely free but unbelievably powerful program for making any kind of Flash tutorial. Despite being very powerful and feature rich, this thing is an absolute breeze to use (I was able to start using it without even reading a tutorial or help file), and I can't imagine any payware doing a better job.
For the first time...
Hello for @All and sorry for my poor english too
qwerpoi congratulation for your very good work and tool. This is the tool !
Something that really make our life easy. Since the... and day after day become better.
I was encouraged to test a lot of plugins
Nothing to suggestion at moment. A little contribution if someone needs, a Portuguese(BR) translation:
Nice! I'll add the link to the first post as soon as the attachment gets approved. Thanks for the high praise, and welcome to the forum!
check
13th October 2006, 10:38
Loving the new updates - this program was exceptionally useful for a recent 1080i > 768p conversion I did where I had to play with virtually every slider setting in 3/4 filters :D
That nicely brings me back to that recurring niggle of yours - video preview window sizes :P Personally, I can't imagine looking at the video in anything but 100% size, and having a detached window would remove much of the advantage over notepad + vdub for me. How about something like a toggle which flips the video preview area (for all 'similar' tabs) between full size and a preset size? You could set the toggle to only work when the video is higher than x pixels, and to switch between 100% and x pixels high.
Also, ctrl-r isn't being used for anything, how about mapping that to refresh so I don't need to move my fingers to reach f5?
niiyan
13th October 2006, 15:13
Edit: The second link did not work for me. Also, did you want me to link to the english or japanese page on the AvsP website (when avisynth.org is back up)?
Really? It works now for me.
Anyway, I hope you'll add the link to my Japanese page on your AvsP website. Looking at access log, I noticed some Japanese users came to my English page via your website. But I think it is easier for Japanese to get translation file from Japanese page, rather than English one.
http://niiyan.net/?AvsP exists for you and other non-Japanese users who want to try Japanese interface.:)
qwerpoi
13th October 2006, 19:17
That nicely brings me back to that recurring niggle of yours - video preview window sizes :P Personally, I can't imagine looking at the video in anything but 100% size, and having a detached window would remove much of the advantage over notepad + vdub for me. How about something like a toggle which flips the video preview area (for all 'similar' tabs) between full size and a preset size? You could set the toggle to only work when the video is higher than x pixels, and to switch between 100% and x pixels high.
I'm going to be hard at work this weekend to address this "recurring niggle", so stay tuned :) .
Also, ctrl-r isn't being used for anything, how about mapping that to refresh so I don't need to move my fingers to reach f5?
Refresh is defaulted to F5 based on vdub and some other programs with previews. If it's a finger workout, feel free to change the shortcuts any way you please with "Options -> Configure shortcuts...". You can override any current shortcuts, and your personal changes will be preserved even when you update to a new AvsP version.
Really? It works now for me.
Anyway, I hope you'll add the link to my Japanese page on your AvsP website. Looking at access log, I noticed some Japanese users came to my English page via your website. But I think it is easier for Japanese to get translation file from Japanese page, rather than English one.
http://niiyan.net/?AvsP exists for you and other non-Japanese users who want to try Japanese interface.:)
The link still doesn't work for me (I get a strange message that says "Software error: Invalid [] range "|-o" in regex"), but if it works for you it may just be a problem on my end. I'll update the link on the first post and the website as soon as www.avisynth.org is back up.
zemog
13th October 2006, 20:58
Spanish translation for AvsP v1.2.1
Alain2
13th October 2006, 21:18
@qwerpoi
- Would it be possible that AvsP loads itself with the same window dimensions (and positions maybe) as the previous session ?
- Is it possible to extend the filter help file call to when the cursor is on the filtername as well, not just in the arguments list ? (that may be difficult as I think you linked it to the arguments calltip that - when the option is selected - auto appear only inside the arguments brakets)
- Is it possible in the Avisynth filter list to default the docs url to the last entered location ? (I'm lazy to change directories for all the new entries I am creating ^^) ; well this request is not important, you can do it if it's a 5sec job, if not then forget it ^^
- Can you add a custom color in the appropriate section for the brakets highlighting when the cursor is next to them ? The light blue is not very noticable for me, and I changed the colors now anyway to match my n++ scheme, and I don't see the color difference anymore...
- Maybe you can enhance the line highlighting effect so that if a line ends with a \ or start with a \, it is considered as a continuation of another line and highlight the whole block ?
[edit] More ideas ^^
- An option/shortcut that open the Avisynth filter list and select the filter corresponding to the cursor in the script editor window, or prompt for inserting a new one (and autocomplete the name, leaving me with just the arguments to fill in)
- Another family of highlights, dedicated to the terms Function, { and }
- Add syntax highlights options for the calltips text
- Show the full path to the current tabbed script in the AvsP window title
- Option / symtax for the external player so that we can open the real script with it, not preview.avs ; at the moment using preview changes are not reflected to vdm when I press F5 (in vdm ^^)..
- Make the video shortcuts editable as well (up,down,left,right) ; I often get confused as for which window has the focus (video is covering the script so shift+tab often covers the position where is the cursor), and use up and down in video instead of editor...
[edit2] There seem to be a problem with parsing a script using the conditional environnement: quotes may not be closed on 1 line and still be valid ; here (http://img153.imageshack.us/img153/3371/templb3.jpg) is a screenshot of what I see with the latest mrestore avs from momonster
@check
Why is a detached window not suitable ? If you like to work on the script with the video hidden, then you have to key in commands to show / hide it anyway, and if you like to always have the video open with your script visible, then you can just move the video window below the script window, even make the video window position linked to the script window position so that when moving the script window the video window follow.. ?
check
14th October 2006, 03:52
I would much prefer an inline window primarily so alt-tab doesn't get more cluttered and I can go back and forth between other things easier.
In addition, either the video window would need to be 'always on top', which would of course ruin alt-tabbing to alternate programs, or you would need to manually resize the script window for every new video with different dimensions you do - playing with non maximised windows is never fun :).
qwerpoi
14th October 2006, 05:54
Spanish translation for AvsP v1.2.1
Thanks! I updated the link on the first post, when avisynth.org gets back up I'll probably host the translation file there as well.
@Alain2
Holy schlamoly, that's a lot of requests :D ! My plate is pretty full right now, but I've added all your requests to my todo list, some are much harder to do than others, so I'll only do the easier ones for the moment.
- An option/shortcut that open the Avisynth filter list and select the filter corresponding to the cursor in the script editor window, or prompt for inserting a new one (and autocomplete the name, leaving me with just the arguments to fill in)
Not sure what you mean when you say "select the filter corresponding to the cursor in the script editor window". It sounds like you are asking for some sort of autocomplete mechanism, which already exists with the shortcut Ctrl-Space (for example, type in "bl" and hit Ctrl-Space to see all the filters that start with "bl"). I'm probably misunderstanding something, so please elaborate.
I would much prefer an inline window primarily so alt-tab doesn't get more cluttered and I can go back and forth between other things easier.
In addition, either the video window would need to be 'always on top', which would of course ruin alt-tabbing to alternate programs, or you would need to manually resize the script window for every new video with different dimensions you do - playing with non maximised windows is never fun :).
I personally prefer an attached window myself (hence the current design), but ultimately I'll have to admit it's a user preference. Giving it some careful thought, I believe the issue is not so much having a separate video preview window as it is giving the video window as much screen real estate as possible. In the current design the script window and the user sliders take up a lot of room, making it difficult to edit large resolution files. Furthermore, AvsP acts differently when compared to other Windows programs, in the sense that it can frequently resize the main window and it enforces a minimum window size. These are the issues that I'm trying to address for this next release, it requires a huge amount of rewriting so please be patient :) .
check
14th October 2006, 06:01
arr, sorry - sounds like my vocabulary is wrong. by 'inline' I was referring to how the system currently is.
qwerpoi
14th October 2006, 06:10
arr, sorry - sounds like my vocabulary is wrong. by 'inline' I was referring to how the system currently is.
Not at all, I understood what you meant (I think). What I meant to say was that you and I seem to be the vocal minority, a lot of people request a non-attached video preview. And with good reason, I'm always the first to admit that AvsP's design is not optimal when working with big (read: gigantic :) ) video resolutions, something which needs to be addresed in this hi-def content world we live in today.
Alain2
14th October 2006, 13:11
@qwerpoi
Don't worry about all the requests I made, I've just written down the thoughts I had while using AvsP; as I just started to make it my main avs editor, I can see all the small details that I would like in. But of course I don't expect you to realize them all immediately, if at all ^^ AvsP is already a fantastic editor and video previewer as is :)
[edit] While I am at the requests ^^ Option to allow only 1 instance of AvsP
@check
I think having a separate window doesn't automatically mean having it in the alt+tab list; for instance look at winamp, you can have additional windows, they are even dockable (but this may be difficult to do in python ^^).
Also if you make this window position slaved to the editor window position, them I don't think there would be a big difference with the current system: for instance the upper left corner of the video window is the refence used for relative positon to the editor window, and the video windaw will grow / shrink at the right and bottom only. Here are 2 pictures to illustrate what I mean: Video Focus 1 (http://img82.imageshack.us/img82/9145/tempmu2.jpg) 2 (http://img172.imageshack.us/img172/5568/tempql1.jpg), editor focus 3 (http://img80.imageshack.us/img80/5625/temptf9.jpg)
Wouldn't that be acceptable ?
check
14th October 2006, 13:30
I'm not sure what advantages that would have. If it's not even an independant start menu item, that means you will have to flip between them with a key combination anyway - which is exactly the same as having it inline.
As I said above, changing window sizes is never cool, the relative location of items will not be stable between program instances. The slider bar will move to a different location with every different resolution video I open, the video will be differently located on the screen every time (instead of being nicely aligned a fixed position off the bottom left), nothing will be stable. While change might be nice in real life - I want familiarity in my program UI :P
ps, AvsP 1.2.1 mirror: http://files.project357.com/uploads/index.php?dir=&file=AvsP_v1.2.1.zip - I boosted the max upload size to 8mb so feel free to use this until the main site returns.
Alain2
14th October 2006, 15:23
I think you see AvsP mainly as a video previewer like vdub, whereas I see it primiraly as an avs editor.. thus our different points of view ^^ Oh well, qwerpoi is in charge anyway and will see whats best. For me as it is at the moment is already nice and the editor features (calltips + helpfiles link) are a very big plus compare to other editors.
[edit] Oups forgot to answer your question Not sure what you mean when you say "select the filter corresponding to the cursor in the script editor window". It sounds like you are asking for some sort of autocomplete mechanism, which already exists with the shortcut Ctrl-Space (for example, type in "bl" and hit Ctrl-Space to see all the filters that start with "bl"). I'm probably misunderstanding something, so please elaborate.
What I meant was a direct link to the filter in the avisynth filters list editor ; see this picture (http://img182.imageshack.us/img182/6600/temprh4.jpg) to illustrate it : if the cursor was on the DeHalo_alpha name/arguments, the request if for a shortcut to open the Avisynth filters list at the corresponding filter in the list, as shown on the picture. If it does not exist in the list, prompt for adding it
qwerpoi
14th October 2006, 20:49
@qwerpoi
Don't worry about all the requests I made, I've just written down the thoughts I had while using AvsP; as I just started to make it my main avs editor, I can see all the small details that I would like in. But of course I don't expect you to realize them all immediately, if at all ^^ AvsP is already a fantastic editor and video previewer as is :)
[edit] While I am at the requests ^^ Option to allow only 1 instance of AvsP
Thanks for being patient, and feel free to shoot off as many requests as you like - that goes for everyone, just so long as you understand that I can't implement everything right away, and some good ideas are simply too difficult for me to handle. As for one instance of AvsP, from my experiments it's doable, but it requires threading stuff, which increases the number of dependencies which actually increases the download size dramatically (~1mb). I'll look for other ways to do it when I get the chance.
AvsP 1.2.1 mirror: http://files.project357.com/uploads/index.php?dir=&file=AvsP_v1.2.1.zip - I boosted the max upload size to 8mb so feel free to use this until the main site returns.
Thanks for the mirror. It looks like avisynth.org will be up soon, I was able to partially access AvsP's pages for a while yesterday. Be aware that I wasn't able to update the website since avisynth.org went down, so for now you need to download the newest version from one of the mirrors.
I think you see AvsP mainly as a video previewer like vdub, whereas I see it primiraly as an avs editor.. thus our different points of view ^^ Oh well, qwerpoi is in charge anyway and will see whats best. For me as it is at the moment is already nice and the editor features (calltips + helpfiles link) are a very big plus compare to other editors.
Thanks for acknowledging that I'm in charge, feels great! :) I'm glad you like the program as an editor, I've put a lot of effort into making it competetive in that regard, I'll also try to do my best in making everyone happy with the video preview part as well.
What I meant was a direct link to the filter in the avisynth filters list editor ; see this picture (http://img182.imageshack.us/img182/6600/temprh4.jpg) to illustrate it : if the cursor was on the DeHalo_alpha name/arguments, the request if for a shortcut to open the Avisynth filters list at the corresponding filter in the list, as shown on the picture. If it does not exist in the list, prompt for adding it
Hey, that's a good idea! I'll see what I can do, can't guarantee I'll be able to get it done by the next release but it will be there eventually.
honai
15th October 2006, 15:15
@qwerpoi
any chance seeing the AvsP session/script formats unified into one that is compatible to .avs scripts? Perhaps something along the way of putting the AvsP triggers/directives into Avisynth comments above/below the referenced script lines, with some decorative literals surrounding them, much like the coding directive in the first line of Python scripts (which, if I remember correctly, stems from emacs).
That way you'd only need one .avs to work with.
qwerpoi
15th October 2006, 21:17
The AvsP website is back up, so you can use the regular download links and read the online documentation now. Be aware that the documentation is a touch out of date, I'll update it when I get the chance.
any chance seeing the AvsP session/script formats unified into one that is compatible to .avs scripts? Perhaps something along the way of putting the AvsP triggers/directives into Avisynth comments above/below the referenced script lines, with some decorative literals surrounding them, much like the coding directive in the first line of Python scripts (which, if I remember correctly, stems from emacs).
That way you'd only need one .avs to work with.
The session format has a lot more info than just the scripts, it saves tab positions, the current video frame, preview visibility, video bookmarks, etc. The script information in the session file is different as well, as the session contains all unsaved script changes as well as preserved AvsP-specific syntax (user sliders and toggle sections), which gets stripped from a saved .avs file.
So I guess I need to know why you would need only one format to work with. My intention with sessions was for it to be AvsP specific, I don't see where else you would want to use it. If there was some specific reason you need to have a compatible multi-file format, perhaps I can implement a separate feature.
IceManTX
16th October 2006, 20:06
This tool is amazing! I've just been learning/using Avisynth for a month now and I don't know how I missed AvsP until now.
For the first time, this weekend, I was able to actually see instant differences between plugins that I couldn't decide on before. Now I feel like I am really using the best items and settings for my material in my script.
I really love this program.
THANKS!
Alain2
16th October 2006, 23:51
Small error when trying to open a script I had : ici (http://img221.imageshack.us/img221/1696/tempgj6.jpg) (difficult to catch as it's closing the window immediately after crashing ; maybe it's possible to catch errors and let them displayed to help you debug ?)
qwerpoi
17th October 2006, 00:18
This tool is amazing! I've just been learning/using Avisynth for a month now and I don't know how I missed AvsP until now.
For the first time, this weekend, I was able to actually see instant differences between plugins that I couldn't decide on before. Now I feel like I am really using the best items and settings for my material in my script.
I really love this program.
THANKS!
You're welcome! The program's been out for only about a month and a half, so it's not surprising that you just found out about it. Glad you're finding it useful.
Small error when trying to open a script I had : ici (http://img221.imageshack.us/img221/1696/tempgj6.jpg) (difficult to catch as it's closing the window immediately after crashing ; maybe it's possible to catch errors and let them displayed to help you debug ?)
Thanks for pointing out the bug (thanks especially for taking that nimble screenshot :) ), I'll get on it. As far as catching errors, the error message window sticks around under most circumstances, making it easy to report bugs, I'll see what I can do about catching exceptions which cause the program to exit. And I'm guessing you meant to type "here" instead of "ici", c'est la vie :) .
qwerpoi
17th October 2006, 03:23
@Alain2
I tried reproducing the bug (it seemed like a unicode filename issue), but didn't succeed. Could you tell me exactly how it occurs, and could you also upload your options.dat file? Hopefully that will give me a better idea of what's going on, thanks.
communist
19th October 2006, 06:23
Small suggestion: Could you add a "Copy Script" to the Edit or context menu that would copy the currently selected script / lines in their final form - without the slider definition but with their current defined values. That way you can post the script on the net without having to remove the slider definition or save it explicitly to a file :)
rfmmars
19th October 2006, 06:33
I wanted to report a couple of problems using this fantastic program.
When using a script for HDRagc where multible lines for varables are used, on a bright scene, you can see a brigther border or a darker square covering about 80% of the screen. It varies on different workstations.
The solution was to have all the varibles for a plugin on just one line.
The second problem pops up after a session has been operating for a long time. The preview screen in the "AVSp's" window appears correct but when that script is saved or called by F6, the image in VD-dub is dark and distored.
The solution is to quit AVSp and load the session again.
Richard
qwerpoi
19th October 2006, 08:15
In case anyone was wondering, I'm working hard on the upcoming release, I'm about 90% done with rewriting all the layout code (which will hopefully solve problems some people are having with large resolution videos). I'd estimate the new release to be out sometime during the weekend.
Small suggestion: Could you add a "Copy Script" to the Edit or context menu that would copy the currently selected script / lines in their final form - without the slider definition but with their current defined values. That way you can post the script on the net without having to remove the slider definition or save it explicitly to a file :)
Hah, interesting request. I'll try and have it in the next release.
I wanted to report a couple of problems using this fantastic program.
When using a script for HDRagc where multible lines for varables are used, on a bright scene, you can see a brigther border or a darker square covering about 80% of the screen. It varies on different workstations.
The solution was to have all the varibles for a plugin on just one line.
The second problem pops up after a session has been operating for a long time. The preview screen in the "AVSp's" window appears correct but when that script is saved or called by F6, the image in VD-dub is dark and distored.
The solution is to quit AVSp and load the session again.
Richard
These problems sound strange, from your description it seems like there is a bug when saving certain scripts. I'll try and take a look into it but it would be very helpful if you could post the script or scripts (including any sliders) which causes the problems to arise.
foxyshadis
19th October 2006, 18:48
Have you considered having an .avsp extension for files with all the markup? And saving .avs without (or with the markup commented out)? As it currently stands it's kind of annoying to lose all the markup everytime I close it, especially since I often use old scripts as starting points for new ones. ^^; Sorry, I know that's just one more thing to worry about.
If the new layout has the capability to show the video on a second monitor (as a window that gets dragged around or whatever), that would be awesome.
rfmmars
19th October 2006, 19:14
These problems sound strange, from your description it seems like there is a bug when saving certain scripts. I'll try and take a look into it but it would be very helpful if you could post the script or scripts (including any sliders) which causes the problems to arise.
..............................................................................................................................
Good AVSp Session
http://www.uploading.com/files/N0RG6IUG/SuperMaster.ses.html
...............................................................................................................................
...............................................................................................................................
http://www.uploading.com/files/K9KCYTWM/Good_AVSp.jpeg.html
All Sliders work OK, Export "Script" picture quality fails after hours of using same session.
Problem Preview
http://www.uploading.com/files/PNOR252J/preview_AVSp.jpeg.html
Reloading session solves the problem
................................................................................................................................
................................................................................................................................
Good AVSp Window
http://www.uploading.com/files/K9KCYTWM/Good_AVSp.jpeg.html
80% Square in background
http://www.uploading.com/files/3KD0JVBR/Bad.jpeg.html
Problem seen when more than one line is used to call varibles
See below
AVISource("C:\hdragc.avi")
LoadPlugin("E:\AVS\Plugins\AGC.dll")
HDRAGC(coef_gain=2.0,reducer=0.3)
HDRAGC(coef_sat=0.8,min_gain=1.5,avg_window=1,corrector=.7)
HDRAGC(max_gain = 4.0 black_clip = 0.1, shift_u = -10
...............................................................................................................................................................
Richard
ChiDragon
19th October 2006, 22:06
Hey, just started using this today. Looks like a pretty awesome program. I've come across what looks like a small bug, I hope this hasn't been mentioned already as I haven't read through the huge thread. If you have the preview hidden, maximize the window, and toggle the preview on, the maximized window jumps down and to the right slightly. Minimizing and then bringing it back up returns it to its proper place, oddly enough.
By the way, would an option to scale all text down or up by a percentage or something be possible? Like CTRL & + and CTRL & - in SciTE if you've ever used that. It looks like I'd have to set up the size for 13 font options whenever I wanted to change it otherwise.
qwerpoi
19th October 2006, 22:31
Have you considered having an .avsp extension for files with all the markup? And saving .avs without (or with the markup commented out)? As it currently stands it's kind of annoying to lose all the markup everytime I close it, especially since I often use old scripts as starting points for new ones. ^^; Sorry, I know that's just one more thing to worry about.
AvsP sessions will save all user sliders and toggle tags, so that may be a solution to what you're looking for, although perhaps a little clunky, since you save all the other open tabs along with. In fact, you can turn on the option to always load your last session (Options -> Program settings... in the Misc tab) so you never "lose" markup when closing and opening the program. If either workaround isn't good enough, let me know.
If the new layout has the capability to show the video on a second monitor (as a window that gets dragged around or whatever), that would be awesome.
It will be there eventually, but not necessarily in the upcoming release.
@rfmmars
Thanks for the files and info, I'll try and figure out what's going on pronto.
Hey, just started using this today. Looks like a pretty awesome program. I've come across what looks like a small bug, I hope this hasn't been mentioned already as I haven't read through the huge thread. If you have the preview hidden, maximize the window, and toggle the preview on, the maximized window jumps down and to the right slightly. Minimizing and then bringing it back up returns it to its proper place, oddly enough.
You're right, it is a minor bug, caused by the fact that AvsP tries to resize the window when the program is maximized. It shouldn't occur in the upcoming version, since I'm rewriting the entire part of the program which handles window layout, thanks for bringing it up.
By the way, would an option to scale all text down or up by a percentage or something be possible? Like CTRL & + and CTRL & - in SciTE if you've ever used that. It looks like I'd have to set up the size for 13 font options whenever I wanted to change it otherwise.
Unless I'm mistaken, Ctrl+Numpad Plus and Ctrl+Numpad Minus already work (as a matter of fact both SciTe and AvsP use the same text editing component, Scintilla). If that doesn't work try holding down Ctrl and scrolling the middle mouse wheel up and down.
foxyshadis
19th October 2006, 23:03
Unless I'm mistaken, Ctrl+Numpad Plus and Ctrl+Numpad Minus already work (as a matter of fact both SciTe and AvsP use the same text editing component, Scintilla). If that doesn't work try holding down Ctrl and scrolling the middle mouse wheel up and down.
It will, as long as the cursor's in the text. Clicking in the tab row or the preview area will remove the cursor (which incidentally also stops wheel-scrolling without clicking back in). Just clarifying, doesn't boter me.
The session option looks good, I'll give it a couple days and see if it works well (it should, that's basically how I use editplus anyway).
qwerpoi
19th October 2006, 23:25
It will, as long as the cursor's in the text. Clicking in the tab row or the preview area will remove the cursor (which incidentally also stops wheel-scrolling without clicking back in).
Ah, good catch foxyshadis. What we're basically dealing with is that when the video preview is visible the program has two "modes", a text mode and a video mode, depending on which window has focus. Depending on which mode you're in the program behaves slightly differently; it's one of the more subtle aspects of the program. You can read more about it here (http://www.avisynth.org/qwerpoi/Video.html#video-mode).
And by the way, I believe the Ctrl+mouse scrolling shortcut works in most web browsers, try increasing the font size to gigantic proportions on a friend or co-worker's pc for good clean fun :) .
ChiDragon
20th October 2006, 01:51
Unless I'm mistaken, Ctrl+Numpad Plus and Ctrl+Numpad Minus already work (as a matter of fact both SciTe and AvsP use the same text editing component, Scintilla). If that doesn't work try holding down Ctrl and scrolling the middle mouse wheel up and down.
Ah, sorry about that, and thanks. I guess I was so busy searching the menus and readme for an option like that that I didn't actually try it!
Alain2
21st October 2006, 03:00
@Alain2
I tried reproducing the bug (it seemed like a unicode filename issue), but didn't succeed. Could you tell me exactly how it occurs, and could you also upload your options.dat file? Hopefully that will give me a better idea of what's going on, thanks.
Well actually I didn't keep the dodgy file, and I can't reproduce it now :( Probably a strange character (non ansi/what avsp can cope with) got in there somehow.. How it occurs: .avs files are associated to avsp, and when trying to double clic on this dodgy file, avsp didn't come up but this very quick nag screen only. Process explorer was showing avsp process loading and immediately terminated.
Btw I begin to get used to the video being in the same window than the editor ; only thing required really for me now is the "on the fly" resize of the video in this preview, if possible not affecting the sliders. The resize within the script trick is good but everytime I want to change the clip it means to reload the script.. an independant bicubicresize-like would be better :)
One more thing for your already huge todolist ^^ Can you add a factor to be used in the preview window for the seek bar ? Like default=1 -> as is at the moment; changing it to 3 for instance would make the seek slider go to mod(3) positions only when manually moved (but still move frame by frame when using the arrows shortcuts). This would help me when I use the interleave function to compare clips, to always start from the same clip..
Can't wait to see this new layout now :)
++
qwerpoi
21st October 2006, 13:33
Ah, sorry about that, and thanks. I guess I was so busy searching the menus and readme for an option like that that I didn't actually try it!
No problem, as you point out, there's nothing in the documentation suggesting that it would work. As a matter of fact, I only found out that AvsP could do this about a week ago myself :) , it's a built-in shortcut for the scintilla editing component. What that means is that in general, anything that SciTe could do AvsP can do, so feel free to make requests, some of them will be very easy for me to implement because of this.
Well actually I didn't keep the dodgy file, and I can't reproduce it now :( Probably a strange character (non ansi/what avsp can cope with) got in there somehow.. How it occurs: .avs files are associated to avsp, and when trying to double clic on this dodgy file, avsp didn't come up but this very quick nag screen only. Process explorer was showing avsp process loading and immediately terminated.
I'm guessing you're right about the non-ansi character causing the problem, the strange thing is I've tested AvsP with unicode filenames on my computer, seems to work fine. So if the problem occurs again, try and save either the filename or the options.dat file so I can take a closer look as to what's going on. And by the way, process explorer is an awesome program, I use it all the time myself :) .
Btw I begin to get used to the video being in the same window than the editor ; only thing required really for me now is the "on the fly" resize of the video in this preview, if possible not affecting the sliders. The resize within the script trick is good but everytime I want to change the clip it means to reload the script.. an independant bicubicresize-like would be better :)
The new layout has one major emphasis - allow the video preview to take up as much space as possible. This means the script window and the slider window have no enforced minimum size like they do now, ie the video can take up the entire main portion of the program, although in the new layout you can drag either window to see as much as you want. Redoing the layout like this was (is) surprisingly painful, it took longer than I expected. Anyway, after I get this release out, and it's proven stable, then I'll see what I can do about adding stuff to it, like on the fly resizing and detachable windows.
One more thing for your already huge todolist ^^ Can you add a factor to be used in the preview window for the seek bar ? Like default=1 -> as is at the moment; changing it to 3 for instance would make the seek slider go to mod(3) positions only when manually moved (but still move frame by frame when using the arrows shortcuts). This would help me when I use the interleave function to compare clips, to always start from the same clip..
Interesting request, I'll see what I can do.
Can't wait to see this new layout now :)
++
Neither can I :p . The layout code is pretty much done, still has some weird behavior I'm trying to iron out, so hopefully the new release will be out in a day or two, we'll see.
Henrikx
21st October 2006, 14:10
so hopefully the new release will be out in a day or two, we'll see.
I get already once the lexicon out of the shelf....:)
qwerpoi
23rd October 2006, 21:07
New version 1.3.0, download from the AvsP download page (http://www.avisynth.org/qwerpoi/Download.html), you can use this mirror (http://www.savefile.com/files/189318) if there are any problems. Here's the changelog:
* rewrote entire layout code, size-adjustable subwindows
* make cursor visible when using shift-tab shortcut (suggested by Alain2)
* option to show full pathname on program title (suggested by Alain2)
* filter help shortcut now works when cursor within filtername (suggested by Alain2)
* don't change frame position when disabling preview (suggested by Alain2)
* added option to allow multi-line non-triple strings (thanks Alain2)
* option to use actual avs script with external preview (suggested by Alain2)
* added ability to copy script to clipboard (suggested by communist)
> fixed minor bug with calltip and selecting text
> fixed status bar message for 25% and 50% zoom
The most important change is the fact that the subwindows (the video preview window and the user slider sidebar) are independantly resizable, without any restrictive minimum sizes like before. What this means is that it's possible for the video preview to take up as much screen real estate as possible, useful for editing high resolution files. A couple of things to note about the new layout. First, AvsP tries to automatically determine appropriate positions for the horizontal video preview divider, fitting the video window to the video height. You can take control by dragging the divider to any position - if you do, then the divider will stay at that position, regardeless of the video height. To give control back to AvsP, simply double-click the divider. The vertical user slider sidebar divider is initially set to give the sidebar a width of 300 pixels (you can change this initial value in "Options -> Program settings..." in the "Video" tab). You can show or hide the user slider sidebar by double-clicking the divider, or with the menu command "Video -> Toggle the slider sidebar". One final note is that AvsP tries to resize the program window to allow all subwindows to fit without scrollbars whenever possible, you can disable this behavior in "Options -> Program settings..." in the "Misc" tab.
I'm still working on the details of the new layout, as it still exhibits some strange behavior occasionally, sometimes the divider may be set to an unexpected position, etc. If you have any serious problems (hopefully unlikely), I left the download link for v1.2.1 available on the first post. As always, report back with any bugs or suggestions.
krisq
23rd October 2006, 22:37
This is great :). One thing though, when I load 720p file, the script window is getting covered by video window and slider window. Here (http://img59.imageshack.us/img59/7572/clipdv2.jpg) is an example. Is this an expected behavior?
p.s. I'm dreaming about undockable preview window ;)
qwerpoi
23rd October 2006, 23:10
This is great :). One thing though, when I load 720p file, the script window is getting covered by video window and slider window. Here (http://img59.imageshack.us/img59/7572/clipdv2.jpg) is an example. Is this an expected behavior?
p.s. I'm dreaming about undockable preview window ;)
Yes, that's expected behavior, by default AvsP tries to give the video as much room as possible. You can manually drag the video preview down a bit so you can see your script if you prefer. As far as an undockable preview window, I'll work on it once this new layout proves stable.
Henrikx
23rd October 2006, 23:33
Update German Translation to AvsP 1.3.0
honai
24th October 2006, 00:23
I got the following error:
Traceback (most recent call last):
File "AvsP.py", line 3759, in OnMenuVideoRefresh
File "AvsP.py", line 5371, in ShowVideoFrame
File "AvsP.py", line 5588, in UpdateScriptAVI
File "pyavi.pyo", line 159, in __init__
WindowsError: exception: access violation reading 0x01EE6541
when trying to refresh/view the preview of a 3-hour 1920x1080 clip. Memory consumption rose to 1 GB for AvsP.exe (I have 2 GB actual hardware RAM, 4 GB virtual, 1.4 GB used) before the exception occurred.
Memory constraints?
Alain2
24th October 2006, 00:44
Updated French translation to AvsP 1.3.0
Nice work, the new layout seems to work well! Still not on-the-fly redim (120/200/300% are big jumps ^^ ) but it's better now anyway as I can resize the sliders zone :) If you go for on-the-fly resize some day, it would be gould to allow the resize type selection, like bicubic 0,.75 for instance, so that it matches with what you would get when playing in fullscreen a film in mpc for instance ; the current zooms are not like that so I still prefer to use a bicubic in my script ^^
About the new syntax highlight for strings across multiple lignes, it's working well :) One suggestion about it would be to have an option letting other syntax highlight applicable inside it, for the font only, and keep the strings background color overall ? Could be interesting in these types of script (http://img97.imageshack.us/img97/4764/tempot1.jpg)
Nice work again! and pretty stable so far as usual :)
Rippraff
24th October 2006, 00:48
@qwerpoi
Thanks for the new version. :)
With 1.3.0 I can't use Umlaute (ä ö ü) for the slider labels anymore. If I move the slider with an umlaut the program adds a "]" at the script line e.g. sharpen([<"Schärfen", 0, 1, 0.6>]])and as a result I get an error message in the scriptunexpected character "]" (...preview.avs, line 8, column 11)
For each slider movement AvsP adds a new "]" :confused:
Without the umlaut, say "Schaerfe", everything's fine.
Cu Rippraff
qwerpoi
24th October 2006, 01:40
Update German Translation to AvsP 1.3.0
Thanks!
I got the following error:
when trying to refresh/view the preview of a 3-hour 1920x1080 clip. Memory consumption rose to 1 GB for AvsP.exe (I have 2 GB actual hardware RAM, 4 GB virtual, 1.4 GB used) before the exception occurred.
Memory constraints?
Hmm, I'll take a look into it. Try opening the file in virtualdub or another program and see if you have the same problem, or see if it works in AvsP after restarting your pc.
Updated French translation to AvsP 1.3.0
Nice work, the new layout seems to work well! Still not on-the-fly redim (120/200/300% are big jumps ^^ ) but it's better now anyway as I can resize the sliders zone :) If you go for on-the-fly resize some day, it would be gould to allow the resize type selection, like bicubic 0,.75 for instance, so that it matches with what you would get when playing in fullscreen a film in mpc for instance ; the current zooms are not like that so I still prefer to use a bicubic in my script ^^
About the new syntax highlight for strings across multiple lignes, it's working well :) One suggestion about it would be to have an option letting other syntax highlight applicable inside it, for the font only, and keep the strings background color overall ? Could be interesting in these types of script (http://img97.imageshack.us/img97/4764/tempot1.jpg)
Nice work again! and pretty stable so far as usual :)
Thanks for the translation update! I'll see what I can do about the string highlighting, I'll be working on making the syntax highlighting a little bit more configurable for the next release.
@qwerpoi
Thanks for the new version. :)
With 1.3.0 I can't use Umlaute (ä ö ü) for the slider labels anymore. If I move the slider with an umlaut the program adds a "]" at the script line e.g. and as a result I get an error message in the script
For each slider movement AvsP adds a new "]" :confused:
Without the umlaut, say "Schaerfe", everything's fine.
Cu Rippraff
Wow, thanks for pointing that bug out! I found the cause of the problem, it has to do with certain unicode characters counting as more than one character - I'm surprised your umlaute sliders worked in older versions. Regardless, I've fixed the bug, I'll upload an updated version sometime tomorrow after making sure there's no other immediate problems to take care of.
zemog
24th October 2006, 10:10
qwerpoi: Thanks for these great update. Only a small (possible stupid) question: Why the divisor between video preview and user sliders hasn’t the same behavior that de divisor between script text and video preview + user sliders (double click adjusts de divisor to the video preview size)?.
Here is the Spanish translation for v1.3.0
check
24th October 2006, 11:49
Just wanted to say - the resizeable windows are fantastic! They have turned out everything I hoped them to be - and more :D I'm still playing with python, hope to get some usefule/useable macros made up sometime soon. :)
Rippraff
24th October 2006, 13:20
I'm surprised your umlaute sliders worked in older versions.
In the meantime, me too! :D
After I've posted the behaviour last night, I've tried it again with older versions... and couldn't get it to work (same error).
Unfortunately I can't remember how I've done it before and with what version as I always overwrite old with new AvsP files but i swear it worked before. ;)
Regardless, if you find a way great, if not, hey this is only a cosmetic thing. :)
Cu Rippraff
qwerpoi
25th October 2006, 01:29
New version v1.3.1, download here (http://www.avisynth.org/qwerpoi/Download.html) or use the mirror in the first post. Only minor changes (no new messages so translators don't need to redo their 1.3.0 translations). Here's the changelog:
* click and drag video preview similar to Acrobat Reader
* store last program size and position (suggested by Alain2)
* minor improvements to window layout code
* refresh video appropriately when creating new scripts
> fixed bug with unicode characters in slider labels (thanks Rippraff)
The reason I'm posting the new version so quickly is to fix that one bug with unicode slider labels. The only major feature in this release is the ability to "grab" the video window to drag it around as an alternative to using the scrollbars, pretty much identical to pdf files in adobe acrobat reader. It's probably important enought to redownload for anyone who already got 1.3.0, sorry about the inconvenience.
qwerpoi: Thanks for these great update. Only a small (possible stupid) question: Why the divisor between video preview and user sliders hasn’t the same behavior that de divisor between script text and video preview + user sliders (double click adjusts de divisor to the video preview size)?.
That's a good question. I designed it based upon what I felt what was going to be most often used, the text/video divider fitting the video height and the video/slider divider for showing and hiding. Basically I don't think of the two dividers as similar objects, to me the slider window is more of an optional sidebar. But the fact that the dividers look the same implies that they should behave the same, so certainly one could argue it's not very good design on my part :)
Just wanted to say - the resizeable windows are fantastic! They have turned out everything I hoped them to be - and more I'm still playing with python, hope to get some usefule/useable macros made up sometime soon.
It's good to hear that it's working well for you, it took a lot of effort to make, a lot more than I thought, so it's good to know that my efforts were not wasted. Hope the "grab" feature comes in handy for you as well. Oh, and if you come up with some interesting python macros that you think will be useful to others, be sure to post them here, I'd definitely like to see what other people come up with.
Rippraff
25th October 2006, 02:11
Thanks again for the new version, qwerpoi, much appreciated.
It works like a charm. :)
Cu Rippraff
krisq
25th October 2006, 09:06
* store last program size and position (suggested by Alain2)
Great change but would it be possible to store dividers' positions also?
qwerpoi
25th October 2006, 09:17
Great change but would it be possible to store dividers' positions also?
It already should, although it's possible it might not work in all cases. If you can recreate a case where it fails to work, let me know about it and I'll see if I can fix it.
krisq
25th October 2006, 09:22
It already should, although it's possible it might not work in all cases. If you can recreate a case where it fails to work, let me know about it and I'll see if I can fix it.
oops... my bad :) you're right, me wrong :o
it does work, thanks :)
//EDIT
I think I found a bug with crop editor. You can't catch edges with LMB anymore because of 'acrobat' style dragging :)
Veiga
25th October 2006, 09:26
like I said day by day better
thanks! good job
new translation.
qwerpoi
25th October 2006, 09:34
I think I found a bug with crop editor. You can't catch edges with LMB anymore because of 'acrobat' style dragging :)
@#$! You're right! Stupid lack of foresight on my part, I'll fix it for the next release, until then you'll have to live with entering numbers in the crop dialog :)
like I said day by day better
thanks! good job
new translation.
Thanks for the updated translation! Again, I'll update the links on the first post and the AvsP website once the attachments are approved.
krisq
25th October 2006, 09:42
@#$! You're right! Stupid lack of foresight on my part, I'll fix it for the next release, until then you'll have to live with entering numbers in the crop dialog :)
No problemo. Also, I think that left mouse click on video preview should change focus to it.
qwerpoi
25th October 2006, 09:50
No problemo. Also, I think that left mouse click on video preview should change focus to it.
Bleargh, that'll teach me to put out a release so quickly :o . I'll probably put out a bugfix release in a couple of days, the more small bugs you guys can find the better, so keep those cards and letters coming in :)
Alain2
25th October 2006, 13:00
* store last program size and position (suggested by Alain2)
That's great! And the video drag a la acrobat is really a nice feature !
About the on the-fly-resize, I think having a dockable window is not that important for me (but probably is for people with 2 monitors like Foxyshadis). I think a good alternative using your layout would be to have a toogle option that, if activated, would make avsp resize the frame sent by avisynth to the height of the preview video slider (adding automatically the horizontal video slider when it's becoming too wide). This could be done with a resize algo to be chosen by the user ; no colorspace convertion required I think if it is implemented with something like
BicubicResize(m4(width*float(previewHeight)/height),m4(previewHeight),0,.5), where previewHeight is the on-the-fly height of the video window (and m4 Didée's Function m4(float x){ Return( x < 16 ? 16 : int( Round( x / 4.0 )*4 ) ) })
btw would it be possible to make video separator a bit widder for easier grip of it (maybe not as big as acrobat ones, but more then 3 pixels height if possible ; maybe make that an option ?)
Neo Fagin
25th October 2006, 19:48
Hi,
how do i make it show a preview of my source?
If i load the Plugins and the source it just shows me a big greyed out window. I can move the slider and AvsP counts the frames but no picture appears. When i try to zoom in the preview window just becomes black. Loading the Script in VD works fine. I'm using v.1.1.6.
I have this same issue with 1.3.1, and several previous versions. It USED to work with 1.2.1 and then just stopped working one day for some reason. avisynth 2.56, even a one-line script like dgdecode_mpeg2source("f:\video.d2v") which should display just the original video in the preview window, just displays a blank. The window does resize to the width/height of the video but no video is actually displayed. It's doing this on three different systems I've got including one with a fresh XP SP2 and avisynth install so it's driving me nuts, it's got to be something ridiculously simple I'm missing or doing wrong, but the same scripts open fine in virtualdub or MeGUI.
Fizick
25th October 2006, 20:10
today I updated Russian translation to v1.3.0.
(no new messages so translators don't need to redo their 1.3.0 translations).
Thanks, I believe, you at last brake the development :)
qwerpoi
26th October 2006, 02:39
About the on the-fly-resize, I think having a dockable window is not that important for me (but probably is for people with 2 monitors like Foxyshadis). I think a good alternative using your layout would be to have a toogle option that, if activated, would make avsp resize the frame sent by avisynth to the height of the preview video slider (adding automatically the horizontal video slider when it's becoming too wide). This could be done with a resize algo to be chosen by the user ; no colorspace convertion required I think if it is implemented with something like
BicubicResize(m4(width*float(previewHeight)/height),m4(previewHeight),0,.5), where previewHeight is the on-the-fly height of the video window (and m4 Didée's Function m4(float x){ Return( x < 16 ? 16 : int( Round( x / 4.0 )*4 ) ) })
Interesting ideas, I'll think about the best way to do this for an upcoming release (probably not the next one, though). For those people who want a separate video window, I have a question. Do you expect the video window to just have the video frame and the slider sidebar or do you need it to have the same video controls on the bottom and the tabs to switch them on the top? Clearly the first choice is easier for me to implement, the second way is a bit clunkier. But I don't want to put something together that won't be useful, so let me know what you need.
btw would it be possible to make video separator a bit widder for easier grip of it (maybe not as big as acrobat ones, but more then 3 pixels height if possible ; maybe make that an option ?)
Hah, that's a good point, I'll try and do something about it for the next release.
I have this same issue with 1.3.1, and several previous versions. It USED to work with 1.2.1 and then just stopped working one day for some reason. avisynth 2.56, even a one-line script like dgdecode_mpeg2source("f:\video.d2v") which should display just the original video in the preview window, just displays a blank. The window does resize to the width/height of the video but no video is actually displayed. It's doing this on three different systems I've got including one with a fresh XP SP2 and avisynth install so it's driving me nuts, it's got to be something ridiculously simple I'm missing or doing wrong, but the same scripts open fine in virtualdub or MeGUI.
Okay, the fact that the window resizes to the appropriate size implies that the avs script is being loaded. If not even the simplest of scripts display anything (try a script like "Version()", or try doing a preview of no text at all), there may be a refresh issue (I'm stretching, I know). Try posting a screenshot of the entire program so I can see the script and the video preview, and also make sure you don't overlook any error messages (they might pop up in a separate window).
today I updated Russian translation to v1.3.0.
Thanks for the update!
Thanks, I believe, you at last brake the development :)
Yeah, I would have put in more stuff, but if I keep releasing new versions every day I think all of the translators would revolt against me :) . And just so you know, I'm going to prepare my source files for release (it's a bit messy right now), not immediately but probably in the next big update.
foxyshadis
26th October 2006, 03:41
Do you expect the video window to just have the video frame and the slider sidebar or do you need it to have the same video controls on the bottom and the tabs to switch them on the top? Clearly the first choice is easier for me to implement, the second way is a bit clunkier. But I don't want to put something together that won't be useful, so let me know what you need.
The frame # might be nice, but I rarely use the buttons except to show and close it. The slider's the biggie, and the stuff in the context menu.
Wilbert
26th October 2006, 21:58
I approved two attachments (translations). Sorry that i missed them.
chros
27th October 2006, 08:39
Did you think about that it would be a perfect avisynth creator for MeGUI ? :) (Like Behappy in the audio conversion part.)
It has almost everything that the users missed in the current one.
Of course there's things to do: eg. command line interfaces to load a d2v file (I don't know if it's present), DAR calculation, IVTC recognison (analyze) ...
qwerpoi
27th October 2006, 09:07
It looks like I'm going to be a bit busy for a couple of days, so instead of releasing a bugfix release immediately I'll work on enhancing the window layout stuff (primarily the separate video preview), and release that sometime next week. Hope you guys can live with those two mouse-click bugs krisq pointed out until then :) .
Did you think about that it would be a perfect avisynth creator for MeGUI ? :) (Like Behappy in the audio conversion part.)
It has almost everything that the users missed in the current one.
Of course there's things to do: eg. command line interfaces to load a d2v file (I don't know if it's present), DAR calculation, IVTC recognison (analyze) ...
Actually I've never used MeGUI (is that a crime for doom9 forum members? :) ), mostly because I never had the need, and also I have an irrational dislike for the .net framework. I'm certainly willing to listen to any specific requests regarding this, but you'll have to walk me through a bit as to what would be needed, since I'm clueless as to what a good MeGUI "avisynth creator" would be.
foxyshadis
27th October 2006, 10:09
A couple minor things: ImageSource is not included in the definitions. Also, would it be possible to close the parentheses when adding a new function, and insert the cursor between them? Also, name autocomplete fails right after an =, though putting a space after will let it work. Lastly, would it be possible to sort the pop-up list by frequency of use, or at least last use, which is nearly as good? And is it possible to autocomplete function arguments? (Actually, come to think of it, the idea a few pages ago about clicking on them is better.)
Could deselected toggles have their text be greyed out (ie, given the comment color)? Oh, and HDTV cries out for a minimum text area size of at least 2-3 lines, when you pop it open.
I still like the idea of being able to save marked up scripts, along with normal ones; though useful for posterity, my primary motivation is that I write filters and work on the looney fringe of current ones, and that means lots of avisynth & avsp crashes. Alternately, a quick-save session state. In the meantime I've taken to making a few script changes, closing & reopening avsp, and then opening the video, so I don't lose it all. :p
I'm surprised, I haven't used Editplus at all for avisynth lately. There's just nothing it could offer me that avsp doesn't do mch better. Now I just have to get some template macros done and I'm good.
qwerpoi
27th October 2006, 10:41
A couple minor things: ImageSource is not included in the definitions.
I'm assuming ImageSource is a newer built-in filter (I guess it's time I updated my AviSynth version, I'm guilty of being a longtime 2.5.4 user). I'll try and update my default definitions, although eventually the whole process will be replaced by auto-detection schemes.
Also, would it be possible to close the parentheses when adding a new function, and insert the cursor between them?
Already one step ahead of you - go to "Options -> Program settings..." in the "Text 1" tab, change the "Autoparentheses level" to 2. I realize that the number of options in AvsP is getting heinous, I think the best solution would be to make an faq and package it with the download (another thing to add to my giant to-do list :) ).
Also, name autocomplete fails right after an =, though putting a space after will let it work. Lastly, would it be possible to sort the pop-up list by frequency of use, or at least last use, which is nearly as good? And is it possible to autocomplete function arguments? (Actually, come to think of it, the idea a few pages ago about clicking on them is better.)
For autocompleting after an =, you can use the manual "Autocomplete" option in the right-click menu (default shortcut Ctrl+Space), I'll work on fixing that to show up automatically. I'll think about the sorted lists and autocompleted arguments, it might be a little tricky to do certain things since I didn't write all the code, I'm using the framework provided by the Scintilla editing component.
Could deselected toggles have their text be greyed out (ie, given the comment color)? Oh, and HDTV cries out for a minimum text area size of at least 2-3 lines, when you pop it open.
I'll work on the deselected toggle color (might be tricky), and perhaps I'll make the minimum text size a user configurable option. My original thinking was that for hd content you want as much as the screen visible as possible, making it essentially the same as a separate window for the video (unless you're using a multi-monitor setup of course). If you have to see both text and video at the same time you can always drag the window down a bit and AvsP will respect that position from that point on.
I still like the idea of being able to save marked up scripts, along with normal ones; though useful for posterity, my primary motivation is that I write filters and work on the looney fringe of current ones, and that means lots of avisynth & avsp crashes. Alternately, a quick-save session state. In the meantime I've taken to making a few script changes, closing & reopening avsp, and then opening the video, so I don't lose it all. :p
Hmm, I'll see what you mean, closing and reopening AvsP does not sound like a fun way to handle the situation :) . I'll see what I can do.
I'm surprised, I haven't used Editplus at all for avisynth lately. There's just nothing it could offer me that avsp doesn't do mch better. Now I just have to get some template macros done and I'm good.
Sounds like good news to me! I never intended on AvsP to compete with robust text editors, but it seems like it's getting there - I'm glad you think so too.
Whew! That was a long post!
Alain2
27th October 2006, 13:01
I'm assuming ImageSource is a newer built-in filter (I guess it's time I updated my AviSynth version, I'm guilty of being a longtime 2.5.4 user). I'll try and update my default definitions, although eventually the whole process will be replaced by auto-detection schemes.
Maybe there is a need to think about how to add / modify things but don't mess with the user addition / modification to the list ? Maybe a good way would be a macro that would lookup in the dictionnary list if the wanted addition / modification already exists, if not prompt the user to add it, if already exists, show the user settings and the proposed modification to it and let the user choose which ones to modify ?
Already one step ahead of you - go to "Options -> Program settings..." in the "Text 1" tab, change the "Autoparentheses level" to 2.
! Never realised what that option was for (didn't try though ^^) Maybe labelling 0 1 2 as: None " "; Open "("; Close "()" would help understand quickly that option
krisq
27th October 2006, 21:38
Do you expect the video window to just have the video frame and the slider sidebar or do you need it to have the same video controls on the bottom and the tabs to switch them on the top? Clearly the first choice is easier for me to implement, the second way is a bit clunkier. But I don't want to put something together that won't be useful, so let me know what you need.
Actually, I don't know if this is a good idea but I think all the controls for undocked preview should be under the script window. This way if someone is using two monitors (on first script editor with sliders, on second the preview) you wouldn't have to move the mouse across monitors. And undocked window should have 'always on top' switch :).
check
29th October 2006, 13:47
I still like the idea of being able to save marked up scripts, along with normal ones; though useful for posterity, my primary motivation is that I write filters and work on the looney fringe of current ones, and that means lots of avisynth & avsp crashes. Alternately, a quick-save session state. In the meantime I've taken to making a few script changes, closing & reopening avsp, and then opening the video, so I don't lose it all. :p
After losing half an hour of work just now after a mistake with warpsharp values (D:), I heartily request this function!
qwerpoi
29th October 2006, 22:27
Maybe there is a need to think about how to add / modify things but don't mess with the user addition / modification to the list ? Maybe a good way would be a macro that would lookup in the dictionnary list if the wanted addition / modification already exists, if not prompt the user to add it, if already exists, show the user settings and the proposed modification to it and let the user choose which ones to modify ?
If you're referring to adding new "standard" filter definitions on an AvsP version by version basis, then your proposed method sounds pretty good, I'll put that together when I get the chance. To me it's not that big of a deal, though, since it's so easy to add new filter definitions from the menu, the standard definitions provided with AvsP are more or less just a baseline to get you started. What may become more critical in the future is determining a way to use AviSynth plugin auto-detection mechanisms while at the same time keeping all your personal definition customizations, this may require some reworking of the current format.
! Never realised what that option was for (didn't try though ^^) Maybe labelling 0 1 2 as: None " "; Open "("; Close "()" would help understand quickly that option
You're right, it wasn't labeled very well :) . I'll change the labels in the next release.
Actually, I don't know if this is a good idea but I think all the controls for undocked preview should be under the script window. This way if someone is using two monitors (on first script editor with sliders, on second the preview) you wouldn't have to move the mouse across monitors. And undocked window should have 'always on top' switch :).
That's what I wanted to know, you're basically confirming what I had initially guessed, that the controls need to be in both places to work well. A bit of a pain for me to make sure that the frame number and slider stay in sync, but should be doable (although it might look kind of silly to have two sets of controls on a non-multi-monitor setup).
After losing half an hour of work just now after a mistake with warpsharp values (D:), I heartily request this function!
Sorry for the bizarre request, but could someone give me a "safe" way to crash AviSynth with a script, such that it closes AvsP abruptly? I want to see if I can capture such an event and save the last session in a stable manner. When I say "safe", I mean a way to crash AviSynth besides doing something that simply eats up all the ram, since the crash may not be consistent then.
foxyshadis
29th October 2006, 23:23
There's a bunch of ways, but the quickest is a bad codec/plugin. If you install LZOCodec (http://usuarios.lycos.es/lzocodec/LZOCodec_v0_4.zip) and try to open this video captured in it (http://foxyshadis.slightlydark.com/random/STR2311_cut.avi) with avisource, it'll crash. Or I could whip up a plugin really quick that does nothing but read a null pointer. =p
check
30th October 2006, 00:53
awarpsharp(192,8) or similar large values will do the trick ;) That said, it might just be trying to allocate a bajillion megabytes of memory..
qwerpoi
30th October 2006, 06:34
There's a bunch of ways, but the quickest is a bad codec/plugin. If you install LZOCodec (http://usuarios.lycos.es/lzocodec/LZOCodec_v0_4.zip) and try to open this video captured in it (http://foxyshadis.slightlydark.com/random/STR2311_cut.avi) with avisource, it'll crash. Or I could whip up a plugin really quick that does nothing but read a null pointer. =p
awarpsharp(192,8) or similar large values will do the trick ;) That said, it might just be trying to allocate a bajillion megabytes of memory..
Thanks for helping me crash AviSynth, guys :) . I tried the awarpsharp script, but it didn't hard crash AviSynth, instead it gives me an AviSynth error video, I might be using a different version than yours, check. So I ended up installing LZOCodec (which I was hesitant to do considering the first message on the website is "WHAT F_CKING SH_T IS THIS?" :) ). I couldn't find a consistent way to catch the crash, so what I'll end up doing (unless you have a more preferrable alternative) is make an option to quickly save the current session, as well as add a "paranoia mode" which will save the current session every time the moment before the video preview is refreshed (ie, every time a new avisynth script is loaded for the video preview).
krisq
30th October 2006, 12:03
That's what I wanted to know, you're basically confirming what I had initially guessed, that the controls need to be in both places to work well. A bit of a pain for me to make sure that the frame number and slider stay in sync, but should be doable (although it might look kind of silly to have two sets of controls on a non-multi-monitor setup).
It won't be silly, it'll be very practical :)
check
30th October 2006, 14:09
paranoia mode sounds great, I always forget to save anyway :)
krisq
30th October 2006, 14:27
Can you add an option/shortcut to refresh preview without switching focus to it?
[/EDIT]
Also, I miss a little more sophisticated search in 'Avisynth function definition...'.
My wish is to quickly input few letters for more correct result, just like in explorer or any other file manager.
Example: I want to find filter 'ffdshow', if I press 'F' it will take me to 'FadeIn' filter. But if I enter 'FF' it should take me to 'ffdshow'.
I think with many configured user filters this can come very useful.
foxyshadis
1st November 2006, 16:20
Here's something I was wondering about, but wasn't sure of the feasibility. Would it be possible to run avisynth in a separate thread - I assume it's something like that anyway - or even process, and at the top of the thread catch every exception that makes it up, and take action by destroying and recreating the entire thread/process.
The bad part about a process is that it'd need IPC, the good part is the absolute insulation and the ability to directly catch all avisynth errors(if it's written in C++). Still might not be worth it.
qwerpoi
1st November 2006, 19:22
Can you add an option/shortcut to refresh preview without switching focus to it?
Sure thing, I'll add an option to not focus the preview when using the F5 refresh.
Also, I miss a little more sophisticated search in 'Avisynth function definition...'.
My wish is to quickly input few letters for more correct result, just like in explorer or any other file manager.
Example: I want to find filter 'ffdshow', if I press 'F' it will take me to 'FadeIn' filter. But if I enter 'FF' it should take me to 'ffdshow'.
I think with many configured user filters this can come very useful.
Actually this already works, you just hit a strange exception case. The way the mechanism works is that if you keep hitting 'F' you will cycle through all the filters that start with 'F'; otherwise, it works as you expect. So if you wanted to find the filter 'FlipHorizontal', you could enter 'FL' and get there right away.
Here's something I was wondering about, but wasn't sure of the feasibility. Would it be possible to run avisynth in a separate thread - I assume it's something like that anyway - or even process, and at the top of the thread catch every exception that makes it up, and take action by destroying and recreating the entire thread/process.
The bad part about a process is that it'd need IPC, the good part is the absolute insulation and the ability to directly catch all avisynth errors(if it's written in C++). Still might not be worth it.
Sounds like a good idea, I'll look into how difficult it would be. For now the paranoia mode seems to work well in resolving any crash issues, but certainly it makes more sense to separate the processes if possible.
krisq
1st November 2006, 19:35
Actually this already works, you just hit a strange exception case. The way the mechanism works is that if you keep hitting 'F' you will cycle through all the filters that start with 'F'; otherwise, it works as you expect. So if you wanted to find the filter 'FlipHorizontal', you could enter 'FL' and get there right away.
Damn, you're right. It is strange exception beacause it doesn't work for twice 'F' as I expected to. That's what've misled me...:o
qwerpoi
1st November 2006, 20:43
Question for multi-monitor users. Does AvsP appropriately remember the program's position when it starts up, or does it always start up on the primary monitor? I guess it depends on how your multi-monitor desktop is setup, to either use a single large desktop across monitors or separate desktop units. The reason I need to know is because I want to make sure the separate external preview window shows up on the correct monitor, I may need to dig into more details to get it to work properly.
krisq
1st November 2006, 21:25
I've got one large desktop and avsp is always starting on primary display for me.
qwerpoi
1st November 2006, 21:36
I've got one large desktop and avsp is always starting on primary display for me.
Just to clarify, you're saying that when you move AvsP to the secondary monitor and close it, the next time it incorrectly starts up on the primary monitor? Another question - does the maximized setting get remembered correctly? I'm not sure how it's supposed to work, for a single large desktop it seems like a maximized program would take up all monitors, but that sounds strange. Regardless, does AvsP show up maximized properly on startup, or does it only maximize on the primary monitor?
krisq
1st November 2006, 21:57
Just to clarify, you're saying that when you move AvsP to the secondary monitor and close it, the next time it incorrectly starts up on the primary monitor?
Exactly.
Another question - does the maximized setting get remembered correctly? I'm not sure how it's supposed to work, for a single large desktop it seems like a maximized program would take up all monitors, but that sounds strange. Regardless, does AvsP show up maximized properly on startup, or does it only maximize on the primary monitor
It's maximizing properly, only on the primary display. One thing though and I think it's a bug. Maximize state is remembered correctly between sessions but if I 'unmaximize', it's returning to the size of the desktop and not the size before maximizing.
ChrisW77
2nd November 2006, 16:03
great program, very useful.
But, is there any way of making the user slider move using values of 2 ?
For example, ChromaShift(C=-2), and I need to adjust to -4/-6/-8, as you can only use even numbers, would be soo handy to see in a real-time window, as opposed to opening and closing vdub and notepad.
foxyshadis
2nd November 2006, 18:26
Can you add a *2 after the slider text?
qwerpoi
2nd November 2006, 20:08
It's maximizing properly, only on the primary display. One thing though and I think it's a bug. Maximize state is remembered correctly between sessions but if I 'unmaximize', it's returning to the size of the desktop and not the size before maximizing.
Yep, I knew about this bug before releasing v1.3.1, thanks for bringing it up, though. Basically you wouldn't believe the issues you run into when trying to layout windows when the windows don't yet exist, a lot of weirdness ensues. But I managed to get it working, so it will be fixed for the next release (coming very soon...)
great program, very useful.
But, is there any way of making the user slider move using values of 2 ?
For example, ChromaShift(C=-2), and I need to adjust to -4/-6/-8, as you can only use even numbers, would be soo handy to see in a real-time window, as opposed to opening and closing vdub and notepad.
Can you add a *2 after the slider text?
Actually it's a % 2, so your slider should look like [<"c % 2", -8, -4, -6>] - you can read more about it here (http://www.avisynth.org/qwerpoi/UserSliders.html#basic-usage) (at the end of the "Basic usage" section). I am aware that on a technical level that's not the best way to name it, foxyshadis' notation is more accurate - what can I say, I'm not a technical guy :) .
foxyshadis
2nd November 2006, 21:33
Oh, I just meant doubling everything is one way to make it always even :p (like [<"c", -8, -4, -6>]*2) but modulo is definitely better, especially when it's built right in. Neato, I missed that feature entirely.
qwerpoi
2nd November 2006, 23:50
New version 1.3.2, download from here (http://www.avisynth.org/qwerpoi/Download.html) or use a mirror from the first post. Here's the changelog:
* added option to make video preview a separate window
* added option to quickly backup the current session (suggested by foxyshadis)
* added "paranoia mode" to backup the current session whenever video is refreshed
* increased size of window dividers to make easier to click (suggested by Alain2)
* change autoparentheses levels option labels to be clearer (suggested by Alain2)
* added option to set minimum text window size (suggested by foxyshadis)
* added option to not focus video window when refreshing (suggested by krisq)
* added ability to clear a shortcut in the shortcut editor
* minor improvements to line-by-line update mode
* improved to multi-monitor support
> fixed bug with dragging crop edges (thanks krisq)
> fixed left-click to focus video window (thanks krisq)
> fixed autocomplete before operator (thanks foxyshadis)
> fixed bug with remembering program size when maximized (thanks krisq)
Biggest change here is the ability to make the video preview a separate window (under "Options -> Program settings..." in the "Video" tab, requires a program restart to take effect). The main window and the separate video window have an identical set of video controls at the bottom of each window. The video controls on the main window work a little different than normal, they do not focus the video window after the first time. It's a little hard to understand what this implies, so I'll just say try maximizing the separate video window in the background with the main window in the foreground as an interesting way to work with AvsP. Also as a reminder, be sure to use the keyboard shortcut Shift+Tab as a quick way to switch between the two windows.
Another important change is added options to back up the current session. These options are useful if you use filters that tend to hard-crash Avisynth, which in turn closes AvsP abruptly, causing you to lose all your unsaved script changes. You can either backup the current session with the menu command "File -> Backup current session" (default shortcut Alt-B), or use "paranoia mode", which backups the current session every time a new script is previewed (activate under "Options -> Enable paranoia mode"). The session is backed up into the file "_last_session_.ses" in the program directory. This file is automatically loaded when you start up AvsP with no command line arguments - in other words, it won't autoload if you have .avs files associated with AvsP and you double-click an avs file. You can force AvsP to load the last session no matter what in "Options -> Program settings..." under the "Misc" tab.
Another change is improved multi-monitor support - this means if you start AvsP in a secondary monitor and close it, it should open in the appropriate monitor, instead of always opening in the primary monitor, etc. However, I don't have a multi-monitor setup, so I don't know if it works as smoothly as I think (or if it even works at all). So any multi-monitor users out there be sure to report any strange behavior and I'll try and fix it.
One other bit of news - I released the source for AvsP, it's under the GPL license. I have no real reasons for doing this, I just thought it was only fair since Avisynth is under the GPL license, and without Avisynth there would be no AvsP. The source is included in the zip file, in the "src" directory. You can read the "notes.txt" if you're interested in running or compiling the program. Any questions regarding problems with the source should be in a separate thread or by pm - again, keep in mind I'm not really interested in supporting these types of issues, nor do I believe the source is in a maintainable or even readable form, I'm just releasing it for posterity's sake.
krisq
3rd November 2006, 00:26
Very impressive work qwerpoi :D. I will check it tomorrow on dual monitor setup. :thanks:
Is it possilble for you to give a choice where panel with sliders should be (script window or video window)?
ChrisW77
3rd November 2006, 01:36
Oh, I just meant doubling everything is one way to make it always even (like [<"c", -8, -4, -6>]*2) but modulo is definitely better, especially when it's built right in. Neato, I missed that feature entirely.
Yep, that way works best for me, many thanks. :)
Oh, and thanks for the new version, works a treat.
Alain2
3rd November 2006, 02:05
FR translation updated
Very nice work again! The separate video window works well, the refresh not focusing on the video is a very good idea :)
Thank you for your hard work qwerpoi, it really pays off I think! Hope you'll have some time to dig through the rest your todolist ^^
btw I don't have 2 monitors, so no comments on this from me
Fizick
3rd November 2006, 13:01
qwerpoi,
I will test new version.
Thanks for your decision to release a source unde GPL.
In my opinion, we now can declare your editor at least as semi-official AviSynth editor :)
I shall update Avisynth documentation to add the info (link).
Henrikx
3rd November 2006, 14:08
@qwerpoi
German translation updated
Question
Points (behind Instructions (Example :save as...) = an action is not immediately executed ..Is this also so at AvsP ?
krisq
3rd November 2006, 17:56
BTW I think you should add a link to the AvsP page in the 'about' box. :)
chros
3rd November 2006, 18:20
Bug?
I have copied the exe to the previous version's dir 1.3.1 (where were already the *.dat files) and the slider row + status row was very big and unresizable ...
Solution: delete all the *.dat files
Can you add an "associate with *.avs extension" switch in the Options? :)
I'm certainly willing to listen to any specific requests regarding this, but you'll have to walk me through a bit as to what would be needed, since I'm clueless as to what a good MeGUI "avisynth creator" would be.
OK. In the weekend I'll try to summarize the needed things ...
Thanks
qwerpoi
3rd November 2006, 19:57
Is it possilble for you to give a choice where panel with sliders should be (script window or video window)?
Ouch, it's possible but causes me pain to think about :( . I do understand where you're coming from, with the separate video window the sliders can sometimes make more sense on the script window. But as far as I can tell there's no simple way to do this, I'd have to write two sets of code (which is already what I had to do to support a separate video window). So it's an option that should be there, but I'm not sure when I'll get around to it :) .
Yep, that way works best for me, many thanks. :)
Oh, and thanks for the new version, works a treat.
Thanks, glad to hear it!
FR translation updated
Very nice work again! The separate video window works well, the refresh not focusing on the video is a very good idea :)
Thank you for your hard work qwerpoi, it really pays off I think! Hope you'll have some time to dig through the rest your todolist ^^
btw I don't have 2 monitors, so no comments on this from me
Thanks for the translation update! And don't worry, I haven't forgotten about my todo list (quite a few suggestions have your name on it :) ), I'll have to see about the time.
qwerpoi,
I will test new version.
Thanks for your decision to release a source unde GPL.
In my opinion, we now can declare your editor at least as semi-official AviSynth editor :)
I shall update Avisynth documentation to add the info (link).
Many thanks! By the way, if it's easier to host AvsP on sourceforge for bandwith reasons, let me know (I always felt guilty about the big download).
@qwerpoi
German translation updated
Question
Points (behind Instructions (Example :save as...) = an action is not immediately executed ..Is this also so at AvsP ?
Thanks for the updated translation! As far as your question goes, three periods (referred to as "ellipses") usually indicates an option which opens a separate dialog box. I tried to follow this convention with AvsP, but I may have missed some, so if you find any mistakes, let me know.
BTW I think you should add a link to the AvsP page in the 'about' box. :)
Good idea! It's not a very impressive 'about' box at the moment :) .
Bug?
I have copied the exe to the previous version's dir 1.3.1 (where were already the *.dat files) and the slider row + status row was very big and unresizable ...
Solution: delete all the *.dat files
You are indeed correct, I know about that bug, it's basically a byproduct of programatically sizing windows which don't yet exist coupled with positions from the old options.dat which may not make sense for the new version. I'm still trying to bulletproof the layout code to prevent this type of occurence, but in the meantime, you *should* be able to solve the problem simply by closing and reopening AvsP. If this doesn't work, you can do as chros suggests, you only need to delete the options.dat file, though.
Veiga
4th November 2006, 06:00
qwerpoi,
Portugues_Br translation update
very good work again.
foxyshadis
4th November 2006, 07:04
You could always start a new project on sourceforge for this. I think it would be really cool, and an svn would make it easy to make patches and stay in sync. ;) btw, I didn't have any problems recompiling following your directions, though I haven't made any changes yet.
qwerpoi
4th November 2006, 08:03
qwerpoi,
Portugues_Br translation update
very good work again.
Thanks for the update!
You could always start a new project on sourceforge for this. I think it would be really cool, and an svn would make it easy to make patches and stay in sync. ;) btw, I didn't have any problems recompiling following your directions, though I haven't made any changes yet.
As it stands, I know absolutely nothing about how to start or maintain a project on sourceforge, svn, repositories, any of that stuff, and I'm not sure I want to take the time to learn :) . I guess it would be worthwhile if enough programmers are willing to chip in with development, not sure how many python/wxpython guys there are around here, and some may consider the code to be hard to manage (not enough subdivision, and some questionable programming practices overall :) ). Ultimately it's a matter of time, I develop AvsP in my spare time, I don't know how much additional effort it would be to manage it as a project. Then again, there are some pretty big ideas around here, like implementing Avisynth in python for AvsP, or adding MeGUI specific features like IVTC analysis, stuff that I can't really handle effectively by myself, so in that sense maybe this is the right way to go.
And out of curiosity, did you try compiling using python 2.4 or python 2.5? I never tested with 2.5 so I just wanted to know if there were no problems. Also, how's v1.3.2 with respect to multi-monitor stuff (ie, does AvsP properly remember monitor positions for the main and separate video window)?
Fizick
4th November 2006, 08:39
qwerpoi,
I have the same opinion, that it is no reasons to go to sourceforge immediately.
foxyshadis
4th November 2006, 08:58
2.5, actually. Had no problem running it so far.
The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.
zemog
4th November 2006, 10:54
Qwerpoi: Thanks again, great work!.
Here is the Spanish translation for v1.3.2
krisq
4th November 2006, 13:29
The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.
I confirm that :).
qwerpoi
5th November 2006, 00:47
2.5, actually. Had no problem running it so far.
The only multimonitor issue seems to be that stuff still restarts on the primary monitor, no matter which it was on before. It's not hard to move, though.
I confirm that :).
D'oh, either I did something wrong or the multi-monitor related commands in wxpython don't work properly. If you're willing foxyshadis, I'll put together some diagnostic code for you to run (since you've already got all the python stuff installed :) ), to see some position outputs and find the cause of the issue.
Qwerpoi: Thanks again, great work!.
Here is the Spanish translation for v1.3.2
Thanks for the updated translation! I've updated the links on the first post and the AvsP download page for the Spanish and Portuguese translations accordingly.
foxyshadis
5th November 2006, 01:16
Sure, I'd have no problem with that. It also raised a wxerror when the resolution changed while it was open, and wouldn't close after that, but I kinda forgot to get the line numbers down. >.> That was just me testing the stupid ati drivers, plugging and unplugging the monitor, probably not too important.
Oh, you know how you have the autosize to video routine? That's really cool, but would it be possible to make it work going down, as well? Currently it only autosizes if it's too small.
I think you might also want to expose GetCurrentPos() in AvsP_functions, it's handy to insert macro text in at the cursor, instead of always at the end.
Alain2
5th November 2006, 16:06
Apparently AvsP refresh the preview window on exit (or takes a long time to close), which is not necessary. Not very important though ^^
I also catched an error message:
http://img132.imageshack.us/img132/2192/tempit2.jpg
But was after making mistakes and using directshowsource, AvsP apparently was not properly closing haali splitter when errors in the avs were there. Again I don't think this isimportant, I mention it just in case
qwerpoi
5th November 2006, 19:48
Sure, I'd have no problem with that. It also raised a wxerror when the resolution changed while it was open, and wouldn't close after that, but I kinda forgot to get the line numbers down. >.> That was just me testing the stupid ati drivers, plugging and unplugging the monitor, probably not too important.
I'll look into it, if it happens again let me know the error message.
Oh, you know how you have the autosize to video routine? That's really cool, but would it be possible to make it work going down, as well? Currently it only autosizes if it's too small.
I take it you're referring to the separate video window. I tried to keep the autosizing to a minimum with the separate window, since your controls would keep changing position, but certainly I can change the behavior if that's more intuitive to you.
I think you might also want to expose GetCurrentPos() in AvsP_functions, it's handy to insert macro text in at the cursor, instead of always at the end.
You can use InsertText("Hello", pos=None) to insert "Hello" at the current position (strange notation, I know). If there's another reason to get the current position, let me know and I'll add the function to the macros.
Apparently AvsP refresh the preview window on exit (or takes a long time to close), which is not necessary. Not very important though ^^
Okay, I'll check it out, thanks.
I also catched an error message:
But was after making mistakes and using directshowsource, AvsP apparently was not properly closing haali splitter when errors in the avs were there. Again I don't think this isimportant, I mention it just in case
Thanks for the error output, I'll figure out what's going on and fix it for the next release.
foxyshadis
6th November 2006, 01:29
You can use InsertText("Hello", pos=None) to insert "Hello" at the current position (strange notation, I know). If there's another reason to get the current position, let me know and I'll add the function to the macros.
Thanks, I didn't know there was a magic syntax.
Maybe you can use the lower left corner as the anchor, if control jumpiness is a problem?
btw, I found the reason why it doesn't save position on second screen: You don't need an offset for it, it's already offset correctly. :p
self.options['dimensions2'] = (x, y, w, h)
Will correctly display it on the second monitor, it must be overflowing and resetting when adding the offset (I bet if I had a third it would snap over to it). Which is really good to know, because I switch from one to two monitors all the time, and it's nice that it won't show up "nowhere" when going back to a single screen.
qwerpoi
6th November 2006, 05:35
btw, I found the reason why it doesn't save position on second screen: You don't need an offset for it, it's already offset correctly. :p
self.options['dimensions2'] = (x, y, w, h)
Will correctly display it on the second monitor, it must be overflowing and resetting when adding the offset (I bet if I had a third it would snap over to it). Which is really good to know, because I switch from one to two monitors all the time, and it's nice that it won't show up "nowhere" when going back to a single screen.
Okay, so you're saying that the dimensions do not span multi-monitors, good to know. But if that's true then how is it possible to store and restore the window position on a secondary monitor? Ie, I don't see the way to programmatically send a window from monitor A to monitor B if the offsets don't work. If I'm misunderstanding something, let me know, otherwise I'll try and do some research into the subject.
foxyshadis
6th November 2006, 06:04
The coordinates are just extended across the second screen. 0-1279 are screen one, 1280-2560 are screen two, and self.videoDialog.GetRect() will correctly return the coordinates starting from the top-left of the first monitor, not the second. By removing all of the per-display offset code from dimensions and dimensions2, it always saves and restart correctly.
Per-display would be useful if you needed to auto-center or maximize across windows though.
qwerpoi
6th November 2006, 06:13
The coordinates are just extended across the second screen. 0-1279 are screen one, 1280-2560 are screen two, and self.videoDialog.GetRect() will correctly return the coordinates starting from the top-left of the first monitor, not the second. By removing all of the per-display offset code from dimensions and dimensions2, it always saves and restart correctly.
Per-display would be useful if you needed to auto-center or maximize across windows though.
Ah, gotcha. This of course leaves the question as to why it didn't work originally (I added the offsets later in an attempt to correct the problem). Oh well, I'll remove the per-display offsets, if you say it works fine then I won't give it further thought :) .
Alain2
7th November 2006, 03:48
A small bug: doing a CTRL+SPACE on a number (where-ever positionned) will show a python error message, whereas doing so on names not recognized won't show anything
Naito
7th November 2006, 15:50
At first, a great thanks for your powerful tool.
I have a Mistake:
In the Attachment you will find the "wrong_format.txt". If I wrote this skript with AvsP 1.3.2 (german translation) and save as AVS, it will be wrong formatted (no line breaks by the comments). Maybe just an error of my windows system. Because of the sliders, I added the SES-File too. (Maybe the error is there)
Some proposals:
#Zoom:
* Can you add "Zoom: 75%" and "Zoom: 150%", please.
* It would be nice, if I can select "Custom-Zoom", to enter a Number, wich adjust I like.
* Great It would be an "Auto-Zoom". The Preview will be fit to the Preview-Window and the Zoom-Adjust is be shown on the row at the bottem.
#Slider
* Please, can you add a warning if the value of the slider is not between min and max. For example: [<"Test", 0, 10, 20>] or [<"Test", 0, 10, -20>].
_____
I apologise for my bad englisch.
qwerpoi
7th November 2006, 20:41
A small bug: doing a CTRL+SPACE on a number (where-ever positionned) will show a python error message, whereas doing so on names not recognized won't show anything
You're right, thanks for finding the bug. I'll have it fixed in the next release.
At first, a great thanks for your powerful tool.
I have a Mistake:
In the Attachment you will find the "wrong_format.txt". If I wrote this skript with AvsP 1.3.2 (german translation) and save as AVS, it will be wrong formatted (no line breaks by the comments). Maybe just an error of my windows system. Because of the sliders, I added the SES-File too. (Maybe the error is there)
Some proposals:
#Zoom:
* Can you add "Zoom: 75%" and "Zoom: 150%", please.
* It would be nice, if I can select "Custom-Zoom", to enter a Number, wich adjust I like.
* Great It would be an "Auto-Zoom". The Preview will be fit to the Preview-Window and the Zoom-Adjust is be shown on the row at the bottem.
#Slider
* Please, can you add a warning if the value of the slider is not between min and max. For example: [<"Test", 0, 10, 20>] or [<"Test", 0, 10, -20>].
I'm glad you like the program! I'll try and see what's going on with the line breaks when I can download the attachment. As far as extra zoom options are concerned, hopefully the next release will have a "zoom to fit" option, I'm still working out the details. And for slider warnings, you can define sliders using the dialog box from the right click menu "Insert user slider..." (translated to german), default keyboard shortcut F12. By making sliders with the dialog box, AvsP will make sure you enter appropriate values for the min, max, and default, it will even check to make sure that no slider with the same label already exists.
Alain2
8th November 2006, 00:46
- File>Save as.. often leads me to the following error message:
Traceback (most recent call last):
File "AvsP.py", line 3332, in OnMenuFileSaveScriptAs
File "AvsP.py", line 4765, in SaveScript
File "AvsP.py", line 4632, in UpdateRecentFilesList
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 75: ordinal not in range(128)
- Do you think you could add an intermediate seek step of 10sec between the 1sec and 1min ones ? Activated with CTRL+UP/DOWN for instance :)
krisq
8th November 2006, 12:06
Bug:
I've set 'Tab' as my shortcut to switch focus between windows. It works only from script to preview, from preview to script window it does not.
And 'ctrl+s' doesn't work when I'm in the undocked preview window.
zemog
8th November 2006, 16:23
Qwerpoi:
For all, like me, who love right-clicking and use context menus, would it possible to add to your to-do list these option for right-click on the tab title?. For me: Close tab, Save script, Save script as… and Select All options would be enough. Thanks
qwerpoi
8th November 2006, 18:51
- File>Save as.. often leads me to the following error message:
- Do you think you could add an intermediate seek step of 10sec between the 1sec and 1min ones ? Activated with CTRL+UP/DOWN for instance :)
I'll check out that error, thanks. As far as a 10 sec jump, we'll see, perhaps I'll add a custom jump size command which you can specify the size in seconds or frames from the options dialog.
Bug:
I've set 'Tab' as my shortcut to switch focus between windows. It works only from script to preview, from preview to script window it does not.
And 'ctrl+s' doesn't work when I'm in the undocked preview window.
You're right, the video preview window captures tab like a normal window (cycles focus within its controls), I'll try and change its behavior accordingly. (Out of curiosity, how to you plan on 'tabbing' text? I suppose it's not used very often in Avisynth such that you could use menu commands...) Also, the video window only registers video-related keyboard shortcuts (ie, all the shortcuts in the video right-click menu). I think I can change this behavior as well, but it might lead to some undesirable focus issues, I'll check it out.
Qwerpoi:
For all, like me, who love right-clicking and use context menus, would it possible to add to your to-do list these option for right-click on the tab title?. For me: Close tab, Save script, Save script as… and Select All options would be enough. Thanks
Should be doable, I'll add it to my todo list. One question - when you right-click an unselected tab, do you expect the tab to become selected or not?
Naito
8th November 2006, 19:01
And for slider warnings, you can define sliders using the dialog box from the right click menu "Insert user slider..." (translated to german), default keyboard shortcut F12. By making sliders with the dialog box, AvsP will make sure you enter appropriate values for the min, max, and default, it will even check to make sure that no slider with the same label already exists.
In my workflow, at first I do this. But many times I decrease max-value and overlook, that the default value ist not between min and max. :o It's not realy necessary, but it will take the job easier. I realy like the sliders :D
Just another Bug:
If I use "Backup current session" [Alt+B] in a current session, close AvsP, open AvsP and use "Load session" [Alt+O] on the session, I get this error:
Traceback (most recent call last):
File "AvsP.py", line 3335, in OnMenuFileLoadSession
File "AvsP.py", line 4835, in LoadSession
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 391: ordinal not in range(128)
But if I use "Safe session" [Alt+S], close AvsP, open AvsP and use "Load session" [Alt+O], it still works. Maybe AvsP didn't safed correct the current session.
EDIT1: Sorry, I mistake "Backup current session" and "Safe session". Now it ist right. (Translation problem)
EDIT2: It works, if there is no AVS-File with the same name as the SES-File (and I don't save as AVS).
zemog
8th November 2006, 20:30
Originally Posted by qwerpoi
Should be doable, I'll add it to my todo list. One question - when you right-click an unselected tab, do you expect the tab to become selected or not?
Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough
krisq
8th November 2006, 21:21
(Out of curiosity, how to you plan on 'tabbing' text?)
I don't use 'Tab' in scripts at all. They are pretty simple so I don't need to indent the lines. I prefer fast focus switch and it's a perfect key for me to do that :). :thanks:
Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough
Are you sure it's supposed to become selected? In any tabbed software I use (Maxthon, Total Commander) the tab after right-click doesn't get selected, only the context menu is displayed for that tab. Or am I missing something?
This behavior should be consistent with other apps IMHO...
Alain2
8th November 2006, 21:42
As far as a 10 sec jump, we'll see, perhaps I'll add a custom jump size command which you can specify the size in seconds or frames from the options dialog.Personnaly I like aving different seek speeds available at the same time, I use the 1frame/1sec/1min speeds all the time, it's just that between 1 sec and 1min it is a big différential step, which shows up more for me than between 1frame/1sec. I actually really like to have these different speeds all at hand, I think it's better than having a setting to keep changing if we want to change seek speed ;) (could even do with 15 mins / 1 hour step sizes ^^)
(Out of curiosity, how to you plan on 'tabbing' text? I suppose it's not used very often in Avisynth such that you could use menu commands...)Tab is quite useful for me actually in some of my avisynth scripts, or look at Didée's scripts, readability is really improved with proper tabbing :) (Of course I also use all the time the constant width font option)
jmac698
9th November 2006, 16:25
Urgent bug: can't run my avsp anymore.
I ran a script that causes avisynth to crash, and left the preview window on. Now if I load avsp, it instantly exits.
The script in virtualdubmod also makes that app exit. This shouldn't be happening in any of those programs.
Another bug is that I saved my script and it always came back with the old one. Saving a script should always write the file. I had to paste it to notepad in order to save it. Is there a bug in saving the preview.avs and reusing it?
ncatt
9th November 2006, 18:02
Hi, is not "bug" in AvsP, is (most presumable) incompatible or bug plugins in your avisynth plugins folder. Troubleshoot this problem first. Otherwise, kudos to the AvsP author!!! Is one wonderful little piece of software, very very useful. PS: I had many problems with sse3 plugins, try replace to sse2 versions (My cpu is C2C E6600)
foxyshadis
9th November 2006, 22:05
You can delete _last_session.ses in the avsp folder, or modify it to remove/change the offending script, if it really happens to be a script problem. Does sound like a plugin problem though.
qwerpoi
9th November 2006, 22:07
Yes I think unselected tab should become selected if it is possible. If not, right-click context menu only for active tab would be enough
Are you sure it's supposed to become selected? In any tabbed software I use (Maxthon, Total Commander) the tab after right-click doesn't get selected, only the context menu is displayed for that tab. Or am I missing something?
This behavior should be consistent with other apps IMHO...
The reason I ask is because I've seen it both ways (Firefox and other web browsers don't select, MS Excel and some text editors do select). In AvsP selecting the tab would cause the video preview to refresh, which can be a good or bad thing when right-clicking a tab. I guess I'll make it an option just to be sure.
Personnaly I like aving different seek speeds available at the same time, I use the 1frame/1sec/1min speeds all the time, it's just that between 1 sec and 1min it is a big différential step, which shows up more for me than between 1frame/1sec. I actually really like to have these different speeds all at hand, I think it's better than having a setting to keep changing if we want to change seek speed ;) (could even do with 15 mins / 1 hour step sizes ^^)
Yep, I like the second and minute jumping myself, it's a lot more meaningful than jumping by a certain number of frames, I'm not sure how unique it is but I think it's one of the more important aspects of AvsP. What I'll do is add two more jump commands, "Forward x seconds" and "Backward x seconds", where x will be set from the options dialog, in units of either frames or seconds.
Urgent bug: can't run my avsp anymore.
I ran a script that causes avisynth to crash, and left the preview window on. Now if I load avsp, it instantly exits.
The script in virtualdubmod also makes that app exit. This shouldn't be happening in any of those programs.
Another bug is that I saved my script and it always came back with the old one. Saving a script should always write the file. I had to paste it to notepad in order to save it. Is there a bug in saving the preview.avs and reusing it?
Hi, is not "bug" in AvsP, is (most presumable) incompatible or bug plugins in your avisynth plugins folder. Troubleshoot this problem first. Otherwise, kudos to the AvsP author!!! Is one wonderful little piece of software, very very useful. PS: I had many problems with sse3 plugins, try replace to sse2 versions (My cpu is C2C E6600)
ncatt is right, if virtualdub is crashing as well then it's most likely a bad plugin in your script. In order to run AvsP without crashing, delete the "_last_session_.ses" file in the AvsP directory (this session stored the fact that the video preview should be viewed on startup). Oh, and thanks for the kudos ncatt, glad you find the program to be useful.
Edit: foxyshadis beat me to it :)
qwerpoi
9th November 2006, 22:22
In my workflow, at first I do this. But many times I decrease max-value and overlook, that the default value ist not between min and max. :o It's not realy necessary, but it will take the job easier. I realy like the sliders :D
Ah, I see what you mean, I didn't consider the fact that you would go back and redefine the min/max values. I'll see what I can do.
Just another Bug:
If I use "Backup current session" [Alt+B] in a current session, close AvsP, open AvsP and use "Load session" [Alt+O] on the session, I get this error:
But if I use "Safe session" [Alt+S], close AvsP, open AvsP and use "Load session" [Alt+O], it still works. Maybe AvsP didn't safed correct the current session.
EDIT1: Sorry, I mistake "Backup current session" and "Safe session". Now it ist right. (Translation problem)
EDIT2: It works, if there is no AVS-File with the same name as the SES-File (and I don't save as AVS).
Interesting, thanks for the bug report, I'll try and figure out what's going on.
Zarxrax
9th November 2006, 23:01
I have a suggestion that I think would be really useful. I don't think I see this kind of functionality present in AvsP yet, but let me know if I have just missed it.
It would be really nice if there was an easy way to select frame ranges for trim, applyrange, etc. My suggestion to handle it is like this: Allow users to specify an in-point by pressing something like alt+[, and then an out-point by pressing alt+]. Once both an in and out point are selected, have a little popup for the user to choose from things to do with that selection of frames. One such option would be a regular Trim, to leave only the section between the frames you selected. Another option could be an inverse trim--it would REMOVE the frames you selected, leaving the sections around it (by adding 2 trim commands). There could also be options for applyrange, and other commands that use a range of frames. This would allow to quickly and easily make simple edits to the video.
And additionally, one other minor thing: when you create a new script, then go to save it the first time, would it be possible to fill in the default filename to be the same as the first input source in your script, except with an avs extension?
jmac698
10th November 2006, 00:51
ncatt: thanks for the tip, that cured it. It was logotools.dll, an avisynth 2.0 plugin, loaded with loadpluginex(), the crash is caused by not using yuy2.
You could help by noting a crash and automatically disabling preview on the next session, this would be very easy.
All: I second the suggestion, I would find it acceptable to save scripts according to the source name, as that is a frequent use. I would also like a save script icon for quick saving, I tend to debug and save at every working step.
Alain2
10th November 2006, 01:21
I would also like a save script icon for quick saving, I tend to debug and save at every working step.
:confused: CTRL+S... much faster than pointing on an icon...
qwerpoi
10th November 2006, 05:22
It would be really nice if there was an easy way to select frame ranges for trim, applyrange, etc. My suggestion to handle it is like this: Allow users to specify an in-point by pressing something like alt+[, and then an out-point by pressing alt+]. Once both an in and out point are selected, have a little popup for the user to choose from things to do with that selection of frames. One such option would be a regular Trim, to leave only the section between the frames you selected. Another option could be an inverse trim--it would REMOVE the frames you selected, leaving the sections around it (by adding 2 trim commands). There could also be options for applyrange, and other commands that use a range of frames. This would allow to quickly and easily make simple edits to the video.
The inverse trim functionality is already there (works with multiple range selections), in the right-click menu "Insert bookmark trims", using any bookmarks you have set (read more about it here (http://www.avisynth.org/qwerpoi/Text.html#insert-bookmark-trims)). But this is more or less a hack I put together by request to provide similar functionality with vdubmod's script editor. I agree that a more general framework with frame selections would be useful, I'll add it to my todo list and give it some thought.
And additionally, one other minor thing: when you create a new script, then go to save it the first time, would it be possible to fill in the default filename to be the same as the first input source in your script, except with an avs extension?
Should be doable, I'll try to have it in the next release.
ncatt: thanks for the tip, that cured it. It was logotools.dll, an avisynth 2.0 plugin, loaded with loadpluginex(), the crash is caused by not using yuy2.
You could help by noting a crash and automatically disabling preview on the next session, this would be very easy.
It's not necessarily "very easy", if the program could detect the hard crash it would be possible to prevent closing it in the first place. But you do bring up a good point, and there should be a workaround, so I'll see what I can do.
I would also like a save script icon for quick saving, I tend to debug and save at every working step.
:confused: CTRL+S... much faster than pointing on an icon...
I agree with Alain2, mostly because I don't like toolbars :) . You can customize the save keyboard shortcut to whatever you please, so I imagine that's the fastest way.
@krisq
I tested using 'Tab' as the shortcut to switch between the windows, and I noticed that hitting 'Tab' in the script window switches to the video window, but adds a tab into the text first. I'll try and find a way around this, but I was just curious if this was happening to you as well.
krisq
10th November 2006, 10:24
@krisq
I tested using 'Tab' as the shortcut to switch between the windows, and I noticed that hitting 'Tab' in the script window switches to the video window, but adds a tab into the text first. I'll try and find a way around this, but I was just curious if this was happening to you as well.
Yep, same here. :) I didn't mentioned it because...well... because I didn't :o .
jmac698
11th November 2006, 03:59
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().
I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.
jmac698
11th November 2006, 04:20
as far as GUI operation questions, there are two standards for this, gnome user interface, http://developer.gnome.org/projects/gup/hig/
windows interface, http://msdn.microsoft.com/ui/, or just look at how Office reacts. Don't worry, there is room for custom operation, but new users are best served by a set of standard GUI controls.
foxyshadis
11th November 2006, 11:38
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().
I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.
qwerpoi, I had a thought on one way of doing this. If you wanted to be able to "instantly" view any changes in sliders, without the long delay of reloading avisynth when one changes, you could behind the scenes save off a temp snapshot of the output, load into into a new script with only the current operation(s) using imagesource. That way it'd be nearly instantaneous, I assume (or is there significant overhead just from loading avisynth?). I guess I could test this out myself.
It'd only work for testing the final operation(s), at least without even more magic, though.
There might be a way to do this entirely in script, I'll look into it.
qwerpoi
11th November 2006, 21:39
qwerpoi: ok, ctrl-s is acceptable, though I have to get in the habit of this. Doing something about the crash would be great.
I implemented a workaround for the crash on startup, it will be in the next release (which will hopefully be out sometime after the weekend).
Requests: Select, Region, select rectangular region, Copy, Paste Special, Region as Crop command, as letterbox command.
Select, Pixel, primary-click pixel,Copy, Paste Special, Pixel as RGB Hex, as YUV
also, change Select to Select Source, and Select destination, then add paste as Tweak(), as Resize().
I recommend these, as they are very visual operations, and certainly no program allows you to visually measure or tweak colors (as YUV at least). Read the colors from the codec output colorspace and convert to the other colorspace, could even be lazy and insert script to do this.
I guess I don't fully understand your request. There already exists a crop editor to paste a Crop() command based on a selected area. I don't follow exactly what you mean by copying pixels and tweaking colors. It sounds like you want a color picker that works in RGB or YUV, but I'm not sure how you can use that info in avisynth. You can already tweak colors using a script with Tweak() and user sliders, if you want to tweak individual pixels or regions that would be a bit more involved. Again, if I'm misunderstanding something, let me know.
as far as GUI operation questions, there are two standards for this, gnome user interface, http://developer.gnome.org/projects/gup/hig/
windows interface, http://msdn.microsoft.com/ui/, or just look at how Office reacts. Don't worry, there is room for custom operation, but new users are best served by a set of standard GUI controls.
Thanks for the links, I didn't know there were documented guidelines, could be useful. Actually, I'm not terribly fond of current day user interfaces (read: I hate them :) ), so my design philosophy with AvsP has been to keep things as minimalistic as possible, to the point where if you know how to use notepad with AviSynth, you already know how to use AvsP.
qwerpoi, I had a thought on one way of doing this. If you wanted to be able to "instantly" view any changes in sliders, without the long delay of reloading avisynth when one changes, you could behind the scenes save off a temp snapshot of the output, load into into a new script with only the current operation(s) using imagesource. That way it'd be nearly instantaneous, I assume (or is there significant overhead just from loading avisynth?). I guess I could test this out myself.
It'd only work for testing the final operation(s), at least without even more magic, though.
There might be a way to do this entirely in script, I'll look into it.
A long time ago I did similar tests (I trimmed the video to a single frame instead of using imagesource), and didn't find any speed increase. They were really informal tests, your method could be faster, but I get the impression that the overhead comes from loading the avisynth script (and dumping the text file to the hard drive) as you mention. I'll look into the matter when I get the time, if you find anything interesting let me know.
jmac698
11th November 2006, 23:36
Single frame preview: avisynth is smart enough to request just enough data to preform it's operations. It may be possible that forcing a single frame is unnecessary.
Crop: oops, got me there. I didn't know there was a built in crop editor.
Color picker: yes, that's what I want, to do spot checks of colors. The idea of measuring two pixels is that, I pick a pixel in one source and a pixel in another source, and compute a tweak command to match colors.
But what's more important to me is simply to be able to read YUV colors, especially of colorbar patterns and other spot checks.
GUI: I've tutored people in basic computer operations, trust me it helps to have something familiar. There is actually good reasoning behind it, and it all started with research at the Palo Alto research centre a long time ago. E.g., if a button doesn't give visual or audio feedback, people will naturally keep pressing it until it "does something".
As for shortcuts, they are just there for keyboardists - disabled persons use serial key devices which operate naturally with shortcuts. There are various disabled on this board but you wouldn't know it!
Richard Berg
12th November 2006, 00:05
Trimming to a single frame won't speed anything up.
Loading an ImageSource script should be very fast so long as everything in your plugin dir is in Windows' disk cache.
qwerpoi
14th November 2006, 13:42
As promised, new version 1.3.3, download here (http://www.avisynth.org/qwerpoi/Download.html) or use the mirror on the first post. Here's the changelog:
* added video preview zoom to fit window (suggested by Alain2)
* remember last zoom setting on startup
* added small indicator when zoom not at 100%
* added right-click menu to script tabs (suggested by zemog)
* added video custom jump size (suggested by Alain2)
* register all keyboard shortcuts with separate video window (suggested by krisq)
* improved auto-fit for separate video window (suggested by foxyshadis)
* updated about box with website info (suggested by krisq)
* added extra validation for user sliders (suggested by Naito)
* prevent showing preview on startup if script causes hard crash (suggested by jmac698)
> fixed positioning issues for multi-monitor setup (thanks foxyshadis)
> fixed bug with manual autocomplete on number (thanks Alain2)
> fixed small bug with offscreen window layout code (thanks Alain2)
> fixed issue with saving files with unicode text and line breaks (thanks Naito)
> allow tab as keyboard shortcut for separate video window (thanks krisq)
The biggest new feature is the ability for the video preview to fit the window, the option is located in the zoom menu "Video -> Zoom -> Fit to window" (currently only works when the preview is attached). The algorithm utilizes an Avisynth BicubicResize, you can customize this resize to any valid Avisynth resize in the "Options -> Program settings..." dialog under the "Video" tab. AvsP now remembers the last zoom setting, so you can have the "fit to window" zoom on all the time if you want. You'll notice a little triangle in the upper corner of the video window whenever the zoom is set to something other than 100%, this is just a visual reminder since it may become easy to forget that the zoom fit option is on (also indicated on the status bar).
You may find that when you are resizing the video window like crazy :), you get an error like "Failed to retrieve AVI frame". It seems this can occur when the program tries to create/load avs files too quickly. If this error occurs, you'll see a gray video window, simply refresh with F5 to fix the problem.
Other than that, there are some various bugfixes in this release. I tried to fix the multi-monitor issues and some unicode decoding problems, but since I'm not able to recreate them on my computer I wouldn't be surprised if some issues lingered. So be sure to report back with any problems as always.
krisq
14th November 2006, 14:46
Thanks qwerpoi, looking good so far. 'Tab' is working as supposed to now :)
Henrikx
14th November 2006, 17:05
Update German Translation to AvsP 1.3.3
Great New Version qwerpoi. THX
You also had the right music for work ......;) (private joke)
Alain2
14th November 2006, 22:07
Fr translation will be uploaded tomorrow (my isp is doing some maintenance so I can't ftp-access my account)
Thanks for the new version qwerpoi! I tried the zoom auto and it works great! I hope you'll be able to port it to the separate window as well :) Apparently it takes only the height of the preview window into account, not the position of the cursors window; this behaviour is actually what I want, so everything is perfect for me :)
This editor keeps getting better! Thank you qwerpoi for all the work you put in it :)
zemog
15th November 2006, 00:06
Qwerpoi. Thanks for the new version. I tested right-clic context menu in tab titles and it work fine. Thanks, thanks …
I also tested the new warning messages for sliders text and I have found that mini bug you can see in attached image (highlight “r” in slider label instead “r” in minimum value)
I also attach Spanish translation for v1.3.3
foxyshadis
15th November 2006, 11:38
in createWindowElements,
wC, hC = wx.ScreenDC().GetSize()
#~ if (pos[0]+size[0]>wC) or (pos[1]+size[1]>hC):
if (pos[0]+50>wC) or (pos[1]+50>hC):
self.videoDialog.Center()
is throwing off the multimonitor code now. Unfortunately, GetSize seems to only be returning the coords for the first window, so it gets autocentered across the full field (which ends up being on the second windows anyway, since it's centered by the upper left corner). Unfortunately, it looks like supporting MM means carving your own wheel, starting from the basics (http://66.102.7.104/search?q=cache:NVhpA0j0PQYJ:mail.python.org/pipermail/python-list/2006-May/339392.html+wx+multimonitor&hl=en&gl=us&ct=clnk&cd=3&client=firefox-a). The pitfall of a canvas not necessarily being rectangular. :( Short of that, you could simply add wx.Displays.GetCount() == 1 as a condition, skipping it for MM entirely. :p
Otherwise, it's pretty hot. Not many suggestions left, though I think a "register avisynth extensions in explorer" might be useful.
qwerpoi
15th November 2006, 12:41
Thanks qwerpoi, looking good so far. 'Tab' is working as supposed to now :)
Excellent. In actuality, I wouldn't recommend setting any keyboard shortcuts which can confuse text entry (like Enter or Backspace without any ctrl/shift/alt modifiers). I put in some special case code to make sure Tab by itself works okay.
Update German Translation to AvsP 1.3.3
Great New Version qwerpoi. THX
You also had the right music for work ......;) (private joke)
Thanks for the updated translation! And yes, having the right music helps my productivity tremendously, thanks :) .
Fr translation will be uploaded tomorrow (my isp is doing some maintenance so I can't ftp-access my account)
Thanks for the new version qwerpoi! I tried the zoom auto and it works great! I hope you'll be able to port it to the separate window as well :) Apparently it takes only the height of the preview window into account, not the position of the cursors window; this behaviour is actually what I want, so everything is perfect for me :)
This editor keeps getting better! Thank you qwerpoi for all the work you put in it :)
Glad you like the new version! I will indeed make the zoom fit feature for the separate window, just wanted to get this release out first.
Qwerpoi. Thanks for the new version. I tested right-clic context menu in tab titles and it work fine. Thanks, thanks …
I also tested the new warning messages for sliders text and I have found that mini bug you can see in attached image (highlight “r” in slider label instead “r” in minimum value)
I also attach Spanish translation for v1.3.3
Thanks for the update! I'll take a look at the screenshot and figure out what's going on when the attachment is approved.
in createWindowElements,
wC, hC = wx.ScreenDC().GetSize()
#~ if (pos[0]+size[0]>wC) or (pos[1]+size[1]>hC):
if (pos[0]+50>wC) or (pos[1]+50>hC):
self.videoDialog.Center()
is throwing off the multimonitor code now. Unfortunately, GetSize seems to only be returning the coords for the first window, so it gets autocentered across the full field (which ends up being on the second windows anyway, since it's centered by the upper left corner). Unfortunately, it looks like supporting MM means carving your own wheel, starting from the basics (http://66.102.7.104/search?q=cache:NVhpA0j0PQYJ:mail.python.org/pipermail/python-list/2006-May/339392.html+wx+multimonitor&hl=en&gl=us&ct=clnk&cd=3&client=firefox-a). The pitfall of a canvas not necessarily being rectangular. :( Short of that, you could simply add wx.Displays.GetCount() == 1 as a condition, skipping it for MM entirely. :p
Hmm, so if I'm understanding right I think I could replace wx.ScreenDC().GetSize() with something like wx.Display(wx.Display.GetFromWindow(self)).GetGeometry().GetSize(). It might be better to just get rid of the Center() code, it's only there as a failsafe to prevent the window from showing up offscreen if your resolution changes, but if what you say is true then wxPython will automatically wrap window coordinates when this happens.
Otherwise, it's pretty hot. Not many suggestions left, though I think a "register avisynth extensions in explorer" might be useful.
You're right, having a register option would be handy, the only reason I didn't do it is because I don't like mucking around in the registry in general :), and with windows xp it's easy to associate any extension with any program (right click, open with >, choose program..., and check always use selected program...), unless perhaps there's a downside to this method.
And don't worry about lacking suggestions, still got a ton left on my todo list :) . With this release I've finally finished what I wanted to do with the window layout code (resizable subwindows, separate video preview, zoom fit), so unless there are any major problems I'll start going back to some other requests that have been sitting on the backburner. The biggest area to tackle on the list is adding more customizability and refinement to the syntax highlighting, there are a lot of other various requests to do as well, it's likely that most of them are painful since I skipped them the first time around :( .
foxyshadis
15th November 2006, 13:02
I was wrong before, it was your failsafe code keeping it working. I just tested without, and it shows up offscreen after the change, at which point python gets rather unhappy (can't close properly, other goofiness).
I'll experiment with a few ideas, if one works well I'll send it off to you.
Alain2
15th November 2006, 14:09
I will indeed make the zoom fit feature for the separate window, just wanted to get this release out first.
Btw, about this, maybe you could implement an option for the auto fit so that it checks for both width and height of the preview window instead of just height.. This is particularly interesting for the separate window : I always leave it maximised behing the editor window, so if it was just taking into account the height, the picture would always become too wide..
Or better : do you think that instead of an auto fit you could create a manual fit, where the user could for instance drag the bottom or the right side of the picture, this would show scaled black borders of the picture in real time (growing/shrinking from the bottom and right sides), and you would perform the custom fit upon release of the mouse button ? Final dimensions could be not exactely as dragged (as default bicubicresize is working on mod8 numbers), but that woiuldn't really matter
Oh and a question : what is the small triangle at the top left corner of the preview window for ?
Terranigma
15th November 2006, 16:32
qwerpoi, not a big deal, but could you perhaps add the info/changes that's been implemented in newer versions somewhere at your website?
Anyways, thanks for another stellar update. :)
Veiga
15th November 2006, 18:34
Qwerpoi. Thanks for vrs1.3.3.
attached a Portugues translation for this vrs
rfmmars
15th November 2006, 19:50
I would like to add Toggle switches to the slider panel so I could trun on and off certain filters in the script. Can this be added or is this feature already there?
One of your biggest fans.
Richard
krisq
15th November 2006, 21:01
I would like to add Toggle switches to the slider panel so I could trun on and off certain filters in the script. Can this be added or is this feature already there?
One of your biggest fans.
Richard
It's there. Just select part of script which you want to disable/enable and press 'ctrl+t', put a name and the checkbox will appear in the sliders pane. Read more here (http://www.avisynth.org/qwerpoi/UserSliders.html) under 'Section Toggle Tags'.
qwerpoi
15th November 2006, 22:28
@zemog
Hah, you're right about that user slider validation bug, thanks for pointing that out. I'll get it fixed by the next release.
Btw, about this, maybe you could implement an option for the auto fit so that it checks for both width and height of the preview window instead of just height.. This is particularly interesting for the separate window : I always leave it maximised behing the editor window, so if it was just taking into account the height, the picture would always become too wide..
Or better : do you think that instead of an auto fit you could create a manual fit, where the user could for instance drag the bottom or the right side of the picture, this would show scaled black borders of the picture in real time (growing/shrinking from the bottom and right sides), and you would perform the custom fit upon release of the mouse button ? Final dimensions could be not exactely as dragged (as default bicubicresize is working on mod8 numbers), but that woiuldn't really matter
Some good ideas, the second suggestion sounds harder to implement than the first. I'll give it some thought.
Oh and a question : what is the small triangle at the top left corner of the preview window for ?
Yeah, that's a funny thing. It will show up whenever the zoom is not set to 100%. I did this because to me AvsP is all about making comparisons between multiple scripts, with some of the zoom features it becomes quite easy to not realize that the script output is being resized. Hence the little visual reminder, although I realize it looks a bit strange :) .
qwerpoi, not a big deal, but could you perhaps add the info/changes that's been implemented in newer versions somewhere at your website?
Anyways, thanks for another stellar update. :)
I've been meaning to getting around to doing just that, the website needs a bit of catching up work as it stands. For now the changelog can be found on the bottom of the readme.txt if you want to check it out.
Qwerpoi. Thanks for vrs1.3.3.
attached a Portugues translation for this vrs
Thanks for the update, I'll update the links momentarily.
I would like to add Toggle switches to the slider panel so I could trun on and off certain filters in the script. Can this be added or is this feature already there?
One of your biggest fans.
Richard
It's there. Just select part of script which you want to disable/enable and press 'ctrl+t', put a name and the checkbox will appear in the sliders pane. Read more here (http://www.avisynth.org/qwerpoi/UserSliders.html) under 'Section Toggle Tags'.
krisq is right, the feature is there, it was one of the latter additions to the program. If you read on the website you'll see that I recommend considering using multiple tabs instead of section toggle tags, to me that's easier and more efficient to work with for many cases. Eventually I may change the section toggle tag syntax to be more similar to the user slider syntax, although I'll maintain backwards compatibility so no need to be concerned.
Fizick
15th November 2006, 23:28
I at last have a time to update Russsian translation.
(but I have no time to try it)
Sorry for small comments:
1. AvsP is converted to a little complex program to use (too more items in menu, especiall EDIT menu). May be split them or move?
2. USAGE AGREEMENT in readme is not consistant with GPL license. :)
Alain2
15th November 2006, 23:48
Yeah, that's a funny thing. It will show up whenever the zoom is not set to 100%. I did this because to me AvsP is all about making comparisons between multiple scripts, with some of the zoom features it becomes quite easy to not realize that the script output is being resized. Hence the little visual reminder, although I realize it looks a bit strange :) .
Ah ok good idea ^^ maybe you can use another icon small icon more meaningful, like the maximised button of xp's windows ? like : http://img175.imageshack.us/img175/4523/tempjd0.jpg
rfmmars
16th November 2006, 03:47
It's there. Just select part of script which you want to disable/enable and press 'ctrl+t', put a name and the checkbox will appear in the sliders pane. Read more here (http://www.avisynth.org/qwerpoi/UserSliders.html) under 'Section Toggle Tags'.
Thanks for doing what I should have done, READ THE MANUAL.
Richard
steptoe
16th November 2006, 22:27
Just playing around, if I use AVSP with VOBs, it does read them if I make a short enough vlip so I can see filters effects on what I'm trying to work on, but the problem starts when I create a new tab to see the difference between filtered and unfiltered
I get an error saying that "the scripts return value was not a video clip", I assume this is because obviously the video is not an AVI
Will AVSP support VOBs directly or do they have to be converted to an AVI before I can use the software fully
Obviously converting to an AVI, unless I use a codec that just outputs the AVI as pure video will reduce the source quality even more in the case of a poor source you're trying to improve on
foxyshadis
16th November 2006, 22:57
You need DGIndex/DGDecode, just like you normally would for avisynth. Load the d2v, not the vob itself, in order to get the unprocessed version (and then process it if necessary). If you drag a d2v in, it'll be inserted with Mpeg2Source, aka DGDecode.
qwerpoi
17th November 2006, 23:13
AvsP is converted to a little complex program to use (too more items in menu, especiall EDIT menu). May be split them or move?
This is a good point, and one that's been bothering me a little. It would be easy enough to split the items into different menus, but I'd like to avoid a situation where you would have to dig through layers of menus in order to find a feature. In an effor to keep things simple, the best solution to me would be to get rid of the least used items :eek: , perhaps convert them into optional macros - but I imagine many people would be upset at the prospect of losing features.
As far as the Edit menu is concerned, one possibility is to put all the Insert... commands in a submenu (like the Zoom > submenu in the Video menu). This would at least make the Edit menu about the same size as the Video menu. My only concern with this idea is that a new user might never bother to look at the Insert > submenu, and thus never learn about some of the more important features of AvsP. Let me know what you guys think.
Alain2
18th November 2006, 00:36
Insert displayed with an arrow is a significant enough name to raise my curiosity and make me to the cursor on it and see what's inside...
honai
18th November 2006, 14:42
A suggestion for the crop editor: indicate when you're cropping inside/outside mod-16 constraints. Many filters (e.g. Deblock_QED) are constrained to mod-16 resolutions.
krisq
18th November 2006, 22:26
A suggestion for the crop editor: indicate when you're cropping inside/outside mod-16 constraints. Many filters (e.g. Deblock_QED) are constrained to mod-16 resolutions.
What about the status bar? Isn't this the info you need? There is wmod and hmod...
Alain2
18th November 2006, 22:57
Another suggestion for the todo list : Add commands (+ shorcuts) to go to the next / previous saved frame (so you can cycle within the bookmarks). I like saving some "key" frames in the bookmarks and navigate to them after some changes in the script to check the effect at these "key" locations :)
Septimus
19th November 2006, 20:37
Great Program, especially the slider function.
A quick question:
Has anyone taken the time to add function definitions for the most commonly used external filters ? (autocomplete)
That we could download and dump into the program directory ?
<<--- Lazy :rolleyes:
check
20th November 2006, 14:08
I've done a few, but they seem to be saved with all the default filters in the same .dat file, so I'm not sure if they are truly 'portable' sadly.
zemog
20th November 2006, 20:00
Qwerpoi, I think there are a bug in the option Video -> Zoom -> Fit to window in AvsP v1.3.3
I proof so stupid script like this:
a = AVISource("F:\... ...avi")
c = a.Trim(20,96)
e = a.Trim(97,0)
c + e
Zoom 25%, 50% 100%, etc., works fine, but if I drag manually to change the preview window size and choose “Zoom -> Fit to window” I get this error message:
Splice: Frame size don’t match
(F:\….\preview1.avs,line 4)
doxville
20th November 2006, 23:52
Approved, I got the same message when I applied 'trim'-commands like 'trim(...) ++ trim(...) ++ trim(...)'
Alain2
21st November 2006, 01:25
There is also no auto fit when I insert a "return last" in the middle of the script ; it will work if I comment all the lines below though
krisq
21st November 2006, 21:29
Something crazy just crossed my mind. Maybe you could add somekind of way to export preseted settings for individual filters. You know, something like "hey, drop this .dll into your plugins' dir and import this preset into your avsp" which happens to me all the time with my dumb friends. I just ache for the mechanism like that :)
Just imagine the community swaping with presets. Could be great ;).
kumi
21st November 2006, 21:41
I like the sound of that idea. :cool:
jmac698
21st November 2006, 22:32
I agree. The key to making great programs is making it easy for users to share *technology*, information, settings, skins, presets.. in a large enough community these things will get created.
The tool is almost perfect for daily use now, but I need one more thing, info about current clip (size, frames, colorspace, audio info). I was trying to debug something and needed to check fps and colorspace....
Alain2
21st November 2006, 22:50
use info() then... no need to slow down the app with plenty of things that are not used most of the time if ever..
ChiDragon
23rd November 2006, 21:11
Just noticed, there's no syntax highlighting for AssumeScaledFPS. I thought there were definitions for all internal functions? :p
morsa
25th November 2006, 00:33
Wouldn't be a great idea to merge this to Virtualdub, so some kind of "resurrection" of VdubMod?
jmac698
25th November 2006, 04:22
Another small suggestion: the syntax tip gets in the way of the previous line of code that I want to see. I don't know what to suggest, it could be transparent, or movable, or option to but it underneath. Actually, underneath is better most of the time for me, as I write new code on the bottom and refer to code just above.
qwerpoi
27th November 2006, 11:46
Sorry for the lack of replies as of late, I was out of town for Thanksgiving with little internet access. On to business:
Another suggestion for the todo list : Add commands (+ shorcuts) to go to the next / previous saved frame (so you can cycle within the bookmarks). I like saving some "key" frames in the bookmarks and navigate to them after some changes in the script to check the effect at these "key" locations :)
Good suggestion, something that crossed my mind as well. I'll try and put something together for the next release.
Qwerpoi, I think there are a bug in the option Video -> Zoom -> Fit to window in AvsP v1.3.3
I proof so stupid script like this:
a = AVISource("F:\... ...avi")
c = a.Trim(20,96)
e = a.Trim(97,0)
c + e
Zoom 25%, 50% 100%, etc., works fine, but if I drag manually to change the preview window size and choose “Zoom -> Fit to window” I get this error message:
Splice: Frame size don’t match
(F:\….\preview1.avs,line 4)
Approved, I got the same message when I applied 'trim'-commands like 'trim(...) ++ trim(...) ++ trim(...)'
There is also no auto fit when I insert a "return last" in the middle of the script ; it will work if I comment all the lines below though
Interesting, I'll try and see what's going on with this, thanks.
Edit: Actually, it should have been obvious to me. The auto-fit option works simply by adding a .BicubicResize(w,h) to the end of the script behind your back. This fails in the cases mentioned, I'll have to put some special conditions in my code. In general I think it will work better if I add a new line to the end of the script, last.BicubicResize(w,h), I'll just have to watch out for any return statements.
Something crazy just crossed my mind. Maybe you could add somekind of way to export preseted settings for individual filters. You know, something like "hey, drop this .dll into your plugins' dir and import this preset into your avsp" which happens to me all the time with my dumb friends. I just ache for the mechanism like that :)
Just imagine the community swaping with presets. Could be great ;).
Sounds like a good idea, I'll give it some thought as to how to do it best.
Just noticed, there's no syntax highlighting for AssumeScaledFPS. I thought there were definitions for all internal functions? :p
No, I created all definitions manually from the AviSynth docs :eek: , at the time I put it together I was using an older version. I'll try and update the defaults, but in the meantime you can easily add any updates yourself from the Options menu.
Wouldn't be a great idea to merge this to Virtualdub, so some kind of "resurrection" of VdubMod?
Well, the codebase for the two programs are pretty different, I doubt anyone is willing to approach the idea of merging them :) . Although I do see where you are coming from, since AvsP is missing a lot of powerful features that vdubmod has (encoding, audio, etc), I don't think of AvsP as a one-stop video encoding application. I think of AvsP as a helper program or front-end to AviSynth. Certainly it would be ideal to have everything together in one place, and it's something I would like to see eventually, but currently that's not the focus of development.
Another small suggestion: the syntax tip gets in the way of the previous line of code that I want to see. I don't know what to suggest, it could be transparent, or movable, or option to but it underneath. Actually, underneath is better most of the time for me, as I write new code on the bottom and refer to code just above.
Yeah, the tooltips certainly can get in the way sometimes. My suggestion to you is to turn off frequent calltiips in "Options -> Program settings..." in the "Text 1" tab. This way calltips only show up when the cursor is next to the open parentheses of the filter. You can always bring up the calltip manually using Ctrl-Shift-Space, so it's sort of the best of both worlds assumming you know the manual shortcut.
Fizick
27th November 2006, 22:12
I vote for semi-transparent tooltips :)
jmac698
27th November 2006, 23:37
I could live with that :)
check
29th November 2006, 00:28
On checking for return statements, I guess you'd want to do something along the lines of a regex that patterns $return (.*) and replace it with group(1).bicubicresize()\nreturn last. I'd make the patch for you myself -- but my computer is in little pieces and work computers lack python ;)
foxyshadis
29th November 2006, 07:03
Or just add end-of-script trappings to a second script, which just import()s the first one.
qwerpoi
29th November 2006, 09:02
I vote for semi-transparent tooltips :)
Yeah, I'd like to try something like that, but unfortunately I didn't write the code that provides the tooltips (I'm using wxStyledTextCtrl which is a wrapper for Scintilla), so I can't directly access the tooltip window to change its properties. If someone thinks there is a straightforward way to do it, I'm all ears.
Or just add end-of-script trappings to a second script, which just import()s the first one.
Hey, that's a great idea, should make things work perfectly! I should have thought of it myself at the time - sadly, my Avisynth scripting skills are not first class, which is somewhat ironic given the fact that I am trying to write a top-of-the-line Avisynth editor :) .
rfmmars
30th November 2006, 11:59
Ok I been dealing with a problem where the screen in AVS-p doesn't match the AVS file or external viewer which is VD, any version.
However tonight all I got was a black screen upon export where you could see some low brightness chroma displayed.
I had made a slide show where there was 5 seconds of black before a fade up to normal brightness of the slide. The first mpeg2 I made was frameserved from VDmpg2. I notice the first slide was very dark but all the rest were ok. I am using a heavy modified HDRagc script and never this seen before, but have seen the non matching displys between VD(xx and AVs-p. I simply corrected this before in my NLE.
So to solve this startup problem, I added a normal brightness slide in front of the presentation. Well now I have what I want in AVS-p but nothing but black in a avs file or export to any VD(xxx).
The solution was to take out that 5 second black section before the dummy file. So it looks like AVS-p has a problem if there is dead black before the first image of a clip or a slow fade up transistion.
Richard
photorecall.net
krisq
13th December 2006, 13:09
I would love to see somekind of separator for sliders.
example:
sliders for filter1
[separator] which would give horizontal line
sliders for filter2
cheers :)
qwerpoi
13th December 2006, 22:57
Contrary to all the rumors, I have not died and gone to developer heaven (or hell, let's rock!). I've just been really busy towards the end of the year, and the stuff I need to do for AvsP is increasingly difficult to implement with decreasing payoff (I like it the other way around :) ). Nevertheless, I'll try and put out a new release in a week, at least with some bugfixes that need to be taken care of.
Ok I been dealing with a problem where the screen in AVS-p doesn't match the AVS file or external viewer which is VD, any version.
However tonight all I got was a black screen upon export where you could see some low brightness chroma displayed.
I had made a slide show where there was 5 seconds of black before a fade up to normal brightness of the slide. The first mpeg2 I made was frameserved from VDmpg2. I notice the first slide was very dark but all the rest were ok. I am using a heavy modified HDRagc script and never this seen before, but have seen the non matching displys between VD(xx and AVs-p. I simply corrected this before in my NLE.
So to solve this startup problem, I added a normal brightness slide in front of the presentation. Well now I have what I want in AVS-p but nothing but black in a avs file or export to any VD(xxx).
The solution was to take out that 5 second black section before the dummy file. So it looks like AVS-p has a problem if there is dead black before the first image of a clip or a slow fade up transistion.
Richard
photorecall.net
I'll try and do more research, but my thoughts are that it is some kind of memory issue, since there should be no technical difference between AvsP's preview and vdub's preview (both utilize AVIFile libraries as far as I know). If this happens consistently to anyone, please post the script, if it only happens with a specific video, try and post a chunk on rapidshare so I can recreate it.
I would love to see somekind of separator for sliders.
example:
sliders for filter1
[separator] which would give horizontal line
sliders for filter2
cheers :)
Hum, I'm trying to think of the best way to specify something like this. I could extend the label syntax to indicate a seperator comes afterwards (i.e., [<"amount",0,1,0>] becomes [<"amount---",0,1,0>] or something). Or I could make a random tag in the middle of the script indicate a separator, like a slider with no inputs (i.e., [<-,-,-,->]). I'll think about it some more, feel free to add your own 2 cents.
rfmmars
14th December 2006, 07:46
I'll try and do more research, but my thoughts are that it is some kind of memory issue
No I don't think its a memory thing, I have the problem on all five workstations.
What I have found is it happens only when I add Sliders to the HDRagc scripts. If I simply call HDRagc() no problem. Sometime it works ok but most of the time the contrast is extreme or black with just a hint of chroma in the export window. Even if you save the script, and load into Vdub, same problem, the AVSp preview looks great but its the export script or export preview that is screwed up.
I will try to add one slider at a time to see when the problem occures and save each script. I will get back to you.
Richard
krisq
14th December 2006, 20:53
Hum, I'm trying to think of the best way to specify something like this. I could extend the label syntax to indicate a seperator comes afterwards (i.e., [<"amount",0,1,0>] becomes [<"amount---",0,1,0>] or something). Or I could make a random tag in the middle of the script indicate a separator, like a slider with no inputs (i.e., [<-,-,-,->]). I'll think about it some more, feel free to add your own 2 cents.
I think something like a tag [separator] or #[separator] in the script would suffice. I'm using so many sliders that I would like to make everything clearer for myself :D
qwerpoi
16th December 2006, 12:18
New version 1.3.4, download here (http://www.avisynth.org/qwerpoi/Download.html) or use the mirror in the first post. Not a huge release, but some good stuff here. From the changelog:
* support for separate video window zoom fit
* updated included core filter definitions to AviSynth v2.56
* added menu options for goto next/previous bookmark (suggested by Alain2)
* option to quickly show AviSynth function definition dialog (suggested by Alain2)
* added new tag for separators in slider window (suggested by krisq)
* minor rearrangement of menu items for clarity (suggested by Fizick)
* fixed several issues with zoom fit feature (thanks foxyshadis, zemog, doxville, Alain2)
* fixed small bug with slider validation (thanks zemog)
One important new feature is the ability to quickly open the function definition dialog from the script. Say you wanted to change what the popup calltip says for AviSource. Simply place the text cursor on the filter name (or highlight the name, or place the cursor inside the filter's arguments), and use the command "Show function definition" in the right-click menu (default shortcut Ctrl+Shift+D). This will open up AvsP's function definition dialog, automatically selecting the appropriate filter, where you can edit the calltip, preset, or docpath. If you activate the "Show function definition" command and the cursor is on a word which is not in the function definition list, AvsP will open a dialog where you can add the function to the list. Hopefully this feature will make people more comfortable with editing the per-filter information, one AvsP's more powerful features.
Another feature which needs some discussion is the ability to add a separator in the slider window. Basically, you can add a [<separator>] tag in the text (shortcut Shift+F12) which upon refresh results in a separator line between sliders in the slider window. This is purely for visual organization, you can add as many as you want, it doesn't affect the script or the sliders in any other way.
Other than that, this version fixes some serious issues with the zoom fit feature, which also now works with the separate video preview window (if you have that option enabled). As always, post back with any new problems, questions, or suggestions.
krisq
16th December 2006, 14:20
This is great qwerpoi, thanks!
For the record, shortcut for separator is Shift+F12 ;)
Alain2
16th December 2006, 16:08
Translation was easy ^^
Thanks for all the additions, they are really good!! I can use again the separated window now, and the quick filters access / additions is really good, love it :)
Won't be able to test it a lot as I am going on holiday soon, but thanks for this new version!
Btw I had already a shortcut ctr+shift+d for a custom macro, after overwriting the avsp.exe this shortcut was defined for both the new feature and my macro ; I removed it for my macro, but maybe a conflict detection could be developped ; very low priority this though, if needed at all as the user can easily correct this ^^
Henrikx
16th December 2006, 18:39
Update :)
@qwerpoi
@everyone
I wish you a happy Christmas time....
qwerpoi
16th December 2006, 21:18
This is great qwerpoi, thanks!
For the record, shortcut for separator is Shift+F12 ;)
Whoops, thanks for pointing that out, I corrected the post.
Translation was easy ^^
Thanks for all the additions, they are really good!! I can use again the separated window now, and the quick filters access / additions is really good, love it :)
Won't be able to test it a lot as I am going on holiday soon, but thanks for this new version!
Btw I had already a shortcut ctr+shift+d for a custom macro, after overwriting the avsp.exe this shortcut was defined for both the new feature and my macro ; I removed it for my macro, but maybe a conflict detection could be developped ; very low priority this though, if needed at all as the user can easily correct this ^^
Ho, I thought that with the way it was set up one would overwrite the other, I'll make sure it works properly in the next version, thanks for letting me know.
Update :)
@qwerpoi
@everyone
I wish you a happy Christmas time....
Thanks for the update, and a happy Christmas time to you too :)
Veiga
16th December 2006, 23:41
@ qwerpoi
another good version in your return
translation for v134 attached
for you and @all a nice Christmas and a happy New Year
rfmmars
17th December 2006, 01:10
Yes the export display now matches the AVSp preview window, I have maded five separate test. However the following no longer works. I have many toggals and they all work but this one, it worked in 1.33 fine. No big deal, just info.
[Reduce Contrast Level 1=0]
colorYUV(cont_u=2)
[/Reduce Contrast Level 1]
This is now driving me nuts. I can no longer transfer AVSp .SES to another computer, only .AVSs. So I no longer get any slides or toggals to display, and they do not appear in the session script, tried this on two other workstations.........I.had a little trouble before with older versions but now its impossible to do.
I notice the .SES structure is completly different edited in Wordpad compared with older version.
My problem is on the workstsion that develope the scripts and sessions, my AVSp drive letter is e: and when I need to move the scripts and sessions to another computer, I use Wordpad to do a "Replace All: e: with c: Could this now be a problem with the new structure in version 1.34?
EDIT: Workaround
Copied script from AVSp window, pasted and edited in "notePad" copied that to a blank AVSp on another machine. save script and session and everything is fine. preview & external video also match. Just don't know why this extra step is nessary but that how I will do it from now on.
Love your work.
Richard
Serbianboss
17th December 2006, 23:52
When working with this script with 3 tag selection, for some time i have error: Out of memory and avsp shut down. I have 2 gb memory and when avsp shut down it has 700 mb psyhical memory.
AVISource("C:\Documents and Settings\Nenad\Desktop\vulkani.avi")
LoadPlugin("mt_masktools.dll")
LoadPlugin("AGC.dll")
import("C:\Program Files\AviSynth 2.5\plugins\limitedsharpenfaster.avs")
fft3dfilter(sigma=3.5,interlaced=true)
HDRAGC(max_gain=1.5)
limitedsharpenfaster(smode=4,strength=300)
Does this code is maybe extreme for avsp?
qwerpoi
18th December 2006, 06:19
@ qwerpoi
another good version in your return
translation for v134 attached
for you and @all a nice Christmas and a happy New Year
Thanks for the new translation, I've updated the links in the first post and AvsP website accordingly.
Yes the export display now matches the AVSp preview window, I have maded five separate test. However the following no longer works. I have many toggals and they all work but this one, it worked in 1.33 fine. No big deal, just info.
[Reduce Contrast Level 1=0]
colorYUV(cont_u=2)
[/Reduce Contrast Level 1]
This is now driving me nuts. I can no longer transfer AVSp .SES to another computer, only .AVSs. So I no longer get any slides or toggals to display, and they do not appear in the session script, tried this on two other workstations.........I.had a little trouble before with older versions but now its impossible to do.
I notice the .SES structure is completly different edited in Wordpad compared with older version.
My problem is on the workstsion that develope the scripts and sessions, my AVSp drive letter is e: and when I need to move the scripts and sessions to another computer, I use Wordpad to do a "Replace All: e: with c: Could this now be a problem with the new structure in version 1.34?
EDIT: Workaround
Copied script from AVSp window, pasted and edited in "notePad" copied that to a blank AVSp on another machine. save script and session and everything is fine. preview & external video also match. Just don't know why this extra step is nessary but that how I will do it from now on.
Love your work.
Richard
You're right, I did change the .ses structure, not in this version but several versions ago (I think). I don't think either structure would be able to work across multiple computers for the reason you describe - AvsP sessions store the complete filepath of each script, this is used to double-check whether or not any changes have been made since saving the session. Your workaround will do the job, in the meantime I'll think about ways to improve the process.
When working with this script with 3 tag selection, for some time i have error: Out of memory and avsp shut down. I have 2 gb memory and when avsp shut down it has 700 mb psyhical memory.
AVISource("C:\Documents and Settings\Nenad\Desktop\vulkani.avi")
LoadPlugin("mt_masktools.dll")
LoadPlugin("AGC.dll")
import("C:\Program Files\AviSynth 2.5\plugins\limitedsharpenfaster.avs")
fft3dfilter(sigma=3.5,interlaced=true)
HDRAGC(max_gain=1.5)
limitedsharpenfaster(smode=4,strength=300)
Does this code is maybe extreme for avsp?
I'm not really sure, it may depend on the input avi. Try using a simple source (like Version() instead of AviSource(...)) and see if it has the same problem, or try removing all the tags (save as an .avs file and open it) and see if it still crashes. I'll try and do some tests on this script on my pc, if it happens to you with a different script then post that as well.
JoeTF
19th December 2006, 18:16
I cannot force AvsP to open .avs files.
when I set up associations in windows, it's with open as default action, however stuuuupid AvsP starts with empty new file instead of file I want to open.
Can anyone help me with setting it up right?
qwerpoi
19th December 2006, 21:05
I cannot force AvsP to open .avs files.
when I set up associations in windows, it's with open as default action, however stuuuupid AvsP starts with empty new file instead of file I want to open.
Can anyone help me with setting it up right?
Um, sounds like you're doing it right, but just in case, here's how I did it step by step.
Right-click an .avs file, Open with >, Choose program...
Select AvsP from the list (you may need to browse for it)
Check the "Always use the selected program..." checkbox
Click OK
You may want to make sure you've selected the right version of AvsP, older versions may not work as well. After double-clicking the .avs file, go to "Help -> About AvsP" and verify that it's version 1.3.4 (or something relatively recent). If AvsP is still acting stuuuupid :rolleyes: , let me know, the problem may be more detailed than I think.
JoeTF
19th December 2006, 21:51
That's exactly what I did, many times. I tried with 1.3.3 and 1.3.4.
I have a feeling it has to be set up manually but I have no clue how do I set up DDE.
foxyshadis
20th December 2006, 02:31
There's no DDE in avsp, in fact it's almost never used except in microsoft and a few other huge companies' apps. All you have to do is browse for the program, and add "%1" after it.
Or you can just steal mine, modifying the paths accordingly (all backslashes should be doubled), save it to a .reg file and import it (doubleclicking is enough):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.avs]
@="avsfile"
[HKEY_CLASSES_ROOT\avsfile]
@="AviSynth Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
[HKEY_CLASSES_ROOT\avsfile\DefaultIcon]
@="C:\\WINDOWS\\system32\\AviSynth.dll,0"
[HKEY_CLASSES_ROOT\avsfile\shell]
@="Edit"
[HKEY_CLASSES_ROOT\avsfile\shell\Edit]
[HKEY_CLASSES_ROOT\avsfile\shell\Edit\command]
@="\"C:\\Program Files\\music-video\\encoding\\AviSynth\\avsp\\avsp.exe\" \"%1\""
[HKEY_CLASSES_ROOT\avsfile\shell\Play]
[HKEY_CLASSES_ROOT\avsfile\shell\Play\command]
@="\"C:\\Program Files\\music-video\\playback\\mplayerc.exe\" \"%1\""
[HKEY_CLASSES_ROOT\avsfile\shell\View]
[HKEY_CLASSES_ROOT\avsfile\shell\View\command]
@="\"C:\\Program Files\\music-video\\editing\\VirtualDub\\VirtualDub.exe\" \"%1\""
JoeTF
20th December 2006, 17:59
Thanks foxyshadis, that solved the problem.
sjakke
3rd January 2007, 17:43
Isn´t it possible 2 open and preview d2v-files?
Serbianboss
4th January 2007, 15:35
Also noticed if have 5 tabs opened with MVtools script sometimes avsp crashes
qwerpoi
15th January 2007, 06:55
New version 1.3.5 to cure the post holiday blues, get it from here (http://avisynth.org/qwerpoi/Download.html) or the mirror in the first post. Here's the changelog:
* added more font and color options (suggested by Alain2)
* added customizable keyword lists (suggested by Alain2)
* updated filter information with internal clip properties and functions
* improved autocompletion for functions with no arguments
* added several new macro functions (ExecuteMenuCommand, GetBookmarkList, GetAvs2aviDir, GetSliderTexts)
* added slider optimization macro with complete genetic algorithm implementation
* added option to associate .avs files with AvsP (suggested by foxyshadis, JoeTF)
> fixed minor issue with potential conflicting keyboard shortcuts (thanks Alain2)
Biggest change here is the improvements to the syntax highlighting. You can now configure every color and font you can think of, and I really mean everything, from avisynth data types to mismatched braces. You can configure the list of avisynth keywords, data types, and operators to highlight in "Options -> AviSynth function definition..." (in the second tab). There you can also specify a miscellaneous set of words or operators, if you have some custom coloring needs. Also, I updated AvsP's filter info to include avisynth internal functions (floor, round, assert, etc). Overall the result is that the program feels a bit more professional with respect to syntax highlighting, so there's no longer an excuse to stick with a different editor (in my opinion, anyway :)).
Also in this release are some new macro functions, the most important being ExecuteMenuCommand(). This function allows you to execute any of AvsP's menu commands from a macro, either by specifying the full menu label or its keyboard shortcut. For example, you can use the macro command avsp.ExecuteMenuCommand("Edit -> Find...") or avsp.ExecuteMenuCommand("Ctrl+F") to show the Find dialog box from a macro (not a terribly useful example, but hopefully you get the idea). The input is not case sensitive, but it must be spelled precisely - you can check out the list in "Options -> Configure shortcuts..." to double-check any label or keyboard shortcut spellings.
But there's something even bigger in this release, and that's the inclusion of a new toy, the "Optimize Sliders" macro. This macro utilizes an SGA (simple genetic algorithm) to optimize your avisynth script using either the PSNR or SSIM metric. This is an advanced tool, meant to optimize a relatively short video segment, since the algorithm will encode the same clip with varying parameters literally hundreds of times. That being said, it's really easy to use - just set up a script with a Compare() or SSIM() output, make user sliders for every parameter you want to optimize, and then run the macro. For example, this thread (http://forum.doom9.org/showthread.php?t=114582) was about testing various cleaning filters on a standardized video source, where people would post SSIM results for the various filters. So if I wanted to get SSIM-optimized results for FFT3DFilter, I could set up a script like this in AvsP:
source = avisource("flower_clean.avi")
noisy = avisource("flower_noisy_var25.avi")
denoised = noisy.FFT3DFilter(sigma=[<"sigma", 0, 10, 2.0>], bt=[<"bt", -1, 4, 3>], bw=[<"bw%16", 16, 64, 48>], bh=[<"bh%16", 16, 64, 48>], ow=[<"ow%4", 4, 32, 16>], oh=[<"oh%4", 4, 32, 16>], plane=0)
SSIM(source, denoised.MergeChroma(source),"logperframe.txt","log.txt", lumimask=0)
and simply run the "Optimize Sliders" macro. After the macro is finished running (using the genetic algorithm default settings provided by the macro), my resulting script is:
source = avisource("flower_clean.avi")
noisy = avisource("flower_noisy_var25.avi")
denoised = noisy.FFT3DFilter(sigma=5.1, bt=4, bw=32, bh=32, ow=12, oh=12, plane=0)
SSIM(source, denoised.MergeChroma(source), "logperframe.txt","log.txt", lumimask=0)
which has an average SSIM of 86.29 (the unfiltered noisy clip scored 67.5, and FF3DFilter with default paramters scored 74.2). This compares reasonably well score-wise with the manually determined settings posted in the thread, which had an SSIM of 88.6. Note that the default genetic algorithm parameters were set as a reasonable tradeoff between speed and optimality, you can try and bump up the max generations and/or population size for better results (but I wouldn't recommend straying too far from the defaults unless you're familiar with genetic algorithms). An astute user of FF3DFilter might point out here that the sliders set up in the original script would occasionally provide invalid results (the bw parameter must be greater than 2*ow, etc). This does not affect the optimization routine, as any error clips are simply assigned a score of zero.
The macro is set up to use a progress bar in a dialog box, you can hit cancel on the dialog box at any time and keep the best results run so far. Extra info is dumped to AvsP's scrap window to keep track of per-generation progress. I don't guarantee that the macro is 100% bug free, since I implemented the SGA myself from scratch (and I only learned about genetic algorithms several months ago), but it should be stable enough to play around with. I implemented the whole thing as an AvsP macro in hopes that others smarter than me could take a look at it and improve upon it. Anyhow, if there's enough interest, I'll try and make some documentation on it on the website (which needs a bit of updating as it stands). Bottom line is that this macro is probably more useful for developers than typical users, but I've had good looking results using SSIM optimization for unbiased post-processing sharpening (with blendbob deinterlacing using EEDI2 and LimitedSharpen), so others may find it practical as well. As always, be sure to report back with any new bugs or requests.
Alain2
15th January 2007, 21:37
Yosh, that's an interesting changelog! The link is not working atm though, but will try this version asap :)
About the updated filter information, is it done as well when updating avsp ? Is it possible to have this update and keep my customised filter list (mvtools & co, personal scripts names, etc) ?
qwerpoi
16th January 2007, 02:53
Yosh, that's an interesting changelog! The link is not working atm though, but will try this version asap :)
About the updated filter information, is it done as well when updating avsp ? Is it possible to have this update and keep my customised filter list (mvtools & co, personal scripts names, etc) ?
The savefile.com mirror from the first post should work, although it can be slow at times - here's the link (http://www.savefile.com/files/414243). The updated filter info is done automatically, basically I keep track of version numbers every time I update the internal info, so AvsP will add new filters, never delete old ones. If you're paranoid, you can back up your dat files before running a new version (but it shouldn't be necessary :)).
R3Z
16th January 2007, 08:14
qwerpoi - I would just like to say thankyou for this wonderful tool.
krisq
16th January 2007, 09:42
awesome, :thanks:
Henrikx
16th January 2007, 11:44
HAAPY NEW YEAR qwerpoi
Update German language translation AvsP 1.3.5 :cool:
rfmmars
16th January 2007, 18:28
Dittos for a job well done!!!
Richard
Veiga
18th January 2007, 03:37
qwerpoi, thanks for this new version
tranlation attached for portugues_Br
qwerpoi
18th January 2007, 04:07
Thanks for the kind words, fellas, and thanks Veiga and Henrikx for the translation updates (and a happy new year as well!). Glad to see this new version is trouble-free (so far...). Incidentally, I noticed the savefile.com mirror has been downloaded over 5,000 times - either that's a glitch or there are a lot more AvsP users than I thought :) .
Anyone get the chance to play around with the "Optimize Sliders" macro? I was hoping to get feedback from those familiar with SSIM or PSNR metrics, to get a feel for how usable the macro is. It's not meant to be a major feature of AvsP, but it's pretty unique and potentially powerful in my opinion.
Alain2
18th January 2007, 05:24
Sorry won't be able to report in the next few days, don't have time to play around with avsp at the moment :(
R3Z
18th January 2007, 09:12
Would it be possible to split up the sliders section with headings like so;
Color and Levels
__________________________
Hue -180----||------------180
Sat -180-----------||-----180
Noise Removal
__________________________
Etc ?
zemog
18th January 2007, 16:10
qwerpoy, thanks for the new version, it's really a good job.
qwerpoi
19th January 2007, 01:12
Would it be possible to split up the sliders section with headings like so;
Color and Levels
__________________________
Hue -180----||------------180
Sat -180-----------||-----180
Noise Removal
__________________________
Etc ?
Oddly enough, this would be pretty difficult to do, given the way the slider code is currently written. Still, I'll consider rewriting it to be more flexible.
qwerpoy, thanks for the new version, it's really a good job.
Thanks. I've updated the first post and website with the updated links for the Spanish and Portuguese translations.
Alain2
19th January 2007, 01:43
Forgot to say French translation is up to date as well ;)
I had a quick look, nice additions in the syntax highlights :) And I will try the new macro when I have a bit of time to play on teh computer, thanks for this interesting feature!
R3Z
19th January 2007, 04:40
Oddly enough, this would be pretty difficult to do, given the way the slider code is currently written. Still, I'll consider rewriting it to be more flexible.
Maybe i gave the wrong idea ?
I just meant to be able to put a name in like a separator is ?
ie [<"separator=Color Levels">]
Stupid request i know :(
krisq
19th January 2007, 20:26
Maybe i gave the wrong idea ?
ie [<"separator=Color Levels">]
Stupid request i know :(
Well, it's not stupid, it's a pretty good suggestion actually.
I second that :)
qwerpoi
19th January 2007, 23:39
Forgot to say French translation is up to date as well ;)
I had a quick look, nice additions in the syntax highlights :) And I will try the new macro when I have a bit of time to play on teh computer, thanks for this interesting feature!
Thanks for the translation update, looking forward to hearing your feedback on the new macro as well.
Maybe i gave the wrong idea ?
I just meant to be able to put a name in like a separator is ?
ie [<"separator=Color Levels">]
Stupid request i know :(
No, you got the right idea. It's easy to implement in terms of script syntax, but difficult to implement in the GUI code, at least the way it's currently structured. It does seem like a trivial change, but believe me, the code to display the sliders is more complicated then it seems, and adding this labeling feature would require rewriting a healthy portion of it. But as I said, I'll look it over, hopefully it will be in the next release.
affter333
21st January 2007, 03:14
Thank you, please make a 98 version so that we can use it.
Alain2
21st January 2007, 03:55
Not sure I can test the macro, it's a useful tool for developpers to test their filters effectiveness or for people who likes doing benchmarking of filters, but not sure if it would be usuable on a real life clip, where we don't have the clean original clip, only the noisy one as a source.. Is there any application of the macro other than benchmarking filters using ssim or other criteria ?
Now, I know you like my requests, so here's another bunch of them ^^
- {} cannot be added in the keywords list along function.. Can only be in Operator or Misc words lists ; can you change that ? Also, {} are not as tolerant as () when parsed in the script: "function m(int r, float x) { r..." is ok, "function m(int r, float x) {r..." results in a "bad operator"... Could you make the syntax coloring parsing for {} the same as for () ?
- Int in "function m(int r, float x) { return(x<16?16:Int(round(x/float(r))*r))}" will be displayed with the user syntax color... ? I defined Int in the functions list and allocated to the "internal filter" type, and it is also defined in the new data type list, but I end up with the color for user functions... strange, because it's not happening for float, which is defined as per int in my config.. Can you have a look ? btw it's convenient that as it is atm the data type words followed by a space are colored as per the avisynth data type list, and followed by something else like a "(" are colored as function, thank you :)
- I work with the constant width font all the time, and everything is bold I think (and changing between regular and bold the constant width font (courier new) has no effect). Do you think it could be possible to take into account the bold / italic definition as defined in each syntaxical color type ? Not important, I can just select Courier New for all the syntax coloration definitions ^^ I was also thinking at the size of the font: one nice thing in notepad++ is that the selected bracket is highlighted by changing regular to bold, color from black to red, and also increasing a bit the font size.. would be good to have the same possibility in avsp, for completeness of the syntax coloration ^^
- Can you add an option "use translation" ? Would be easier when working with another language to switch back quickly to English when trying to remember the original menu labels ^^
Obviously this is all kind of cosmetic requests, so if you consider adding some in your todo list you can put that in the low priority section ^^
qwerpoi
21st January 2007, 06:52
Thank you, please make a 98 version so that we can use it.
Whoa, a fellow win98 user! I'll try and make a 98 compatible version, won't be able to test it until tomorrow.
Not sure I can test the macro, it's a useful tool for developpers to test their filters effectiveness or for people who likes doing benchmarking of filters, but not sure if it would be usuable on a real life clip, where we don't have the clean original clip, only the noisy one as a source.. Is there any application of the macro other than benchmarking filters using ssim or other criteria ?
That's a good point, the "Optimize Sliders" macro is more likely to be useful for benchmarks and other developer tests. Nevertheless, there are a few examples where SSIM or PSNR optimization can be useful in application. Here's a few I can think of:
You can take a dvd source and compare it against a compressed avi, optimizing post processing filters.
You can try and line up two images by optimizing the crop values in a resize filter.
If you're really adventurous, you can try to optimize encoder settings for a given bitrate. This would require a command line encoder like xvid encraw and the call avisynth plugin, it would be a little tricky to set up.
These examples are all theoretical, I haven't tested them myself, and the genetic algorithm isn't guaranteed to work on arbitrarily difficult problems. The reason I'm interested in feedback is so I can find ways to improve the algorithm, either in terms of converging speeds or its ability to handle complex problems. But it's not a major priority, I don't expect the majority of users to use the macro, it's more like a side interest of mine :).
- {} cannot be added in the keywords list along function.. Can only be in Operator or Misc words lists ; can you change that ? Also, {} are not as tolerant as () when parsed in the script: "function m(int r, float x) { r..." is ok, "function m(int r, float x) {r..." results in a "bad operator"... Could you make the syntax coloring parsing for {} the same as for () ?
{} is not a keyword :), but I'll see what I can do. When I try it on my computer, "{r" does not result in a bad operator highlight, perhaps I'm misunderstanding your example.
- Int in "function m(int r, float x) { return(x<16?16:Int(round(x/float(r))*r))}" will be displayed with the user syntax color... ? I defined Int in the functions list and allocated to the "internal filter" type, and it is also defined in the new data type list, but I end up with the color for user functions... strange, because it's not happening for float, which is defined as per int in my config.. Can you have a look ? btw it's convenient that as it is atm the data type words followed by a space are colored as per the avisynth data type list, and followed by something else like a "(" are colored as function, thank you :)
Whoops, it looks like the user-defined function and the internal filter type fonts/colors are swapped, thanks for bringing that to my attention. I'll get that fixed for the next release, in the meantime you may want to reverse those fonts/colors if it bugs you (of course you'll have to reverse it again when the corrected version comes out :)). And yes, the fact that AvsP can recognize the difference between int as a data type and int() as a function is a nice touch, if I do say so myself :D .
- I work with the constant width font all the time, and everything is bold I think (and changing between regular and bold the constant width font (courier new) has no effect). Do you think it could be possible to take into account the bold / italic definition as defined in each syntaxical color type ? Not important, I can just select Courier New for all the syntax coloration definitions ^^
Unless I'm mistaken, AvsP can already work like this. If you have "Options -> Use monospaced font" enabled, all text will be displayed with Courier New, size 10 (or whatever font you set for the "Monospaced font" in the font/color dialog). Each element will be bolded/italicized based on the rest of the settings in the font/color dialog.
I was also thinking at the size of the font: one nice thing in notepad++ is that the selected bracket is highlighted by changing regular to bold, color from black to red, and also increasing a bit the font size.. would be good to have the same possibility in avsp, for completeness of the syntax coloration ^^
You should be able to achieve the same effect with the "Brace highlight" font/colors (which should perhaps be renamed to "Selected bracket"...).
- Can you add an option "use translation" ? Would be easier when working with another language to switch back quickly to English when trying to remember the original menu labels ^^
I think something like this has been requested before, unfortunately the way I implemented the translation it doesn't seem possible, at least as far as I tried. I'll work on the issue when I get some time, but it's not likely to be a huge priority :(.
Alain2
21st January 2007, 15:14
If you're really adventurous, you can try to optimize encoder settings for a given bitrate. This would require a command line encoder like xvid encraw and the call avisynth plugin, it would be a little tricky to set up.
These examples are all theoretical, I haven't tested them myself, and the genetic algorithm isn't guaranteed to work on arbitrarily difficult problems. The reason I'm interested in feedback is so I can find ways to improve the algorithm, either in terms of converging speeds or its ability to handle complex problems. But it's not a major priority, I don't expect the majority of users to use the macro, it's more like a side interest of mine :).
Funny, I was about to suggest something similar, but I am not sure how to do it.. Because I usually (for anime) filter a lot the DVD source because I don't like it (halos, noise, etc), I can't use it as a reference for optimizing purpose; but how about this: I create a lossless filtered clip of my DVD at a given high resolution, and then want to optimise the encoded result for a given set of encoder (x264 in my case) parameters, the parameter to be optimised by the macro would be the resize of the lossless clip to lower resolution. Encoded clips would then have to be read, resized to a common resolution (like fullscreen or the lossless clip resolution for instance) and compared (SSIM) with the lossless clip. That way I could expect to find the best trade-off between resolution and macroblocs/detail loss generation from the codec...
Can you help setting something for this ?
{} is not a keyword :), but I'll see what I can do. When I try it on my computer, "{r" does not result in a bad operator highlight, perhaps I'm misunderstanding your example.
My current color definition : 1 (http://img227.imageshack.us/img227/2689/temp7rk.jpg) 2 (http://img227.imageshack.us/img227/3449/temp4mv.jpg), and the way it appears for my example in avsp :{ unselected (http://img263.imageshack.us/img263/1361/temp8mf.jpg), { selected (http://img155.imageshack.us/img155/8801/temp1ui.jpg)(cursor placed next to {), and with a space after { (http://img262.imageshack.us/img262/1523/temp0am.jpg)
Unless I'm mistaken, AvsP can already work like this. If you have "Options -> Use monospaced font" enabled, all text will be displayed with Courier New, size 10 (or whatever font you set for the "Monospaced font" in the font/color dialog). Each element will be bolded/italicized based on the rest of the settings in the font/color dialog.
Here (http://img440.imageshack.us/img440/4690/temp9mp.jpg) is what I see with "Options -> Use monospaced font" enabled. If you compare with the font/color pictures I posted above, you can see that regular/bold is not applied, all is bold, and nothing changes either when I set choose regular or bold for the monospace font (I kept Courier New 10)
You should be able to achieve the same effect with the "Brace highlight" font/colors (which should perhaps be renamed to "Selected bracket"...).Not exactely, as you mentionned above, the size will be based on the monospace font size if working with monospace. But that's not important, as I said, I will just change everything to courier new and stop working with the monospace option.
However playing without the monospace option, it seems that the regular / bold selection is not working properly, choosing bold for the default font will make Operators (and others) bold as well even if regular is set, whereas if Default is regular then the Operators are regular/bold based on their setting.. Changing Default from regular to bold is immediate, changing it from bold to regular requires reloading of avsp to take effect..
qwerpoi
22nd January 2007, 05:03
@affter333
Getting a win98 version seems a little trickier than I first thought, but I should be able to get it done by the next version. If you can't wait, you actually should be able to run the program as a script - you would need to install Python 2.5 (http://www.python.org/download/releases/2.5/) and wxPython (http://www.wxpython.org/download.php) (the win32-ansi for Python 2.5 version). With both installed, you can simply double-click AvsP.py (it's in the src directory of the regular download). For most people this isn't an ideal solution, so as I said I'll try and get a win98 compatible executable by the next version.
Funny, I was about to suggest something similar, but I am not sure how to do it.. Because I usually (for anime) filter a lot the DVD source because I don't like it (halos, noise, etc), I can't use it as a reference for optimizing purpose; but how about this: I create a lossless filtered clip of my DVD at a given high resolution, and then want to optimise the encoded result for a given set of encoder (x264 in my case) parameters, the parameter to be optimised by the macro would be the resize of the lossless clip to lower resolution. Encoded clips would then have to be read, resized to a common resolution (like fullscreen or the lossless clip resolution for instance) and compared (SSIM) with the lossless clip. That way I could expect to find the best trade-off between resolution and macroblocs/detail loss generation from the codec...
Can you help setting something for this ?
First thing to note, if the only thing you're varying is a handful of different resolutions, a genetic algorithm is most likely overkill. If for example you have 4 possible resolutions to test, you only need to encode the clip 4 times, yet the genetic algorithm will encode the clip roughly (population size) * (number of generations) number of times. So the macro is only practical if you have a large number of possibilities (ie, you want to optimize several parameters at the same time). To do the overall setup, it would go something like this. First, make a script like you normally do, for example:
MPEG2Source("anime.d2v")
Telecide()
Decimate()
Sharpen(0.5)
LanczosResize(640, 480)
and save it as "test.avs". Then create the comparison script, this script compares the source to the compressed file. However, this script also has to create the compressed file, since we are interested in optimizing codec parameters. To do this, we'll need the call avisynth plugin (thread topic here (http://forum.doom9.org/showthread.php?t=46506)). This plugin lets you run a program on the command line in the middle of an avisynth script. So the comparison script looks like:
res = Select([<"index", 0, 3, 0>], "128x96", "176x144", "352x288", "704x576")
Call(BlankClip(), "c:\ffmpeg.exe -i test.avs -b 500 -s "+res+" -g [<"gop", 1, 500, 100>] -y test.avi", "-2")
source = MPEG2Source("anime.d2v").Telecide().Decimate()
compressed = AviSource("test.avi").LanczosResize(source.width, source.height)
SSIM(source.Trim(100, 110), compressed.Trim(100, 110), "logperframe.txt", "log.txt")
The command line call in this example is made up, you need to substitute it with your own command line encoder settings. The user slider in the first line is used to determine the resolution for the command line. Notice how there is also a user slider within the command line string, you can use multiple user sliders in this way to set up any other varying parameters you want to optimize. (As a side note, a user slider within a string will work, but it screws up the syntax highlighting a little :(). Also notice that I used a Trim() on the source and compressed clips on the last line - this is for the sake of speed, since the optimization routine will encode this script hundreds of times. I'd suggest optimizing a single frame to start out, to make sure everything works.
Anyway, as I mentioned earlier, this is all theoretical, I have tested the macro on different cases but not with this encoding example, which is without a doubt the most complicated setup I can think of. If you're still willing to set it all up, let me know how it turns out (although if you're not willing, I wouldn't blame you, it's a pretty big workout just trying to go through the theoretical setup :) ).
Also, for the syntax highlighting issues, I can't recreate all of them on my computer. It's likely to do with a specific combinations of options - if you could upload your filters.dat and textstyles.dat, it would be a big help.
foxyshadis
22nd January 2007, 09:09
Okay, now you got my attention. So basically I finally have a reason to hook up a network encoder - leave ten machines encoding all year to find the optimal settings+filtering for x264. =p Seriously, that's pretty neat. A genetic algorithm needs some smarts in order to finish in a vaguely reasonable time, though, and that means sectioning off the space and picking best-chance areas, even if it means the possibility of accidentally passing up the out-of-nowhere perfect match. Nearly all the time they're reasonably correlated. (I know there are good algorithms for finding multidimentional minima and maxima in reasonable times, even though I'm not to familiar with them. Generalizations of the sort of thing in x264's UMH search mode.)
Too bad it's only SSIM, and not the (much more complex) CWSSIM/WCWSSIM, for which I don't know of any standalone testors yet. The papers claim significantly better perceptual accuracy.
I haven't been replying in a while because as far as I was concerned avsp is complete enough for me, I've been quite happily using it. =D Probably the only thing I'd ask for is a step value (steps of around .1 are needed for a lot of filters), or perhaps an optional logarithmic scale. After all, a step size of .1 isn't so useful when you're at 1000! :p
Oh, and before I forget:
Traceback (most recent call last):
File "AvsP.py", line 3700, in OnClose
File "AvsP.py", line 4985, in ExitProgram
File "wx\_misc.pyo", line 5962, in __init__
TypeError: argument number 1: a 'unsigned number' is expected, 'int(-1)' is received
When trying to shut it down after working on it sometimes. No idea how to reproduce from clean though.
Alain2
23rd January 2007, 00:58
Also, for the syntax highlighting issues, I can't recreate all of them on my computer. It's likely to do with a specific combinations of options - if you could upload your filters.dat and textstyles.dat, it would be a big help.
I have added these files on my website, you can find them along with the translation files
For the macro, I will play with it in the next few days I think, I have first to finish the lossless encode of an avs (vdub says 1.5 days left :( ), thanks for the example, easy to follow, I will be able to adapt it I think :)
check
6th February 2007, 14:51
just found a need for this feature today, some way to remember the last frame displayed? Occasionally I've been seeking around and dragged the frame counter away before realising I was looking at the frame I wanted :P
qwerpoi
7th February 2007, 00:53
No immediate news about the time of the next release, currently the major focus is improving some of the cutting features of AvsP, which is lot of work. If things go well, I'd estimate a new release in a week or two.
Too bad it's only SSIM, and not the (much more complex) CWSSIM/WCWSSIM, for which I don't know of any standalone testors yet. The papers claim significantly better perceptual accuracy.
I guess it's possible to use any metrics, but obviously it's a lot easier to use ones implemented in Avisynth, which so far only includes SSIM and PSNR. Unless I'm thinking it through incorrectly, adding standalone testers into the mix would make the process slower (unless it accepted .avs files as inputs?).
I haven't been replying in a while because as far as I was concerned avsp is complete enough for me, I've been quite happily using it. =D Probably the only thing I'd ask for is a step value (steps of around .1 are needed for a lot of filters), or[/color] perhaps an optional logarithmic scale. After all, a step size of .1 isn't so useful when you're at 1000! :p
Don't worry about not replying, the fact that AvsP is stable enough for everyday use is good news to me! As far as steps are concerned, you can already specify steps of .1, AvsP will automatically determine the step size based on the decimal places of the input numbers (ie, [<"a", 0, 1, 1.00>] will have a step size of 0.01. As far as a logarithmic scale goes, that's possibly trickier, so we'll see :).
Oh, and before I forget:
Traceback (most recent call last):
File "AvsP.py", line 3700, in OnClose
File "AvsP.py", line 4985, in ExitProgram
File "wx\_misc.pyo", line 5962, in __init__
TypeError: argument number 1: a 'unsigned number' is expected, 'int(-1)' is received
When trying to shut it down after working on it sometimes. No idea how to reproduce from clean though.
Thanks for reporting it, I'll try and get it fixed by the next release.
I have added these files on my website, you can find them along with the translation files
For the macro, I will play with it in the next few days I think, I have first to finish the lossless encode of an avs (vdub says 1.5 days left :( ), thanks for the example, easy to follow, I will be able to adapt it I think :)
Thanks for uploading the files, I haven't had time yet but I should be able to hammer out those issues with the help of the dat files.
just found a need for this feature today, some way to remember the last frame displayed? Occasionally I've been seeking around and dragged the frame counter away before realising I was looking at the frame I wanted :P
If I'm understanding correctly, you can use the "Last scrolled frame" in the "Video -> Go to bookmark" menu (default shortcut F8). Kind of a strange place for it, and kind of a strange name for it, but it's kind of a strange feature :). The only reason it's already there is because my brother (AvsP's first tester!) asked for it a long time ago, and admittedly, it's handy to have when scrolling around.
check
7th February 2007, 01:10
ahh, if you need an egg cooked tell me, my face is red enough! :)
krisq
7th February 2007, 10:34
Just a hint. Crop editor should place its command in the place of the cursor not at the end of the script. :)
qwerpoi
7th February 2007, 19:13
ahh, if you need an egg cooked tell me, my face is red enough! :)
It's no big deal, I'm always the first to admit that the docs for AvsP are not perfect, so feel free to ask away if you can't find a feature in the docs or menus.
Just a hint. Crop editor should place its command in the place of the cursor not at the end of the script. :)
That's a good point. It could be problematic, though, since it's easy to activate the crop editor without paying attention to where the cursor is located. Also, it would be inconsistent if a resize occured after the crop. Still, I'll try and make it an option (in the form of a check box on the crop dialog) for the next release.
krisq
8th February 2007, 07:48
Also, it would be inconsistent if a resize occured after the crop. Still, I'll try and make it an option (in the form of a check box on the crop dialog) for the next release.
Great! I'm aware of resizing order. I just have Info() and Textsub() filters at the end of pretty much every script so it would be very helpful. :thanks:
foxyshadis
8th February 2007, 11:48
Now I remember what I was going to ask for! Because AvsP tends to end up keeping a lot of files open in a session, something I sometimes run into is that while it's closed, a file gets changed, and the changes aren't seen when it's reopened. It doesn't check for changes, like most editors. (I'm not sure how it could do that without being a guessing game as to whether the changes are important enough to overwrite the file, short of a 3-way diff, though.) Would something like that be useful, or just a distraction?
Oh yeah, and I wondered if Save Image As could default to png instead of bmp, and could include formats as separate filters (so one doesn't have to type the endings every time).
qwerpoi
11th February 2007, 06:04
Now I remember what I was going to ask for! Because AvsP tends to end up keeping a lot of files open in a session, something I sometimes run into is that while it's closed, a file gets changed, and the changes aren't seen when it's reopened. It doesn't check for changes, like most editors. (I'm not sure how it could do that without being a guessing game as to whether the changes are important enough to overwrite the file, short of a 3-way diff, though.) Would something like that be useful, or just a distraction?
As you noted, AvsP sessions work a bit differently from other text editors. Just to clarify, a saved session file contains more than the list of filenames in each tab, it actually contains all the text in each of the tabs along with the filenames. That way it's not necessary to prompt to save changes if you save a session with a bunch of tabs open. When you open a session, AvsP will create the new tabs and insert the text saved in the session appropriately. Then AvsP checks if the inserted text matches the text in the actual file on the hard drive. If not, then AvsP marks the tab as unsaved.
Anyway, to get to the point, it should be possible to add an option to change the behavior to something more standard, ie, simply find the file and load the script from there. Activating this option would probably also change the behavior such that AvsP would prompt you to save changes for each tab when you save a session to avoid conflict.
Oh yeah, and I wondered if Save Image As could default to png instead of bmp, and could include formats as separate filters (so one doesn't have to type the endings every time).
Shouldn't be a problem making separate filters, and I'll try and make it such that AvsP remembers the last saved format to take care of the default issue.
foxyshadis
11th February 2007, 08:28
I do actually like that behavior, don't get me wrong! It would also become a bit of a design problem (currently) because the thing doesn't have a method of saving sliders yet.
I think just asking for a reload from disk on a per-file basis if it's detected to have changed would be sufficient.
qwerpoi
21st February 2007, 06:01
New version 1.3.6, this release has some really great improvements. Download from the AvsP download page (http://www.avisynth.org/qwerpoi/Download.html) or from the savefile mirror (http://savefile.com/files/507148). I've also made a win98 compatible version, download from here (win98) (http://savefile.com/files/507150). Here's the changelog:
* saved files no longer lose user slider/toggle tag info (suggested by foxyshadis)
* prompt to reload modified files when loading a session (suggested by foxyshadis)
* added visual bookmarks along the video slider (suggested by doxville, avid_avs_user)
* added trim selection editor (suggested by Zarxrax, doxville, avid_avs_user)
* added option to not load bookmarks on startup (suggested by avid_avs_user)
* added crop editor options to insert at cursor, copy to clipboard (suggested by krisq)
* improved end of script detection for crop editor
* reorganized video menu for clarity (suggested by avid_avs_user)
* improved save image dialog with specific extensions (suggested by foxyshadis)
* created windows 98 compatible version (suggested by affter333)
> fixed crash when creating a new tab while crop editor is shown
> fixed small bug on program exit with multi-monitor setup (thanks foxyshadis)
> fixed several issues with syntax highlighting (thanks Alain2)
The first big change is that saving files in AvsP no longer loses any AvsP-specific markings, ie user sliders and toggle tags. The reason why these tags were stripped in the first place is because giving an encoder an avs script with user sliders would cause a crash, since the syntax is specific to AvsP, and is not understood directly by Avisynth. With this new version of AvsP, you can save a file with user sliders, when you send this avs file to an encoder it doesn't see any user sliders, but when you open the file up in AvsP all the user sliders are there! Magic! If you're curious how this works, basically now when AvsP saves a script with any user sliders, it saves the stripped version with the unstripped version underneath in a special commented section. When AvsP loads amy script, it checks to see if such a commented section exists, and if it does then it loads that section instead of the stripped script. If you don't understand this explanation, don't worry, just rest assured that it works without requiring you to do any extra work :).
The other big change is a whopper, and that is the ability to make bookmarks and trim selections directly on the video slider. When you bookmark a frame, it now appears directly under the video slider as a black triangle. When you left-click on the triangle, the video jumps to that bookmark. Awesome! As an additional shortcut you can right-click the video slider handle to add a bookmark (the "handle" is the small rectangle you drag around). You can delete a bookmark by middle-clicking the bookmark triangle or by setting a bookmark twice.
Going even further, there's now a trim selection editor, you can activate it from "Video -> Trim selection editor...". The dialog box looks a little complex, but using it is easy as pie. When the dialog is opened, you can see two extra buttons on the video slider handle. These buttons allow you to create start and end selections, which show up on the video slider as blue regions, much like VirtualDub. But unlike VirtualDub, you can create multiple selection regions. The selections endpoints appear under the video slider just like bookmarks - left-click to jump to that frame, middle-click to delete it, etc. Furthermore, the video frame itself is marked by either a green or red circle in the upper left corner - green indicates that the frame will be kept upon trimming, red means that it will be removed. This helps eliminate any potential errors or confusion about whether or not endpoints will be kept or removed. Once you understand that much, the options on the trim dialog itself are more or less self explanatory.
One final thing to note, this version fixes some bugs with the syntax highlighting. One subtle bug that Alain2 pointed out was that certain words were being colored with the wrong style. Turns out that the filters.dat file was keeping redundant information about filters with the same name but different cases, ie "int" and "Int". The bug only occured rarely, so it's likely you've never encountered it, but in order to fix the problem, simply open the "Options -> AviSynth function definition..." dialog and click on "OK", all filters should now be colored appropriately and any redundancies in the filters.dat are removed.
Anyway, the next major priority is updating the docs on the website, in particular giving details and screenshots of some of the new features from this release. As always, report back with any bugs or feature requests.
kumi
21st February 2007, 06:27
Omg... amazing :D
DeathTheSheep
21st February 2007, 06:29
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
krisq
21st February 2007, 09:21
qwerpoi... you totally rule, dude! :thanks:
Seriously, I can't imagine my work on scripts without AvsP :D
[edit]
I just tried trim editor and I must say this... It's perfect :)
HeadBangeR77
21st February 2007, 12:56
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
Holy... Sheep! :D ;)
I can only second that. :)
Fizick
21st February 2007, 14:32
qwerpoi,
thanks for update.
Some time ago I think about adding to Avisynth 2.6 some new syntax rules, in particular comment blocks.
Henrikx
21st February 2007, 14:32
Update German Translation 1.3.6 :)
Alain2
21st February 2007, 15:08
Thanks for the new version qwerpoi! French translation updated
The enhanced video editing capabilities sound very nice! And the new way of saving all AvsP markers as comments in the script is really a simple yet very good idea!
About the color syntaxing bugs I mentionned, I still have some apparently.. I tried the fix you mentionned for the filters.dat, but didn't seem to work (?) as the file was not overwritten ; I made a mod in my filters definition so that the file gets overwritten. I don't think there is a problem with words recognition anymore. But for the color syntax behaviour itself I still have the same strange problem:
- Initial condition:
Default: font = standard, black
Internal function: font = bold, orange
- Start AvsP -> as defined above
- Change Default from standard to bold -> ok
- Change Default from bold to standard -> stay bold
- Reload AvsP -> ok (now standard, as per the initial condition)
- Change Internal function to standard -> ok (!)
- Change Internal function to bold -> ok
- Change Internal function to standard (again) -> ok
- Change Default to bold -> ok for Default, but Internal function is now bold as well!
This above shows you that there is some dependencies between the items in font and colors..
Also, for the Advance->Brace Highlight for instance, if I want to change the font size to say 20 instead of the default (10), it stays at 10, even if I reload AvsP
doxville
21st February 2007, 16:55
http://www.cheesebuerger.de/images/midi/froehlich/a049.gif OMFGhttp://www.cheesebuerger.de/images/midi/froehlich/a049.gif
This is getting so much cooler than ever expected! Thanx for all the work on AvsP, the trim-editor is really great!
qwerpoi
22nd February 2007, 00:02
Omg... amazing :D
Holy...wow. This is one of the coolest video editing tools I've every used, period. Thanks so much for your hard work! It's already chugging along (or should I say flying along?) quite nicely :)
qwerpoi... you totally rule, dude! :thanks:
Seriously, I can't imagine my work on scripts without AvsP :D
[edit]
I just tried trim editor and I must say this... It's perfect :)
Holy... Sheep! :D ;)
I can only second that. :)
http://www.cheesebuerger.de/images/midi/froehlich/a049.gif OMFGhttp://www.cheesebuerger.de/images/midi/froehlich/a049.gif
This is getting so much cooler than ever expected! Thanx for all the work on AvsP, the trim-editor is really great!
Wow, that's a lot of positive feedback! I'm glad you guys like it. I put a lot of thought into the trim selection editor, particularly in how to make it easy to learn and use. Also, in order to implement the multiple selections and clickable bookmarks, I had to write my own slider class from scratch (anyone who does GUI programming hopefully knows how painful that is), so I'm glad that my hard work paid off (and that there aren't any major bugs so far :)).
qwerpoi,
thanks for update.
Some time ago I think about adding to Avisynth 2.6 some new syntax rules, in particular comment blocks.
Not sure how much my opinion counts, but I don't think comment blocks are necessary. I'm biased, since I do most of my programming in Python, which also has no block comments. I find that so long as the IDE or text editor has a way to comment multiple lines (like SciTe for Python or AvsP for Avisynth :)), then the extra syntax is unnecessary. Again, that's just my opinion, I'm sure c/c++ programmers would feel different.
Update German Translation 1.3.6 :)
Thanks for the speedy translation update!
Thanks for the new version qwerpoi! French translation updated
The enhanced video editing capabilities sound very nice! And the new way of saving all AvsP markers as comments in the script is really a simple yet very good idea!
Thanks for the translation update! And I can't take full credit for the idea of saving AvsP markers, my brother came up with the basic idea, the implementation turned out to be quite graceful. Should make working with user sliders a lot easier!
About the color syntaxing bugs I mentionned, I still have some apparently.. I tried the fix you mentionned for the filters.dat, but didn't seem to work (?) as the file was not overwritten ; I made a mod in my filters definition so that the file gets overwritten. I don't think there is a problem with words recognition anymore. But for the color syntax behaviour itself I still have the same strange problem:
- Initial condition:
Default: font = standard, black
Internal function: font = bold, orange
- Start AvsP -> as defined above
- Change Default from standard to bold -> ok
- Change Default from bold to standard -> stay bold
- Reload AvsP -> ok (now standard, as per the initial condition)
- Change Internal function to standard -> ok (!)
- Change Internal function to bold -> ok
- Change Internal function to standard (again) -> ok
- Change Default to bold -> ok for Default, but Internal function is now bold as well!
This above shows you that there is some dependencies between the items in font and colors..
Also, for the Advance->Brace Highlight for instance, if I want to change the font size to say 20 instead of the default (10), it stays at 10, even if I reload AvsP
I took a look over the code, and I'm finally beginning to understand what's really going on internally. To make a long story short, the making the default style bold should not make every other style bold, the fact that it currently does is a glitch (a bit of unclear programming on my part). The default style should only color the text that doesn't belong to any other category, it should not override any other styles at all. I'll have everything ironed out by the next release, sorry about the frustration.
foxyshadis
22nd February 2007, 01:35
The funny thing is, I was going to ask for a vdub-style slider, and all th sudden here it is! Wow, telepathic feature requests do work. :p In all seriouness, excellent update, it's amazing how much work got put into it.
Is it possible to have a switch to release avisynth? That would help for some very memory-intensive scripts, at which point I could hopefully go back to working after an allocation failure without having to recycle avsp. (Or just to leave it for something else for a while.) Should I just modify the source myself for such a thing?
qwerpoi
22nd February 2007, 03:24
The funny thing is, I was going to ask for a vdub-style slider, and all th sudden here it is! Wow, telepathic feature requests do work. :p In all seriouness, excellent update, it's amazing how much work got put into it.
Yes, I am indeed telepathic. All future requests must be submitted telepathically (although I suppose posting here is an acceptable alternative :)).
Is it possible to have a switch to release avisynth? That would help for some very memory-intensive scripts, at which point I could hopefully go back to working after an allocation failure without having to recycle avsp. (Or just to leave it for something else for a while.) Should I just modify the source myself for such a thing?
It should be doable, I could add the feature to the "Video" menu ("Release all videos from memory" or something like that). I'm guessing what would be more handy is if the video was handled in a separate thread, something you mentioned in an earlier post. I don't have much experience with threading processes, but I'll give it some looking over as well.
Dreassica
23rd February 2007, 00:34
I saw a manual telecide option in menu, but it doesn't seem to work? It's supposed to not work or just a menu item left in by accident?
Veiga
23rd February 2007, 03:24
qwerpoi, thanks for this new version
new tranlation update
foxyshadis
23rd February 2007, 04:35
I saw a manual telecide option in menu, but it doesn't seem to work? It's supposed to not work or just a menu item left in by accident?
Open AsvP\macros\[3] Manual Telecide.py in a text editor, the top of the file explains what it does and how it works. (Similar to YATTA.)
Dreassica
23rd February 2007, 10:46
I know that, but i get a "unknown mode"error when i select it in Macros menu.
foxyshadis
23rd February 2007, 13:06
It's probably because you already have something open. You have to start from a completely clean slate, closing all files and having only a single empty tab open. It's a proof-of-concept thing, I guess, so it's not very robust.
Dreassica
23rd February 2007, 13:28
Thanks, that seemed to do the trick. Only issue i have now is that its seems to have stretched the progress/slider bar vertically with teh 4 scripts open, so i can barely see any video preview, and no way to set it back to normal manually.
unskinnyboy
23rd February 2007, 15:22
Feature Request: Support for *.dga files.
@qwerpoi, DG has released (http://forum.doom9.org/showthread.php?t=122598) DGAVCDEC to enable AVC/H.264 indexing & decoding. Can AvsP be updated to load *.dga files as AVCSource(..) instead of DirectShowSource(..)?
krisq
23rd February 2007, 15:53
Feature Request: Support for *.dga files.
@qwerpoi, DG has released (http://forum.doom9.org/showthread.php?t=122598) DGAVCDEC to enable AVC/H.264 indexing & decoding. Can AvsP be updated to load *.dga files as AVCSource(..) instead of DirectShowSource(..)?
You can already add it yourself. Look at 'Options/Extension templates...' :)
Dreassica
23rd February 2007, 16:20
One usefull feature that would be nice to have is deletframe copyframe and freezeframe commands attached to a keystroke: ie. if u press d that it will delete the frame the slider is set on at that time and c to make a duplicate of the current frame.
Just don't have a clue if that's even feasible.
unskinnyboy
23rd February 2007, 16:24
You can already add it yourself. Look at 'Options/Extension templates...' :)Perfect, works fine. Maybe in the next release, this can be added as default.
foxyshadis
23rd February 2007, 16:57
One usefull feature that would be nice to have is deletframe copyframe and freezeframe commands attached to a keystroke: ie. if u press d that it will delete the frame the slider is set on at that time and c to make a duplicate of the current frame.
Just don't have a clue if that's even feasible.
This is possible with a few macros, hmm....
avsp.InsertText('DeleteFrame(' + avsp.GetFrameNumber() + ')')
Save as '[9] DeleteFrame.py' or so, restart AvsP and use Configure Shortcuts to assign it to whatever you like. A function key will probably be easiest. Repeat with the other variations.
Dreassica
23rd February 2007, 17:31
This is possible with a few macros, hmm....
avsp.InsertText('DeleteFrame(' + avsp.GetFrameNumber() + ')')
Save as '[9] DeleteFrame.py' or so, restart AvsP and use Configure Shortcuts to assign it to whatever you like. A function key will probably be easiest. Repeat with the other variations.
Tried it, get an error when I try the keycombo I set the macro to:
"Error in Macro: Cannot concatenate 'str' and 'int' objects"
foxyshadis
23rd February 2007, 17:52
I was close, just forgot that it isn't that close to javascript. :p Try this, which I actually tested this time:
avsp.InsertText('\nDeleteFrame(%i)' % avsp.GetFrameNumber())
qwerpoi
23rd February 2007, 19:29
qwerpoi, thanks for this new version
new tranlation update
Thanks for the translation update! I'll update the links when the attatchment gets approved.
Feature Request: Support for *.dga files.
@qwerpoi, DG has released (http://forum.doom9.org/showthread.php?t=122598) DGAVCDEC to enable AVC/H.264 indexing & decoding. Can AvsP be updated to load *.dga files as AVCSource(..) instead of DirectShowSource(..)?
You can already add it yourself. Look at 'Options/Extension templates...' :)
Perfect, works fine. Maybe in the next release, this can be added as default.
Huh, I didn't know about DGAVCDEC, I'll try and have it updated in the options for the next release. As krisq already mentioned, AvsP was designed to be easily updatable in case development should ever cease (god forbid :)), but I'll certainly try and keep popular formats up to date, so thanks for pointing that out.
I saw a manual telecide option in menu, but it doesn't seem to work? It's supposed to not work or just a menu item left in by accident?
It's probably because you already have something open. You have to start from a completely clean slate, closing all files and having only a single empty tab open. It's a proof-of-concept thing, I guess, so it's not very robust.
foxyshadis is right, basically anything in the Macros menu are not meant to be full-flegded features of AvsP. Their purpose is to provide examples as to how to make a functional macro, the fact that you may find a macro useful by itself is just a bonus :). The way I wrote the "Manual Telecide" macro is particularly sensitive, it requires the source script to be in the first tab and the "current", "next", and "previous" scripts to be in the subsequent tabs to work properly.
Thanks, that seemed to do the trick. Only issue i have now is that its seems to have stretched the progress/slider bar vertically with teh 4 scripts open, so i can barely see any video preview, and no way to set it back to normal manually.
Not sure what you mean here. You should be able to resize any subwindow; what's blocking the video preview?
One usefull feature that would be nice to have is deletframe copyframe and freezeframe commands attached to a keystroke: ie. if u press d that it will delete the frame the slider is set on at that time and c to make a duplicate of the current frame.
Just don't have a clue if that's even feasible.
I was close, just forgot that it isn't that close to javascript. :p Try this, which I actually tested this time:
avsp.InsertText('\nDeleteFrame(%i)' % avsp.GetFrameNumber())
The macro foxyshadis provided will work, but you don't need it if you're just trying to use the "Manual Telecide" macro. If you get everything up and running (ie, you have your telecide script in the first tab and the macro has generated the "current", "next" and "previous" scripts in the subsequent tabs), then you don't need to do any further scripting, the macro will make changes to the "telecide_override.txt" which will be reflected in the first script. The way this works is if you find a frame in the first tab you want to override, select the tab which contains the good frame and run the macro again. It will automatically update the "telecide_override.txt", switch back to the first tab, and refresh the video. You should see a message like "[forcing n]" on the video. It becomes clear that it's best to assign a keyboard shortcut to the macro, since you'll be running it frequently. Anyway, if you already knew all this, I apologize for the redundant explanation. If a lot of people really use this macro, I guess it would be worthwhile to write up a tutorial with screenshots on the website, since it really is pretty difficult to learn how to use the first time.
Dreassica
23rd February 2007, 19:44
Maybe using tfm instead of telecide would be wortwhile too. I tried my hand at the mnual telecide thing, and indeed it became rather tiresome after a while having to switch tabs and go to Manual Telecide in Macro menu to apply a certain match. eespecially for someone used to Yatta's press s to switch between c n p matches and it updating video on the fly.
Dreassica
23rd February 2007, 19:50
Not sure what you mean here. You should be able to resize any subwindow; what's blocking the video preview?
Don't know. I had it the first time i used it, but apparently the issue didn't re-appear from teh next session onwards.
digitalone
25th February 2007, 14:27
hey guys, AvsP was working perfectly till now and suddenly it has started giving me this error: "Error loading the script" when i try to preview my script. it was all working fine before i opened certain scripts in avsp and changed their extension to .avsi for autoload. now none of my scripts work while previewing.
Edit: sorted it out...some dlls got corrupted..
rig99
27th February 2007, 07:27
Is it possible to give the previewer more time to show the clip when using a macro? I have a macro that creates a script that needs to know height and width so it uses avsp.GetVideoHeight and GetVideoWidth. The problem is that after the macro is done and shows the preview, I see the preview shows an avisynth error clip and GetVideoWidth and GetVideoHeight report the width and height of that error clip instead of my clip.
There is nothing wrong with the script at all. The only time it shows the error clip is when the macro is finished running. In fact, pushing f5 right after the macro is done shows the correct clip (but with wrong resolution because the width and height were taken from the error clip).
qwerpoi
27th February 2007, 08:11
Is it possible to give the previewer more time to show the clip when using a macro? I have a macro that creates a script that needs to know height and width so it uses avsp.GetVideoHeight and GetVideoWidth. The problem is that after the macro is done and shows the preview, I see the preview shows an avisynth error clip and GetVideoWidth and GetVideoHeight report the width and height of that error clip instead of my clip.
There is nothing wrong with the script at all. The only time it shows the error clip is when the macro is finished running. In fact, pushing f5 right after the macro is done shows the correct clip (but with wrong resolution because the width and height were taken from the error clip).
Could you post your macro here? It would help when trying to fix your issue. Also, let me know some basic info about the kind of video you are using (d2v, large avi file, etc). If your macro's too long, try and post a smaller version which demostrates the problem.
foxyshadis
27th February 2007, 17:37
You could check out the home page - http://avisynth.org/qwerpoi/ - which could probably be included in the download as well. There's good info there, especially the video introduction.
The macro issue sounds like the macro is creating a partially formed script with a syntax error or three, causing the error. The actual request doesn't make sense if you think about it - if the script needs parameters from the rendered video to finish filling in the script, but the video needs the finished script to render itself, who wins? You'd need to construct a minimal working script, like source or source+deint only, grab the parameters, and then finish it or wipe and start fresh (with the handy-dandy new variables) once the render completes.
rig99
27th February 2007, 18:35
I fixed my problem by using the script itself to get width and height instead of using avsp.GetVideoWidth and Height. Now the scripts are created properly and all is good. It still shows the error clip though. I am curious why this error clip is shown. Heres the macro
from __future__ import division
import subprocess
import os
###### USER OPTIONS ##############################################
bepipe = r'C:\video\bepipe\bepipe.exe'
twolame = r'C:\video\twolame\twolame.exe'
outputpath = r'D:\tmp\prep ntsc dvd'
subtitlelog = r'true'
logfile = r'false'
# How many pixels wide for border on each side so tv wont cut picture off
overscan = 16
audiobitrate = 128
###### END USER OPTIONS ##########################################
audiosamplerate = 48000
dirName = avsp.GetDirectory()
TLIM = 0
LIM = 0
if dirName:
for fileName in os.listdir(dirName):
(fileBase, fileExt) = os.path.splitext(fileName)
if fileExt <> '.avi':
continue
else:
avsp.NewTab()
avsp.InsertText(
'#user defined #############################################################\n'
'video = "' + dirName + '\\' + fileName + '"\n'
'overscan = ' + str(overscan) + '\n'
'ShowInfoSub = ' + subtitlelog + '\n'
'#LogInfo saves a log file as <video>.log, in directory with original clip \n'
'LogInfo = ' + logfile + '\n'
'#end user defined ########################################################\n'
'\n'
'#needed functions ########################################################\n'
'function ToNTSC(clip a)\n'
'{\n'
' a = (Framerate(a)==25) ? Eval("""\n'
' global subinfo = subinfo + "ToNTSC(): was pal, changed to ntsc" + chr(10)\n'
' AssumeFPS(a,23.976,sync_audio=true)\n'
' return ResampleAudio(last,48000)\n'
' """) : Eval("""\n'
' global subinfo = subinfo + "ToNTSC(): already ntsc" + chr(10)\n'
' return a\n'
' """)\n'
' return a\n'
'}\n'
'function ToStereo(clip a)\n'
'{\n'
' a = (Audiochannels(a)==6) ? Eval("""\n'
' global subinfo = subinfo + "ToStereo(): was 6 channel, changed to stereo" + chr(10)\n'
' flr = GetChannel(a, 1, 2)\n'
' fcc = GetChannel(a, 3, 3)\n'
' lrc = MixAudio(flr, fcc, 0.3254, 0.2301)\n'
' bl = GetChannel(a, 5)\n'
' br = GetChannel(a, 6)\n'
' sl = MixAudio(bl, br, 0.2818, 0.1627)\n'
' sr = MixAudio(bl, br, -0.1627, -0.2818)\n'
' blr = MergeChannels(sl, sr)\n'
' MixAudio(lrc, blr, 1.0, 1.0)\n'
' """) : Eval("""\n'
' global subinfo = subinfo + "ToStereo(): already stereo" + chr(10)\n'
' return a\n'
' """)\n'
' return a\n'
'}\n'
'function StereoNTSCLog(clip a, string video, string s)\n'
'{\n'
' filename = RevStr(MidStr(RevStr(video), 1, FindStr(RevStr(video), "\") - 1))\n'
' path = RevStr(MidStr(RevStr(video), FindStr(RevStr(video), "\")))\n'
' return WriteFileEnd(a, path + filename + ".log", "s", append=false)\n'
'}\n'
'function ResizeNTSC(clip a, int overscan)\n'
'{\n'
' arW = Width(a)\n'
' arH = Height(a)\n'
' ofr = Framerate(a)\n'
' fc = Framecount(a)\n'
' stretchFactor = 640.0 / arW\n'
' prW = Int(stretchFactor * arW)\n'
' prH = Int(stretchFactor * arH)\n'
' prW = (prW%2<>0) ? prW-1 : prW\n'
' prH = (prH%2<>0) ? prH-1 : prH\n'
' cutLR = Int((640 - prW) / 2) + overscan\n'
' cutTB = Int((480 - prH) / 2)\n'
' a = LanczosResize(a, 720 - (2*overscan), prH)\n'
' a = AddBorders(a, cutLR, cutTB, cutLR, cutTB)\n'
' return a\n'
'}\n'
'\n'
'#end needed functions ###############################################################\n'
'\n'
'global subinfo = ""\n'
'myclip = AVISource(video)\n'
'myclip = EnsureVBRMP3Sync(myclip)\n'
'\n'
'myclip = ToNTSC(myclip)\n'
'myclip = ToStereo(myclip)\n'
'myclip = ResizeNTSC(myclip, overscan)\n'
'\n'
'myclip = LogInfo ? StereoNTSCLog(myclip, video, subinfo) : myclip\n'
'myclip = ShowInfoSub ? subtitle(myclip, subinfo) : myclip\n'
'return myclip\n'
'\n'
)
LIM = avsp.GetVideoFramecount()/23.976/60
TLIM = TLIM + LIM
avsp.InsertText(
'#this clip length in min: ' + str(LIM) + '\n' +
'#total: ' + str(TLIM)
)
if not os.path.exists(outputpath):
os.makedirs(outputpath)
avsp.SaveScriptAs(outputpath + '\\' + fileBase + '.avs')
avsp.ShowVideoFrame(avsp.GetVideoFramecount()//2)
batchfile = open(outputpath + '\\' + fileBase + '.bat', 'w')
batchfile.write('"' + bepipe + '"' +
' --script ' + '"Import(^' + outputpath + '\\' + fileBase + '.avs' + '^)"' +
' | ' + '"' + twolame + '"' + ' -s ' + str(audiosamplerate) + ' -r -N 2 -b ' + str(audiobitrate) + ' - ' +
'"' + outputpath + '\\' + fileBase + '.mp2"'
)
Spuds
28th February 2007, 15:45
I'm having a strange crashing issue with the 1.3.6 release. It only happens on startup of the program when the _last_session_.ses file is present.
If I delete that file the program starts normally and exits normally of course creating that file as well. When I go to restart I see a small window flash, it has some lines of text in it, and it then quickly disappears and nothing else happens.
The window comes and goes so quick that I can't capture what it says or its title to help further.
qwerpoi
28th February 2007, 19:05
I'm having a strange crashing issue with the 1.3.6 release. It only happens on startup of the program when the _last_session_.ses file is present.
If I delete that file the program starts normally and exits normally of course creating that file as well. When I go to restart I see a small window flash, it has some lines of text in it, and it then quickly disappears and nothing else happens.
The window comes and goes so quick that I can't capture what it says or its title to help further.
Thanks for letting me know. If you could upload the _last_session_.ses file somewhere, it would help me debug the problem. It's actually just a text file, so if you want you could post the contents here.
rig99
28th February 2007, 23:08
I have a feature suggestion. It would be great to have some type of function to get user input in macros. I looked into how to do it with python but I was pretty lost when it started talking about tk/wxpython. This feature would be very helpful.
steve77
28th February 2007, 23:21
Fantastic tool for editing AVS files... I love the sliderbars too!
Thanks so much :D
Steve
To think I was doing this by hand before...
qwerpoi
1st March 2007, 03:58
I have a feature suggestion. It would be great to have some type of function to get user input in macros. I looked into how to do it with python but I was pretty lost when it started talking about tk/wxpython. This feature would be very helpful.
You can use the function avsp.GetTextEntry(), check out the "Encoding example 2" macro to see it in action. If you just need a single entry, the syntax is pretty simple, you can use something like avsp.GetTextEntry('Enter your name:'). Keep in mind that the returned values are always strings, so it's your responsibility to convert them into integers or whatever you need (which is easy enough with Python).
And just so you know, the macro information on the website is a bit out of date, the "macros_readme.txt" is more accurate. I am in the process of updating the website to catch up with all the recent changes, should be ready by the next release.
Fantastic tool for editing AVS files... I love the sliderbars too!
Thanks so much :D
Steve
To think I was doing this by hand before...
You're welcome, glad you find it handy!
Spuds
1st March 2007, 04:21
Thanks for letting me know. If you could upload the _last_session_.ses file somewhere, it would help me debug the problem. It's actually just a text file, so if you want you could post the contents here.
Here is an example save session file that takes it down, hope you can reproduce it on your system. If not let me know what I do to capture that screen for you or provide more details.
http://rapidshare.com/files/18803628/_last_session_.zip.html
rig99
1st March 2007, 04:55
You can use the function avsp.GetTextEntry(),
:stupid: I feel like such a boob. Must have overlooked it. Thanks.
qwerpoi
1st March 2007, 09:47
:stupid: I feel like such a boob. Must have overlooked it. Thanks.
Not a problem, glad I could help.
Here is an example save session file that takes it down, hope you can reproduce it on your system. If not let me know what I do to capture that screen for you or provide more details.
http://rapidshare.com/files/18803628/_last_session_.zip.html
Unforutunately I didn't get the error on my computer. The only thing I noticed is that in the script, for some reason there is a unicode apostrophe (line 187, col 108). That shouldn't cause any problems (unless possibly you're using the win98 version?), but try and get rid of it and see if there's still an issue. Also try and close all tabs and restart AvsP and see if you still get the error. I'll be able to do tests on a different pc tomorrow, but in the meantime let me know if any of that does anything.
Spuds
1st March 2007, 20:12
Awesome call, looks like your assumption was correct. I removed that line and it it no longer abends while starting.
I then went to the end of the offending line and began to backspace over the text and found two things that the program did not like while running. Here it showed the error as I backspaced over the character, the two error screens are:
wxPython:stdout/strerr
Traceback (most recent call last):
File "AvsP.py", line 1059, in OnKeyUp
UnicodeDecodeError: 'ascii' codec can't decode byte 0x99 in position 0: ordinal not in range(128)
wxPython:stdout/strerr
Traceback (most recent call last):
File "AvsP.py", line 1059, in OnKeyUp
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0: ordinal not in range(128)
The error was a comment line that was a cut/paste into the program from a readme or html file. Also this was not the win98 version, I'm running windows XP MCE.
qwerpoi
2nd March 2007, 02:47
Awesome call, looks like your assumption was correct. I removed that line and it it no longer abends while starting.
I then went to the end of the offending line and began to backspace over the text and found two things that the program did not like while running. Here it showed the error as I backspaced over the character, the two error screens are:
The error was a comment line that was a cut/paste into the program from a readme or html file. Also this was not the win98 version, I'm running windows XP MCE.
Aha, thanks for pointing it out. The exact bug took me a while to catch because it doesn't occur unless you customize your AviSynth functions (!), it's basically an invalid ascii/unicode comparison. I'll have it fixed by the next release, which hopefully should be sometime over the weekend.
I fixed my problem by using the script itself to get width and height instead of using avsp.GetVideoWidth and Height. Now the scripts are created properly and all is good. It still shows the error clip though. I am curious why this error clip is shown.
I took a detailed look at the macro, foxyshadis was right, in your case it's most appropriate to get the video height and width from AviSynth as you did (although it is possible with avsp.GetVideoWidth(), you would have to create the script twice). Can you tell me what error clip you are seeing? I tried your macro on a directory of avi files on my computer, seems to work fine. One thing I noticed was that the script your macro creates crashes AviSynth (not AvsP) occasionally, it looks like it's due to the fact that the cutTB variable in the ResizeNTSC function was negative on some of my AVIs.
Other than that, I have to say that the macro looks pretty cool, it's nice to see someone utilizing some advanced Python with AvsP :).
rig99
2nd March 2007, 07:35
Can you tell me what error clip you are seeing? I tried your macro on a directory of avi files on my computer, seems to work fine. One thing I noticed was that the script your macro creates crashes AviSynth (not AvsP) occasionally, it looks like it's due to the fact that the cutTB variable in the ResizeNTSC function was negative on some of my AVIs.
The error clip says
Error initializing audio stream decompression:
The requested conversion is not possible.
Check to make sure you have the required codec.
(d:\dvd\lkj\preview.avs, line 68)
On line 68 I have "myclip = AVISource(video)" where video is path to the video.
Also, if it is not too much trouble could you tell me the resolutions of the videos you get the crashes on? I'd like to knock that out before I encounter it trying to prep my dvds.
Thanks, I really appreciate you making this program. It will really make the prep work for dvd authoring much easier.
qwerpoi
2nd March 2007, 08:14
The error clip says
Error initializing audio stream decompression:
The requested conversion is not possible.
Check to make sure you have the required codec.
(d:\dvd\lkj\preview.avs, line 68)
On line 68 I have "myclip = AVISource(video)" where video is path to the video.
Also, if it is not too much trouble could you tell me the resolutions of the videos you get the crashes on? I'd like to knock that out before I encounter it trying to prep my dvds.
Thanks, I really appreciate you making this program. It will really make the prep work for dvd authoring much easier.
The problem videos had a resolution of 352 by 288, which resulted in a cutTB value of -21 (the tested videos were video game speed runs I downloaded, in case you were wondering what the hell's up with that resolution :)).
One thing you could try with the macro is slowing it down yourself by adding time.sleep(1.0) at the end of the for loop (you'll need to add import time at the top). I'm not sure if that will solve the problem though. You probably already know this, but if you don't specifically need to view each video, you could run the whole thing without loading the scripts into AvsP like in the "Batch example" macro. That may not be what you want, but it might be a usable workaround for the moment.
foxyshadis
2nd March 2007, 08:31
The error clip says
Error initializing audio stream decompression:
The requested conversion is not possible.
Check to make sure you have the required codec.
(d:\dvd\lkj\preview.avs, line 68)
On line 68 I have "myclip = AVISource(video)" where video is path to the video.
So the video fails to open one time, but opens okay the second time, without messing with codecs or anything? That's weird, usually if it won't open at once, it won't open at all; it's the AVIStreamSource and System Exceptions that tend to be ephermal.
foxyshadis
5th March 2007, 05:40
There seems to be a little problem with the image saving; trying to save a 256x256 will instantly crash the program. :p
qwerpoi
5th March 2007, 07:26
There seems to be a little problem with the image saving; trying to save a 256x256 will instantly crash the program. :p
I tried saving a frame from the script "Version().BicubicResize(256, 256)", didn't have any problems. I also tested some avi files, rgb, yv12, etc. Does this crash occur for you on all videos, or just some specific videos? Does the crash also occur if you tried the same thing with vdub?
foxyshadis
5th March 2007, 08:05
Hmm, it only seems to happen in RGB mode, now that I'm testing further. Not all the time, but the smaller it is the more often it seems to crash. I can't get it to reliably happen, though, and there's a good chance the underlying problem is avisynth's; it's doing that annoying disappearing crash every so often while changing around how I crop Version(). I guess I'll have to make a debug avisynth.dll again.
Feature request: Ability to turn off asking about saving tabs. It's nice that it does it, but when you like having 10 unsaved (or unnamed) tabs open, it gets a little overbearing. I love temporary scripts, I don't know how I ever got on without them. >.>
Oh yeah, another thing I was wondering about was single instance, if it's possible. A global mutex (or the budget version, exclusive open file lock) would prevent it from running in multi-session systems, but then again you could add the session ID to the test.
ps, I replicated the crash outside AvsP, it's a memory corruption thing, sorry for the bad report.
Minor bug: In the default function definitions, ConvertToBackYUY2 should be ConvertBackToYUY2. =p
jubilex
7th March 2007, 07:16
Okay, the fact that the window resizes to the appropriate size implies that the avs script is being loaded. If not even the simplest of scripts display anything (try a script like "Version()", or try doing a preview of no text at all), there may be a refresh issue (I'm stretching, I know). Try posting a screenshot of the entire program so I can see the script and the video preview, and also make sure you don't overlook any error messages (they might pop up in a separate window).
Was this problem ever solved? I am having the same thing happen to me -- no video preview at all, but the preview pane is sized correctly, slider works, etc. Works fine when I use external preview. Version() and avisynth errors DO display in the preview pane. And like the other guy, the preview USED to work for me (and still does on another machine). Not sure when or why it stopped working.
qwerpoi
7th March 2007, 09:53
Feature request: Ability to turn off asking about saving tabs. It's nice that it does it, but when you like having 10 unsaved (or unnamed) tabs open, it gets a little overbearing. I love temporary scripts, I don't know how I ever got on without them. >.>
No problemo, it'll be in the next release (coming very soon...).
Oh yeah, another thing I was wondering about was single instance, if it's possible. A global mutex (or the budget version, exclusive open file lock) would prevent it from running in multi-session systems, but then again you could add the session ID to the test.
It's possible, but when I tried implementing it a while ago I needed to import the socket library in python, which added about a megabyte to the program size. I'll look into it some more. In reality I don't know much about mutex and socket stuff, so any help here is appreciated :o .
Minor bug: In the default function definitions, ConvertToBackYUY2 should be ConvertBackToYUY2. =p
Whoops :p . It'll be fixed in the next release.
Was this problem ever solved? I am having the same thing happen to me -- no video preview at all, but the preview pane is sized correctly, slider works, etc. Works fine when I use external preview. Version() and avisynth errors DO display in the preview pane. And like the other guy, the preview USED to work for me (and still does on another machine). Not sure when or why it stopped working.
This is pretty difficult to understand, I can't imagine why it would work one day and not the next. I'll be releasing a new version sometime today or tomorrow, the display code's changed a bit, so be sure to try it out and let me know if the problem's still there.
jubilex
7th March 2007, 17:04
Just solved it (finally). I believe the thing that fixed it was setting the Raw Video in FFDShow to All Supported. No idea how that would have gotten switched off (assuming I had it on before, which I'm pretty sure I did), but preview is working now.
Thanks for a fantastic program.
qwerpoi
7th March 2007, 20:36
New version 1.3.7, get it from the download page (http://avisynth.org/qwerpoi/Download.html) or from the mirror (http://savefile.com/files/536560). Windows 98 users should download from here (win98) (http://savefile.com/files/536571). The download's a little bigger this time (5.1 MB), but only because I included an offline copy of the website as documentation. Here's the (huge) changelog:
* make up/down/left/right video shortcuts editable (suggested by Alain2, avid_avs_user)
* removed modifier restrictions for keyboard shortcuts (suggested by avid_avs_user)
* allow language translation for Ctrl, Alt, Shift (suggested by Henrikx)
* added menu items for trim selection start/end (suggested by avid_avs_user)
* added ability to export/import individual filter presets (suggested by krisq)
* added pixel position and color information to status bar (suggested by nibbles, jmac698)
* added macro to get filter info from avisynth (needs Avisynth 2.5.7+) (contributed by tsp)
* added ability to label user slider separators (suggested by R3Z)
* added ability to free all script videos from memory (suggested by foxyshadis)
* use the source filename as default in the file save dialog (suggested by Zarxrax)
* updated extension-based templates with .dga files and AVCSource() (suggested by unskinnyboy)
* added option to not prompt to unsaved scripts on program exit (suggested by foxyshadis)
* added several help menu items linking to website documentation
* improved subwindow layout management
* improved calltip displaying during window focus/motion
* minor changes to the display code
+ fixed issues with syntax highlighting default style (thanks Alain2)
+ fixed bug with unicode characters in script (thanks Spuds)
+ added workaround for top-level variables in macros (thanks tsp)
+ fixed minor bug when switching from zoom fit to regular zoom
+ fixed several subwindow positioning issues
This release probably has more subtle improvements compared to the last one, but they're very important changes in my eyes. The most important change is that the window layout management has been greatly improved. The video and slider windows are now positioned on a tab per tab basis, the slider window is automatically hidden if the script has no sliders, I squashed some annoying bugs which caused strange window layout when the program changed size, etc, etc. Just try it out, you'll see things run smoother with respect to managing windows.
Another major change is that I reworked the entire way the program registers keyboard shortcuts. This doesn't mean much to most users, but now you can finally edit the prev/next frame/sec/min shortcuts. This also means that language translators can finally translate the Ctrl/Alt/Shift names (bet you thought I forgot about that :)). I also removed the shortcut modifier restrictions, you can now assign anything you want as a keyboard shortcut - just don't come complaining to me when you find out you can't enter the letter "a" in a script anymore :p .
There's also a new macro contributed by tsp, the "Update Function Definitions" macro. This is very cool - if you're running AviSynth 2.5.7 or above, try running the macro. You'll find that every single plugin you haven't added to AvsP's function definition list (which controls syntax highlighting, autocompletion, and calltips) will now magically be there, along with the function arguments. Amazing! Basically the macro is pulling the information directly out of AviSynth, powerful stuff. It's been discussed before, but this macro doesn't depend on additional dlls and isn't version specific (although as I mentioned you'll need a recent version). Actually, I plan to fully integrate this into the program once everything is streamlined, in theory it's possible you'll never have to manually update filter names and arguments in AvsP again. Again, big thanks to tsp for the contribution.
On a related note, you can now export your filter customizations to a file, which you can give to someone else to import. It's a little different then simply giving someone your filters.dat file, here you can choose specific filters to export, they can choose specific filters to import, they can choose to only update but not overwrite, etc. This is useful if you've set up a lot of presets for filters, which is currently the best way for storing user sliders per filter, and you want to share them with others. Anyway, you can read more about it here (http://avisynth.org/qwerpoi/Text.html#export-import-filter-customizations).
There's some new info on the status bar now, when the video is focused you can move the mouse over regions of the video to see the pixel xy coordinates and color. The color format shown is defaulted to hexadecimal, but you can change the format to rgb or yuv in "Options -> Program settings..." under the "Video 1" tab. The pixel coordinates and colors should be accurate regardless of the video preview zoom or scrolled position. Note that I realize this isn't quite optimal as a full-blown color picker, I'm still considering the best way to put a feature like that together.
Some other smaller stuff that needs discussion. You can now stop AvsP from prompting to save files on program exit (it's not needed since AvsP automatically saves all scripts as a session on exit), go to "Options -> Program settings..." and uncheck "Prompt to save scripts on program exit". Another feature requested a while ago - when you save a new script, AvsP will try and guess the filename of the first source and use that as the default directory and name in the Save As.. dialog. For example, if you make a new tab and enter "AviSource("C:\movies\test.avi")", then when you save the file the dialog box starts in the directory "C:\movies" and the initial filename is "test.avs". The detection is not extremely sophisticated, basically AvsP finds all the strings in the script, and uses the first string that's both an existing file and has a source file extension (as defined by the extension-based templates). Finally, you can now have labels for user slider separators, looks nicer than I thought it would, check out the screenshot and read more here (http://avisynth.org/qwerpoi/UserSliders.html#user-slider-separators).
Other than that, you'll notice that I updated the website finally, and as I mentioned before an offline version is now included with the download (in the "help" directory). The help menu in AvsP now links to some of these pages, it will open the online urls if it can't find the offline version. I changed the home page to include the changelog, and added an about page (with some testomonials from this thread :)). I still need to update the flash tutorial, though. If you notice any other inconsistencies or things which need explanation, let me know. Anyway, be sure to report back with any new bugs or feature requests.
Terranigma
7th March 2007, 20:39
Thanks for making the best avisynth gui text editor even better :devil:
Downloading now.
Interesting..
added ability to free all script videos from memory (suggested by foxyshadis)
That's very nice/useful right there. This should speed things up after say, previewing a script that consumes a lot of memory such as mvdegrain2 with a blksize of 4, fft3d, mcbob, eedi2, or Didée's motion compensated denoising script. :)
Fizick
7th March 2007, 23:09
qwerpoi,
1. can you provide old 1.3.6 version of _translation.py file ?
2. how I can add link to Russian readme.txt without replacing english file?
Terranigma
8th March 2007, 00:07
qwerpoi,
1. can you provide old 1.3.6 version of _translation.py file ?
you can download version 1.3.6 (which includes your requested file) here (http://www.avisynth.org/qwerpoi/AvsP_v1.3.6.zip)
Spuds
8th March 2007, 01:53
Just finished the downloading and initial test ... First the Update Function Definitions macro is too sweet ! Is there a way to set the initial doc path/url for the function help file or could it remember the last path searched ?
On the unicode characters error I have good and bad news. The good is I don't get the error when I back over them after loading the script, the bad is the program still abends when I load the script - exit - restart, I can see the python pop up for a split second but can't capture it to tell you what it says.
qwerpoi
8th March 2007, 03:06
Just solved it (finally). I believe the thing that fixed it was setting the Raw Video in FFDShow to All Supported. No idea how that would have gotten switched off (assuming I had it on before, which I'm pretty sure I did), but preview is working now.
Thanks for a fantastic program.
Thanks for finding that out. I'll try and compile an FAQ for the website, this will definitely be on it.
That's very nice/useful right there. This should speed things up after say, previewing a script that consumes a lot of memory such as mvdegrain2 with a blksize of 4, fft3d, mcbob, eedi2, or Didée's motion compensated denoising script. :)
Heh, you should thank foxyshadis for that, it's a kind of strange feature request, one I wouldn't have thought up myself, but as you mention it certainly can be useful.
qwerpoi,
1. can you provide old 1.3.6 version of _translation.py file ?
2. how I can add link to Russian readme.txt without replacing english file?
1. Sure, download from here (http://avisynth.org/qwerpoi/__translation_v1.3.6.py) (right click and save as).
2. Actually, I took the link to the readme.txt in the Help menu out of this version, since it's pretty out of date compared to the website docs, sorry. But the issue's still there with the new links to the website docs, so I'll try and make those paths configurable in the next release. Actually, if anyone is interested in translating the website, let me know, I can give you the raw text source to translate, which I can then convert to html. However, it's a really huge amount of text so I wouldn't recommend it unless you've got a lot of time on your hands :).
Just finished the downloading and initial test ... First the Update Function Definitions macro is too sweet ! Is there a way to set the initial doc path/url for the function help file or could it remember the last path searched ?
Good point, in the next version I'll have it default to the avisynth program directory, and possibly have it remember the last path searched as well.
On the unicode characters error I have good and bad news. The good is I don't get the error when I back over them after loading the script, the bad is the program still abends when I load the script - exit - restart, I can see the python pop up for a split second but can't capture it to tell you what it says.
Hum, that's disappointing news. I've never gotten the error popup on startup, could you be more descriptive with what's happening? Does the error close AvsP on startup? One thing to make sure of is that you don't use a session file from the new version with an old version, that's likely to cause an error. Does anyone else notice this issue?
Terranigma
8th March 2007, 03:30
Does anyone else notice this issue?
Yes, it closes AvsP on startup. Now I haven't encountered this problem with 1.3.7 just yet, but I did encounter it with 1.3.6 and 1.3.5. I could'nt pinpoint exactly why it was erroneously crashing. It would, however, sometimes say something about the avisynth script containing unicode characters.
Eggroll
8th March 2007, 04:54
Just recently discovered avsP and starting to seize the potential of this application in script editing.
I was wondering if there was a possiblity to store (and access) global variables in a macro so another macro could use a global variable stored in a previous macro?
It could take the form of a key/value dictionary in avsp object that would allow different macros to access the same dictionary and fiddle with previously saved values.
Thanks in advance, keep on the good work.
Spuds
8th March 2007, 05:08
Finally got a capture of that allusive startup error window !! As Terranigma noted is closes AvsP on startup.
http://img80.imageshack.us/img80/6562/capturepz7.jpg
krisq
8th March 2007, 10:40
Excellent work qwerpoi, as always :).
Something cool came to my mind lately. When you make a preset like
LeakKernelDeint (order=0, threshold=6, sharp=true, map=false)
it would be nice if we could do something like
LeakKernelDeint (order=%C, threshold=6, sharp=true, map=false)
where %C is the cursor so that way we could immediatley edit this value without scrolling to it. What do you think?
Henrikx
8th March 2007, 10:55
@qwerpoi
:thanks:
Update German Translation 1.3.7
khs81
8th March 2007, 13:37
Hi!
At first, I want to thank qwerpoi for the nice job.
:thanks:
Second: we prepared an italian translation for the tool (for the version 1.3.6). You can find it here (http://people.ee.ethz.ch/~rporetti/AvsP_Trad/AvsP_1.3.6_translationITA.zip)
foxyshadis
8th March 2007, 13:44
Excellent work qwerpoi, as always :).
Something cool came to my mind lately. When you make a preset like
LeakKernelDeint (order=0, threshold=6, sharp=true, map=false)
it would be nice if we could do something like
LeakKernelDeint (order=%C, threshold=6, sharp=true, map=false)
where %C is the cursor so that way we could immediatley edit this value without scrolling to it. What do you think?
Could be done by shifting to macros, but certainly not half as convenient. Thanks for mentioning it, I didn't even realize AvsP had presets. Guess I'm skimming the changelogs a little too fast!
qwerpoi
8th March 2007, 21:01
Finally got a capture of that allusive startup error window !! As Terranigma noted is closes AvsP on startup.
Thanks for the nimble screenshot :), and sorry about the bug, I'll have it fixed by the next release. And I'll see what I can do about redirecting the error messages to a text file for cases like these...
Just recently discovered avsP and starting to seize the potential of this application in script editing.
I was wondering if there was a possiblity to store (and access) global variables in a macro so another macro could use a global variable stored in a previous macro?
It could take the form of a key/value dictionary in avsp object that would allow different macros to access the same dictionary and fiddle with previously saved values.
Thanks in advance, keep on the good work.
It's a good idea, but you should be able to implement it already without extra macro functions. Basically use cPickle to dump and load from a file named "vars.dat" (or whatever) which stores your dictionary. Something like this:
import cPickle
import os
# Load the persistent variables
if os.path.isfile('vars.dat'):
f = open('vars.dat', mode='r')
vars = cPickle.load(f)
f.close()
else:
vars = {}
# Your macro goes here...
# Access, add, or delete entries to the vars dictionary...
#
# Save the persistent options
f = open('vars.dat', 'w')
cPickle.dump(vars, f)
f.close()
I could possibly add macro functions to wrap this kind of stuff, but it doesn't seem worthwhile to save a couple of lines of code at the expense of reduced freedom. I guess what I'm saying is that in order to use a macro function like this, you'd have to be pretty familiar with Python, and if you're pretty familiar with Python, you already know or can figure out how to use cPickle to store persistent data. Let me know what you think.
Excellent work qwerpoi, as always :).
Something cool came to my mind lately. When you make a preset like
LeakKernelDeint (order=0, threshold=6, sharp=true, map=false)
it would be nice if we could do something like
LeakKernelDeint (order=%C, threshold=6, sharp=true, map=false)
where %C is the cursor so that way we could immediatley edit this value without scrolling to it. What do you think?
Interesting suggestion, I'll try and have it in the next release.
@qwerpoi
:thanks:
Update German Translation 1.3.7
You may want to update your translation - starting from this version, you can translate 'Ctrl' to 'Strg' without messing up the keyboard shortcuts (I think 'Alt' and 'Shift' don't need translating on German keyboards, but you can translate those as well).
Hi!
At first, I want to thank qwerpoi for the nice job.
:thanks:
Second: we prepared an italian translation for the tool (for the version 1.3.6). You can find it here (http://people.ee.ethz.ch/~rporetti/AvsP_Trad/AvsP_1.3.6_translationITA.zip)
Very cool, always nice to have another language. I'll add the link to the first post and the website.
Eggroll
9th March 2007, 01:38
I don't know python, I happened to research about it. I've been programming for the past 7-8 years, mostly c, c++ and c# so I still understand what's going on without being familiar with python's syntax and all that.
I thought of using a temp file at first but it seemed like an awful lot of mess to create a file (and eventually delete it), possibly dealing with ntfs permission, file lock and all that. I know it's possible and easy to do, but I was looking for a 'cleaner' way of storing temporary variables in memory since it's usually where I'll want to store it anyway.
The problem with a file is that it persists even when the application is closed.
As a temporary solution, I wrote my variables in the clipboard so I don't have to manage files on disk.
Anyways, thanks for your answer, if no change is made, I'll just either use clipboard like I do now or use cPickle. Not my favorite method but it'll work just as good since my purpose is to write macros to ease the creation of script, even at the expense of creating a few intermediary files that the user can clean out whenever it is needed.
khs81
9th March 2007, 09:27
I'm sorry, better correct the link i gave you for the italian translation with the one without the version number included in the namefile, so that the link remains the same also when a new version come out and I post the new translation.
Here (http://people.ee.ethz.ch/~rporetti/AvsP_Trad/AvsP_translationITA.zip) you find the new link.
Thanks and sorry for this little mistake
qwerpoi
9th March 2007, 19:09
The problem with a file is that it persists even when the application is closed.
I misunderstood your first post, I thought you wanted persistence, my mistake. Of course cPickle will still work for what you need, as well as your clipboard solution, but neither is optimal, so I'll see what I can come up for the next version.
I'm sorry, better correct the link i gave you for the italian translation with the one without the version number included in the namefile, so that the link remains the same also when a new version come out and I post the new translation.
Here (http://people.ee.ethz.ch/~rporetti/AvsP_Trad/AvsP_translationITA.zip) you find the new link.
Thanks and sorry for this little mistake
No problem, I updated the links on the website and first post accordingly.
Eggroll
10th March 2007, 13:09
I'll be waiting then...
Thanks!
zemog
10th March 2007, 13:20
@qwerpoi
:thanks: One more time
TheRainmaker
11th March 2007, 17:39
Finally got a capture of that allusive startup error window !! As Terranigma noted is closes AvsP on startup.
http://img80.imageshack.us/img80/6562/capturepz7.jpg
If you still got a problem to open AvsP try this;
Delete all of things about AvsP aplication and if you still have zipped file(or download again) extract again in any folder...
It will be work %100...
foxyshadis
12th March 2007, 19:11
I've been trying out the new syntax highlighting tools, now that the function definitions are all up-to-date, and I'm loving it! =D I was wondering if you think it'd make sense to highlight the function argument names, and maybe extend the comment background to the edge of the window. It's all pretty smooth, though.
Also, have you had any word about how well avsp runs on *nix systems? Just curious.
Oh, and concerning Python and single-instance, it looks like the budget method is a workable one:
http://mail.python.org/pipermail/python-list/2000-October/057530.html
http://mail.python.org/pipermail/python-list/2000-October/057670.html
But you still have to come up with some method to pass in data, without sockets or COM. In Win32 you can register an event handler to fire when a file or folder is updated, then you could read information out of that and activate yourself, but I have no idea if you could do that in python.
Alain2
12th March 2007, 20:00
French translation updated ;)
Well done, another long and good changelog, and syntax highlighting seems fixed this time! :) Only one small request: can the syntax highlights have priority on the "Highlight current line" option ? Meaning,when a background color has been defined in some syntaxe highlight, can it stay even when the line is selected (and therefore highlighted)?
The new macro created lots of new inputs with the arguments in the functions definition, that's nice ; do you think it would be possible for it to distinguish between required and optional parameters, and add " for the arguments accordingly ? But maybe this information is not available from avisynth 2.5.7...
I haven't had a chance yet to test the rest of the new features, but they sound very cool in the changelog and your explanations !
tsp
12th March 2007, 20:22
The new macro created lots of new inputs with the arguments in the functions definition, that's nice ; do you think it would be possible for it to distinguish between required and optional parameters, and add " for the arguments accordingly ? But maybe this information is not available from avisynth 2.5.7...!
The information is unfortunately not available for avisynth as it is the individually filters that defines what parameter is necessary and they are no way to tell avisynth what parameters that are needed.
foxyshadis: interprocess communication (sockets) is available for python just look at the python docs: http://docs.python.org/lib/ipc.html
also by using ctypes it should be easy to create a mutex to check for only 1 instance of avsp
foxyshadis
12th March 2007, 21:59
He said sockets add a meg to the install though. :p I was just trying to think of hackish ways of doing it to keep the size down.
Alain, in plugins, all named arguments are optional, required ones can't have names in avisynth. It's nice to manually enter the required names, though, and then you would need that. TO get the macro to do that for you, change:
arglist=arglist+" "+namedargname
to
arglist=arglist+' "'+namedargname+'"'
And then change overwriteAll to True on the bottom, rerun it, and you should have quoted args. Good idea btw.
tsp
13th March 2007, 00:20
He said sockets add a meg to the install though. :p I was just trying to think of hackish ways of doing it to keep the size down.
okay didn't see that. So using ctypes to access the windows API IPC function would be a solution (and rather hackish too :) )
Alain, in plugins, all named arguments are optional, required ones can't have names in avisynth. It's nice to manually enter the required names, though, and then you would need that. TO get the macro to do that for you, change:
arglist=arglist+" "+namedargname
to
arglist=arglist+' "'+namedargname+'"'
And then change overwriteAll to True on the bottom, rerun it, and you should have quoted args. Good idea btw.
sorry it is only true for the build-in filters. As an example try compiling this filter:
AVSValue __cdecl CreateExample(AVSValue args, void* user_data, IScriptEnvironment* env) {
int i=args[1].AsInt(1) ;//default is supplied so even if it is not named it is optional
return args[0].AsClip();//no default so required even if it is a named arg.
}
extern "C" __declspec(dllexport) const char* __stdcall AvisynthPluginInit2(IScriptEnvironment* env) {
env->AddFunction("Example", "[required]ci", CreateExample, 0);
}
The filter created would take this syntax "Example(clip required, int)". the named argument "required" is needed as there are no default value while the unnamed argument int is optional because a default value is provided.
qwerpoi
13th March 2007, 04:00
@qwerpoi
:thanks: One more time
Thanks for the translation update, I updated the links accordingly.
If you still got a problem to open AvsP try this;
Delete all of things about AvsP aplication and if you still have zipped file(or download again) extract again in any folder...
It will be work %100...
Yes, you're right, you only need to delete _last_session_.ses for things to work. The problem is is that if you have scripts with unicode in them, it's possible for the issue to come up again. I'll try and have this bug squashed once and for all in the next release.
I've been trying out the new syntax highlighting tools, now that the function definitions are all up-to-date, and I'm loving it! =D I was wondering if you think it'd make sense to highlight the function argument names, and maybe extend the comment background to the edge of the window.
Some good suggestions, I'll see what I can do.
Also, have you had any word about how well avsp runs on *nix systems? Just curious.
Although wxPython is cross-platform, AvsP uses some windows-specific functions, particularly in the video display code, which calls up on avifil32.dll and msvfw32.dll via the ctypes python package (although currently the display code is being rewritten by tsp to utilize avisynth.dll instead of avifil32.dll...). The display code is pretty well separated, so making AvsP cross-platform shouldn't be too much work (in theory). Of course, unless I'm missing something, it's not an issue until Avisynth 3.0 comes out. Whenever that happens, the display code can be rewritten to utilize the interfaces that Avisynth 3.0 would provide.
Oh, and concerning Python and single-instance, it looks like the budget method is a workable one:
http://mail.python.org/pipermail/python-list/2000-October/057530.html
http://mail.python.org/pipermail/python-list/2000-October/057670.html
But you still have to come up with some method to pass in data, without sockets or COM. In Win32 you can register an event handler to fire when a file or folder is updated, then you could read information out of that and activate yourself, but I have no idea if you could do that in python.
Thanks for the info, I'll give it a look over. And yes, you should be able detect when a file or folder is activated in python using ctypes and win32 itself (here's a link (http://tgolden.sc.sabren.com/python/win32_how_do_i/watch_directory_for_changes.html) if you're curious). Of course, that would be adding even more windows-specific code...:p
Only one small request: can the syntax highlights have priority on the "Highlight current line" option ? Meaning,when a background color has been defined in some syntaxe highlight, can it stay even when the line is selected (and therefore highlighted)?
Thanks for the translation update. As far as highlighting priority is concerned, I'm not sure if it's possible, but I'll check it out.
The new macro created lots of new inputs with the arguments in the functions definition, that's nice ; do you think it would be possible for it to distinguish between required and optional parameters, and add " for the arguments accordingly ? But maybe this information is not available from avisynth 2.5.7...
I don't know too much about AviSynth's internals, so whatever tsp and foxyshadis said :). Perhaps if we're looking to the future, it would be possible to enforce plugin design in Avisynth 3.0 to specify which arguments are defaults and which are required, and furthermore specify ranges of allowable values for each argument, which would lead to the ability to automatically create user sliders for each filter. Which is not an important feature to me, but people seem to like going crazy with those user sliders :).
Veiga
13th March 2007, 06:03
@qwerpoi
:thanks:
Portugues translation release for v1.3.7
foxyshadis
13th March 2007, 18:08
The filter created would take this syntax "Example(clip required, int)". the named argument "required" is needed as there are no default value while the unnamed argument int is optional because a default value is provided.
That is true, although in practice the convention almost always holds. I can only think of a couple of filters with any required named arguments, and none with optional unnamed. (Most languages with named arguments don't support that, too much confusion in parsing.) Good point, though.
Short of avisynth further extending the filter argument list, I guess there's no fullproof way to analyse it for optional/required, then.
nibbles
15th March 2007, 06:45
* added pixel position and color information to status bar (suggested by nibbles, jmac698)
:thanks:
Absolutely fantastic. I really appreciate the feature for updating the function defs based on 2.5.7.
Your app works so well, on one of my computers, I was still using v1.2.1. :)
I have a macro question if anyone has a few minutes. I have an avs script that starts off like this:
c1=AVISource("K:\B\1.avi", audio=true, pixel_type="YUY2").Trim(4,143101).Crop(8,0,-8,-10,true)
c2=AVISource("J:\B\2.avi", audio=true, pixel_type="YUY2").Trim(97,143195).Crop(8,0,-8,-10,true)
c3=AVISource("J:\B\3.avi", audio=true, pixel_type="YUY2").Trim(97,143195).Crop(8,0,-8,-10,true)
What I've done is write a macro that when activated adds a c2=c2.DeleteFrame(1234)
type of command in that script. Once I delete a frame from c2 for instance, I was hoping I could add some python code to my macro that reads in the second line and adds 1 to the Trim command final frame value so that the total number of frames is unchanged, like this:
c1=AVISource("K:\B\1.avi", audio=true, pixel_type="YUY2").Trim(4,143101).Crop(8,0,-8,-10,true)
c2=AVISource("J:\B\2.avi", audio=true, pixel_type="YUY2").Trim(97,143196).Crop(8,0,-8,-10,true)
c3=AVISource("J:\B\3.avi", audio=true, pixel_type="YUY2").Trim(97,143195).Crop(8,0,-8,-10,true)
But I have no idea how to parse the line and add 1 to the value.
Ok thanks for all you've done. Have a great week!
nibs
qwerpoi
15th March 2007, 18:28
Portugues translation release for v1.3.7
Thanks for the translation update, I updated the links on the first post and website accordingly.
What I've done is write a macro that when activated adds a c2=c2.DeleteFrame(1234)
type of command in that script. Once I delete a frame from c2 for instance, I was hoping I could add some python code to my macro that reads in the second line and adds 1 to the Trim command final frame value so that the total number of frames is unchanged, like this:
c1=AVISource("K:\B\1.avi", audio=true, pixel_type="YUY2").Trim(4,143101).Crop(8,0,-8,-10,true)
c2=AVISource("J:\B\2.avi", audio=true, pixel_type="YUY2").Trim(97,143196).Crop(8,0,-8,-10,true)
c3=AVISource("J:\B\3.avi", audio=true, pixel_type="YUY2").Trim(97,143195).Crop(8,0,-8,-10,true)
But I have no idea how to parse the line and add 1 to the value.
Hmm, this is not the easiest of tasks. Unfortunately, currently there's no way to replace sections of the text with macros, but it shouldn't be difficult to add to the next version. In the meantime, you can try something like this. Change your script to be:x = 143195
c1=AVISource("K:\B\1.avi", audio=true, pixel_type="YUY2").Trim(4,143101).Crop(8,0,-8,-10,true)
c2=AVISource("J:\B\2.avi", audio=true, pixel_type="YUY2").Trim(97,x).Crop(8,0,-8,-10,true)
c3=AVISource("J:\B\3.avi", audio=true, pixel_type="YUY2").Trim(97,143195).Crop(8,0,-8,-10,true)
where "x = 143195" is the very first line of your script (note the change "Trim(97,x)" in the c2 line). Then you can use this simple macro:
avsp.InsertText(' + 1', pos=(0,-1))
which will add a " + 1" to the end of the first line every time you run the macro. Note that the line "x = 143195" must remain in the same place, but does not need to be on the first line - if it was the 10th line then you would use a pos=(9,-1), etc. Not the prettiest solution if you plan on running this macro hundreds of times, but otherwise it gets the job done. I'll try and have some macros for positioning and replacing in the next version, but keep in mind that even with the ability to replace sections, a macro like this will likely be fragile (ie, might not work properly if you add lines to the beginning of the script, or change the name of variables, etc.) If anyone has a more clever solution, feel free to jump in.
nibbles
15th March 2007, 20:00
Hey that'll work perfectly. Unless somebody else wants positioning
and replacement macros, I'm set with what you just posted.
That is really gonna shine! :)
Alain2
17th March 2007, 12:43
Features request:
- Possibility to have the main script window "always on top" (especially when having set the video as a separate window ; coiuld be useful as well when using an external player, but personnally it's the interaction between the script and video windows that I am interested in)
- Option to limit the max width of the video (to say for instance for me 1550, as my screen resolution is 1600x1200) when using the auto zoom. That way I won't have to resize the video window for every different script I have, I would just expand to fullscreen the video window and always have the same video dimension for all my scripts..
jubilex
24th March 2007, 20:42
nevermind...
boombastic
29th March 2007, 18:53
Sorry if this has already been asked but i'd like to backup the script i made to an avi encoded with xvid and ,possibly with ac3 or mp3 audio.
I know that i can call avs2avi but how can i specify xvid options and parameters?
For the audio part how can i do?
boombastic
29th March 2007, 19:31
i'm almost done with this script:
mpeg2source("E:\Black2\prova.d2v")
trim(0,172155)
Crop(8,120,-8,-120)
parity = GetParity() ? 1 : 0
LeakKernelDeint(threshold=4,twoway=true,order=1)
LRemoveDust_YV12(1)
dull = last
sharp = dull.LimitedSharpenFaster()
Soothe( sharp, dull, 20 )
ColorMatrix()
a=last
b=mpeg2source("E:\Black2\prova.d2v")
b=b.trim(172156,177132)
b=b.Crop(8,120,-8,-120)
b=b.TomsMoComp(1,1,1)
video=a+b
audio=NicAC3Source("E:\Black2\prova T01 2_0ch 256Kbps DELAY -384ms.ac3")
Audiodub(video,audio)
DelayAudio(-0.384)
but now the problem of how to tell avs2avi the xvid parameters(q value,trellis,vhq mode,ecc...) remains,any clue?
qwerpoi
29th March 2007, 21:37
but now the problem of how to tell avs2avi the xvid parameters(q value,trellis,vhq mode,ecc...) remains,any clue?
The way avs2avi works with xvid is by running the xvid configuration gui. In other words, open your script in AvsP, run "Tools -> Save as avi...", in the dialog that shows up select the number of passes and hit run. The rest is taken care of by avs2avi, it will show you the standard video codec configuration dialog, select xvid as the compressor and hit the configure button, etc. If you're running 2 passes, the video codec configuration dialog will show up twice.
If you'd rather specify all your parameters without a gui, then you need to use a special build of xvid, xvid encraw. In this case instead of using AvsP's avs2avi dialog, you should using a macro. You can check out the "Encoding example" or "Encoding example 2" macro to get you started.
jolson
30th March 2007, 09:10
Maybe the avs2qxvid.bat could help...?
http://forum.doom9.org/showthread.php?t=119500
boombastic
30th March 2007, 17:03
Maybe the avs2qxvid.bat could help...?
http://forum.doom9.org/showthread.php?t=119500
Yes thatcould be usefull but someone(i'm not able but i can try...) sholud create a Macro for AvsP that encode the current script with avs2qxvid.The best thing would be that this macro let the user input the TGHQ-CT, TGFAST-CT, TGEDIT-00, TGANIME-00.or MTK-CT parameter for the bat file....
martino
2nd April 2007, 20:23
I keep getting an error when I want to open just a simple AVS script, only with AviSource() in it;
Traceback (most recent call last):
File "AvsP.py", line 4552, in OnMenuFileOpen
File "AvsP.py", line 6200, in OpenFile
File "wx\stc.pyo", line 2842, in SetText
File "encodings\cp1252.pyo", line 22, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 49: character maps to <undefined>
The script opens up fine in VDub and media players though and even encoding works without any problems...
UPDATE: Looks like changing the input avi filename resolved this issue... :/
jmac698
6th April 2007, 22:08
avsp 1.3.7 bug
Pixel color display in YUV mode, shows wrong values.
colorbars(pixel_type="YV12") click on the yellow bar, it should read 161, not 159.
But thanks for adding this feature, I've been waiting a long time to have it :)
ps you can't just convert from rgb, some YUV can't be displayed as well. There's several yuv that can map to one rgb.
The main reason I wanted it is to measure yuv colors ;(
foxyshadis
7th April 2007, 00:44
Do this:
StackHorizontal(StackVertical( \
ConvertToRGB(matrix="bt.601"), \
ConvertToRGB(matrix="pc.601")), \
StackVertical( \
ConvertToRGB(matrix="bt.709"), \
ConvertToRGB(matrix="pc.709")), \
)
One of them is bound to match your expectations, unless you use a totally different colormatrix. :p (I don't think any of them will give you 159 or 161 - $99 or $A1 - unless you're converting back to yuv by hand.)
Oh! And make sure you use avisynth 2.5.7. There was a lot of discussion between .6 and .7 about colorbars, and some changes were made to it.
I can throw together a small plugin that just plops YUV values into RGB if you'd like that. Since it probably isn't particularly easy to get it to show in avsp otherwise.
qwerpoi
7th April 2007, 04:03
I keep getting an error when I want to open just a simple AVS script, only with AviSource() in it;
Traceback (most recent call last):
File "AvsP.py", line 4552, in OnMenuFileOpen
File "AvsP.py", line 6200, in OpenFile
File "wx\stc.pyo", line 2842, in SetText
File "encodings\cp1252.pyo", line 22, in decode
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 49: character maps to <undefined>
The script opens up fine in VDub and media players though and even encoding works without any problems...
UPDATE: Looks like changing the input avi filename resolved this issue... :/
Thanks for bringing that up, I'll try and get this and the other unicode issues squared away for the next release.
avsp 1.3.7 bug
Pixel color display in YUV mode, shows wrong values.
colorbars(pixel_type="YV12") click on the yellow bar, it should read 161, not 159.
But thanks for adding this feature, I've been waiting a long time to have it :)
ps you can't just convert from rgb, some YUV can't be displayed as well. There's several yuv that can map to one rgb.
The main reason I wanted it is to measure yuv colors ;(
I'm not very knowledgeable about color space conversions, as you guessed all I did was use the rgb to yuv conversions (rec601) as pointed out in this thread (http://forum.doom9.org/showthread.php?p=177792#post177792). At the time that was the only way I could handle it, since the frames were being passed to AvsP in rgb. In the next version, AvsP will be doing more direct communication with AviSynth (thanks to contributions from tsp), so this way of handling things may change (once I get everything figured out).
jmac698
7th April 2007, 04:31
You mean like this?
Function mapYUVtoRGB(clip Y) {
U=Y.UToY().pointresize(Y.width,Y.height)#yv12 is scaled 2x, 2y
V=Y.VtoY().pointresize(Y.width,Y.height)#yuy2 is scaled 2x
Return (MergeRGB(V,Y,U))
}
I *know* the yellow bar is Y=161, it's displayed wrong in the status bar. And actually, I'm the one who initiated the new colorbars :-) It's supposed to be 162, but alas I'm only using 2.56 right now (I don't know why..?)
foxyshadis
7th April 2007, 06:36
Hey, that's a neat little method, and I was trying so hard to think of a way to do it without a custom function, too. ;p
It's listed as A2, 162, in the G/Y on mine. Do you have photoshop, or some other editor you can collect per-channel values from? It might be that it's actually coming through as 159 for some bizarre reason.
ChiDragon
14th April 2007, 22:29
Been a while since I've used AvsP, is there a toggle for true/false or could this be added? Like right-click or use a keyboard shortcut to change a true value to false or vice-versa.
qwerpoi
15th April 2007, 19:03
Been a while since I've used AvsP, is there a toggle for true/false or could this be added? Like right-click or use a keyboard shortcut to change a true value to false or vice-versa.
No, currently there's no way to do it. At the moment, I'm working on a way to automatically build user sliders for every single function in a script (check boxes for true/false arguments, list boxes for string arguments), but it probably won't be in the next release. Incidentally, the next release will be in about a week, if everything goes well. This release will focus on improved communication between AviSynth and AvsP, should be good stuff. Once that release is ironed out, the plan is to have the automated sliders in the following release.
ChiDragon
15th April 2007, 23:56
Alright cool, thanks. For the moment I'm "tagging selection for toggling" and using that to alternate between the default and my changed value.
Mug Funky
17th April 2007, 14:28
not sure if this is worth pursuing or not (probably not), but i have a dream of writing a big RGBlut for lift, gain and gamma, and then using my wiimote + nunchuk to control the values in avsp.
is it possible to somehow tie a slider to an input device like a joystick?
qwerpoi
17th April 2007, 19:03
Alright cool, thanks. For the moment I'm "tagging selection for toggling" and using that to alternate between the default and my changed value.
As I mentioned, there's no quick keyboard shortcut, but as an alternative to toggle selections, you could use a user slider like this:
AVISource("C:\test.avi", audio=Select([<"audio", 0, 1, 0>], False, True))
A bit chunky, so it's up to you how you want to do it. Like I said, I'm working on a way to streamline the process, so think of these as more or less temporary solutions.
not sure if this is worth pursuing or not (probably not), but i have a dream of writing a big RGBlut for lift, gain and gamma, and then using my wiimote + nunchuk to control the values in avsp.
is it possible to somehow tie a slider to an input device like a joystick?
Are you serious? If you are, then yes, I believe it's doable. I'll take a look into it, if it's not too difficult I'll try and implement it (although probably not in time for the coming release). I imagine you'd be in the vast minority of people using the feature, though :)
Dr.Khron
18th April 2007, 15:35
I just started using all the power features in AvsP... VERY cool program, much thanks to the developer.
Ok, so I've got an odd issue... Is there any way to set the FPS the program uses to determine time stamps?
My current script loads a D2V file with DGDecode. The DVD is NTSC material: 720x480 at 29.97 FPS. However, the program displays the video as being 640x480 at 23.976 FPS.
This causes descrepancies between frame counts and various time stamps... its a pain in the ass to try and convert frame counts into times for the TextSub filter and other things.
EDIT:
DOH. I just realized that AvsP is displaying the information for the ouput file... my de-interlace routine causes the FPS to change, and I resize the video in the course of the script.
Still doesn't solve my problem, tho...
EDIT:
Yes, it actually does solve my problem... as long as I use the 23.976 for my FPS, all of the frame math works out (for filters added after de-interlacing, anyway).
tony62
19th April 2007, 14:25
Hello and thank you for this great tool.
I have a problem with the avs2avi side of life though.
I have downloaded avs2avi-139.zip unzipped and specified the path within AvsP(and restarted). I have written a simple scipt:
LoadPlugin("C:\Documents and Settings\Tony62\My Documents\Downloads\DGDecode.dll")
MPEG2Source("C:\Documents and Settings\Tony62\My Documents\Working Folder\VTS_01_1.d2v", cpu=0)
Crop(0, 74, -0, -66)
and all runs well in MPC or VirtualDubMod.
The problem comes when i 'save as avi', avs2avi.exe launchs within task manager then disappears:confused:
Any help would be appreciated:)
qwerpoi
20th April 2007, 07:52
The problem comes when i 'save as avi', avs2avi.exe launchs within task manager then disappears:confused:
Any help would be appreciated:)
Ah, it's been I while since I did work on the avs2avi gui. It looks like the problem is caused by spaces in the filename - try saving the avisynth script to a directory without spaces (C:\test.avs or something), it should work then. I'll try and have that fixed up by the next release.
tony62
20th April 2007, 18:30
Ah, it's been I while since I did work on the avs2avi gui. It looks like the problem is caused by spaces in the filename - try saving the avisynth script to a directory without spaces (C:\test.avs or something), it should work then. I'll try and have that fixed up by the next release.
Thanks for the prompt reply and yes you are correct that saving my .avs to C:\bla_bla.avs works like a charm:) You won't believe how long i spent trying to solve the problem before posting:eek:
I'm looking forward to your resizing calculator. Will it be completed also in the next version?
Again, good work and thanks!!
Mug Funky
21st April 2007, 16:50
I imagine you'd be in the vast minority of people using the feature, though
haha! yeah, probably. i've been doing a bit of colour grading lately and didn't see a reason that avisynth couldn't do it (except for the whole 8 bit, mostly 4:2:0 thing). generally the colour tweakage happens via 3 trackballs (lift, gamma, and gain), and colour for each one is controlled by pushing the ball in the corresponding direction on a vectorscope (up and left a bit for red, down and right a bit for cyan, etc). thought it'd be fun to try do that using the wii as it has more than enough direction controls on it for something like that. also it's fairly simple to get the wiimote into a PC using a bluetooth dongle and a couple of candles.
but i wouldn't find it to be a very useful feature for anything else at all... so don't implement it unless your curiosity gets the better of you :)
Fizick
21st April 2007, 17:17
feature request (may be it exists?):
after copy and paste of line of script with silders, automatically generate new names of sliders in new line.
For example, by some incrementing of last symbol or suffix.
qwerpoi
21st April 2007, 21:23
Thanks for the prompt reply and yes you are correct that saving my .avs to C:\bla_bla.avs works like a charm:) You won't believe how long i spent trying to solve the problem before posting:eek:
I'm looking forward to your resizing calculator. Will it be completed also in the next version?
Again, good work and thanks!!
Yeah, I'm guessing it's a problem a lot of developers have - out of habit, I try not to have any spaces in any of my folders or filenames whenever possible, so I never notice when it becomes an issue, despite the fact that the majority of users have spaces in ALL their files and folders (thanks a lot, microsoft :)). Sorry it caused any headaches, I fixed the problem for the next version (which should be out in a few days).
As for the resize calculator, it also was something I had planned long ago, really the only reason it's there in the menu is because the Tools menu was a bit bare :). Right now I have a ton of work to do for some new features, so it's not a top priority, but if anyone wants to help, you could direct me to a good example of what you want the feature to be like (last I recall, the resize calculator in Gordian Knot was the standard). Even better, if someone digs through sources and provides accurate formulas for the various appropriate calculations necessary, I'd be able to put together the gui interface fairly quickly.
but i wouldn't find it to be a very useful feature for anything else at all... so don't implement it unless your curiosity gets the better of you :)
Yeah, the reason I'm considering it is because the framework I'm using, wxPython, already has joystick support, so adding the feature might be very simple (although I haven't looked at the details). And it would be cool to control sliders through gestures a la "Minority Report" :)
feature request (may be it exists?):
after copy and paste of line of script with silders, automatically generate new names of sliders in new line.
For example, by some incrementing of last symbol or suffix.
Good request, the feature doesn't currently exist. What I'm trying to do is get rid of the slider label entirely, since it's occasionally cumbersome to work with, as you point out. What will happen is that sliders will automatically be generated for every argument in your script. This sounds like it could be a very bloated approach, so believe me when I say that I am trying to put the whole thing together in a very clean and unobtrusive way. Again, this won't be ready for the next release, but hopefully will be in the release after that, still a lot of things that need to be worked out.
Dr.Khron
22nd April 2007, 17:47
I've got an idea for a new feature... its sort of a half baked idea, though.
How about "sub-script awareness"?
This is where you call an external text file from your AVS. The only example I've encountered is calling .SSA files for TextSub, but there must be other applications.
If I'm tweaking a .SSA, I have AvsP open for my script, and then I need to have notepad open to edit the SSA. If I make a change, I need to save the SSA in notepad and refresh the AvsP preview output. Switching back and forth can get confusing if you have a bunch of stuff open.
It would be nice if you could have another set of tabs for Sub-scripts, so that you didn't even have to save the SSA file to refresh the preview. Basically, if AvsP allowed you to handle and edit sub-scripts in the same way it handles AVS files, I'd be thrilled.
qwerpoi
24th April 2007, 22:38
New version 1.3.8, download from the AvsP download page (http://avisynth.org/qwerpoi/Download.html) or from the mirror (http://www.savefile.com/files/667523) (win98 users can download from here (win98) (http://www.savefile.com/files/667525)). This version has major changes in the display code, AvsP now directly communicates with AviSynth in order to get video frames and information. It requires a recent version of AviSynth (tested with 2.5.7), if your AviSynth version is too old, don't worry, AvsP will fall back on the old method of getting frames. Here's the changelog:
* changed display code to retrieve frames directly from Avisynth (contributed by tsp)
* highlight error line in script on error clip
* added new video zoom option to fit entirely inside the window (suggested by Alain2)
* added "always on top" option for main window (suggested by Alain2)
* added method to specify cursor position in filter presets (suggested by krisq)
* allow for global variables in macros (suggested by Eggroll)
* remember last path when configuring doc path/url for function help (suggested by Spuds)
* path to AvsP help directory now configurable (suggested by Fizick)
* dump program error messages to both window and log file for easier bug reporting
+ fixed unicode error on startup (thanks Spuds)
+ fixed unicode error on file open (thanks martino)
+ fixed bug with avs2avi gui and spaces in avs filename (thanks tony62)
+ accurate yuv colors reported in video status bar (thanks jmac698)
+ minor fixes to window layout code
The biggest change is that AvsP now directly communicates with AviSynth through the Avisynth c interface (via avisynth.py in the source, big thanks to tsp for the contribution). Directly communicating with Avisynth has several advantages. Information such as colorspace, parity, audio channels, etc, is now directly available in AvsP. Scripts can be loaded from memory instead of creating temporary files. Error scripts can be identified and handled differently, so in this version any error scripts are created with the same number of frames as the last shown video, such that syntax errors don't cause you to lose the video frame you were currently on. Furthermore, upon an error clip, AvsP will now automatically give focus to the script and highlight the line with the error.
In order to check out video information now provided by Avisynth, you can simply click "Video information" in the video right-click menu. Also you can now configure the program's status bar to report any video information you would like, go to "Options -> Program settings...", and in the "Video 1" tab, click on the "Customize video status bar..." button. You'll see a dialog (http://avisynth.org/qwerpoi/Video.html#customizing-status-bar-message) where you can specify practically any piece of information about the video Avisynth can give you, including pixel color info (which now has colors being directly retrieved from Avisynth instead of relying on RGB to YUV formulas). If you find that any information is being reported incorrectly (ie, Audio channels = -1, etc), this indicates that your version of Avisynth is not recent enough, try installing 2.5.7 or newer.
In actuality, all this stuff is in some sense only scratching the surface of what can be done. Since the Avisynth c interface has been entirely wrapped into Python, it should be possible to write Avisynth plugins directly in Python (which would be usable as an AvsP macro, even if you don't have Python installed on your computer). Right now this would have limited usability, since currently there's no way to save the results of such a plugin to an avi, but with more work it should be possible. Anyway, I'm trying to release this version right now to make sure that everything is stable, I will release a bugfix version with no new features if there are any major problems, but in the future, hopefully these ideas will be further explored.
Another important change is that I went through the code and fixed several unicode issues, hopefully now there won't be any more unicode related problems. I also set up AvsP to dump errors to a text file as well as the pop-up error window, so if you ever find the error window flashing and immediately disappearing when you start up or close AvsP, you can see the message in the file named "avsp_error_log.txt" located in the same directory as AvsP.exe.
Some other changes worth mentioning. There's a new zoom option, "Fit inside window", this will fit the video such that it is entirely inside the window at all times (the older zoom option has been renamed to "Fill window" for clarity). There's a new way to specify cursor positions upon preset activation, you can even specify text selections, this is pretty cool stuff, read more about it here (http://avisynth.org/qwerpoi/Text.html#filter-presets). You can now keep macro variables in memory simply by declaring them as global, useful if you need to remember values between running macros, read more about it here (http://avisynth.org/qwerpoi/Macros.html#usage).
Anyway, since the display code went through some big changes, I'm anticipating potential stability issues with this release (although I'm hoping not, since I tested it on several machines with no problems). So be sure to report back with any crashes (remember all crashes are now logged to "avsp_error_log.txt") or any other inconsistencies.
Terranigma
24th April 2007, 23:51
Thanks for the update.
Hats off to you for your hard work :)
Dr.Khron
25th April 2007, 00:10
Yes, thank you very much.
Does this mean I can disable my FFDShow "raw video" VFW support now?
EDIT:
Yes, thats exactly what it means. :)
Thanks again for a cool program.
foxyshadis
25th April 2007, 02:27
One minor thing. I don't know if it's because of themes or what, but the automatic resize (which is improved in this release, now resizes after an error) is always just a couple of pixels too short for me, and creates a scroll bar. It's 6 or 7 pixels on mine.
qwerpoi
25th April 2007, 03:03
It would be nice if you could have another set of tabs for Sub-scripts, so that you didn't even have to save the SSA file to refresh the preview. Basically, if AvsP allowed you to handle and edit sub-scripts in the same way it handles AVS files, I'd be thrilled.
Sounds interesting, I'll give it some thought. I'm not sure what's the best way to approach it, though, having ssa files in the same tabs as avs scripts might be problematic.
Thanks for the update.
Hats off to you for your hard work :)
Thanks :)
Does this mean I can disable my FFDShow "raw video" VFW support now?
EDIT:
Yes, thats exactly what it means. :)
Thanks again for a cool program.
The display code has been changed to always output rgb32 (whereas before the frames sent to AvsP were either rgb32 or rgb24), this must have resolved the issue. I never experienced the problem, and I didn't explicitly try to fix the problem, but if it works now then everyone's a winner :)
One minor thing. I don't know if it's because of themes or what, but the automatic resize (which is improved in this release, now resizes after an error) is always just a couple of pixels too short for me, and creates a scroll bar. It's 6 or 7 pixels on mine.
Yeah, the "fit inside window" zoom needs a bit of polishing. I blame the wxScrolledWindow class for inaccurate calculation of scrollbar and window sizes - there's a bit of a fudge factor since scrollbars themselves take up pixel space, resulting in scrollbars sticking around in some cases when they should be removed. You'll notice (I believe) that the problem only shows up when both the window width and height are about the same as the video width and height, ie it's the scrollbars themselves that causes the window not to fit. Anyway, I'll try and have these types of issues with the new zoom mode fixed up by the next release.
chipzoller
25th April 2007, 03:14
Question: would it be possible when in preview mode and adjusting the slider to have the current frame output displayed instead of having to release the slider in place to see the frame?
~bT~
25th April 2007, 03:31
^ yes, options-->program settings-->video 1-->tick the 1st option.
@ qwerpoi
gr8 work with the constant updates. cheers!
I have a request.
poss to add a DONATE button? :)
krisq
25th April 2007, 08:12
O yes! Perfect job, qwerpoi! DONATE button is a must :)
Henrikx
25th April 2007, 09:19
The translation does make unnecessary work.
You delete lines of text,you do not say which lines of text you have deleted.
Example : Translation 1.3.7 AvsP Website = Line 488, in 1.3.8 Line 507.More time costs searches than the translation.
That is no more fun .
3ngel
25th April 2007, 11:46
Hi,
i'm testing your program right now (version 1.3.8) and i can say some fast suggestions:
1) Include in the compiled project the msvcr71.dll. At the moment it doesn't start if it doesn't find.
2) Add to the filter in the open dialog of the "Open..." menu the *.avi extension
3) Make an option to immediately open the preview window right after the loading of the script (or the .avi that becames script)
4) Make the preview window fit exactly the video size without any gray border up/down/left/right
5) Memorize the preview window status.
Example: if i open a first script, show preview window, than "Add tab" then open another script at the moment the preview window doesn't appear immediately but there's only white space, when i switch back to the first script the preview has gone.
6) Make an option to remember the frame status of each tab. At the moment if i select the frame 100 in the first script, then click tab on the other, it automatically render the frame 100 in the other, even if i previously was working on frame 80. Make an option to not render automatically and to remember the different frame number status.
7) Make an option to disable widht resizing of the window (in order to avoid creation of right grey border on preview window)
8) In automatic rendering within tabs, fix the seek bar position (now it doesn't reflect the frame count)
9) Remember (and autoselect) the last path in "Save Image as..." dialog box
10) Add a "Refresh" button on the bottom bar
Henrikx
25th April 2007, 11:57
Update Translation
qwerpoi
25th April 2007, 18:55
gr8 work with the constant updates. cheers!
I have a request.
poss to add a DONATE button? :)
O yes! Perfect job, qwerpoi! DONATE button is a must :)
Thanks for the praise. As for a donate button, I'd feel a bit guilty putting one up considering that there isn't one for Avisynth itself, and my stuff is being graciously hosted on the Avisynth site as well. So we'll see. If I ever do put one up, I'll make sure you guys are the first to know :)
The translation does make unnecessary work.
You delete lines of text,you do not say which lines of text you have deleted.
Example : Translation 1.3.7 AvsP Website = Line 488, in 1.3.8 Line 507.More time costs searches than the translation.
That is no more fun .
Thanks for the translation update, and sorry about the tedious work. Usually there aren't too many messages removed (or added) from one version to the next, this one was an exception. I'll see what I can do about it, I may try and put together a tool which takes the current translation file and an older version translation file and makes a new file with all new messages requiring translation on top.
1) Include in the compiled project the msvcr71.dll. At the moment it doesn't start if it doesn't find.
I don't think I'm allowed to distribute msvcr71.dll, I guess I should mention the requirement somewhere (but honestly, a huge number of programs require it, so it's a non-issue for most users).
2) Add to the filter in the open dialog of the "Open..." menu the *.avi extension
Should be doable, I'll try to have it in the next release.
3) Make an option to immediately open the preview window right after the loading of the script (or the .avi that becames script)
Is this really necessary? I imagine that most often you'd want to open a script to edit it, not necessarily view it right away. In the off case where you want to see it immediately, it's just a click or keyboard shortcut away.
4) Make the preview window fit exactly the video size without any gray border up/down/left/right
What are you referring to when you say "gray border"? If you are referring to scrollbars, they don't show up unless your video is too large to fit your monitor's screen resolution. If you are referring to the ~5 pixel gray border around the video frame, I can't get rid of them, otherwise it's possible for some of the video to get covered up by the window itself, a small buffer region is necessary.
5) Memorize the preview window status.
Example: if i open a first script, show preview window, than "Add tab" then open another script at the moment the preview window doesn't appear immediately but there's only white space, when i switch back to the first script the preview has gone.
6) Make an option to remember the frame status of each tab. At the moment if i select the frame 100 in the first script, then click tab on the other, it automatically render the frame 100 in the other, even if i previously was working on frame 80. Make an option to not render automatically and to remember the different frame number status.
The program remembers preview window status and frame status on a program level, not on a tab by tab basis. This was chosen intentionally, in order to streamline the comparison of videos. When comparing two videos (ie, one unfiltered, the other filtered), it makes it easier for the frame number to be remembered on the program level, so you don't have to keep synchronizing frames. As you point out, this is somewhat awkward when working with multiple unrelated videos, but to me this would seem to be the exception rather than the rule.
7) Make an option to disable widht resizing of the window (in order to avoid creation of right grey border on preview window)
Not sure what you mean here, you'll always get a right grey border if the video width is less than the program width. If you just want to stop AvsP from resizing the window ever, go to "Options -> Program settings..." and under the "Misc" tab uncheck "Allow AvsP to resize the winodw".
8) In automatic rendering within tabs, fix the seek bar position (now it doesn't reflect the frame count)
Not sure what you mean here. Can you provide an example?
9) Remember (and autoselect) the last path in "Save Image as..." dialog box
Good point, I'll try and have it in the next release.
10) Add a "Refresh" button on the bottom bar
Hmm, it's a reasonable request, but I'd rather not, I'd like to keep the number of buttons on the bottom bar at a minimum. Besides, AvsP will automatically refresh the video when you press any button on the bottom bar, so you can even left-click the video slider handle as a makeshift refresh button. Or use the keyboard shortcut F5.
Henrikx
25th April 2007, 19:33
@qwerpoi
THX
I also have translated only the new sentences, and copied (by Line) into the old translation 1.3.7.
Work without faults.
I must clean up the next version.1.3.9
Alain2
25th April 2007, 22:26
Thanks for this new version, again very good release with interesting features :)
The new fit inside window zoom is working well for me, and it is very useful :)
a few notes:
- bug : resizing the width of the script window makes a strange bug on the video window right side that is sort of resized as well (independant windows in my config)
- cosmetic : when the cursor is in the video window, the pos and hex values appear in the status bar (default status bar, didn't customize it yet ^^), but this slightly pushes the right side infos [edit] this is not always the case apparently..
- bug ? : maybe check the display code of the video window, I got the impression that when resizing the window it displays the resized picture and refreshes again a second time straight away, which then takes twice longer to display than before I think (important for heavy scripts like the ones I write ^^) ; seeking with the cursor below doesn't produce the double refresh, so it's probably just when the window is resized
- cosmetic : the cursors / toggles / etc area is not hidden automatically any more when there is no specific avsp code in scripts
++ and thanks again for all your work on this excellent avs tool!
lolent
26th April 2007, 01:57
I have discover this soft thanks to Alain2 (thanks to him :p).
AvsP is a very impressive and powerful Avisynth tool.
Thank you qwerpoi to have created this amazing program and continued to develop it. ;)
Kuukunen
26th April 2007, 05:00
First of all, it's a great tool. Thanks. This post really ran a bit long, originally I meant to only write about the memory thing and #2. Then I started remember all these nice ideas I've had while using AvsP. So I've really put thought in them and it would make me sad if you didn't do the same. I really think they're all worth implementing.
There has been troubles with memory usage when there's buggy filters. (One easy mistake would be to put all RemoveGrain dlls in the plugin folder.) It happens with AVSEdit too, but as it's so easy to load/close Avisynth with AvsP, it becomes very easily visible. Just toggling tags etc for a minute gives 500MB or so memory usage. Using the "release all video from memory", closing previews and tabs leaves still 250MB. Closing the program gives access violation error. ("blah blah memory could not be 'read'") Would it be somehow possible to cope with buggy filters? Would it be possible to make the error manifest when it happens, not when you close AvsP? Also the preview avs's are of course left behind.
There's also a small bug. When I edit a togglable tag manually, (change =0 to =1) the corresponding checkbox won't update. This might not be a bug, since fixing it would require that the tag&slider window to refresh at every update, but thought I'd let you know.
Ok, anyways, to the real stuff.
1) Ctrl-tab. Maybe it's because I use Opera and not Firefox, but I don't like the way Ctrl-tab works. I'd prefer that it would work the same way as in Opera or Alt-tab in Windows. I mean it shouldn't move to the next tab, but to the one that was last open. (And traverse the stack if you keep Ctrl down.) Why? Because it would be so much easier to jump back and forth between two tabs even though there are other tabs open. (If you want to compare them for example.) Now I have to make sure there are only two tabs open. You could move the "next tab" function to some other shortcut.
2) The preview window. I don't know how other people compare two scripts, but when I want to look at the small detail, I might open two scripts in two tabs. Then zoom the video to, say, 300%. The first annoyance is that it hides the script under the preview and I have to resize it. Then if I want to have the other script in the same position, I have to resize that tab's preview window to match the other. (Pixel perfect.) But the time it gets really annoying is when I do a typo on the script and it gives me error message. The preview window resizes itself to match the "video". I fix the typo and the preview fills the screen again! And of course I have to yet again get the right size to match the other tab. My solution: If some people like the way it currently handles, at least add two options: "Never ever resize the preview window." and "Preview window is the same size for all tabs."
3) Reopening a file. When I have a script open and I play around with it. If I notice it's not going in a good direction, I might want to get the previous save I run into some troubles. Even if I click Open and open the file, it refuses to do so. It would be great if opening a file would actually reopen it even if it's already there. Or better yet, if there was a "Reopen". (See #4) Ok, this is a small annoyance, closing the tab and then opening works, but still...
4) Multiple tabs of a same file. AvsP's sliders and togglable tags are great. So it would be good to have the possibility of having the same script open in two tabs so I'd be able to play around with the toggles and sliders and compare it to some other setting of the same script.
5) Information about video. I don't know how feasible this is to implement, but when comparing filters and their settings, sometimes it's very important to know how fast they are. It would rock to have small text somewhere that tells how fast the frame was rendered. (SPF or FPS) This idea could be taken further and you could have optional other stuff too, like PSNR displayed somewhere, but that's not as important as the time.
6) Misc. improvments on the interactive AvsP-only stuff. (I really don't know what to call them.) As you said, it might revolutionize the way I create scripts. I'm thinking about making a big meta-script that has all sorts of possibilities I can control with toggles and sliders. There are a couple of things I'd like before that though.
6.1) Export. It already saves the scripts in a format Avisynth can understand, but sometimes it might be nice to have a File->Export that saves the script so that there are no AvsP-stuff in comments and there wouldn't be as much empty lines. I think in normal save it should also consider only lines that really are empty as empty lines and remove lines with toggles, separators etc.
6.2) Radio buttons. It's a small usability improvement, but I'd really like it. There are checkboxes now, but it would be awesome to be able to select between two or more filters that do the same thing in different way using radio buttons. Now I have to deselect the other and select the other. On the list it would behave exactly the same as a checkbox, except that it looks like radio button of course, but in the script, it would have a second name to link it to other radio buttons, like: [filtersetname,filtername=1]
6.3) The tags&sliders window needs a new way of sorting things, mainly they should appear in the order they are in the script. I think the sliders shouldn't be separated from the checkboxes. So if I enable a filter using a togglable tag, the slider appears under that checkbox.
6.4) Nested checkboxes/radio buttons should be in the order of the starting tag, not the ending, and checkboxes should be able to hide other checkboxes/radio buttons like they hide sliders at the moment. For the sake of appearance and usability, it might be better if they were indented. Now that I think of it... things would be less messy if there was a possibility to hide the stuff that's under a checkbox/radio button. Like, by default toggling a tag on would display all things nested under it, but there's also a small arrow-thingy that can hide all of it without disabling the section.
6.5) Toggles/sliders with a same name. Again a minor usability thing. Would be fun to be able to use same names in the sliders. For example "strength" etc might be present in lots of filters. If this causes troubles internally, AvsP could handle the names combined with the "parent" toggle. For example "Deblocking/DeBlock/Strength". Or even better, handled with the line number so it would be possible to have a same name even on the same nesting level. It would also help in a situation where you want to be able to play around with the order of the filters. For example you could copy a section A to be before AND after section B. Then you could use a radio button to select if section A is really handled before or after B. (And the names of the sliders would be the same.)
6.6) Sliders work great, but sometimes I want to edit it a bit more precisely and I have to go to that part of the script and edit it. But if you're playing around with the slider, it would be faster to be able to edit the number directly. Simplest way of doing this would be to change the blue text that shows the slider's strength into a textbox.
6.7) Small naming and appearance things. There's really no need for "Toggle blah section". Just "blah" would be enough. People know what it means. Also, I'd like if it was possible to combine a separator and a checkbox for big meta-toggles like described in the next paragraph.
So all put together, for example I click on a checkbox for "Denoising" then a set of radio buttons appear that I could use to select the actual filter used. When I select one of those filters the slider(s) and toggles for its options appear.
I realize this makes writing Avisynth scripts very different. You could have a AvsP script file that can be used as a template to create Avisynth scripts. I don't know if some old school elite encoders like it because it might make things too "easy". :P
There's really no reason one wouldn't be able to make a huge AvsP-script that could be developed in its own thread. (Accompanied with a zip that has all the filters for it of course.)
Or you could have a AvsP script excerpts for specific filters. So you can copypaste it in your file to get sliders etc for its settings.
This is the future! Woo!
foxyshadis
26th April 2007, 16:27
Would it be somehow possible to cope with buggy filters? Would it be possible to make the error manifest when it happens, not when you close AvsP? Also the preview avs's are of course left behind.
I don't believe this is actually possible. I've been stung by it as well, but the problem is that the only way Avsp could do this is to generate an allocation map of everything it didn't allocate, and forcibly deallocate that, but you'd bascally have to reimplement a memory manager to do that reliably. That's why I was a fan of having avisynth in another process (and for crashes), but now that avsp is integrating much more tightly that isn't even feasible.
1) Ctrl-tab. Maybe it's because I use Opera and not Firefox, but I don't like the way Ctrl-tab works. I'd prefer that it would work the same way as in Opera or Alt-tab in Windows. I mean it shouldn't move to the next tab, but to the one that was last open. (And traverse the stack if you keep Ctrl down.) Why? Because it would be so much easier to jump back and forth between two tabs even though there are other tabs open. (If you want to compare them for example.) Now I have to make sure there are only two tabs open. You could move the "next tab" function to some other shortcut.
I'd hate that. I'd prefer ctrl+number to directly access the first ten tabs, and some function key to switch between the current and last-viewed tab. (Editplus uses F12 for this.) Your method is actually the default in firefox as well, they copied opera, but I've always found it completely impossible to navigate between more than a few tabs without always having memorized the order I last looked at everything, so I simply never use that feature. The current avsp behavior is the windows standard for ctrl-tab in MDI apps. (And ctrl-alt-tab isn't taken, for what it's worth.)
2) The preview window. I don't know how other people compare two scripts, but when I want to look at the small detail, I might open two scripts in two tabs. Then zoom the video to, say, 300%. The first annoyance is that it hides the script under the preview and I have to resize it. Then if I want to have the other script in the same position, I have to resize that tab's preview window to match the other. (Pixel perfect.) But the time it gets really annoying is when I do a typo on the script and it gives me error message. The preview window resizes itself to match the "video". I fix the typo and the preview fills the screen again! And of course I have to yet again get the right size to match the other tab. My solution: If some people like the way it currently handles, at least add two options: "Never ever resize the preview window." and "Preview window is the same size for all tabs."
Options->Misc->Allow Avsp to resize the preview window. :D
3) Reopening a file. When I have a script open and I play around with it. If I notice it's not going in a good direction, I might want to get the previous save I run into some troubles. Even if I click Open and open the file, it refuses to do so. It would be great if opening a file would actually reopen it even if it's already there. Or better yet, if there was a "Reopen". (See #4) Ok, this is a small annoyance, closing the tab and then opening works, but still...
Unintuitive feature time: Double click on one of the tabs. That will clone the current contents to a new tab. From there you can undo back to wherever you wanted to be, or close+reopen, whatever. I admit this is more of a workaround than a solution to your problem.
4) Multiple tabs of a same file. AvsP's sliders and togglable tags are great. So it would be good to have the possibility of having the same script open in two tabs so I'd be able to play around with the toggles and sliders and compare it to some other setting of the same script.
The tab double click again.
5) Information about video. I don't know how feasible this is to implement, but when comparing filters and their settings, sometimes it's very important to know how fast they are. It would rock to have small text somewhere that tells how fast the frame was rendered. (SPF or FPS) This idea could be taken further and you could have optional other stuff too, like PSNR displayed somewhere, but that's not as important as the time.
I wouldn't mind a performance metric. You can use avstimer to get a more granual profile, but a top-level overview is nice too. (I have a version of avstimer that can do float fps & spf, because sometimes I make scripts that need them....)
No issue with the whole #6 section, though 6.4 might be a bit too ambitious in the near term, although necessary. The main thing I'd add is that the syntax becomes unwieldy for working with a whole filter's arguments at once, because of the duplication of the filter & argument name in the title of each; a "whole filter" style of slider definition would make sense. But the UI generation are quite prickly, I understand that well enough that I've just avoided that chunk of avsp's code. >.>
Kuukunen
26th April 2007, 20:27
I'd hate that. I'd prefer ctrl+number to directly access the first ten tabs, and some function key to switch between the current and last-viewed tab. (Editplus uses F12 for this.) Your method is actually the default in firefox as well, they copied opera, but I've always found it completely impossible to navigate between more than a few tabs without always having memorized the order I last looked at everything, so I simply never use that feature. The current avsp behavior is the windows standard for ctrl-tab in MDI apps. (And ctrl-alt-tab isn't taken, for what it's worth.)
Well, the main point was that it would be somehow easily possible to switch between two tabs even though there are multiple open. Those suggestions would work fine too. (Or well, Ctrl-Alt-Tab might be a bit cumbersome.) I guess it's all a matter of preference, I use Ctrl-Tab in Opera all the time.
Options->Misc->Allow Avsp to resize the preview window. :D
Naturally options was the first place I looked. I noticed the option, but... I don't know if it's a bug or not, but it doesn't work that way. It's called "Allow AvsP to resize the window." (not preview) so I figured it might mean the whole window. Anyways, it's not doing what I want. When I typo, it will still resize the window and when I fix and have zoom on, it will resize it to take all space. The second half of my point was invalidated though. I was using the older version and apparently the new version has preview sized the same for all tabs. Yay.
Well #3 and #4 were just minor things anyways, not too important. Although usually when you open open a file again, you get the new content, in AvsP it's completely ignored. (Apparently) And yea, I didn't know you could double click a tab to copy it.
I wouldn't mind a performance metric. You can use avstimer to get a more granual profile, but a top-level overview is nice too. (I have a version of avstimer that can do float fps & spf, because sometimes I make scripts that need them....)
I like Kronos. But where could I get a avstimer that does floats? :o
Alain2
27th April 2007, 00:31
French translation updated
oh and one additional note following my previous post:
- The custom resizer for the video zoom method has disappeared from options.. Or am I not looking at the right place ? Or have you removed it because of the new video directly generated via avisynth layout ? What is the method used now, and is this feature coming back in future releases ?
foxyshadis
27th April 2007, 02:12
Naturally options was the first place I looked. I noticed the option, but... I don't know if it's a bug or not, but it doesn't work that way. It's called "Allow AvsP to resize the window." (not preview) so I figured it might mean the whole window. Anyways, it's not doing what I want. When I typo, it will still resize the window and when I fix and have zoom on, it will resize it to take all space. The second half of my point was invalidated though. I was using the older version and apparently the new version has preview sized the same for all tabs. Yay.
I can't replicate your exact problem, but I found another problem related to zoom: With resize enabled, going from 25%->200% does nothing. In fact it doesn't resize in zooms higher than 100% at all. I can see both good and bad sides to that, though. It might be that the zoom+resize code is just a little iffy.
I like Kronos. But where could I get a avstimer that does floats? :o
http://foxyshadis.slightlydark.com/random/AvsTimer.zip
The funny thing is that float support was built-in from the beginning, but kassandro disabled it in his original release. Weird. All I did was enable it and add an spf option. I also updated the docs with the new filter definition.
qwerpoi
27th April 2007, 02:25
- bug : resizing the width of the script window makes a strange bug on the video window right side that is sort of resized as well (independant windows in my config)
Not sure what you mean. Can you give a specific example?
- cosmetic : when the cursor is in the video window, the pos and hex values appear in the status bar (default status bar, didn't customize it yet ^^), but this slightly pushes the right side infos [edit] this is not always the case apparently..
Yeah, when the status bar message gets too long for the window, it behaves a little strangely. I didn't write that code, so a fix is not possible unless I write my own status bar from scratch. Generally speaking the problem will only show up when the window size is relatively small, so you can either resize the window or customize the status bar message to something smaller.
- bug ? : maybe check the display code of the video window, I got the impression that when resizing the window it displays the resized picture and refreshes again a second time straight away, which then takes twice longer to display than before I think (important for heavy scripts like the ones I write ^^) ; seeking with the cursor below doesn't produce the double refresh, so it's probably just when the window is resized
- cosmetic : the cursors / toggles / etc area is not hidden automatically any more when there is no specific avsp code in scripts
These problems aren't really bugs, they only occur when you use the "fit inside window" zoom mode. In this mode a video refresh is necessary whenever the window changes size. Also in this mode I forced the sub-windows to stay in the same positions when you switch tabs, to keep the video window height and width constant. Keep in mind that if you are comparing videos with the same resolution, you don't need to use the "fit inside window" option, I changed the display code to keep the video window height constant when switching between tabs with the same video resolution.
I have discover this soft thanks to Alain2 (thanks to him :p).
AvsP is a very impressive and powerful Avisynth tool.
Thank you qwerpoi to have created this amazing program and continued to develop it. ;)
You're welcome, glad you find the program useful.
There has been troubles with memory usage when there's buggy filters.
I agree that AvsP is a memory hog, especially working with big videos and intensive filters. I can't guarantee I can do anything about it, but I will give some consideration to your concerns and try and determine the best way to handle it.
When I edit a togglable tag manually, (change =0 to =1) the corresponding checkbox won't update.
I'll check it out, thanks for letting me know.
1) Ctrl-tab. Maybe it's because I use Opera and not Firefox, but I don't like the way Ctrl-tab works. I'd prefer that it would work the same way as in Opera or Alt-tab in Windows.
I don't really use Ctrl+Tab much, it's just sort of the standard for tabbed text editors. If the video preview is visible and has focus, you can actually use the number keys to jump to the appropriate tab (counting from zero, the "0" or the "~" key jumps to the zeroth tab, "1" jumps to the first tab, etc.) One idea I had a long time ago was to put a little bitmap on each tab whenever the video preview had focus, where each bitmap would be the appropriate keyboard shortcut to jump to it, basically to make the feature less invisible. I'll take your thoughts and foxyshadis' thoughts into consideration, and try and come up with something everyone can use.
2) The preview window. I don't know how other people compare two scripts, but when I want to look at the small detail, I might open two scripts in two tabs. Then zoom the video to, say, 300%. The first annoyance is that it hides the script under the preview and I have to resize it. Then if I want to have the other script in the same position, I have to resize that tab's preview window to match the other. (Pixel perfect.) But the time it gets really annoying is when I do a typo on the script and it gives me error message. The preview window resizes itself to match the "video". I fix the typo and the preview fills the screen again! And of course I have to yet again get the right size to match the other tab. My solution: If some people like the way it currently handles, at least add two options: "Never ever resize the preview window." and "Preview window is the same size for all tabs."
Valid complaints, and as you point out, the new version fixes one of them (same resolution videos keep the same window position when switching tabs now). To fix the other problem (error clips), I can change the code to NOT change the video window height whenever an error clip is shown. That should cover most cases, I'll give it a bit more thought, I may add your suggested options if it simplifies things. Ah, I yearn for the days when AvsP didn't let you resize the video window at all, obviously limited, but definitely simpler for me :)
3) Reopening a file. When I have a script open and I play around with it. If I notice it's not going in a good direction, I might want to get the previous save I run into some troubles. Even if I click Open and open the file, it refuses to do so. It would be great if opening a file would actually reopen it even if it's already there. Or better yet, if there was a "Reopen". (See #4) Ok, this is a small annoyance, closing the tab and then opening works, but still...
Sounds reasonable, I'll consider it. What I'll likely do is if you try to open a file that's already open with changes, prompt you to reload and overwrite those changes. For now be aware that AvsP has an infinite undo, so you could keep on hitting Ctrl+Z until you get back to a good point or the original state.
4) Multiple tabs of a same file.
Might cause some problems, so I'd rather not, since as foxyshadis pointed out double-clicking the tab to make a copy will get you the result you need.
5) Information about video. I don't know how feasible this is to implement, but when comparing filters and their settings, sometimes it's very important to know how fast they are. It would rock to have small text somewhere that tells how fast the frame was rendered. (SPF or FPS) This idea could be taken further and you could have optional other stuff too, like PSNR displayed somewhere, but that's not as important as the time.
Interesting suggestion, but it also sounds like a lot of work :), so I'll add it to my to-do list but I can't guarantee how long it will take until I look into it some more.
6) Misc. improvments on the interactive AvsP-only stuff. (I really don't know what to call them.) As you said, it might revolutionize the way I create scripts. I'm thinking about making a big meta-script that has all sorts of possibilities I can control with toggles and sliders. There are a couple of things I'd like before that though.
I have been working on a completely different way of constructing user sliders, based upon a few of the observations you brought up. Although it may not address all stuff you brought up in 6.1 - 6.7 (you weren't kidding about the long post :)), after the next version is released, we can determine what still needs to be done.
French translation updated
oh and one additional note following my previous post:
- The custom resizer for the video zoom method has disappeared from options.. Or am I not looking at the right place ? Or have you removed it because of the new video directly generated via avisynth layout ? What is the method used now, and is this feature coming back in future releases ?
Thanks for the translation update. The custom resizer did indeed disappear, due to the fact that the video is being generated through Avisynth directly. The resizer is still an Avisynth resize, a BicubicResize with default weights. Bringing back the custom resize option will take some work, I'll try and bring it back in a release or two.
qwerpoi
27th April 2007, 02:36
I can't replicate your exact problem, but I found another problem related to zoom: With resize enabled, going from 25%->200% does nothing. In fact it doesn't resize in zooms higher than 100% at all. I can see both good and bad sides to that, though. It might be that the zoom+resize code is just a little iffy.
Looks like you posted about the same time as I did. The behavior you're describing is not a bug, basically when you refresh a video with the program resize option enabled, AvsP determines the necessary program size to show the video without scrollbars, along with the user sliders (if any are defined). If it turns out that the necessary program size is bigger than the current screen resolution (ie, you're working with a honking big video), then AvsP doesn't bother to resize the program window, and your video will show up with scrollbars accordingly.
foxyshadis
27th April 2007, 02:47
In pyavs_avifile.py, how about changing:
resizeScript = 'Import("%s").ConvertToRGB().BicubicResize(%i,%i)' % (previewname, fitWidth, fitHeight)
to
resizeScript = 'Import("%%s").ConvertToRGB().%s' % 'BicubicResize(%i,%i)'
resizeScript = resizeScript % (previewname, fitWidth, fitHeight)
Where the Bicubic in this case is a placeholder for the actual option string, however that would get transferred into the avs class. Or really, even just making the name a string placeholder would work, the only routine use of custom arguments here are lanczos/blackman taps.
Perhaps it could check for the nearest round number percentage, so that if 100% fits but 200% doesn't, then going from 25%->200% will at least give you a window size of 100%. I'm not too worried about it though.
qwerpoi
27th April 2007, 03:03
In pyavs_avifile.py, how about changing:
resizeScript = 'Import("%s").ConvertToRGB().BicubicResize(%i,%i)' % (previewname, fitWidth, fitHeight)
to
resizeScript = 'Import("%%s").ConvertToRGB().%s' % 'BicubicResize(%i,%i)'
resizeScript = resizeScript % (previewname, fitWidth, fitHeight)
Where the Bicubic in this case is a placeholder for the actual option string, however that would get transferred into the avs class. Or really, even just making the name a string placeholder would work, the only routine use of custom arguments here are lanczos/blackman taps.
Yeah, that'll work, but pyavs_avifile.py is the backwards compatible version, pyavs.py is the one that communicates directly with Avisynth (I should have mentioned this somewhere, the source files have pretty confusing names now :(). The new display method does not use temporary preview scripts anymore, since they were no longer necessary. Therefore an Avisynth Invoke() is required to generate the resize. So in order to implement the custom resize, I need to parse the arguments out of the string - not impossible, but if it's done incorrectly the video preview will fail without apparent reason. If I don't allow for custom arguments, then it should be simple to let the user choose which Avisynth resize to use. But that would seem like a half-way customization to me, I imagine the only ones using this feature would be people with advanced customization needs.
Perhaps it could check for the nearest round number percentage, so that if 100% fits but 200% doesn't, then going from 25%->200% will at least give you a window size of 100%. I'm not too worried about it though.
Interesting. Might give it a shot, although I might not - your approach would definitely be more correct and less confusing, but I'm not too worried about it either :).
krisq
27th April 2007, 11:00
I don't know why but 'Video Information' window doesn't give me parity info. It's always displaying 'none'. Info() in script has no problem with this.
Dr.Khron
27th April 2007, 13:14
For now be aware that AvsP has an infinite undo, so you could keep on hitting Ctrl+Z until you get back to a good point or the original state.
AS far as I'm concerned, this is the number one feature that makes AvsP better then using Notepad.
Plus, the little asterix on the tab to tell you when you've re-matched to the saved copy is brilliant. Simple but very useful.
Sometimes is just nice to work backwards, kind of a "what was I thinking?" thing on your way to back to saved state.
One question, I havn't quite figured out how the Sessions work for bookmarks... Its not possible to save bookmarks seperatley, is it? They seem to save with the session, but they also auto-save with the current session. Sometimes tho, I've lost the bookmarks if I havn't made a deliberate effort to save a session.
Alain2
27th April 2007, 21:25
Not sure what you mean. Can you give a specific example?
before (http://img184.imageshack.us/img184/5745/tempwq9.jpg)
after (http://img361.imageshack.us/img361/4595/tempgd8.jpg) (resize of the width of the script window)
[edit]first time in a long time I see a crash, nice feature the new error log :)
[Fri Apr 27 23:37:29 2007]
Traceback (most recent call last):
File "AvsP.py", line 5153, in OnMenuVideoSwitchMode
File "AvsP.py", line 7870, in ShowVideoFrame
File "AvsP.py", line 8216, in UpdateScriptAVI
File "pyavs.pyo", line 237, in __init__
ZeroDivisionError: float division
Traceback (most recent call last):
File "AvsP.py", line 6310, in OnPaintVideoWindow
File "AvsP.py", line 8441, in PaintAVIFrame
AttributeError: 'NoneType' object has no attribute 'DrawFrame'
Traceback (most recent call last):
File "AvsP.py", line 6310, in OnPaintVideoWindow
File "AvsP.py", line 8441, in PaintAVIFrame
AttributeError: 'NoneType' object has no attribute 'DrawFrame'
Traceback (most recent call last):
File "AvsP.py", line 6310, in OnPaintVideoWindow
File "AvsP.py", line 8441, in PaintAVIFrame
AttributeError: 'NoneType' object has no attribute 'DrawFrame
[...]
Btw I didn't stress it enough but I do love the new fit inside window zoom, that's exactely the zoom option I was hoping you to add :D
ChiDragon
28th April 2007, 03:55
I don't know why but 'Video Information' window doesn't give me parity info. It's always displaying 'none'. Info() in script has no problem with this.
It appears that's down to this:
if v.IsFrameBased:
fieldframebased = _('Frame Based')
parity = _('None')
parityshort = _('None')
else:
fieldframebased = _('Field Based')
if parity == 0:
parity = _('Top Field First')
parityshort = _('TFF')
else:
parity = _('Bottom Field First')
parityshort = _('BFF')
qwerpoi, Frame/Field Based isn't an indication of progressive/interlaced. :p
That said, I'm getting BFF reported even with AssumeTFF().SeparateFields() and SeparateFields().AssumeTFF().
Veiga
28th April 2007, 04:18
qwerpoi.
Nice work again. Thanks
new update translation for v138
AlanHK
28th April 2007, 05:07
I've used Avsp for a few days, so have no doubt missed a few things, I've spent a few hours reading this thread but 672 messages is a lot to digest....
To me the killer feature is sliders. But these seem oddly de-emphasised in the GUI.
Though the screenshots show them, which is what first drew my attention to the project, I had to spend quite a while rummaging through the interface to find how to use them.
For instance, the r-click has "Avisynth function/Autocomplete". No mention of "sliders". The "function definition" has "presets", again, the word "slider" is absent. All these presets are initially blank, so I was just copying and pasting my slider definitions from an external text file till I stumbled across references to the "preset" method of storing them. I think there's room to label this, say "Preset (values and sliders)". Though users will surely want to customise these, wouldn't it be useful to have sliders defined out of the box for most functions? Though there is a facility for importing and exporting these, is there any repository that collects useful definitions?
A smaller issue, the blue "initial value" seems to be reset when a tab is opened, or reopened. So after playing with the sliders and switching back and forth between a few tabs, there is no way to restore the default values except by deleting and reinserting the function. I understand why this happens, but the word "initial" is a bit misleading. Perhaps it could be mentioned in the docs.
I have a problem with the r-click menu. If I have the cursor in a function name I've just written, and r-click and choose "Show calltip", nothing happens. If I choose "Autocomplete", it shows the calltip. The other functions work as expected.
qwerpoi
28th April 2007, 07:06
I don't know why but 'Video Information' window doesn't give me parity info. It's always displaying 'none'. Info() in script has no problem with this.
qwerpoi, Frame/Field Based isn't an indication of progressive/interlaced. :p
That said, I'm getting BFF reported even with AssumeTFF().SeparateFields() and SeparateFields().AssumeTFF().
D'oh. That's the downside of releasing the source, people get to poke around and see what kind of idiot you are :). Clearly I'm no interlacing guru. I'll try and have this stuff worked out by the next release, in the meantime if you want your parity info you'll have to rely on the old Info() standby.
One question, I havn't quite figured out how the Sessions work for bookmarks... Its not possible to save bookmarks seperatley, is it? They seem to save with the session, but they also auto-save with the current session. Sometimes tho, I've lost the bookmarks if I havn't made a deliberate effort to save a session.
You're right, bookmarks save with sessions. It may be possible that you didn't lose any bookmarks between sessions, the bookmarks won't show up visually under the frame slider if for example your current video has only 100 frames and all the bookmarks are larger than 100. You can right-click the video and check out the "Navigate -> Go to bookmark" menu to be sure.
before (http://img184.imageshack.us/img184/5745/tempwq9.jpg)
after (http://img361.imageshack.us/img361/4595/tempgd8.jpg) (resize of the width of the script window)
[edit]first time in a long time I see a crash, nice feature the new error log :)
Btw I didn't stress it enough but I do love the new fit inside window zoom, that's exactely the zoom option I was hoping you to add :D
Thanks for pointing out the bugs, I'll try and figure out what's going on. And I'm glad you like the fit inside window option, it was surprisingly difficult to implement properly. Still needs some ironing out, but I'm happy that currently it's more-or-less functional.
qwerpoi.
Nice work again. Thanks
new update translation for v138
Thanks for the translation update, I'll update the links when the attachment is approved.
To me the killer feature is sliders. But these seem oddly de-emphasised in the GUI.
Though the screenshots show them, which is what first drew my attention to the project, I had to spend quite a while rummaging through the interface to find how to use them.
Yeah, I admit there's a lot to rummage through, so user sliders may not be the easiest thing to learn at first. In the beginning there were a lot fewer features, so I'd argue it was simpler to figure everything out, c'est la vie :). I guess I need to make it more prominent, but if you're totally lost towards the basic usage of AvsP, you should check out the animated flash demo on the AvsP website (there's a link to it directly in AvsP, in the "Help -> Animated Tutorial" menu). Also you can read the "User sliders" section in the docs (again in the "Help -> User sliders" menu).
A little aside: To me AvsP's killer feature isn't user sliders, it's the tabbed text editor, which allows for direct video comparisons (an absolute must in video editing) without the need for lining up windows. But that's sort of hard to sell at a glance, user sliders have that instant visual appeal (and of course they're very useful themselves). Generally I imagine most people will give the program a shot because of user sliders, but hopefully they stick around because the program is well rounded and has every feature you could possibly want from an Avisynth editor. Perhaps too many features :), but ultimately that never bothered me much, since I figure at the least anyone who has used Notepad with Avisynth will be right at home, and figure out any extra features along the way.
As for your concerns about user slider usage, as I've mentioned a couple of times earlier, I'm working on a new method of generating user sliders to tackle some of the clunkier aspects of the current approach. This includes putting together some form of database for all existing filters (not trivial). I still have a lot of work to do, I think I might post a thread in the Avisynth dev forum with a general outline of the new approach, such that people can offer feedback and possibly help out with the generation of the complete database.
I have a problem with the r-click menu. If I have the cursor in a function name I've just written, and r-click and choose "Show calltip", nothing happens. If I choose "Autocomplete", it shows the calltip. The other functions work as expected.
Ah, the "Show calltip" function only works when the cursor is inside the function arguments (now that you point it out, I should change this behavior). The "Autocomplete" function is supposed to be used when you have only typed in a portion of a function name, it will then bring up the list of filters which start with that portion of text. Autocomplete is called automatically when you start a word with a capital letter, the menu option is only there if the text you type started with a lower case letter or for some reason you closed the autocomplete list window (by clicking away). You generally don't need to use either function, since most of the time they are activated automatically. The reason they don't have much in the way of explanation is because they are standard features in many programming editors. Sorry about any confusion they may have caused.
AlanHK
28th April 2007, 07:50
you should check out the animated flash demo on the AvsP website (there's a link to it directly in AvsP, in the "Help -> Animated Tutorial" menu).
I saw that, it's what made me persist in working out how to do the things shown there.
A little aside: To me AvsP's killer feature isn't user sliders, it's the tabbed text editor
The sliders are, to me anyway, brand new. The tabbed screens are very useful, but before I was using several instances of VDub and clicking between them. Avsp is obviously much better, keeping the screens synchronised, etc, but the tabs are not new functionality.
Ah, the "Show calltip" function... The reason they don't have much in the way of explanation is because they are standard features in many programming editors.
OK. The last programming editor I used was vi, and before that punchcards. So I'm not familiar with IDEs. These days I use Ultraedit for the scraps of code I write.
Henrikx
28th April 2007, 10:29
Error ?
http://img291.imageshack.us/img291/9017/avsperrorfx4.th.jpg (http://img291.imageshack.us/my.php?image=avsperrorfx4.jpg)
ChiDragon
29th April 2007, 04:13
qwerpoi, small thing. AVS files with "&" in the filename are shown with an underline in its place. Can you change the label style or something so that this doesn't happen?
lolent
29th April 2007, 15:32
I have some troubles when I try to play videos with any kind of scripts (just with directshowsource or with a script that has source load + resize + crop, etc...)
The preview doesn't function with internal and external player.:confused:
http://img58.imageshack.us/img58/8991/playingerroryl0.png
PS : I use Avisynth 2.5.7 & AvsP 1.3.8
chipzoller
29th April 2007, 16:20
Is the resize calculator under "tools" still scheduled to be included at some point?
Terranigma
29th April 2007, 17:39
I have some troubles when I try to play videos with any kind of scripts (just with directshowsource or with a script that has source load + resize + crop, etc...)
The preview doesn't function with internal and external player.:confused:
http://img58.imageshack.us/img58/8991/playingerroryl0.png
PS : I use Avisynth 2.5.7 & AvsP 1.3.8
Since I assume your sources are YV12, I suggest you need a YV12 Decoder. Check karl_lillevold's Post (http://forum.doom9.org/showthread.php?p=339383#post339383) and install Helix YV12
lolent
29th April 2007, 22:47
I have Helix YV12 codec install on my computer, I don't think it's that...
Wilbert
29th April 2007, 23:01
You need to set vidc.yv12="i420vfw.dll" in your registry file. Look it up in the YV12 faq if you want to know how to do that.
~bT~
30th April 2007, 00:16
edited: found my answer.
lolent
30th April 2007, 16:44
You need to set vidc.yv12="i420vfw.dll" in your registry file. Look it up in the YV12 faq if you want to know how to do that.
thanks Wilbert, I will have a look. :)
qwerpoi
30th April 2007, 18:29
Sorry for the lack of replies recently, been having some ugly computer issues, resulting in an os reinstall. Thankfully I didn't lose any data, and I've nearly got everything running back to normal now.
Error ?
http://img291.imageshack.us/img291/9017/avsperrorfx4.th.jpg (http://img291.imageshack.us/my.php?image=avsperrorfx4.jpg)
qwerpoi, small thing. AVS files with "&" in the filename are shown with an underline in its place. Can you change the label style or something so that this doesn't happen?
Thanks for bringing up these bugs, I'll try and have them fixed by the next release.
I have some troubles when I try to play videos with any kind of scripts (just with directshowsource or with a script that has source load + resize + crop, etc...)
The preview doesn't function with internal and external player.:confused:
As already mentioned, it's more of an Avisynth related issue than an AvsP issue, verified by the fact that the external player doesn't work either. That being said, the error message that pops up in AvsP is surely cryptic, so I'll try and catch that exception and have it report something more meaningful when such an error occurs.
Is the resize calculator under "tools" still scheduled to be included at some point?
Kind of, kind of not. I mentioned it a bit here (http://forum.doom9.org/showthread.php?p=992028#post992028).
chipzoller
30th April 2007, 19:28
@qwerpoi
PM sent with model for your calculator.
Rachima
30th April 2007, 22:38
Hi qwerpoi,
I also post my request from PM here to the thread. Maybe that someone who read here, know about Python and the COM-Interface and can give some help.
... would it be possible for you to support Windows COM-Interface by Macro?
I have written a Tool for Visual Colorcorrection (http://forum.doom9.org/showthread.php?t=125275), what would be very useful to have directly in the AvsP. Also there may be other people like me, that don't know Python, but e.g. VB6. For those the COM-Interface would be very helpful, too.
For some testing I have created a little package with a dummy_com.dll and dummy.exe, and also an example with PHP calling the app via COM. It is located here: COM_Test.zip (http://biriba.de/avisynth/COM_Test.zip)
Seems interesting, I'll definitely give it a shot. You should be aware that I'm kind of swamped at the moment, so it might not be immediate, but I'll do my best to make sure it happens. In my estimate it should be doable (using either the Python pywin32 library or possibly the Python ctypes library), the biggest concern there would be increasing the size of the AvsP executable by including those libraries. But I'll take a further look into it.
lolent
1st May 2007, 00:54
You need to set vidc.yv12="i420vfw.dll" in your registry file. Look it up in the YV12 faq if you want to know how to do that.
I do that but it's not solve my problem, I have the same error message in AvsP Error Window... :-/
Rachima
1st May 2007, 10:06
Hi qwerpoi,
I have done some Recherche to that COM-Stuff with Python. As you mentioned, it needs e.g. Pythons win32com (win32?) or ctypes library.
More common used with ActiveX-DLLs is the win32com. Also there are two ways to call a COM-App with it:
A)
import win32com.client
myCom = win32com.client.Dispatch("MYLIB.MYLIB")
This way, the called App 'lives' directly in the AvsP.exe.
So if the ComApp crashes, AvsP crashes too. :(
B)
import win32com.client
myCom = win32com.client.DispatchEx("MYLIB.MYLIB")
This way called, the App is surrogated by dllhost.dll.
In case it crashes now, the AvsP.exe is unconcerned! :)
For the COM_Test.zip (http://biriba.de/avisynth/COM_Test.zip), the Macro may look something like that:
import win32com.client
# get Text of Script in current selected Tab
# better this should be not all text, but
# from start of Document to current Cursor-Position
inputText = GetText()
# create the COM-Object
vcc = win32com.client.DispatchEx("vcc4avs.cls_Test")
# call the Dialog and wait until it closes
outputText = vcc.OpenDialog(inputText)
# insert any generated Code at CursorPosition
InsertText(outputText)
# release the COM-Object
del vcc # is this right way ??
Hope this help a bit, so you have more time to concentrate
to the major things.
Rachima
martino
1st May 2007, 19:12
I don't know whether this was suggested before, but you know when you drag an AVI file into a script in AvsP it automatically places AVISource() to load the video. The same with DirectShowSource() for other types of video files. Would it be possible to do the same with dragging DLL files, so it would do LoadPlugin("location_of_file.dll)?
And the second one might be a bit tricky, Import() for *.avsi files? I know that these don't have to be just functions, but usually they are...
Thank You
I don't know whether this was suggested before, but you know when you drag an AVI file into a script in AvsP it automatically places AVISource() to load the video. The same with DirectShowSource() for other types of video files. Would it be possible to do the same with dragging DLL files, so it would do LoadPlugin("location_of_file.dll)?
And the second one might be a bit tricky, Import() for *.avsi files? I know that these don't have to be just functions, but usually they are...
Thank You
You can already do both. Check 'Options/Extension Templates...' ;)
Terranigma
1st May 2007, 21:52
I do that but it's not solve my problem, I have the same error message in AvsP Error Window... :-/
lolent, could you post your script?
I would'nt of said anything about helix yv12, had I seen the attached image. it could be a script error, like a missing bracket, or perhaps you're trying to use something that's not compatible. I've gotten a similar message like that earlier when I was trying to use an improper custom avisynth script.
lolent
2nd May 2007, 01:09
I just load my d2v file (made with DGIndex 1.4.8) by drag and drop it into AvsP, nothing more in the script but I can't play the file and I don't no why :(
Aeolis
2nd May 2007, 16:47
Hello folks,
I really would like to congratulated AvsP developer for its wonderful work. Excellent software! I have tried to run AvsP 1.38 in my system, but it never runs it always displays this error log:
[Wed Apr 25 12:13:09 2007]
Traceback (most recent call last):
File "AvsP.py", line 9301, in ?
File "wx\_core.pyo", line 7700, in __init__
File "wx\_core.pyo", line 7352, in _BootstrapApp
File "AvsP.py", line 9293, in OnInit
File "AvsP.py", line 2988, in __init__
File "AvsP.py", line 3407, in getOptionsDict
UnicodeEncodeError: 'ascii' codec can't encode characters in position 28-29: ordinal not in range(128)
Somebody help me! I really love this software because I use Avisynth several times for video editing, so AvsP is a must for me. Please, any ideas?
See you later,
Aeolis
ChiDragon
2nd May 2007, 19:12
Sounds like maybe you have some non-English letters in your path that AvsP is having trouble with.
Aeolis
2nd May 2007, 19:34
Hello folks,
Thank you ChiDragon. My current path to AvsP is:
C:\AvsP\AvsP.exe
See you later,
Aeolis
ChiDragon
3rd May 2007, 01:04
I meant the path to your AviSynth script, sorry for being unclear.
Rachima
3rd May 2007, 09:04
Hi qwerpoi,
it's me again, :)
maybe there is an alternative solution for COM. For my app it is possible to use PIPE instead of COM. I have done a test with new installed Python on my system :) :
import subprocess
process = subprocess.Popen('C:/test.exe', shell=True, stdout=subprocess.PIPE)
process.wait()
Text = process.stdout.read()
This works on system, but not with AvsP-Macro.
Error-MsgBox is: "an integer is required"
and it is meant to "stdout=subprocess.PIPE" in Popen
I also have tried "stdout=-1", what work on system too, but also not in AvsP-Macro. (AvsP binary Version 1.3.7 + 1.3.8)
(My PythonVersion on system is 2.5)
Rachima
Aeolis
3rd May 2007, 13:13
Hello folks,
Thank you very much again ChiDragon, but I think that I wasn't clear enough.
Until today AvsP main window has never open in my PC. I mean I always click its .exe, a log windows pop-up and close, after that nothing more and I have to go to AvsP directory to read the error log. That is my problem, any ideas?
See you later,
Aeolis
foxyshadis
3rd May 2007, 14:43
That particular location is trying to find the location of the avisynth install, so whatever location is in HKLM\Software\Avisynth\@Default in the registry is probably pointing to a location with unicode characters in it. value.encode('ascii') fails on those types of conversions.
I guess one fix would be to move avisynth into another place, like the avsp folder, for now.
Something that'll help people in the future would be replacing line 3399-3400,
if os.path.isdir('C:\\Program Files\\AviSynth\\'):
self.options['avisynthdir'] = 'C:\\Program Files\\AviSynth\\'
with
if os.path.isdir(os.environ.get("PROGRAMFILES")+'\\AviSynth\\'):
self.options['avisynthdir'] = os.environ.get("PROGRAMFILES")+'\\AviSynth\\'
which will work with international installs and anything on non-standard drives, even though that won't fix this exact error. For fixing, is .encode('ascii') necessary? It works fine without, but I also haven't tested it on a folder with upper characters.
AlanHK
3rd May 2007, 17:58
Is there a function to get the bookmark list as text?
I know I could make a macro if there isn't, but would rather not reinvent the wheel.
Also, I saw a function "Insert bookmark Trims (keyboard shortcut Ctrl-I), AvsP will insert a sequence of Trim commands into your script based on the bookmarks" which appears to not be in the current version, perhaps seen as replaced by the Trim Editor. If so, is there a way for the Trim editor to use bookmarks?
And more ambitiously, is there a way to input bookmarks &/or trims as a list instead of through the GUI?
qwerpoi
3rd May 2007, 21:26
Hello folks,
I really would like to congratulated AvsP developer for its wonderful work. Excellent software! I have tried to run AvsP 1.38 in my system, but it never runs it always displays this error log:
[Wed Apr 25 12:13:09 2007]
Traceback (most recent call last):
File "AvsP.py", line 9301, in ?
File "wx\_core.pyo", line 7700, in __init__
File "wx\_core.pyo", line 7352, in _BootstrapApp
File "AvsP.py", line 9293, in OnInit
File "AvsP.py", line 2988, in __init__
File "AvsP.py", line 3407, in getOptionsDict
UnicodeEncodeError: 'ascii' codec can't encode characters in position 28-29: ordinal not in range(128)
Somebody help me! I really love this software because I use Avisynth several times for video editing, so AvsP is a must for me. Please, any ideas?
See you later,
Aeolis
It looks like foxyshadis is right, basically AvsP is supposed to get the Avisynth installation directory from the registry but choked on the unicode pathname. It looks like I'll release a bugfix version as soon as I can (hopefully within the week, but I can't guarantee it). The bugfix version will have no new messages to make it easier on translators.
Hi qwerpoi,
it's me again, :)
maybe there is an alternative solution for COM. For my app it is possible to use PIPE instead of COM. I have done a test with new installed Python on my system :) :
import subprocess
process = subprocess.Popen('C:/test.exe', shell=True, stdout=subprocess.PIPE)
process.wait()
Text = process.stdout.read()
This works on system, but not with AvsP-Macro.
Error-MsgBox is: "an integer is required"
and it is meant to "stdout=subprocess.PIPE" in Popen
I also have tried "stdout=-1", what work on system too, but also not in AvsP-Macro. (AvsP binary Version 1.3.7 + 1.3.8)
(My PythonVersion on system is 2.5)
Rachima
I get the same error using AvsP 1.3.8, which was compiled using Python 2.4. I don't get the error when compiling AvsP with Python 2.5. So hopefully the next release will allow things to work properly. If you could use subprocess instead of win32com.client, that would be fantastic, since it will keep the distribution size down. I'll still consider including win32com if there are other developers who absolutely require it.
Is there a function to get the bookmark list as text?
I know I could make a macro if there isn't, but would rather not reinvent the wheel.
Also, I saw a function "Insert bookmark Trims (keyboard shortcut Ctrl-I), AvsP will insert a sequence of Trim commands into your script based on the bookmarks" which appears to not be in the current version, perhaps seen as replaced by the Trim Editor. If so, is there a way for the Trim editor to use bookmarks?
And more ambitiously, is there a way to input bookmarks &/or trims as a list instead of through the GUI?
Other than a macro, there isn't a way to save the bookmark list as a text file. In case someone wants it, here's a simple macro to do it:
filename = avsp.GetSaveFilename(title='Save bookmarks to text file')
f = open(filename, 'w')
for bm in avsp.GetBookmarkList():
f.write(str(bm)+'\n')
f.close()
Also, you're correct, the function "Insert bookmark trims" was removed and replaced with the trim editor. If you want to use the bookmarks for trimming you can write a macro, but it may make more sense to simply insert selection start/stop points using the Home and End keyboard shortcuts instead of using bookmarks.
And currently there's no way to input bookmarks other than the gui or saving a session. If it would be helpful, I could add a macro to set bookmarks, that way you could set bookmarks from a given text file.
AlanHK
4th May 2007, 04:58
Other than a macro, there isn't a way to save the bookmark list as a text file. In case someone wants it, here's a simple macro to do it:
Thanks, that's good.
How could I just paste the list to the clipboard?
If it would be helpful, I could add a macro to set bookmarks, that way you could set bookmarks from a given text file.
Thanks. It might be useful to stash them in the AVS file in some #~ format, like sliders, so they could be reloaded semi-automatically (you should have an option to load or ignore).
it may make more sense to simply insert selection start/stop points using the Home and End keyboard shortcuts instead of using bookmarks.
That works, but the action of creating the Trim list changes the bookmarks, which I want to keep in their original places to check transitions.
What I'm doing is making a sequence of nologo filters, marking on and off as the logo appears with bookmarks, so the original trim list format was closest to that; I don't actually want to delete anything from the video, just run a filter on different sections.
If I persist I can probably work out how to make a Python macro to do it all, but at the moment I use Ultraedit.
I just found the "scrap window". It seems that the toggle off control-P doesn't work if the cursor is in the scrap window...
An observation: I see a few spelling mistakes in the macro files comments. Eg:
# This example shows how to use AvsP's macros to turn AviSynth into an
# all-puropose image editor. It's similar to the batch example, but instead
And in HTML docs:
Trimming video is fairly straightforward in AviSynth with the Trim() command. However, it can get a bit unweildy
Doing a spellcheck would find most of these.
Rachima
4th May 2007, 22:33
Hi,
I get the same error using AvsP 1.3.8, which was compiled using Python 2.4. I don't get the error when compiling AvsP with Python 2.5. So hopefully the next release will allow things to work properly.
by testing I accidently run this code in AvsP 1.3.8 instead of my IDE, and was wondering that it now runs without errors:
process = subprocess.Popen([exefile, params], shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
when explicitly set all three streams, stdin stdout stderr, it runs. Just curious.
If you could use subprocess instead of win32com.client, that would be fantastic, since it will keep the distribution size down. I'll still consider including win32com if there are other developers who absolutely require it.
To use COM maybe necessary or _must_be, when there is (more) interaction between AvsP and the called App. For my app, it is only necessary to get an initially input and to write the result back.
I have attached a sample Macro, with dummy exe and even Sourcecode in VB6 showing how to use stdIn & stdOut.
(I also have decided to write my app as a AvsP-Plugin only, because now I have seen how much power there is in AvsP. :thanks: )
Rachima
qwerpoi
6th May 2007, 03:22
New version 1.3.9, download from the AvsP download page (http://avisynth.org/qwerpoi/Download.html) or from the mirror (http://www.savefile.com/files/696932). This version is actually compatible with both XP and win98. As a result, the directory structure is a little different, so in order to upgrade, you should unzip the file to a new directory and transfer over your *.dat files (you can read a bit more detail at the download page). This is a bugfix version, so the changelog's relatively small:
* remember the last saved image path (suggested by 3ngel)
* changed "Show calltip" to work when cursor is in filter name (thanks AlanHK)
* changed editor to properly clear undo buffer when loading a file
* merged windows xp and 98 versions
+ fixed parity info reported by AvsP (thanks krisq, ChiDragon)
+ fixed crash when switching zoom modes (thanks Alain2)
+ fixed unnecessary scrollbars with zoom "fit inside window" (thanks foxyshadis)
+ fixed unicode bug when saving script
+ fixed unicode bug with recent file list (thanks Henrikx)
+ fixed unicode bug with Avisynth install directory (thanks Aeolis, foxyshadis)
+ minor fixes to window layout code
The changes in this version are pretty much self explanatory. The size of the distribution file is actually smaller this version, for those curious it was mainly achieved by the different directory structure and using upx lzma compression.
In order to make things easier for translators, this version has no new messages, ie, the v1.3.8 translation is compatible with v1.3.9. There were some fairly easy feature requests that did not make it to this version because I didn't want to add any new messages, so for those requesters, I offer a small apology, you'll have to wait patiently for the next version. The main reason I wanted to release this version now is because it seems AvsP wouldn't run at all if you installed AviSynth in a directory with unicode characters, a big mistake. Hopefully everything works properly now.
Since it's important, I'll emphasize one last time that to upgrade from an older version you can't simply replace the AvsP.exe anymore since it's no longer contained in a single executable (read more details here (http://avisynth.org/qwerpoi/Download.html)). Anyway, I'm guessing the next version won't be for a while, since I still have a lot of work to do on the automated user slider concept. Still, be sure to report back with any new problems or requests.
Alain2
6th May 2007, 09:32
Thanks qwerpoi, will try asap :) About the workload for translators, to be honest I don't see the problem, the last release had a few more strings to translate but the amount was similar to previous versions (looking in the translation.py file I see that I translated similar amounts for 1.2.1), it didn't take me long to translate them. Don't restrain yourself for this :)
Henrikx
6th May 2007, 10:34
the v1.3.8 translation is compatible with v1.3.9.
German translation v.1.3.8 does not function.
Any idea ?
Hi,
version 1.3.9 doesn't the file provide "translation.pyo" can it because of it be?
Henrikx
6th May 2007, 13:12
@max24
Maybe ? Only qwerpoi knows !
In moment, i "clean" the old version,but i dont think that is the mistake.I can be mistaken....
Fizick
6th May 2007, 15:23
IMHO,
Rahima's suggestion is important.
It wold be great to have language-independen plugin API in AvsP.
But implementation may be various.
Aeolis
6th May 2007, 15:53
Hello folks,
Thank you very much qwerpoi! Now it works. Thank you.
See you later,
Aeolis :thanks:
Aeolis
6th May 2007, 16:57
Hello folks,
It’s me again. I entered the path to a external player in AvsP Program Options: “C:\Arquivos de programas\Edição e Criação de Filmes e DVD\Media Player Classic\mplayerc.exe” and I had the following error after reopening AvsP:
[Sun May 06 12:02:23 2007]
Traceback (most recent call last):
File "AvsP.py", line 9358, in <module>
File "wx\_core.pyo", line 7700, in __init__
File "wx\_core.pyo", line 7352, in _BootstrapApp
File "AvsP.py", line 9350, in OnInit
File "AvsP.py", line 3026, in __init__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 28: ordinal not in range(128)
So, I decided to erase the option.dat file in AvsP folder and everything went back to normal if I try to enter the external player path the problem gets back. I think there is a Unicode problem to the path of external player too. qwerpoi if you can take a look on that issue I will be really happy and grateful. Thank you one more time for your attention. :) :)
See you later,
Aeolis
lolent
6th May 2007, 17:10
Thanks for the new version qwerpoi ;) , I will test it
Henrikx
6th May 2007, 17:14
I create a "clean" new German Language file.( 1:1) But nothing.
AvsP will not work with the new,too ?
I have no more ideas !!
Language files :
http://forum.gleitz.info/showpost.php?p=301023&postcount=14
Terranigma
6th May 2007, 19:00
lolent, have you been able to vent that problem you've been having with AvsP? I have a pretty good idea what's causing the problem, as i've gotten the same exact error message earlier today that you've shown with the screenshot. It has to do with your plugins/scripts, so it's not an avsp problem. You could fix this by manually going to your plugins folder, right-click and choose "Arrange Icons By Modified"; Then either delete or move your latest modified plugins 1 by 1 while hitting F5 with avsp and see if it generates a preview.
qwerpoi
6th May 2007, 19:55
German translation v.1.3.8 does not function.
Any idea ?
Oh cr**! The new directory structure alters how AvsP looks for python files to import - you'll need to add the translation.py file into the library.zip file in the lib directory (just drag translation.py into the zip file). Very sorry about that. Sigh. I may release another version within a week which will have this fixed up.
Thanks qwerpoi, will try asap :) About the workload for translators, to be honest I don't see the problem, the last release had a few more strings to translate but the amount was similar to previous versions (looking in the translation.py file I see that I translated similar amounts for 1.2.1), it didn't take me long to translate them. Don't restrain yourself for this :)
I wasn't so worried about the amount of translation work, I was just trying to give translators some time to catch up. Right now it's a little clunky when you are in the middle of translating a new version and a newer version comes out. Again, I'm going to try and make some sort of tool that simplifies things, roughly speaking it will import an older translation file and place all identical messages into the current one.
IMHO,
Rahima's suggestion is important.
It wold be great to have language-independen plugin API in AvsP.
But implementation may be various.
It's something that has crossed my mind. I believe that Rahima's approach works well, the plugin is written as an executable which can communicate with stdout pipe, and interfaced through AvsP with a macro. The only thing that needs changing is that there should be a separate directory for plugins (instead of adding it to the macros) and that there should be more macro functions exposed for plugins to give direct access to some of AvsP's databases. I'll try and rewrite the avs2avi gui as a plugin and see how it goes.
I entered the path to a external player in AvsP Program Options: “C:\Arquivos de programas\Edição e Criação de Filmes e DVD\Media Player Classic\mplayerc.exe” and I had the following error after reopening AvsP:
[Sun May 06 12:02:23 2007]
Traceback (most recent call last):
File "AvsP.py", line 9358, in <module>
File "wx\_core.pyo", line 7700, in __init__
File "wx\_core.pyo", line 7352, in _BootstrapApp
File "AvsP.py", line 9350, in OnInit
File "AvsP.py", line 3026, in __init__
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 28: ordinal not in range(128)
Oof, thanks for bringing it up. I'll check it out and have it fixed by the next version.
lolent, have you been able to vent that problem you've been having with AvsP? I have a pretty good idea what's causing the problem, as i've gotten the same exact error message earlier today that you've shown with the screenshot. It has to do with your plugins/scripts, so it's not an avsp problem. You could fix this by manually going to your plugins folder, right-click and choose "Arrange Icons By Modified"; Then either delete or move your latest modified plugins 1 by 1 while hitting F5 with avsp and see if it generates a preview.
Thanks for pointing this out, I really need to get an faq put together. I'll have the error message be more clear, and perhaps I'll make the error message have a suggestion to examine any unstable plugins as you point out.
Henrikx
6th May 2007, 23:07
@qwerpoi
THX
Difficult birth!
Update German Translation.......
lolent
7th May 2007, 00:00
lolent, have you been able to vent that problem you've been having with AvsP? I have a pretty good idea what's causing the problem, as i've gotten the same exact error message earlier today that you've shown with the screenshot. It has to do with your plugins/scripts, so it's not an avsp problem. You could fix this by manually going to your plugins folder, right-click and choose "Arrange Icons By Modified"; Then either delete or move your latest modified plugins 1 by 1 while hitting F5 with avsp and see if it generates a preview.
oh, that's a good idea ! Thank you Terranigma ;)
I will try that and found which plugin causes the problem by testing them one bye one :)
EDIT :
I solve my problem :)
I had some ***SSE3.dll that my cpu doesn't support (PIV 2.4 GHZ) that I had forgotten to delete from my avisynth plugin directory ^^
Thx again Terranigma ;)
Alain2
7th May 2007, 12:40
Arf the window width resizing bug is still there, but the sliders section automatically hides again when I don't use any :thanks:
btw a funny thing is when I close avsp, both windows disappear (also from the task bar), and for some reason the preview window flashs back (in the task bar as well) and disappear again. Not a big issue, just thought to mention :)
qwerpoi, :thanks: for the new versions.
killerhex
9th May 2007, 06:30
can this tool analyse wmv files
qwerpoi
9th May 2007, 08:04
Arf the window width resizing bug is still there, but the sliders section automatically hides again when I don't use any :thanks:
btw a funny thing is when I close avsp, both windows disappear (also from the task bar), and for some reason the preview window flashs back (in the task bar as well) and disappear again. Not a big issue, just thought to mention :)
I figured out the window resize bug, it'll be fixed in the next version. I'll try and see what's causing the flashing window.
qwerpoi, :thanks: for the new versions.
Thanks for the updated translation, I've updated the links accordingly. Just as a reminder to those using translation files, there's a bug in v1.3.9 that requires you to add the translation.py file in the library.zip file (in the lib directory, just drag and drop). This too will be fixed in the next version, sorry about the inconvenience.
can this tool analyse wmv files
Huh? If you mean can AvsP work with wmv files, a simple script like DirectShowSource("test.wmv") should do the trick. You can read the overview (http://avisynth.org/qwerpoi/Overview.html) if you want to find out about what AvsP is and what it isn't.
canuckerfan
9th May 2007, 20:30
in the save as avi dialogue... is priority 0 normal and 2 high, with 1 in between?
Alain2
11th May 2007, 20:41
Feature request: when using a separate video window, fully separate its behaviour from the script window. At the moment:
- minimising the script window minimises the video window as well
- if script window is minimised and video window maximised, making the script window appear again change the video window to a flotting one (not maximised) and refreshes it
qwerpoi
11th May 2007, 23:03
in the save as avi dialogue... is priority 0 normal and 2 high, with 1 in between?
The save as avi dialog is simply a frontend for avs2avi, priority 0/1/2 is idle/normal/above normal, respectively.
Feature request: when using a separate video window, fully separate its behaviour from the script window. At the moment:
- minimising the script window minimises the video window as well
- if script window is minimised and video window maximised, making the script window appear again change the video window to a flotting one (not maximised) and refreshes it
Sounds reasonable, I'll see what I can do.
Incidentally, I won't be in town for the next week or so, my internet access there will be limited, so I may not be able to reply during that time. But I wanted to give you guys something to look forward to, so check out this screenshot (http://avisynth.org/qwerpoi/AvsP_v2.00_preview.jpg) of the next version of AvsP. There's a lot of details that still need ironing out, but what you're looking at is user sliders that have been automatically generated without any manual input. That means you just write a script, show the video, and you'll automatically get user sliders for every specified argument in the script. Not just user sliders, but string list selectors, boolean radio boxes, and filename pickers. Without any manual input. And if you're worried that there will be too many user sliders, you can hide user sliders for any filter by clicking the filter name, and there will be ways to customize which user sliders to automatically create. This version will hopefully be released within the month, it's going to be smoking...
this prog is getting crazier by the day! awesome! waiting for v2.00
digitalone
12th May 2007, 06:10
awesome stuff qwerpoi! looking forward to v2.0!!
Zarxrax
12th May 2007, 23:47
Wow, that looks awesome!
Feature request though:
Could we get some hotkeys for the DeleteFrame() and DuplicateFrame() functions? Sometimes there will be frames in the video that are just screwed up for some reason, and those functions are useful for cleaning up areas like that.
Also, would it be possible to give the interface higher priority than the video display? The reasoning being, you might make a mistake and do something which will take avisynth a LONG time to process a frame. In this situation it would be nice to be able to turn off the video display so you could fix your mistake immediately instead of having to wait on the frame to render.
qwerpoi
14th May 2007, 02:02
Could we get some hotkeys for the DeleteFrame() and DuplicateFrame() functions? Sometimes there will be frames in the video that are just screwed up for some reason, and those functions are useful for cleaning up areas like that.
Sounds like macros would fit the bill nicely. Make a text file in the macros subdirectory named something like "DeleteFrame.py", and add the following text:
frame = avsp.GetFrameNumber()
avsp.InsertText('\nDeleteFrame(%i)' % frame)
avsp.ShowVideoFrame(forceRefresh=True)
Restart AvsP, when you click on this macro in the Macros menu it will insert the DeleteFrame command with the current frame number at the end of the script and refresh the video. You can then assign a keyboard shortcut to this macro from the "Options -> Configure shortcuts..." dialog (the macros show up at the end of the list). Obviously making a DuplicateFrame macro would be very similar.
Also, would it be possible to give the interface higher priority than the video display?
In order to do this, the video would have to be requested in a separate thread, and threading is unfortunately not my area of expertise. However, I was recently able to get a socket server running in a separate thread for the single instance option some people were requesting, so I'll look it over and give it a try, no guarantees though.
Henrikx
15th May 2007, 09:42
@qwerpoi
CT software collection 11.05.2007 with AvsP
http://www.heise.de/ct/ (German)
Software-Kollektion 3/07, c't 11/07
http://www.heise.de/software/default.shtml?s=cdd&id=51
http://img300.imageshack.us/img300/4310/ctavsplw8.th.png (http://img300.imageshack.us/my.php?image=ctavsplw8.png)
jarthel
19th May 2007, 13:32
any possibility to add find/replace across all the files that are open?
thank you.
jarthel
19th May 2007, 13:40
I'm not sure if this has been asked but here goes:
If I decided to use the "slider" feature, would AvsP automatically remove the extra text I typed?
for example:
deen("w3d", 3, 3, [<"ti", 0, 10, 5>])
would become deen("w3d", 3, 3, 5).
Thanks for the replies.
gzarkadas
19th May 2007, 14:14
@qwerpoi
Could you consider in a future release an additional category, "external function", in dialog "Options"|"Avisynth function definition...", "Function type" field ? Although not that important, it would help to better classify the functions of my library.
Thanks anyway for this great app; I have at last found my Avisynth editor of choice :).
foxyshadis
19th May 2007, 14:56
I'm not sure if this has been asked but here goes:
If I decided to use the "slider" feature, would AvsP automatically remove the extra text I typed?
for example:
deen("w3d", 3, 3, [<"ti", 0, 10, 5>])
would become deen("w3d", 3, 3, 5).
Thanks for the replies.
Yup, that's exactly what happens in the preview and when you save the file. =D
BruceL
19th May 2007, 15:23
This version will hopefully be released within the month, it's going to be smoking...
@qwerpoi
Sounds like a donation button is in order!
Thank you for all your hard work.
:thanks:
max24
23rd May 2007, 16:49
Is possible AR feature planned?
http://img511.imageshack.us/img511/5189/arzh1.jpg
jamieuk
25th May 2007, 22:29
yer its comming in the future
Zarxrax
26th May 2007, 02:33
I don't know if anyone else encounters this problem, but most of the time if I try to use the save avi feature it wont work. Sometimes it works, but usually it doesn't. There is no error or anything... it simply doesn't encode anything.
If avsp had some better encoding options, this thing could take over vdub for almost all of my video processing tasks :p
krisq
27th May 2007, 11:17
I don't know if anyone else encounters this problem, but most of the time if I try to use the save avi feature it wont work. Sometimes it works, but usually it doesn't. There is no error or anything... it simply doesn't encode anything.
If avsp had some better encoding options, this thing could take over vdub for almost all of my video processing tasks :p
is there any chance that you have spaces in the name of your .avs file?
Is possible AR feature planned?
http://img511.imageshack.us/img511/5189/arzh1.jpg
AFAIK there is AR info on the status bar.
Zarxrax
27th May 2007, 18:07
is there any chance that you have spaces in the name of your .avs file?
That's probably it. Spaces aren't supported, I take it.
qwerpoi
29th May 2007, 17:41
I'm back, just wanted to let you guys know that v2.0.0 is progressing smoothly. I might release a preview version in a couple of days, since I could use some help completing the filter database necessary for automatic sliders.
CT software collection 11.05.2007 with AvsP
http://www.heise.de/ct/ (German)
Software-Kollektion 3/07, c't 11/07
http://www.heise.de/software/default.shtml?s=cdd&id=51
That's very cool! I'll add those links to the About page when I get the chance.
any possibility to add find/replace across all the files that are open?
Good request, unfortunately it's a bit tricky to implement. I'll add it to my todo list, so we'll see.
Could you consider in a future release an additional category, "external function", in dialog "Options"|"Avisynth function definition...", "Function type" field ? Although not that important, it would help to better classify the functions of my library.
Thanks anyway for this great app; I have at last found my Avisynth editor of choice :).
Glad you like the program! As far as an "external function" category, I'm not sure what that would be for. The categories are named a bit confusingly, here's how it looks to me:
Internal filter: core filters (avisource, levels, etc)
External filter: 3rd party dll plugins (decomb, undot, etc)
Internal function: Avisynth-language functions (assert, apply, etc)
Clip property: (width, height, framerate, etc)
User-defined: Non-dll avisynth functions (LimitedSharpen, mftoon, etc)
I think "user-defined" covers what you want for "external function". Let me know if I've misunderstood something. In any case, it's probably a good idea to rename those categories to be a bit more consistent with the Avisynth documentation notation.
Is possible AR feature planned?
Yes, as jamieuk noted, it will come in the form of a resize calculator in the Tools menu. Unfortunately it's a lot of work to do it right and I'm currently busy with developing the automatic sliders for the upcoming release, so I can't give you a good idea when it will happen. In the meantime, as krisq pointed out, the aspect ratio is given in the status bar whenever the video has focus, combine that with the crop editor (Video -> Crop editor...) and you have a basic tool for managing aspect ratios.
I don't know if anyone else encounters this problem, but most of the time if I try to use the save avi feature it wont work. Sometimes it works, but usually it doesn't. There is no error or anything... it simply doesn't encode anything.
Spaces in the script filename caused this to occur, but I believe this problem was fixed as of version 1.3.8. If it's still occuring with a newer version, let me know.
If avsp had some better encoding options, this thing could take over vdub for almost all of my video processing tasks :p
Yeah, that's my thought as well. Unfortunately, virtualdub is an extremely comprehensive and well-written program, so it's a daunting task to say the least. The compromise is to make a gui wrapper around a more comprehensive command line encoder. I really like avs2avi, but it was meant for quick encoding tasks, and doesn't cover everything needed for video processing (audio handling, etc). I'm not really familiar with other tools, but it may be something I'll give strong focus on after this upcoming release.
gzarkadas
29th May 2007, 20:07
...I think "user-defined" covers what you want for "external function"...
Yes, if I were the end-user. I am of course when I use the app, but as a distributor of a package I would prefer not to clutter the "user-defined" category with ~200 functions (see the relevant avsp macro is in this post (http://forum.doom9.org/showthread.php?p=1004300#post1004300)) and let that category for the end-user, so as to easily distinguish his/her own functions. This could benefit other distributors also.
For the moment I just pretending my functions to be "internal functions" and giving the user the ability to change my preferences by setting some variables inside the .py macro file. I could continue with that because it is just a matter of convenience, but then I noticed there is a free corner in the related radiobuttons space that "calls" for filling it :D.
Thanks in any case for the time you took to review my request :), whatever the result will be.
ChiDragon
29th May 2007, 20:57
I might release a preview version in a couple of days, since I could use some help completing the filter database necessary for automatic sliders.
Now that AvsP can make calls directly to the AviSynth script environment, isn't it possible to get loaded filters and their arguments directly from AviSynth instead of making a separate database?
ChiDragon: No as there are no way to know what range/inputs that are valid for the different arguments. Maybe this was something that could be implemented in avisynth 2.6?
Zarxrax
29th May 2007, 22:57
I just upgraded to the newest version, and it seems unicode doesn't work now. I could swear it worked in earlier versions though.
Also, it wont automatically suggest a default filename for the avs if I load the input file via directshowsource. When I use avisource it will suggest a filename.
krieger2005
30th May 2007, 07:47
ChiDragon: No as there are no way to know what range/inputs that are valid for the different arguments. Maybe this was something that could be implemented in avisynth 2.6?
I think this should be made i a future version of avisynth. When i read projects to include avisynth in a NLE-Like Programs this would be one first step for. Also your MT-Plugin could get information from there so it can decide which mode should be used with this filter...
qwerpoi
30th May 2007, 15:35
Yes, if I were the end-user. I am of course when I use the app, but as a distributor of a package I would prefer not to clutter the "user-defined" category with ~200 functions (see the relevant avsp macro is in this post (http://forum.doom9.org/showthread.php?p=1004300#post1004300)) and let that category for the end-user, so as to easily distinguish his/her own functions. This could benefit other distributors also.
Okay, I see what you mean. I'll rename the categories and include the new one, but I can't guarantee it'll be in the next release.
Now that AvsP can make calls directly to the AviSynth script environment, isn't it possible to get loaded filters and their arguments directly from AviSynth instead of making a separate database?
You can get the loaded filters and arguments directly from Avisynth, but as tsp pointed out you can't get the additional info necessary for making user sliders. For int or float arguments, you would need the min and max values, as well as default values and step sizes. In order for the automatic slider feature to work properly, communication with Avisynth is still necessary, particularly when trying to accurately determine whether a clip has been automatically passed to any given filter.
I just upgraded to the newest version, and it seems unicode doesn't work now. I could swear it worked in earlier versions though.
I've been trying to nail down all the unicode bugs for the last couple of versions, looks like I may have introduced a new one. Basically issues arise when there are both unicode and non-unicode strings being handled by the program, so the best practice is to make sure all strings are unicode, which is what I've been trying to do these past releases. I just recently discovered that for some reason converting a string to unicode when it is already unicode can cause a crash, which is fairly unbelievable. I've fixed these issues, so what I'll do is release version 1.4.0 in a couple of days. This version will have the automatic sliders, but the option will be disabled by default. That way anyone intersted in helping with the database or giving feedback on the new option can easily do so.
Also, it wont automatically suggest a default filename for the avs if I load the input file via directshowsource. When I use avisource it will suggest a filename.
Yeah, right now the feature is not very intelligent - it activates only if the filename has a source extension as defined in the Extension-based templates. This was done to avoid issues such as using plugin dll names as the suggested name. But as you point out it will often fail with DirectShowSource and unknown extensions, so I improved how the feature works, it'll be in the new release.
I think this should be made i a future version of avisynth. When i read projects to include avisynth in a NLE-Like Programs this would be one first step for. Also your MT-Plugin could get information from there so it can decide which mode should be used with this filter...
When I release the next version, you can check out how I'm storing the information. It's basically a simple documentation string for each filter, which means it's up to the filter developer to make sure the doc string corresponds appropriately with the actual filter arguments. If people think my method is clear enough, then it could be as simple as adding a method named something like GetDocString() to each filter.
steptoe
2nd June 2007, 11:51
Is there any chance you could add something to your website so that people who have created their own filter scripts can upload them to your site so that others can have a better idea what does what or 'borrow' a few of the more complicated filter control
qwerpoi
6th June 2007, 06:54
New version 1.4.0, download from the AvsP download page (http://avisynth.org/qwerpoi/Download.html) or from the mirror (http://www.savefile.com/files/784607). This version has an excellent preview of the automatic user sliders, you should definitely check it out. Here's the changelog:
* fully automatic user sliders (experimental, turned off by default)
* simplified translation update procedure (suggested by Henrikx)
* added option for single instance (suggested by krisq, foxyshadis)
* added source extension filters to "Open..." dialog (suggested by 3ngel)
* changed default filename to work with unknown extensions (suggested by Zarxrax)
* opening an already opened file prompts for reload if changes exist (suggested by Kuukunen)
* toggle scrap window now works when scrap window focused (thanks AlanHK)
* changed error message when Avisynth fails to load video (thanks lolent)
* added macro for setting bookmarks (suggested by AlanHK)
* sliders no longer generated on error clips
* improved filter calltips to work with script line breaks
* added clear all text option for scrap window
* minor improvements to window layout code
+ fixed translation import problem (thanks Henrikx)
+ fixed bug with AvsP installed in directory with unicode characters (thanks Aeolis)
+ fixed display bug when resizing the script window with separate video window (thanks Alain2)
+ fixed several unicode bugs (thanks Zarxrax)
+ fixed crash when avisynth output has no video
There's a lot of good features that made it to this version, but the most important thing in my opinion is the automatic user sliders. The reason why they're disabled by default in this version is because one, the filter database isn't 100% complete, and two, they still need some testing for 100% script compatibility. But don't let that dissuade you from trying them out, in this version the feature is already incredibly robust.
In order to turn on automatic user sliders, you need to do two things. First, go to "Options -> Program settings...", go to the new "User sliders" tab, and check the first checkbox, "Create user sliders automatically". Second, you need to import the database that I put together, which currently resides in a text file. Start AvsP, go to "File -> Import filter customizations", and select the "autoslider_database.txt" file (comes with the zip file) as a calltip-only text file. You'll see a dialog with a list of all the filters in the file, click OK. What this will do is simply update the calltip information with the info in the text file. If you don't want to overwrite a particular filter's calltip, simply uncheck the box next to the filter before hitting OK. So what now? Well, now if you type in a script like this:
BlankClip(color=$000000)
Subtitle("This is awesome!", font="Verdana", size=25, text_color=$FFFF00, halo_color=$000000)
You'll get something that looks like this:
http://img101.imageshack.us/img101/2332/avspautosliderexamplefd2.th.jpg (http://img101.imageshack.us/my.php?image=avspautosliderexamplefd2.jpg)
As you can see, gui elements were created automatically for every argument specified, without adding tags to the script in any way shape or form. Some bonus features - you can click on an argument name to select the text in the script corresponding to that argument. You can click on the label to hide all of the filter's arguments (referred to as "folding"), right-click the label for a popup menu with some more options. Anyway, It might be hard to appreciate the power of what's going on here, so I encourage you to try it for yourself.
If you're wondering how it works, basically I've put all the necessary information about each filter in AvsP's calltip information. I've come up with a simple syntax to store the information in a readable fashion (in fact, you can actually see the info in the calltip when you're typing in the script, very handy). Anyway, if you look at "autoslider_database.txt", you'll see I only created the database info for most of the core internal filters (for Avisynth v2.5.7). This database should be expanded with popular 3rd party filters, and must be kept up to date for the feature to work seamlessly. Ideally, the data would be stored on a wiki so people can contribute easily (as steptoe and others have mentioned), and AvsP would have a menu item to update the database from the web. I don't really know a lot about the details to get this done, so any help here would be appreciated.
If you want to help update the database with more filters (or make corrections to the current info), you can use a tool I built to help create the correct syntax. In the "Options -> Avisynth function definition" dialog, if you double-click the text box with the calltip info another dialog appears. Assuming the normal calltip info already exists, this dialog allows you to fill out all the relevant database info for that filter with a graphical interface (example (http://img169.imageshack.us/img169/8202/avspautosliderdialogpp5.jpg)). If the calltip already has database info, the fields will be filled accordingly. Simply enter values for any or all the fields, then click OK. You will see the calltip has been updated with the appropriate database syntax. After you're done updating the filters you want, you can save your results to a text file using the "File -> Export filter customizations..." dialog. Check the filters you want to export and click OK. When promted to save the file, make sure to save it as a "Calltip-only text file (*.txt)", not a "Filter cusomization file (*.dat)". The resulting text file will be identical in format to the autoslider_database.txt file. The filter database syntax itself is almost self-explanatory if you look at the various examples already in the database, but I'll try and have full documentation on the syntax by the next release.
The other features in this release are more or less self-explanatory. You can now run AvsP as a single-instance program, simply click "Options -> Only allow a single instance" in the menu. I fixed some more unicode bugs (again), improved the layout a bit when comparing videos, and fixed the bug which stopped AvsP from importing the translation file properly. A BIG note to translators - this version has a new method of updating the translation file. You'll notice there's no "__translation.py" - in order to update the translation file, simply place the "translation.py" from a prior version in the AvsP directory and run AvsP. It will automatically update the file with all the missing messages, you can then close AvsP and update the new messages (as always, search for "# New in v1.4.0" tags).
One final note - since several people requested it, I added a donation button to the website. Feel free to donate a couple of bucks if you'd like, but there's no pressure, I don't ever intend on making AvsP shareware or anything like that. Anyway, try out the new version and let me know if there are any new problems or suggestions.
Henrikx
6th June 2007, 12:14
@qwerpoi
Update German Translation 1.4.0
Simplified translation = Super + ingeniously
Heavily to found a meaningful translation for "Fold all" and "filename pickers" .
Zarxrax
6th June 2007, 14:10
Wow! This is absolutely amazing, I love it! Thanks for all your hard work on this great software, I really think this has revolutionized avisynth!
After some quick usage, I do have one suggestion to make it a bit easier to use the sliders.
Can you make an ability to somehow automatically fill in all of the default parameters for a function? For instance lets say I want to use the Tweak function to adjust colors. Right now, I believe if I want to get access to all of the sliders for tweak, I have to type in each of the parameters that I want a slider for. Instead, there could be a button or hotkey or something that would automatically add all of the functions in with the default values, so you can immediately start dragging sliders around.
Terranigma
6th June 2007, 15:01
Thanks for the update, I hope this version fixes the minor problem I had with 1.3.9 ;)
If it doesn't, i'll post how to recreate it.
niiyan
6th June 2007, 17:04
@qwerpoi
Thanks for the update, qwerpoi.
I have some questions and problems about the new version.
1. translation.py has the following two lines.
"Make sure you have AviSynth installed and that there are no" : u"", # New in v1.4.0
"unstable plugins or avsi files in the AviSynth plugins directory." : u"", # New in v1.4.0
These lines seem to be separated, maybe at the point where you don't intended. If I combine them as follows, it is easier for me to understand.
"Make sure you have AviSynth installed and that there are no unstable plugins or avsi files in the AviSynth plugins directory." : u"", # New in v1.4.0
So, should I translate the two lines separetely? Or combine and translate as one line?
2. When I preview Version.avs included in AviSynth Examples directory, I got the follwing error.
Traceback (most recent call last):
File "AvsP.pyo", line 5733, in OnMenuVideoRefresh
File "AvsP.pyo", line 8617, in ShowVideoFrame
File "AvsP.pyo", line 8990, in UpdateScriptAVI
File "AvsP.pyo", line 9024, in GetAutoSliderInfo
File "AvsP.pyo", line 9038, in GetFilterArgMatchedInfo
File "AvsP.pyo", line 863, in GetFilterMatchedArgs
IndexError: list index out of range
3. I wrote the following script which includes Japanese Halfwidth Katakana, etc.
BlankClip()
Subtitle("キタ━(゚∀゚)━!")
When I select the quoted text in Subtitle, an error occurred as follows:
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
4. After I close AvsP.exe, AvsP is trying to connect to localhost 127.0.0.1, port 50009. I don't know what it does. Are there any problem with this?
qwerpoi
6th June 2007, 18:18
@qwerpoi
Update German Translation 1.4.0
Simplified translation = Super + ingeniously
Heavily to found a meaningful translation for "Fold all" and "filename pickers" .
Thanks for the speedy translation update, glad the new method works properly. And I agree, a few of the new messages are somewhat unclear since they refer to completely new features, you can always pm me if you need some clarification on a new message.
Wow! This is absolutely amazing, I love it! Thanks for all your hard work on this great software, I really think this has revolutionized avisynth!
I totally agreee :)
Can you make an ability to somehow automatically fill in all of the default parameters for a function?
Absolutely, this will definitely be in the next version. Right now I'm trying to think of the best way to get this done (clicking on the calltip, a button in the slider window itself, etc). I wanted to release this version now to get a feel for how well it works with scripts that already exist, there's quite a bit of streamlining left to do.
1. translation.py has the following two lines.
"Make sure you have AviSynth installed and that there are no" : u"", # New in v1.4.0
"unstable plugins or avsi files in the AviSynth plugins directory." : u"", # New in v1.4.0
These lines seem to be separated, maybe at the point where you don't intended. If I combine them as follows, it is easier for me to understand.
"Make sure you have AviSynth installed and that there are no unstable plugins or avsi files in the AviSynth plugins directory." : u"", # New in v1.4.0
So, should I translate the two lines separetely? Or combine and translate as one line?
The lines were separated because the message was too long, but I agree, it seems bad from a translation standpoint. For now you'll have to translate each line separately, but I'll try and join them in the next version.
2. When I preview Version.avs included in AviSynth Examples directory, I got the follwing error.
3. I wrote the following script which includes Japanese Halfwidth Katakana, etc.
BlankClip()
Subtitle("キタ━(゚∀゚)━!")
When I select the quoted text in Subtitle, an error occurred as follows:
I couldn't reproduce the first error, but I see what caused the second one, the parentheses in the string screwed up the calltip code. I'll upload a fix shortly (right now the Avisynth ftp is giving me problems).
4. After I close AvsP.exe, AvsP is trying to connect to localhost 127.0.0.1, port 50009. I don't know what it does. Are there any problem with this?
AvsP opens a socket for the "Only allow a single instance" option, which it uses to pass command-line parameters to the main instance. Currently the socket is used even if the option is not turned on. If there are problems closing AvsP because of this, let me know.
khs81
7th June 2007, 12:59
Thanks for the new release! The new translation system is awesome. Thank you very much.
I will proceed with the italian translation tomorrow, I suppose.
Bye!
niiyan
7th June 2007, 15:33
@qwerpoi
... but I agree, it seems bad from a translation standpoint.
That's what I wanted to say :)
For now you'll have to translate each line separately, but I'll try and join them in the next version.
I'll do that. Thanks for your effort.
I couldn't reproduce the first error, ...
I have installed AvsP under "Program Files" folder, i.e. "C:\Program Files\AvsP". I moved it to another place, e.g. "C:\AvsP, then I have no problem with previewing Version.avs.
AvsP opens a socket for the "Only allow a single instance" option, which it uses to pass command-line parameters to the main instance. Currently the socket is used even if the option is not turned on. If there are problems closing AvsP because of this, let me know.
I understand what AvsP does. I have no problem because of this.
qwerpoi
7th June 2007, 20:56
Okay, we'll try something new. Officially there will be a bugfix release in about a week, but if you're experiencing the bugs niiyan reported (http://forum.doom9.org/showthread.php?p=1011207#post1011207) in version 1.4.0, you can download this zip file (http://avisynth.org/qwerpoi/upload/AvsP_bugfix_v1.4.0.zip) (133 kilobytes). The zip file contains a single file named AvsP.pyo, place it in the same directory as AvsP.exe and then run the program. It should fix both bugs. These bugfixes will obviously be incorporated in the next version, just wanted to try a new method of providing temporary fixes between versions.
Terranigma
7th June 2007, 23:21
Thanks for the update, I hope this version fixes the minor problem I had with 1.3.9 ;)
If it doesn't, i'll post how to recreate it.
Looks like the :devil: bug is still present, now I don't know how to exactly reproduce it, but I can tell you how you might be able to encounter it. You might encounter it after opening a memory intensive script for preview (mvdegrain2 with dct1 and overlap=8 is an intensive script), Then highlight something from the script with the Left-Mouse button and choose copy. You'd get an error... or you won't. =P
Like I said, this might be a way to reproduce the :devil: bug i've been encountering. :cool:
Veiga
8th June 2007, 06:53
@qwerpoi
congratulation for your new version, fantastic work.
niiyan
8th June 2007, 14:55
@qwerpoi
Both problems were solved by the bug fixing file. Thank you!
qwerpoi
8th June 2007, 19:25
You might encounter it after opening a memory intensive script for preview (mvdegrain2 with dct1 and overlap=8 is an intensive script), Then highlight something from the script with the Left-Mouse button and choose copy. You'd get an error... or you won't. =P
Check out if you have an "avsp_error_log.txt" in your AvsP directory. If so, please post the error message if it has been logged to help me get an idea of what's going on.
@qwerpoi
congratulation for your new version, fantastic work.
Thanks for the translastion update, I've updated the links on the first post and download page accordingly.
@qwerpoi
Both problems were solved by the bug fixing file. Thank you!
Very cool, I'm glad the bugfix update method works smoothly.
Terranigma
8th June 2007, 19:32
as you wish.
[Thu Jun 07 10:11:54 2007]
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Fizick
10th June 2007, 07:50
qwerpoi,
please look to this thread:
http://forum.doom9.org/showthread.php?t=94768
Alain2
10th June 2007, 21:49
French translation updated :)
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 790, in UpdateCalltip
NameError: global name 'charBefore' is not defined
Traceback (most recent call last):
File "AvsP.pyo", line 1355, in OnSetFocus
File "AvsP.pyo", line 790, in UpdateCalltip
NameError: global name 'charBefore' is not defined
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 790, in UpdateCalltip
NameError: global name 'charBefore' is not defined
zemog
11th June 2007, 12:20
@qwerpoi
Thanks for the update.
check
11th June 2007, 15:26
Hi qwerpoi, I'm playing around with building an x264 encoding frontend that is launched from avsp. Are there any problems with directly creating new wxpy frames (aka windows) and loading them as though it was a normal python environment? I've uploaded a sample GUI model here for you to test with: http://paste.animeneko.net/389
At this stage I am planning to launch the options configurator in the AvsP environment, and then to launch a separate process that will be what interacts with x264 (so you don't need to leave AvsP open for the duration of encoding).
As you can see I'm pretty early into the coding, so all thoughts from all - even thoughts about major redesigns of the system - will be graciously accepted :)
~bT~
11th June 2007, 16:14
AVSp should be integrated into MeGUI :D
qwerpoi
11th June 2007, 19:10
as you wish.
[Thu Jun 07 10:11:54 2007]
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 801, in UpdateCalltip
UnboundLocalError: local variable 'iArgPos' referenced before assignment
Hm, this bug was fixed with the last bugfix, it doesn't seem to be the same bug you're reporting. If you ever manage to activate the memory-intensive bug, check the log files again, see if you get any new messages. Otherwise, it may not be directly related to AvsP, I'll try and investigate the matter further.
qwerpoi,
please look to this thread:
http://forum.doom9.org/showthread.php?t=94768
Interesting discussion, it seems the [* *] syntax is favored at this point. It means I would have to change things a bit in AvsP (mainly the syntax highlighting code), I don't think it would cause any major compatibility issues. I'll look into it some more thought, though.
French translation updated :)
Traceback (most recent call last):
File "AvsP.pyo", line 1292, in OnUpdateUI
File "AvsP.pyo", line 790, in UpdateCalltip
NameError: global name 'charBefore' is not defined
Thanks for the translation update. The bug you reported occurs when you have "Frequent calltips" turned off, sorry about that. This bug will be fixed in the next version, but in the meantime you can download AvsP_bugfix2_v1.4.0.zip (http://avisynth.org/qwerpoi/upload/AvsP_bugfix2_v1.4.0.zip), which contains a single file named AvsP.pyo. Close AvsP, put AvsP.pyo in the same directory as AvsP.exe (replace any older ones if you downloaded any earlier bugfix), start up AvsP and the new bug should be fixed.
@qwerpoi
Thanks for the update.
Thanks for the translation update, I'll update the links when the attachment is approved.
Hi qwerpoi, I'm playing around with building an x264 encoding frontend that is launched from avsp. Are there any problems with directly creating new wxpy frames (aka windows) and loading them as though it was a normal python environment? I've uploaded a sample GUI model here for you to test with: http://paste.animeneko.net/389
At this stage I am planning to launch the options configurator in the AvsP environment, and then to launch a separate process that will be what interacts with x264 (so you don't need to leave AvsP open for the duration of encoding).
Interesting stuff, I'll take a closer look at it when I get some time. As far as I know there shouldn't be any problems creating new wxp frames from AvsP, but running the encoder in a separate process may have some issues, I'll look into that as well.
AVSp should be integrated into MeGUI :D
I'm certainly not opposed to the idea, but since I don't really use MeGUI myself, it would fall on someone else to actually carry through with the idea. If anyone wants to try, let me know if I can be of help :).
Alain2
11th June 2007, 20:32
The bug you reported occurs when you have "Frequent calltips" turned off, sorry about that. This bug will be fixed in the next version, but in the meantime you can download AvsP_bugfix2_v1.4.0.zip (http://avisynth.org/qwerpoi/upload/AvsP_bugfix2_v1.4.0.zip), which contains a single file named AvsP.pyo. Close AvsP, put AvsP.pyo in the same directory as AvsP.exe (replace any older ones if you downloaded any earlier bugfix), start up AvsP and the new bug should be fixed.
That was quick! Thx for the fix, it was unusable before and it works fine now :)
check
12th June 2007, 02:42
Interesting stuff, I'll take a closer look at it when I get some time. As far as I know there shouldn't be any problems creating new wxp frames from AvsP, but running the encoder in a separate process may have some issues, I'll look into that as well.Hmm, I've had a think about this new issue you brought up but I can't see where the problem is at all. Could you spend a few lines explaining?
I'm certainly not opposed to the idea, but since I don't really use MeGUI myself, it would fall on someone else to actually carry through with the idea. If anyone wants to try, let me know if I can be of help :).
It's probably somewhat difficult as meGUI runs in .NET. I guess you could run it through ironpython, but to me at least it's getting to more trouble than it's worth. There are also a whole bunch of other questions about how to integrate it into the workflow, but I'm sure those could be hammered out.
qwerpoi
13th June 2007, 06:31
I've uploaded a sample GUI model here for you to test with: http://paste.animeneko.net/389
At this stage I am planning to launch the options configurator in the AvsP environment, and then to launch a separate process that will be what interacts with x264 (so you don't need to leave AvsP open for the duration of encoding).
I've played around a bit with your sample, very impressive stuff (puts my avs2avi dialog to shame :)). I'm not really familiar with x264, so I can't give very specific feedback, but in general I would say you may want to take some options from the main tab and put them into a third tab (I'm not positive, but I'm guessing the average user wouldn't tweak b-frame, m.e., quant matrix options very frequently). Also, I always did like presets, back in the day I thought enc (http://jonny.leffe.dnsalias.com/enc/index.htm) did a decent job with them.
Hmm, I've had a think about this new issue you brought up but I can't see where the problem is at all. Could you spend a few lines explaining?
It was just me overthinking the matter. Basically it would be problematic if you went the route I did with the avs2avi dialog, where AvsP was communicating with the avs2avi process to update the dialog's progress bar, allow the user to cancel, etc. If you don't need that kind of graphical feedback, then there shouldn't be any issue at all.
check
13th June 2007, 08:52
Heh, yeah, I'm planning on producing system where the layout of subsections is customisable so others don't complain about my layout choice (which is basically to fit as much onto one page as possible). As for presets, I downloaded enc and found it's much the same as what I'm planning to create :^)
Veiga
13th June 2007, 11:19
Sorry qwerpoi and users that download the first translation for v.140. I make a mistake when interpretation (fold) term.
Now I thing best.
krisq
14th June 2007, 09:24
Asterisk on the title bar in the undocked preview window doesn't disappear when I save the script. That's, until I refresh the window of course. It's been like that since forever but since no one reported it, I will. I guess it's by design but it can be pretty misleading when script window is hidden under the preview. Cheers :)
Zarxrax
22nd July 2007, 22:04
I just wanted to report that there still seem to be some unicode bugs in the latest version. I right-click a file and choose to open with avsp; if the filename or path contains a unicode character, avsp will fail to open it.
RedDwarf1
23rd July 2007, 05:57
I find this editor very useful when experimenting (I am only just starting with Avisynth) with scripts.
I have been trying to change the white background on the script window and after changing every background color to a more eye friendly color that suits my eyes I still have been unable to get rid of the white.
Some people seem to love white but I hate it, even with my Monitor set to sRGB (a low color temperature) I still find it very difficult to look at.
Is there any way that I have missed to change it?
qwerpoi
23rd July 2007, 18:52
I just wanted to report that there still seem to be some unicode bugs in the latest version. I right-click a file and choose to open with avsp; if the filename or path contains a unicode character, avsp will fail to open it.
I tried it out, couldn't reproduce the error on my laptop. Could you tell me the exact error reported by AvsP? It should be saved in the avsp_error_log.txt.
I have been trying to change the white background on the script window and after changing every background color to a more eye friendly color that suits my eyes I still have been unable to get rid of the white.
No, it seems there currently isn't a way to do it. I'll very likely release a small bugfix update soon, I'll try and add this fix to the update as well.
RedDwarf1
25th July 2007, 04:14
I hope so, thanks. I look forward to it as it is the only thing I dislike about it. Otherwise it is a fantastic tool which makes AVIsynth scripting so much easier.
Zarxrax
25th July 2007, 14:03
I tried it out, couldn't reproduce the error on my laptop. Could you tell me the exact error reported by AvsP? It should be saved in the avsp_error_log.txt.
There seems to be 2 possible outcomes that I have discovered so far.
On a pathname that contains a "ö", it will post the following in the error log:
Traceback (most recent call last):
File "run.py", line 6, in <module>
File "AvsP.pyo", line 10961, in main
File "wxp.pyo", line 249, in __init__
File "wx\_core.pyo", line 7700, in __init__
File "wx\_core.pyo", line 7352, in _BootstrapApp
File "AvsP.pyo", line 10947, in OnInit
File "AvsP.pyo", line 3662, in __init__
File "AvsP.pyo", line 3769, in ProcessArguments
File "AvsP.pyo", line 7194, in OpenFile
File "AvsP.pyo", line 7750, in InsertSource
File "AvsP.pyo", line 7783, in GetSourceString
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 27: ordinal not in range(128)
When I use japanese text in the path, there is no error message, but after rightclicking a file and choosing to open the file with avsp, avsp simply launches without opening the file.
signal
29th July 2007, 09:36
1) Include in the compiled project the msvcr71.dll. At the moment it doesn't start if it doesn't find.
I don't think I'm allowed to distribute msvcr71.dll, I guess I should mention the requirement somewhere (but honestly, a huge number of programs require it, so it's a non-issue for most users).
You have permission. Microsoft has made this a non-system file due to version conflicts and ask that it be distributed with the application and stored in the application directory from now on.
http://support.microsoft.com/kb/326922
When you build an application in Microsoft Visual Studio 2005 or in Microsoft Visual Studio .NET , and the application uses the C run-time libraries (CRT), distribute the appropriate CRT DLL from the following list with your application and install the DLL in your Program Files directory: ...[snip]... Do this instead of installing the DLL in the system directories. Do not assume that the DLL already exists in the system directories.
The shared CRT DLL has been distributed by Microsoft in the past as a shared system component. This may cause problems when you run applications that are linked to a different version of the CRT on computers that do not have the correct versions of the CRT DLL installed. This is commonly referred to as the "DLL Conflict" problem.
I got bit by not having it on a fresh XP install and in looking for it on another system (recently installed as well) found various flavors existing only in the program files tree, but not in the windows one. So recent apps are following this as well.
Would be great to have AvsP good to go from the start (and with the correct version of msvcr71.dll that you compiled with to go with it).
qwerpoi
1st August 2007, 02:44
Sorry for not getting this up sooner, here's a bugfix update which should fix a few bugs some people have pointed out recently:
http://avisynth.org/qwerpoi/upload/AvsP_bugfix3_v1.4.0.zip
Make sure you are using AvsP v1.4.0, get the AvsP.pyo from the zip file and place it in the same directory as AvsP.exe (overwrite the older AvsP.pyo if it exists). The fixes will be in effect the next time you start up AvsP. Just so you know, here are the bugs this update fixes in v1.4.0:
+ fixed calltip bug with parentheses inside string (thanks niiyan)
+ fixed calltip bug with filters with zero arguments (thanks niiyan)
+ fixed calltip bug with "Frequent calltips" turned off (thanks Alain2)
+ fixed asterisk on title bar in separate video window (thanks krisq)
+ fixed color customization to allow non-white default background (thanks RedDwarf1)
+ fixed (?) open with unicode filename bug (thanks Zarxrax)
The first three bugs were fixed in previous bugfixes, the last three are newer. The 5th fix means you can set up AvsP with a dark background for the script, just go to "Options -> Fonts and colors..." and configure the default background color. You'll have to change quite a few other colors to completely get rid of the white background, I may make an easier way to do this in a later release. And I *think* I fixed the unicode bug Zarxrax pointed out, please let me know if it still occurs.
I'm currently working hard on the next release, it's shaping up quite nicely (with features such as automatic sliders, resize, calculator, bitrate calculator, encoding gui, etc). There's still a lot of work I need to do, so I can't guarantee when it will come out, hopefully within a month.
Would be great to have AvsP good to go from the start (and with the correct version of msvcr71.dll that you compiled with to go with it).
Okay then, the next version of AvsP will include the msvcr71.dll, thanks for the clarification.
LL00
1st August 2007, 11:37
AvsP file information displays RGB color space, but when I put info() in the .avs, It displays YU12.
can you check that?
honai
1st August 2007, 11:47
with features such as automatic sliders, resize, calculator, bitrate calculator, encoding gui, etc
Wow, that's impressive, thanks for your efforts, looking forward to it!
Zarxrax
1st August 2007, 13:57
And I *think* I fixed the unicode bug Zarxrax pointed out, please let me know if it still occurs.
The first unicode problem I pointed out is fixed now.
However, it still does not seem to work with files which contain japanese text. I'm not sure what, if anything makes these files any different. I right-click on a files with a japanese filename, and choose open with AvsP, and AvsP simply opens up a blank page. No error message.
ChiDragon
1st August 2007, 14:44
LL00, :script:, colorspace reporting works fine here.
qwerpoi
1st August 2007, 18:53
AvsP file information displays RGB color space, but when I put info() in the .avs, It displays YU12.
can you check that?
Make sure you are using a recent version of Avisynth (I'm using 2.5.7), since AvsP isn't able to directly communicate with older versions of Avisynth.
The first unicode problem I pointed out is fixed now.
However, it still does not seem to work with files which contain japanese text. I'm not sure what, if anything makes these files any different. I right-click on a files with a japanese filename, and choose open with AvsP, and AvsP simply opens up a blank page. No error message.
Yeah, I figured it out, it looks like the Python language specifially has trouble decoding japanese unicode strings properly. Oddly enough, wxPython (the gui library used by AvsP) can handle them fine, so a clunky workaround is to open a japanese file with AvsP, which gets you a blank page, then drag and drop the file on to the blank page. I'll try and see if there's some downloadable Python codecs or some other possible fix to the problem in the meantime.
LL00
2nd August 2007, 14:32
Make sure you are using a recent version of Avisynth (I'm using 2.5.7), since AvsP isn't able to directly communicate with older versions of Avisynth.
Yes, you right, with 2.5.7 it's fine. I used 2.6.0.0, that's why I got this wrong info with avsp.
RedDwarf1
4th August 2007, 20:07
Thanks qwerpoi for adding the ability to change the background colour. That has made a big difference to it's usability for me. I will no longer have to move the video window up to cover as much of the white text window as I can as it did affect how I could see the video having bright white showing. :D :thanks:
AlanHK
12th August 2007, 20:17
A while ago qwerpoi was kind enought to give me a macro to save bookmarks (below).
Not being a python coder myself, I wonder if someone can advise how to input a list of bookmarks to Avsp?
macro to extract bookmark list
filename = avsp.GetSaveFilename(title='Save bookmarks to text file')
f = open(filename, 'w')
for bm in avsp.GetBookmarkList():
f.write(str(bm)+'\n')
f.close()
qwerpoi
13th August 2007, 06:12
Not being a python coder myself, I wonder if someone can advise how to input a list of bookmarks to Avsp?
Assumming you want to get the bookmark list from the previously written text file (ie, a bookmark frame on each line), the macro would look like this:
filename = avsp.GetFilename(title='Get bookmarks file')
f = open(filename, 'r')
text = f.read()
f.close()
bookmarks = text.split()
avsp.SetBookmark(bookmarks)
Here I'm taking advantage of the fact that the SetBookmark() function can take in a list of frame numbers to set as bookmarks (as opposed to one bookmark at a time). You might also notice that in this macro I passed the function a list of strings instead of numbers - the function automatically does the string to integer conversion for you. Hope that helps.
callmemusashi
13th August 2007, 07:47
Excellent app! It's been a while since I had to convert a Real Media file, and the script I thought I was supposed to use wasn't working. I tried your tool, and it worked immediately. Kick ass. (Turns out all I was doing wrong was spelling the damn file incorrectly, but that doesn't mean this tool is any less helpful ;)
AlanHK
13th August 2007, 17:28
Assumming you want to get the bookmark list from the previously written text file (ie, a bookmark frame on each line), the macro would look like this
Thanks.
-- I note that response gets very twitchy when I load 188 bookmarks. Not that many people would be doing that.
qwerpoi
27th August 2007, 19:26
Just to let you guys know, I'll be releasing the next version of AvsP in about a day or two. Unless there are any major objections, I'm going to release it in a new thread, since it's stepping up to version 2.0.0, which won't be 100% backwards compatible with older versions. Also, this thread's getting a bit long (I believe it's the largest in the avisynth forum!), making it a bit hard to wade through for info.
gomguk
1st April 2008, 21:23
AvsP 2.0.2 Korean language file.
Making(Credit) by "Hani"(name).
Download URL:
http://zizybe.bcpark.net/data/avsp202_korean_lang.zip
Please register avsP official website. ^^
azsd
6th April 2008, 13:55
nice tools! I have to open three Virtualdubmod to load differnt sripts and click between taskbar til yesterday.
Is there any option to make the priview windows floatable or dock to right of editor?
I have lots of blank on the right of scripts.
talen9
6th April 2008, 14:14
This is an OLD thread! Or, better, it is about an old version of AvsP.
Please refer to this thread (http://forum.doom9.org/showthread.php?t=129385) instead :)
torpare
10th October 2008, 10:19
I tried out using VirtualDub as external player for previewing, but decided I preferred the internal preview. There seemed no way to revert other than by reversing my steps, ie removing the path to VDub from the box labelled 'External player' in 'Program Settings -> General tab'. So that's what I did.
Since then, every time, a blank preview window comes up and the status bar continues to show "Run the script with an external program" when the mouse cursor is held over the 'play' button. I can't see any way to restore the internal preview.
Can anybody please tell me what I should be doing that I'm not?
talen9
10th October 2008, 12:50
Ahem ... did you have a look at (my) post right above yours? ;)
torpare
12th October 2008, 09:19
Sorry!
(The link on the AvsP website is still to this - old - thread.)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.