diff options
Diffstat (limited to 'musikcube_win32_with_milkdrop2_0.98.1/plugins/Milkdrop2/docs/milkdrop.html')
-rw-r--r-- | musikcube_win32_with_milkdrop2_0.98.1/plugins/Milkdrop2/docs/milkdrop.html | 1427 |
1 files changed, 1427 insertions, 0 deletions
diff --git a/musikcube_win32_with_milkdrop2_0.98.1/plugins/Milkdrop2/docs/milkdrop.html b/musikcube_win32_with_milkdrop2_0.98.1/plugins/Milkdrop2/docs/milkdrop.html new file mode 100644 index 0000000..5d12d5a --- /dev/null +++ b/musikcube_win32_with_milkdrop2_0.98.1/plugins/Milkdrop2/docs/milkdrop.html @@ -0,0 +1,1427 @@ +<HTML> +<HEAD> +<TITLE>MilkDrop Documentation</TITLE> +</HEAD> +<BODY> +<PRE> +<A NAME="milkdrop_top"> +<B>MILKDROP 2.1 (February 2009)</B> + a Winamp visualization plug-in by Ryan Geiss + copyright (c) 2001-2009 Nullsoft, Inc. + + +Useful Links: + <A HREF="http://www.nullsoft.com/free/milkdrop/">official milkdrop homepage</A> + <A HREF="http://forums.winamp.com/forumdisplay.php?forumid=81">online forums</A> - for preset sharing, troubleshooting, + comments, and feature requests + <A HREF="http://www.winamp.com/">Nullsoft Winamp</A> + <A HREF="http://www.microsoft.com/windows/directx/">Microsoft DirectX</A> + <A HREF="http://www.milkdrop.co.uk/">milkdrop.co.uk</A> - an excellent third-party preset community site + + + +<B>What is MilkDrop?</B> +----------------------- +<B>MilkDrop</B> is a music-visualization "plug-in" for the Winamp music player. +As you listen to music through Winamp, MilkDrop renders the soundwaves in a +visual feedback loop, driven by 3D graphics hardware, to create a +rich visual journey through sound. MilkDrop can also be driven by a live +audio feed (microphone or line-in) - see the documentation for details. + +<B>MilkDrop 2</B> is a major upgrade to the original MilkDrop visualizer, opening up +the power of modern graphics chips and programmable pixel shaders to the realm +of music visualization. Pixel shaders allow dozens, even hundreds of complex +instructions to be executed for every pixel on the screen, every frame. +Other new features include jpg textures, gaussian blurring, a preset "mash-up" +feature, and a prest "back" button. MilkDrop 2 is backwards-compatible with +presets from MilkDrop 1. + + + +<B>Section Listing</B> +----------------------- + 1. <A HREF="#1">requirements</A> + 2. <A HREF="#2">installation</A> + 3. <A HREF="#3">tweaking</A> + 4. <A HREF="#4">usage</A> + 4.a. <A HREF="#4a">keyboard commands</A> + 4.b. <A HREF="#4b">config panel</A> + 4.c. <A HREF="#4c">preset authoring</A> + 4.d. <A HREF="#4d">rating system</A> + 4.e. <A HREF="#4e">custom messages</A> + 4.f. <A HREF="#4f">sprites</A> + 5. <A HREF="#5">troubleshooting</A> + 6. <A HREF="#6">known issues / misc. / tips</A> + 7. <A HREF="#7">using line-in</A> (for live audio input) + 8. <A HREF="#8">acknowledgements</A> + 9. <A HREF="#9">version history</A> + + + +<A NAME="1"> +<B>1. Requirements</B> +----------------------- + 1. Windows 98, ME, 2000, XP, or later. + 2. Hardware-based 3D graphics acceleration (i.e. a video card with 3D support) + supporting DirectX 9 with at least 8 MB of video memory; + however, we strongly recommend a GeForce 5700 (or better), + or a Radeon 9600 (or better). + 3. Winamp 5.12 or later ( <A HREF="http://www.winamp.com/">http://www.winamp.com/</A> ). + 4. DirectX 9.0 or later ( <A HREF="http://www.microsoft.com/windows/directx/">http://www.microsoft.com/windows/directx/</A> ). + + + +<A NAME="2"> +<B>2. Installation</B> +----------------------- + MilkDrop 2 comes with Winamp. To install it, just download and + install the latest version of Winamp. During the installation, + make sure the "MilkDrop 2" visualizer option is checked, so that + it gets installed, too. + + Once Winamp is installed, launch it. Load some music files into + your playlist and start playing some music. (Be sure to play some music + before trying to launch the visualizer - otherwise you'll just see a + black screen.) + + Once music is playing, hit <B>CTRL+K</B> and a list of visualization + plug-ins will appear. Select "MilkDrop 2" from the list. Then click + the "Start" button, and it will launch the visualizer. + + Quick Tips: + * If you want to go full-screen, double-click on the visualizer itself. + * CTRL+SHIFT+K starts or stops the visualizer. + * To configure MilkDrop's options, exit the visualizer and hit ALT+K. + + If you have trouble getting MilkDrop to run properly after installation, + try installing various recent WHQL drivers for your video card, or installing + DirectX; doing these two things (especially the first) will fix 99% of + problems. See the Troubleshooting section of the documentation for more + information. + + + +<A NAME="3"> +<B>3. Tweaking to achieve the best image quality</B> +----------------------- + a) Fullscreen Display Mode [first tab of config screen] + + When you run MilkDrop fullscreen, it changes the display + mode to whatever you select here. Generally speaking, + the speed (framerate) and smoothness of MilkDrop will drop + as the resolution (number of pixels on the screen) + increases. So, if it's running to slow in fullscreen + mode, try selecting a smaller fullscreen display mode. + + b) Canvas Stretch [second tab] + + This option lets you trade resolution [crispness] for + speed. If MilkDrop runs too slow, in any mode (windowed/ + fullscreen/desktop), try cranking up the canvas stretch + to, say, 1.5X or 2X. The image will not look as crisp, + but MilkDrop will probably run much faster. (Assuming + that your graphics chip was the bottleneck.) + + c) Mesh Size [second tab] + + This is the main option that affects how much processor + (CPU) MilkDrop uses. If you crank it up far beyond the + default, expect to be CPU-bound (where your framerate drops + because the CPU is the bottleneck). To get MilkDrop to + speed up, drop the Mesh Size back down. The Mesh Size + decides how many points on the screen the per-vertex + equations will be executed for; the higher the mesh size, + the more fidelity you will see in the motion. + + d) tips for LCD and laptop users + + LCD screens: Note that most LCD screens (flatpanels) usually run + at a fixed frequency only - usually 60 Hz - meaning that they update + the screen 60 times per second. However, sometimes the video driver + reports that it supports other refresh rates, such as 72, 75, 85, etc. + It is strongly recommended that [for fullscreen mode, and for Windows + in general] you choose a display mode with a 60 Hz refresh rate, for + the smoothest possible animation. For this plugin, you will also want + to choose Maximum Framerates that divide evenly into 60 - such as 60, + 30, 20, 15, 12, 10, 6, 5, and so on - so that the # of times the LCD + shows each frame of animation remains constant, resulting in the + smoothest possible animation. + + e) color (bit) depth: 16 or 32? + + The answer, nowadays, is a resounding "32". Video memory + is plentiful these days; use 32 bit color, for both your + windows desktop (...so that MilkDrop's windowed mode can + run at 32 bits) and for MilkDrop's Fullscreen Display Mode + setting (where "8888" denotes 32 bits). + + Some ancient video cards don't have enough memory to run MilkDrop + properly (or smoothly) in 32 bits, though; you might want to + try 16-bit color if your card has less than 32 MB of video + memory, if you are using a laptop, or if your video card is + significantly old. In the MilkDrop config panel, 16-bit modes + show up as "555" or "565". + + If you find that your card runs best in 32-bit color, you should + have no problems with brightness levels while running MilkDrop. + However, if your card runs best in 16-bit color, you should + then adjust the Brightness slider on the second tab of the config + panel (which only affects 16-bit color video modes!). The goal + is to make the image as bright as possible, without oversaturating + it (washing it out, often to bright pink or white). This setting + also varies for different cards, depending on how the card rounds + color values, so we recommend seeing how bright you can set the + slider (closer to '0') without oversaturating the image. Usually, + a setting of '0' or '2' works the best. + + + + +<A NAME="4"> +<B>4. Usage</B> +----------------------- + <A NAME="4a"> + <B>4.a. Keyboard Commands</B> + + The following keys can be used to control MilkDrop while it is running. + (Note: pressing F1 while MilkDrop is running will show you this list) + <FONT SIZE="3"> + <B>GENERAL</B> + escape: exit to winamp + + <B>PRESET LOADING</B> + BACKSPACE: return to previous preset + SPACE: transition to next preset + H: instant Hard cut (to next preset) + R: toggle random (vs. sequential) preset traversal + L: load a specific preset (invokes the 'Load' menu) + +/-: rate current preset (better/worse) + scroll lock: lock/unlock current preset + (keyboard light on means preset is locked) + (prevents random switch to new preset) + A: aggregate preset - loads a random preset, + steals the warp shader from a different random preset, + and steals the composite shader from a third random preset. + D: cycle between various lock-states for the warp and + composite shaders. When one of these shaders is locked, + loading a new preset will load everything *except* the + locked shaders, creating a mix between the two presets. + + <B>PRESET EDITING AND SAVING</B> + M: show/hide the preset-editing menu + S: save new preset (asks you for the new filename) + N: show per-frame variable moNitor + (see <A HREF="milkdrop_preset_authoring.html">milkdrop_preset_authoring.html</A>) + + <B>MUSIC PLAYBACK</B> + z/x/c/v/b: navigate playlist (prev/play/pause/stop/next) + U: toggle shuffle + P: show playlist + up/down arrows: volume up/down + left/right arrows: rewind/ffwd 5 seconds + SHIFT + left/right arrows: rewind/ffwd 30 seconds + + <B>FUNCTION KEYS</B> + F1: show help screen + F2: show song title + F3: show song length + F4: show preset name + F5: show fps (frames per second) + F6: show rating of current preset + F7: re-read custom message file (milk_msg.ini) from disk + F8: jump to new directory (for presets) + F9: toggle stereo 3D on/off + + <B>SPRITES AND CUSTOM MESSAGES (FOR VJ's)</B> + T: launch song title animation + Y: enter custom message mode + ##: load message ## (where ## is a 2-digit numeric code (00-99) + of a message defined in <B>milk_msg.ini</B>) + *: clear any digits entered. + DELETE: clear message (if visible) + F7: re-read <B>milk_msg.ini</B> from disk + K: enter sprite mode + ##: load sprite ## (where ## is a 2-digit numeric code (00-99) + of a sprite defined in <B>milk_img.ini</B>) + *: clear any digits entered. + DELETE: clear newest sprite + SHIFT + DELETE: clear oldest sprite + CTRL+SHIFT+DELETE: clear all sprites + F7: no effect (<B>milk_img.ini</B> is never cached) + SHIFT + K: enter sprite kill mode + ##: clear all sprites with code ## + *: clear any digits entered. + CTRL + T/Y: kill song title and/or any custom messages + CTRL + K: kill all sprites + </FONT> + Note that there are more keys available, but because many + are only relevant to people designing their own presets, + they are listed in the <A HREF="milkdrop_preset_authoring.html">preset authoring guide</A> instead. + + + <A NAME="4b"> + <B>4.b. config panel</B> + + The configuration panel lets you customize the way MilkDrop runs. + To learn how to get to the configuration panel, see the "Installation" + section above. + + Once you're in the config panel, you'll see a number of tabs + at the top, some dropdown boxes, and some checkboxes. Each + of the tabs at the top brings you to a different page of + configuration options. To get help on a setting, simply click + on the '?' in the upper-right corner of the config panel, + and then click on the setting you want help with. + + + + <A NAME="4c"> + <B>4.c. preset authoring</B> + + Please see the included text file, <A HREF="milkdrop_preset_authoring.html">milkdrop_preset_authoring.html</A>, + for instructions on how to create and save your own presets. + + + <A NAME="4d"> + <B>4.d. rating system</B> + + The built-in rating system allows you to rate each preset on a scale + from 0 to 5. A rating of 5 is very good, while a rating of 0 is + the worst. The ratings decide how often the presets will be randomly + loaded. If a preset has a rating of 0, it will never be randomly + loaded (unless they're all zero; then they all have an equal chance). + + To show the rating for a preset, press F6. You can adjust the + rating for a preset with the +/- keys. When you make adjustments, + they save automatically; there's no need to save the preset to make + the rating change permanent. + + Here's a recommended interpretation of the numeric values: + 0 = I never want to see this preset again + 1 = very ugly + 2 = mediocre + 3 = fair + 4 = good + 5 = downright stimulating + + If a preset seems "lost" because you set its rating to 0 and it + won't ever come back, you can always load it up by hitting 'L' + to conjure the 'Load Preset' menu, finding the preset you want, + loading it, then hitting +. + + + + <A NAME="4e"> + <B>4.e. custom messages</B> + + ABOUT CUSTOM MESSAGES + The "Custom Message" feature of MilkDrop allows you to display + short text messages on the screen while MilkDrop is running. + They are highly configurable; you can set all of the following + parameters: the font, the size, the positioning, color, bold + state, italic state, and so on; and you can even have it + randomize some of these properties. + + CREATING THE MESSAGES + You can save up to 100 messages in the file MILK_MSG.INI in + your Winamp\Plugins\ folder. To open this file, go to the + MilkDrop configuration screen (ALT+K from Winamp) and click the + "Edit Custom Messages" button. Or, you can just edit it + manually if you know how; it's plain-text. + + The first thing you see when you open the file is a bunch of + lines that start with two forward slashes (//). These are + comment lines, and they explain the syntax for adding a font + or a message to the file. This is your main reference for + finding out what all the parameters do for the fonts & messages; + it is recommended that you leave this information in the file, + although it can be removed or (modified) and the messages will + still work. + + After the comments come first the fonts, then the messages. + The fonts are simply a way to specify a typeface, bold state, + italics state, and red/green/blue color for the font. You can + configure up to 16 fonts like this (numbered 00-15). These fonts + will serve as template fonts for the custom messages. + + The next section is the actual messages. Each one has a + text message (the 'text' parameter) that will be shown to the + user, and each one references one of the 16 fonts that were + defined in the previous section. You can also specify the + size (size), position (x,y), a growth factor (growth) that + will grow/shrink the message over its lifetime, the number + of seconds to show the message (time), and the fraction of that + time that is spent fading in (fade). + + You can also randomize some of these values: 'randx' and 'randy' + will randomly perturb the (x,y) coordinates every time the message + is shown to the user, and 'randr'/'randg'/'randb' will randomly + perturb the (r,g,b) color in the same way. + + Finally, you can override any of the default properties for the + font that this message uses: (face, bold, ital, r, g, b). + + INVOCATION AND USAGE + There are two ways to invoke custom messages: one automatic, + the other manual. + + The automatic way is to go to the MilkDrop config panel (ALT+K), + click the 'More Options' button, and set the value in the + 'Time between RANDOM custom messages' box to something greater + than zero. This will cause MilkDrop to randomly display custom + messages while it is running, and the average time (in seconds) + between messages will be the value you entered here. If you + wish to disable random custom messages, set this value to -1 + (or any negative number). Note that all messages in the file + have an equal change of being picked. + + The manual way is to type in the two-digit code (00-99) of the + message while MilkDrop is running. However, you can't use the + numeric keypad for this - you have to use the numbers at the + TOP of your keyboard to do it. If you mess up while entering + the first digit, just press the '*' key to start over. + + Note that if you change the MILK_MSG.INI file while MilkDrop + is running, you will not be able to see the changes until + you hit F7, which tells MilkDrop to re-read the MILK_MSG.INI + file from disk. + + + <A NAME="4f"> + <B>4.f. sprites</B> + + ABOUT SPRITES + The "Sprite" feature of MilkDrop allows you to display + any image of your choice in the foreground (on top of + MilkDrop) while it runs. The sprites can fade in and out, + move around, respond to the music, and so on. You define + them in a file - <B>milk_img.ini</B> in your winamp\plugins + directory - much like you define custom messages, each + having an identifying code number from 00 through 99 (used + to invoke them). However, the way the individual sprites + are defined is different; <EM>you write code for them</EM>, instead + of just setting parameter values. This is a little bit + tougher to do (it's very much like preset authoring), but + adds a great deal of flexibility to what you can do with + the sprites. + + CREATING THE SPRITES + You can define up to 100 sprites in the file MILK_IMG.INI in + your Winamp\Plugins\ folder. To open this file, go to the + MilkDrop configuration screen (ALT+K from Winamp) and click the + "Edit Sprites" button. Or, you can just edit it manually if + you know how; it's plain-text. + + The first thing you see when you open the file is a bunch of + lines that start with two forward slashes (//). These are + comment lines, and they explain the syntax for creating a sprite. + This is your main reference for finding out what all the + parameters do for the fonts & messages; it is recommended that + you leave this information in the file, although it can be removed + (or modified) and the sprites will still work. + + After the comments come the sprite definitions. Each sprite is + made up of one parameter that indicates the image file to use + (this is the 'img=...' line), and two types of code: initialization + code, and regular code. + + The first - initialization code - is executed only once, when you + launch the sprite. Use it to do one-time initialization of variables + (such as the opacity (a), rotation angle (rot), position (x,y), + and so on) or to invent new variables that you will access later. + This code is marked by the 'init_1=...', 'init_2=...', etc. lines. + + The second type of code - marked by 'code_1=...', 'code_2=...', etc. + - is executed every frame, just prior to plastering the sprite on + the screen. Use it to animate the sprite, moving it around (changing + x,y), scaling it up and down (sx,sy), fading it in and out (a), + changing its color, and so on. + + Please see the comments included in the sample milk_img.ini file + for full details and examples on how to author sprites. + + INVOCATION AND USAGE + There is currently only one way to invoke sprites: manually. + To do this, first press 'K' to enter 'sprite mode' (while + running MilkDrop). Now, whenever you type in a two-digit + code (00-99), MilkDrop will try to find & launch the sprite + you've requested, from the milk_img.ini file. If there is + an error, it will display an error message in the upper-right + corner. Note that to enter the two-digit code, you can't use + the numeric keypad; you have to use the numbers at the TOP of + your keyboard. + + If you make an error entering the first digit of the code, + just press '*' to start over. If you want to + clear the most recently-invoked sprite, press DELETE. If you + want to clear the oldest sprite, press SHIFT + DELETE. If you + want to clear all sprites, press SHIFT + CTRL + DELETE. + + If you want to clear sprites by their 2-digit code, press + SHIFT + K (instead of just 'K') to enter 'sprite kill mode.' + Now, when you enter a two-digit code, instead of invoking + the sprite, MilkDrop clears all running sprites with that + two-digit code. + + + +<A NAME="5"> +<B>5. TROUBLESHOOTING</B> +----------------------- + + If MilkDrop has a critical problem (e.g. fails to load, freezes, etc.) + or if the image is distorted, torn, corrupted, or all one solid color, + try the following two suggestions to resolve the problem. In 90% + of these cases it can be fixed. If you have a different problem, + scroll down past this part and try to find the appropriate symptom + and its solution. + + 1. UPDATE YOUR VIDEO DRIVER, OR TRY OTHER DRIVERS + + Almost all display problems are caused by buggy video drivers! + + A "driver" is a piece of software that translates graphics-related + commands from programs, like MilkDrop, into the native language of + your specific graphics hardware. + + For desktop machines, there are typically three sources for video drivers: + 1) those from the *chip* manufacturer's website (usually + nvidia.com or ati.com) (best source) + 2) those from the card manufacturer's website (LeadTEK, PNY, etc.) + 3) those that shipped with Windows (yuck) + + For laptops: + 1) the driver from the *laptop* manufacturer + 2) (maybe) the driver from the graphics chip manufacturer + (ATI, Nvidia, etc) - however, it's fairly common to find + that the laptop requires a custom driver written by the + laptop manufacturer. + 3) the driver that shipped with Windows (yuck) + + Give them all a shot. Track down every driver you can find for + your card, and try it. Try the WHQL ones first - these versions of + the drivers have passed "Windows Hardware Quality Labs" certification + and are usually the more stable and reliable ones. + + In general, it's a very good idea to use only Microsoft-certified + WHQL drivers for your video card. Often people want to get the newest, + fastest beta drivers, but these drivers are almost ALWAYS riddled + with new bugs. You can also watch the version number of the drivers + a company releases - if the version number just jumped to a new + series (such as from the 70's to the 80's), watch out, it probably + has a lot of bugs that need worked out - give it 3-4 months before + expecting the new driver series to work well. With video drivers, + the newest isn't always the best! + + Here is a list of some common card/chip manufacturers and where + to get their drivers. Don't forget to choose the WHQL driver! + + [ <A HREF="http://www.nvidia.com/page/drivers.html">NVIDIA driver</A> ] + Card manufacturers using NVIDIA (GeForce) graphics chips: + (note - most of these just link you to the nvidia driver above) + [ <A HREF="http://www.xfxforce.com/web/support/showSearchDriversProductCode.jspa">XFX</A> ] + [ <A HREF="http://www.evga.com/support/drivers/">EVGA</A> ] + [ <A HREF="http://www.bfgtech.com/driverdownload.aspx">BFG</A> ] + [ <A HREF="http://www2.pny.com/support/support.aspx">PNY</A> ] + [ <A HREF="http://ati.amd.com/support/driver.html">ATI driver</A> ] + Card manufacturers using ATI (Radeon) graphics chips: + [ <A HREF="http://www.visiontek.com/teksupport/drivers/drivers.html">VisionTek</A> ] + [ <A HREF="http://www.dmmdownload.com/current.php">Diamond</A> ] + [ <A HREF="http://downloadcenter.intel.com/">Intel</A> ] - then click 'graphics' on the left + [ <A HREF="http://www.sis.com/download/">SiS</A> ] - agree, then select 'graphics drivers' + [ <A HREF="http://www.s3graphics.com/">S3</A> ] - then click 'drivers' + [ <A HREF="http://www.via.com.tw/en/products/graphics/">VIA</A> ] + [ <A HREF="http://www.matrox.com/graphics/en/corpo/support/drivers/home.php">Matrox</A> ] + [ <A HREF="http://www.creative.com/language.asp?sDestUrl=/support/downloads">Creative Labs</A> ] + + For others - or in general - if your graphics chip is made by Trident, + for example, then try a <A HREF="http://www.google.com/">google</A> search for: + + Trident graphics driver + + Then click on "support", then "drivers" (or "downloads"), then + "graphics driver", and so on. + + + 2. [RE]INSTALL DIRECTX + + Make sure you have a quasi-recent version of <A HREF="http://www.microsoft.com/windows/directx/">Microsoft DirectX</A> + installed. In reality, though, almost every PC in the world has + DirectX 9 on it at this point, so this shouldn't be a problem. + If you go to download it, you'll only be able to find DirectX 10 - + this is fine to install, though, as it includes DirectX 9 inside + it. As a last resort, though, if you are having problems, + you could try re-installing DirectX to see if it helps. + + + If you're having a non-critical problem, browse the following list of + common problems and their causes and solutions. Note that for each symptom- + cause-solution block, there can be multiple symptoms with the same cause and + solution, and the same symptom might be listed in multiple blocks. + + If the solutions below don't work for you, please visit the forums at + <A HREF="http://www.nullsoft.com/free/milkdrop">http://www.nullsoft.com/free/milkdrop</A>, where you can read the most + recent troubleshooting issues and solutions. + + + ENTRY 1 + SYMPTOM: + -any error message saying "Failed to create ..." + or "not enough memory...", or + -only a portion of the screen displays correctly; the rest is + either filled with garbage or badly flickering + CAUSE: + 1) Your video card might not have enough memory to run MilkDrop at + the resolution (screen width and height) you've picked, + 2) your drivers might be out of date, + 3) you might need to reinstall DirectX (very very rare), or + 4) your graphics card might be to crappy to *actually* run + pixel shaders well. + SOLUTION: + 1) To battle video memory problems: + + Go to the config panel and try smaller video modes (e.g., + 320x240 is smaller than 640x480). Even better is to try + a lower color bit depth; if you'd selected a 32-bit ("8888") + video mode before, try a 16- ("565" or "555") or 24-bit ("888") + one, for example. Note that it might only work in one of them; + so make sure you try them all. Trying these things is especially + important on laptops with limited video memory, or older video + cards with a small amount of video memory. + + Finally, you can try locking the texture size (or "canvas size") + to 256x256 pixels, just to see if that fixes the problem. + If it does, try using a smaller fullscreen video mode to + free up some memory, or if running windowed, close other + graphics-hungry applications. + + 2,3) for instructions on how to reinstall DirectX or update + drivers, <A HREF="#5">go here</A>. + + 4) Go to the MilkDrop config panel (hit ALT+K) and on the second tab, + in the "Pixel Shaders" box, select "None." Now does MilkDrop run + ok? If so, your video card probably just can't reliably run + pixel shaders, due to either inferior hardware, or it could + be the driver. You can always try setting "Pixel Shaders" + back to "Auto" and then installing a newer (preferably WHQL) + video driver. + + + ENTRY 2 + SYMPTOM: + -When I go to the Load Preset menu ('L') in MilkDrop, some of the + presets on disk are missing. + -I downloaded some new presets and put them in my Plugins\MilkDrop2\Presets + directory, but I can't access them from within MilkDrop. + CAUSE: + You probably have an older video card that can't handle the pixel + shaders needed to run some of the presets. MilkDrop automatically + hides any presets from you that you can't run. + SOLUTION: + * You could buy a new graphics card - one that meets the minimum + recommendation for MilkDrop 2. These cost less than $40. + * You could try forcing MilkDrop to try to run these presets. + Sometimes MilkDrop just hides them from you because it predicts + they will run horribly slow on your graphics card; in case it + is wrong about that, try this. Go into the MilkDrop config + panel (ALT+K) and go to the More Settings tab. Under the + "Pixel Shaders" option, change it from "Auto" to "Shader Model 2" + or "Shader Model 3". Then try to run MilkDrop and see if the + presets appear. If they do, you're in luck; if they don't, your + GPU really doesn't support those shader models. + + + ENTRY 3 + SYMPTOM: + MilkDrop always looks the same - it's always showing the same + preset, and it never changes to a new preset unless I tell it to. + CAUSE: + Scroll Lock is on. + SOLUTION: + The Scroll Lock key is how you tell MilkDrop to lock the current + preset - i.e. don't randomly transition to a new preset unless you + do it. The state of the Scroll Lock key is remembered when you + start or stop MilkDrop, too, so be careful of that. If you are + experiencing this problem, you can fix it in any of the following + three ways: + 1. hit Scroll Lock while MilkDrop is running (and the viz window is active); + 2. load up the MilkDrop config panel (ALT+K), go to the More Settings + tab, and uncheck the "Start milkdrop with preset lock (scroll lock) + key ON" box; + 3. if you're using a modern skin, there is a "random" button on + the frame of the window, which is the inverse of the Scroll Lock + state - i.e. you probably have Scroll Lock on and "random" off. + Click the "Random" button to turn random transitions back on + (and notice that scroll lock gets turned off as a result). + + ENTRY 4 + SYMPTOM: + I was browsing for presets from within MilkDrop ('L') key and + got lost. How do I get back to my presets? + SOLUTION: + Two ways to fix this. The easiest is to just reset MilkDrop + to its defaults - hit ALT+K to load the MilkDrop config panel, + then click the 'Defaults' button. The next time you launch + MilkDrop, it will start you in the default preset directory. + + To fix it manually (and preserve all your settings), run + MilkDrop, hit F8, and paste in this path: + C:\Program Files\Winamp\Plugins\Milkdrop2\presets + [or equivalent]. + + Another way to fix it is to hit 'L', and browse all the way + down to the root folder (repeatedly select ".."), then + go into Program Files, Winamp, Plugins, MilkDrop2, and finally, + presets. + + + ENTRY 5 + SYMPTOM: + -things flicker through (such as my AIM window ticker, taskbar + clock, web page animations, etc.) when I'm running MilkDrop + in fullscreen mode. + CAUSE: + You're probably running MilkDrop fullscreen at the same + resolution & color depth as your desktop, and Windows isn't + properly handling MilkDrop's request for exclusive access to the + screen, and is still letting other applications paint (draw) + themselves. + SOLUTION: + Change either your Windows desktop resolution or color depth, or + MilkDrop's fullscreen resolution or color depth, so that there + is some difference between the two. (To change your Windows + display settings, go to the Start Menu -> Settings -> Control + Panel -> Display -> Settings tab, and then change the "colors" + or "screen area" settings from there.) Also make sure you're + not using "fake" fullscreen mode (...uncheck this box on the + main screen of the config panel). + + + +<A NAME="6"> +<B>6. Known Issues / Misc. / Tips:</B> +--------------- + a. Tip for video capture: if you'd like to save sequences of video + from this plugin, there are several programs out there that will + let you do this. Warning: you will need a ton of free hard drive + space, and a fast CPU helps. A few of these programs are: + "FRAPS" <A HREF="http://www.fraps.com/">http://www.fraps.com/</A> + "Hypercam" <A HREF="http://www.hyperionics.com">http://www.hyperionics.com</A> + + b. Close other apps: + For the best graphics performance, try to close as many other + applications as you can, before running the plugin, especially + those that tend to work in the background, such as anti-virus + or file-swapping software. Also, if you must leave other + applications open, try to minimize them (i.e. shrink the window + down to the taskbar) so that they stay out of the painting loop. + + c. Windows Vista / Winamp with per-user settings + Be aware that if you're running Vista as a non-admin user, + you can't write to (or delete from) files in the Program Files + directory, which is were MilkDrop 2 is installed. So, anything + you try to write or save (like milkdrop's settings file, milk2.ini; + or presets) will probably end up deep in some user-specific, + virtualized "Program Files" directory somewhere on your hard + drive. Yell at Microsoft for this one! + + Also, if you installed Winamp with per-user settings (instead of + shared settings) - on any OS, not just Vista - be aware that your + .INI files (milk2.ini, milk2_img.ini, milk2_cfg.ini) are all + stored in a folder like this: + + C:\Documents and Settings\<username>\Application Data\Winamp\Plugins + + (Note that 'Application Data' is a hidden folder.) However, + presets, textures, and things like that are all shared between + users, in the real [c:\Program Files]\winamp\plugins\milkdrop2 folder. + If you want to keep your presets separate, you can still do that, + though - just put them in a personal folder, and then seek to it + from within MilkDrop. If you're using per-user settings in Winamp, + it will remember which folder you last used. + + +<A NAME="7"> +<B>7. Using Line-In</B> +----------------------- + If you want to use your sound card's Line-In or CD Audio inputs for + sound data (instead of mp3 files), you can do this. Do the following: + 1. CONNECT WIRES + Connect your audio source (a stereo, a live feed, whatever) into + the line-in (or microphone) 1/8" jack on your sound card. You + might want to test & verify that your cable is good before doing + this. + 2. SELECT SOUND INPUT CHANNEL & ADJUST VOLUME + In Windows, double-click the speaker icon in your systray (where + the clock is). Then, on the menu, go to Options -> Properties + and select the "Recording" option. Then make sure the Line In + (or Microphone) input channel (whichever is appropriate for + your case) is SELECTED (with a check mark) and that the volume + is close to, or at, the maximum. Hit OK. + 3. TELL WINAMP TO USE LINE-IN + Open Winamp, and hit CTRL+L (the "Open Location" hotkey). Now + type in "linein://" as the location you want to open. (Leave out + the quotes and make sure you use FORWARD slashes.) Hit PLAY + ('x' key for the lazy), and the little built-in oscilloscope (or + spectrum analyzer) in Winamp should start showing your signal. + 4. RUN MILKDROP + Run MilkDrop as usual. If the waves are too small or large, + either adjust the volume from Windows' Volume Control, or adjust + the sound level at the source. + + If you are doing shows using live audio, and if you have a multiple monitor + setup, you might also want to use the "VJ mode" feature, which lets you + control MilkDrop (even editing shaders on the fly, etc.) via a separate monitor. + + + +<A NAME="8"> +<B>8. Acknowledgements</B> +----------------------- + A very special thanks & triple word scores out to Francis Gastellu + and Justin Frankel for the use of their quite-excellent + realtime mathematical expression evaluation library, evallib. + + A huge thanks to Rovastar for running milkdrop.co.uk and all + of the work and passion he has put into making MilkDrop great. + + Also, a super special thanks go out to the following preset + authors for their excellent artistic & mathematical work: + + Aderrasi + Bill Melgren + Che + CTho + Idiot + Illusion + Krash + Mstress + Rovastar + Rozzor + Studiomusic + Telek + Tobias Wolf Boi + Unchained + Zylot + + ...and to everyone else who has contributed. + + + + +<A NAME="9"> +<B>9. Version History</B> +----------------------- +2.2 - November 2009 + - updated to use ns-eel2 (thanks Justin) + +2.1 - January 2009 + -pixel shader 2.0 & 3.0 support tweaks + -unicode support for F2 key feature + -removed some older Milkdrop presets and added some newer ones to Winamp installer + +2.0e - August 2008 + -added localization support + -unicode support for milkdrop playlist and title + -tweaked menus + +2.0d - January 2008 + -worked around colossal Intel driver bugs. See (or skip) long description in next item. + -tightened up various uses of the DX9 api, to decrease the chances of bugs due to poor DX9 compliance + by drivers for lower-end graphics chips (namely Intel integrated graphics). Most importantly, + all Intel drivers seem to implement DrawIndexedPrimitiveUP() incorrectly, which was killing + MilkDrop. Since Intel has has this collosal failure in their driver for eons, I decided to work + around it, and removed all calls to this function. MilkDrop should now run properly on Intel + graphics chips. + -also did the following little things to help decrease chances of buggy driver interactions: + -now using more exact D3DFVF_TEXCOORDSIZE2(0,1,2) specifiers, in addition to _TEX2, etc. + -cleaned up headers (vertex declarations) in data\*.fx files to more closely match the vertex buffers. + -set z==0 for all vertices during the composite shader + -fixed some bugs w/giant mesh sizes + +2.0c - December 2007 (bundled with winamp 5.51) + -if a texture (used in a shader) is not found, MilkDrop now also looks in the current preset folder + to try and find it. This makes it so that preset downloaders can be lazy and just put + the presets, along with the textures that come with them, into the same directory. + -fixed a bug where blur textures weren't always being sampled with bilinear filtering + -fixed a bug where it would sometimes crash when exiting fullscreen mode while using a modern skin + (needed to tell Winamp that we were the viz window, via SET_EMBED_GUID(avs_guid)) + -desktop mode no longer causes explorer to crash in Windows Vista; it instead just shuts + off the icon-re-creation code. + -desktop mode: fixed default placement of icons, when taskbar is on the left/top side of the screen. + -removed Winamp version check, so people can run it with older winamps (within reason) + -if warand() function can't be found (older winamps), it calls a wrapper fn to rand() + -fixed font face for custom messages - was errantly using song title font face for custom msgs + -song title texture size is now based on max of screen width vs. height, rather than just width. + -simple waveform no longer draws itself when its alpha is less than 1/256 (0.004). + -added some cool new presets / filtered out some old crummy ones & repeats + -changes of note for preset authors: + -added "pixelsx" and "pixelsy" to preset's main per-frame and per-vertex equations. + (equiv. of "texsize.xy" in shaders) + -custom waves: you can now vary the # of samples from the custom wave per-frame code. + Added new var, "samples", to custom wave init code [read only] and per-frame code [r/w] - + tells you (and lets you set) the # of samples to draw for the wave. + -'time' value in shaders now wraps back to 0, after 10,000 seconds spent on a preset + (to avoid precision jitters) + -fixed bug where 'Draw Thick' was never working for custom waves. + -added "#define tex3d tex3D" to include.fx + ---( changes after this point were made in v2.0a, 25 Oct 2007, which wasn't officially released... )--- + -Preset list scan (when milkdrop launches) now happens in a background thread, + so there is no drop in framerate while the scan is done. + -added instancing to custom shapes!! + -you can now set the # of instances for each of the 4 custom shapes + [1..1024] + -the per-frame code will actually be called 'num_inst' times, + and each time, the variable 'instance' will increment (0,1,2,... num_inst-1). + -lots of new presets + -plugin no longer has a taskbar icon when running in desktop mode + -shader writing: tex2d() now works (before only tex2D() worked) + -fixed default fullscreen display mode (...if you'd never gone to the config + panel and saved your settings, it defaulted you to 1024x768; now it + defaults you to your desktop res). + -fixed a few blending bugs (and greatly cleaned up the code) + for transitioning between presets with mixed pixel shader versions + -transitions: when booleans from the old comp shader interpolate + during a blend, if the old & new shaders did & didn't use a comp shader + (or vice versa), then it will now be smart about when it switches the + boolean, so you don't see any avoidable jumps. (mostly for darken, + video echo orientation, brighten, solarize, etc.) + -presets now save with a few less decimal places for most of the values (less waste) + -finally fixed seldom-seen wave bug; it was due to per-frame code "wave_mystery = time*0.03;" when used with wave types 0,1,4. Now those wave types repeat the waveparam value in the [-1..1] range, so it always looks good. + -fixed preset list selected pos after preset delete + -found and fixed bug with custom wave/shape import + -Fixes to documentation, driver link updates, etc. + -Fixed bug with the 'texture wrap' and 'sustain level' menu items' + visibility (...they should, and now only do, show if the current preset + doesn't use pixel shaders). + -fixed bug with 'edit sprites' and 'edit custom messages' buttons on the config + panel - they were trying to edit the milkdrop 1.0 ini files (milk_*.ini + rather than milk2_*.ini). + -fixed bug with desktop mode - when paused, if you dragged the mouse around + on the desktop, milkdrop would update [new] frames instead of just redrawing + the exact same last [paused] frame. + -fixed bug with desktop mode - if you made winamp run just in the systray, + then ran MD2 in desktop mode, then minimized winamp to the systray, + then used a global hotkey to pause the song, then clicked on some + random window (say, calc.exe) and then clicked back on milkdrop, + the taskbar would disappear. This no longer happens because the + viz window, in desktop mode, now only covers the visible portion + of the desktop, and not the area occupied by the taskbar. + -docs: updated links & text for drivers section + +2.0 - 10 October 2007 (bundled with winamp 5.5) + -MilkDrop has been upgraded from DirectX 8 to DirectX 9. + -This means it now supports Pixel Shaders. + -Each preset can now have two shaders in it: a warp shader + and a composite shader. + -The "warp" shader performs the frame-to-frame image-warping operation. + -The "composite" shader performs the final display of the feedback + image to the user. + -See the <A HREF="milkdrop_preset_authoring.html">preset authoring guide</A> for more information. + -Added a "back" button for presets! You can now use the 'backspace' key + to go back to up to 64 presets that recently played. + -Presets can now load textures (jpg, png, etc.) from disk and use them + (in shaders) for whatever they want. + -Also added several built-in 2D and 3D procedural noise textures. + -You can edit the warp & composite shaders on-screen. + -Per-pixel equations have been renamed to per-vertex equations, because + that's what they really were. These equations determine how each point + moves - on a big grid that covers the screen. For all the pixels in between, + the motion was interpolated. Now, that motion data comes into the warp + shader as a "uv" coordinate, and you can use it like before, or you can + do more work on top of it - but because the pixel shader truly executes + (independently) on each pixel, the warp shader truly operates at a "per-pixel" + resolution. + -When editing per You can now copy and paste to and from the *Windows* clipboard. + CTRL+C copy + CTRL+X cut + CTRL+V paste + -The internal canvas (texture) size is no longer locked to power-of-2 squares; + it can now match the window size perfectly (...or you can override it + to use the old NP2 method). + -Max gridsize is up from 128 to 192. + -Added 'A' key (aggregate) - loads a random preset, then loads the warp shader + from another random preset, and then loads the composite shader from + a third random preset. + -Added 'D' key - cycles between various lock-states for the warp and + composite shaders. When one of these shaders is locked, + loading a new preset will load everything *except* the + locked shaders, creating a mix between the two presets. + -Ditched 'stereo 3D' mode. It never worked that well anyway. + -Added "aspectx" and "aspecty" (read-only) to per-frame and per-vertex variables, + to help presets deal with widescreen display modes properly. + Multiply an X,Y coord by these to make it fit the window properly. + -The q1-q8 variables have been expanded; the range is now q1-q32. + +1.04L - 04 May 2007 + -added localization support + -fixed Milkdrop DEP incompatibility + -fixed theming of preferences under XP+ + +1.04d - 13 February 2007 + -fixed some multi-user issues + +1.04c - 21 June 2006 + -added missing files to Winamp installer + -added multi user support + -fixed 100% cpu usage when paused + -added over 200 new Milkdrop presets to Winamp installer! + + +1.04b - 10 October 2003 + -slimmed down the presets for bundling w/Winamp 5 + -fixed blurry text when running in wa5 w/skinning, + before first window resize + -can now start plugin w/o music (Winamp 5+) + -(hopefully Justin shrank the DLL some, too) + +1.04 - 31 July 2003 + -upgraded to VMS (VisMegaSDK) 1.05 and DirectX 8. That means a revolutionized + Desktop Mode, better driver support, better multimon support, winamp + skinning (when running in windowed mode), increased general stability, + and much, much more. + -added CUSTOM SHAPES and CUSTOM WAVEFORMS. + -added the following variables for per-frame scripting: (all booleans, except + 'gamma') wave_usedots, wave_thick, wave_additive, wave_brighten + gamma, darken_center, wrap, invert, brighten, darken, solarize + (also, note that echo_zoom, echo_alpha, and echo_orient were already in there, + but weren't covered in the documentation!) + -added 'meshx' and 'meshy' [read-only] variables to the preset init, per-frame, + and per-pixel equations + -cranked max. mesh size up to 128x96 + -added alphanumeric seeking to the playlist; while playlist is up, + you can now press A-Z and 0-9 to seek to the next song in the playlist + that starts with that character. SHIFT+A-Z seeks upward (while lowercase/ + regular a-z seeks downward). + -added some options to config panel + -sprites & custom messages: added 'kill' keys + -CTRL+K kills all running sprites + -CTRL+T kills current song title anim + -CTRL+Y kills current custom message + -sprites: + -for sprites, color key can't be a range anymore; it's + now limited to just a single color. 'colorkey_lo' and + 'colorkey_hi' have been replaced with just one setting, + 'colorkey'. + -also, behavior of the 'burn' variable has changed; now, + a sprite can be burned in on any frame, not just on the + last frame before it dies. See the sample sprite config + file, milk_img.ini, for more information. + -preset ratings are no longer read in all at once; instead, they are scanned in + 1 per frame until they're all in. This fixes the long pauses when you switch + to a directory that has many hundreds of presets. If you want to switch + back to the old way (read them all in at once), there is an option for it + in the config panel. + -internal texture size now has a little more bias toward a finer texture, + based on the window size, when set to 'Auto'. (Before, for example, + to reach 1024x1024, the window had to be 768x768 or greater; now, it + only has to be 640x640 (25% of the way there). I adjusted it because + before, at in-between resolutions like 767x767, it looked very grainy; + now it will always look nice and crisp, at any window size, but still + won't cause too much aliasing (due to downsampling for display). + -..and much many massive amounts of more! + +1.03 final - 19 June 2002 + -fixed bug with motion vectors; when there were 64 of them on X + and 48 and Y (the upper limits), stray lines would sometimes + be drawn along the top and right edges of the screen. + -revamped the help screen + -added some cool new presets + -touched up the documentation + +1.03 beta 3 - 15 May 2002 + -letter 'g' no longer gets cut off in custom messages + -(oops... it's 'wave_mode', not 'wave_type'.) + -fixed 'q1'..'q8' in the preset init code. + -revamped the way presets are loaded & blended; transitions + should be cleaner now. + -made motion vectors morph more smoothly during transitions; + if the old preset had motion vectors on but the new one + doesn't, then the #, drift speed, length, and color + of motion vectors does not change as they fade out; + and vice versa if the mv's are fading in. + -added optional 'burn-in' for sprites, so when they are finished, + they leave an imprint in the background. The sprite will + burn into the background at the end of its lifetime + if the variable 'burn' is set to a nonzero value; if 'burn' + is zero, the sprite will not burn in. + -motion vectors: reverted to 1.02 functionality, following + krash's advice. So mv's should now be backwards-compatible + (with 1.02 versions and earlier). Now, dx and dy are constant + offsets for the motion vectors; if you want them to scroll, + alter dx and dy based on the time (or frame). + -finished writing critical notes in milk_img.ini. + -revamped the keyboard interface for custom messages & sprites. + see the documentation. The realtime help screen won't + provide too useful, though (not enough space to lay it all + down there). + +1.03 beta 2 - 1 May 2002 + -preset comments are in; start them with '//' anywhere on the line, + and the rest of the line will be ignored. + -added variables: + -fps (read-only) + -video echo options: echo_zoom (0..1..+inf), echo_alpha (0..1), + echo_orient (0,1,2,3) + -motion vector drift: mv_dx, mv_dy (a la geiss) + -wave_mode[0-7], wave_a(0..?) + -fixed texel alignment + -nVidia: dx|dy += -1/(texsize*2) + -same for: http://forums.winamp.com/showthread.php?threadid=83401 + All nVidia Cards (Many confirmed tested), + 3dfx Voodoo Cards (Voodoo 3 confirmed tested), + ATI Cards (ATI All-In-Wonder confirmed Tested) + Kyro II Confirmed Tested + even Illusion's antiquated Intel Card needs it. + -(untested: the matrox cards) + -super thanks to Rovastar for researching & cracking this one + -added option for thicker waves; see wave menu. + -note: only takes effect when texture size is >= 512x512! + -modified presets for new texel alignment fix: + -Zylot - Tunnel of Illusion + -Zylot - S. Pulse Virus + -Most of Krash' s presets + -Illusion and Rovastar - Grand Odyssey Mod + -Unchained: Goo Kung Foo and Perverted dialect. + -optimized some, thanks to Rovastar for pointing out lines in + per-pixel code that could be migrated into per-frame code. + -many of my own: made waveforms thick + -some new presets + -(bipolar 4,5; supernova 2; calligraphy; others from milkdrop.co.uk) + -fixed bug with sound analysis where sound variables in expressions + (bass, bass_att, treb, etc.) could be NAN on the first frame + that milkdrop ran. (symptoms could be bad if the value was + used over & over in subsequent frames!) + -saved about 100k on the installer by updating to NSIS 1.98 and + using the new bzip2 compression. (thanks again to rovastar) + -made the texture used for song titles & custom messages take 1/4 + as much video memory (was square before, blech - now it tries + 4:1; if that fails it tries 2:1; then 1:1 as a last resort.) + -added config panel option to mute all errors/warnings that might + appear in the upper-right corner. + -revamped the configuration for desktop mode w/software blit. + Now, you have a choice of 3 different ways to bring the image + across the bus (from video to system memory). Then the image + is converted from RGB to YUV on the cpu, and then you also get + to select how to send the image across the bus again, back to + video memory, for display on the desktop. The 3 methods are + 1) copy the data using an mmx-accelerated memory copy routine + (never-fail cornbread) + 2) use directx to blit from one surface to another + (sometimes drivers flake out on this) + 3) skip it; read/write directly to/from video memory + (never-fail cornbread) + Regarding 1 vs. 3: they'll both always work; usually #1 is + faster going from video to system memory, and #3 is faster + going from system back to video; but not always. Try different + combinations out on your card and see what happens. + -sprites! + users can edit 'milk_img.ini' and write their own code to control + the sprites. Each sprite is an instance of a jpeg image from disk, + displayed according to the code in the .ini file. Up to 16 sprites + can be running at once. + -stole Y + K keys for use with custom messages & sprites. + Hit 'y' to enter custom message mode, then enter two-digit + codes to launch custom messages. Hit 'k' to enter sprite + mode, then enter three-digit codes to launch sprites. + -added 'preset initialization code', so you can initialize + your custom variables when the preset is first loaded. + -increased number of 'q' variables from 5 to 8. (q1..q8 are + used to carry values from the per-frame equations to the + per-pixel equations. Note that they can now also carry + values from the preset init equations, on to the per-frame + AND per-pixel equations!) + -automated the brightness slider in the config panel; now there's + a checkbox that says, 'guess, based on my video card'. Currently, + the auto-brightness algorithm is simple: if you have an nVidia + card, it will set it to 2; otherwise, it sets it to 0. + +1.02 - 2/7/02 + -added CUSTOM MESSAGES - you can edit them in the file MILK_MSG.INI in your + WINAMP\PLUGINS directory. They are displayed by either keying in their + 2-digit numerical code ('##') at runtime, or randomly if you choose this + option from the config panel (see the 'More Options' dialog). + -also added RANDOMIZATION FOR SONG TITLE ANIMATIONS (also see the 'More + Options' dialog from the config panel). + -added INSTANT HARD CUT HOTKEY: 'H' + -for preset authors: + -per_frame and per_pixel code use to get cut off if they didn't fit + on the screen; this is now fixed (flips to next page as needed) + -when editing per-frame/per-pixel equations, the line that the cursor + is on is now highlighted! + -fixed an old bug where if the per-pixel or per-frame code had nothing + in it except spaces & linefeeds, it would display an error message + saying "error in per-{pixel|frame} code". + -added a 'trail length' parameter to the motion vectors. + -added a bunch of per-frame variables to control the motion vectors: + mv_x, mv_y, mv_l, mv_r, mv_g, mv_b, mv_a. Also got rid of the + motion vectors on/off setting; now the opacity controls this. + -cranked up max. # of user variables from 23 to 33. (Added 16 slots, + but used 6 of them for motion vectors.) + -added a per-frame variable called 'monitor'. Set the value of this + variable in the per-frame code, and then press 'N' to monitor (show) + its value in the top-right corner of the screen. Should be very + useful for debugging. (Thanks to Krash for the great suggestion + on how to implement this!) + -added the int() function, which turns the argument into an integer + (whole number). Rounding is toward zero. Examples: + int(-1.1) -> -1, int(-1) -> -1, int(-0.9) -> 0; + int(0.9) -> 0, int (1.0) -> 1, int(1.1) -> 1; + int (2.1) -> 2. + -improved 3D mode: + -drastically improved quality of stereo 3D images by changing default + 3d colors to CYAN (full green + blue; was just full blue) for the + left eye and RED for the right eye. It turns out that this provides + an equivalent 3d image, but gives you the full range of colors for + all presets, which in turn probably makes the 3Dness more visible + to your brain anyway. + -also, when in 3D mode, made the waveforms 60% white and 40% their + original color (used to be 100% white because so much color was lost + in the green channel). + -song titles: + -(added randomization, as mentioned above) + -improved max. resolution of song titles by increasing the max. + allowable GDI font size + -fixed longstanding bug with the "burning in" of song titles after + they're done displaying; the old, floating location wouldn't exactly + match where the title would be burned into the background & melt away. + -timing & animation: + -protected against milkdrop's animation running super-fast because the + clock jumped way ahead when no frames were rendered (i.e. milkdrop + got stalled somehow). + -smoothed the animation by assuming the time for each frame to be 80% + of 1/fps and 20% the actual time reported. + -misc: + -converted ANSI_CHARSET to DEFAULT_CHARSET in CreateFont() calls (should + fix some display of funky/foreign character sets) + -added 'R' key to toggle random vs. sequential order for loading presets + -fixed alphanumeric sorting of presets (used to have minor errors such + as putting "galaxy 2" before "galaxy", and so forth - unfortunately + this is how strcmp() - even Windows Explorer - sorts them. I rewrote + strcmp() to make it sort in a more 'natural' order.) + -'&' characters in preset filenames no longer show up as an '_' character, + although it still looks funny if you try to save one with an '&' already + in it, but don't worry, it will preserve the '&' (even though it looks + messed up). Note that you still can't type a *new* '&' into the filename + when you go to save a preset. It is safe to rename it from outside + MilkDrop, though, and use it in MilkDrop later. + -fixed preset-to-preset blending bugs for the 10 border variables. + -fixed a bug in blending from a preset using waveform #7 (two horizontal + waveforms) to waveform #0 (a circular waveform), where the right edge + of the top horizonal wave would get connected (via a straight line) + to the left edge of the bottom horizontal wave, as soon as the blend + began. + -m_debug.txt: added some caps detection info at init time; screened out + logging of WM_MOUSEMOVE, WM_NCHITTEST, and WM_SETCURSOR messages. + -improved motion vector motion prediction so that the tips of the motion + vectors should be perfectly matched from frame to frame, when the + trail length is set to 1. **Note that it defaults to 0.9, so that + the look is similar to the old, mismatched version! (so the presets + are backwards compatible.) **Also note that for video cards that + do not support anti-aliased edges, there could be up to 1 pixel of + error here. Check m_debug.txt for whether or not your driver/card + supports anti-aliased edges for lines.) + +1.01 - 12/7/01 + -playlist feature ('p' key) no longer crashes on Windows ME/98SE. + -fixed problems with ampersand ('&') character in song titles/playlist + -fixed bug with previous max. of 23 user variables per session. (Now, + it's a max of 23 user variables per preset, as it should be.) + +1.0 - 10/30/01 + -added a section to the documentation on using "line-in" as your + audio source (instead of mp3's) + -lowered minimum frame time (enforced by winamp) from 25 ms to 10ms, + so now, the max. possible fps is 100 instead of 40. + -tightened A/V sync by 5 ms (raised audio latency from 25 to 30 ms). + -fixed &'s in song titles (as displayed when you hit F2) + -F7,F8 were switched in the help screen (F1) + -when running in desktop mode, if you have a pattern on your windows + background, it gets nuked. Before, if you had a pattern, the + pattern would remain and you'd only be able to see milkdrop through + the small boxes of your desktop icons' background text. I didn't + bother restoring the pattern upon exit because I am lazy and assume + that nobody intentionally uses these things anymore. =) + -improved warning message for windowed/desktop modes, when auto-texture- + size is scaled down due to insufficient video memory. It previously + just reported the downsizing, but now, it also recommends that you + drop your color depth to 16 bits (if you haven't already) and that + you try decreasing your screen resolution. + -might have fixed a bug with the playlist feature ('p') crashing people's + machines. + +0.99g - 9/11/01 + -added playlist browsing (hit 'p') + -added checkbox to fix slow text (finally!) + -song titles fixed too (on some cards, they were garbled) (also, in low + video mem. situations, they might have never appeared - that's fixed too) + -added checkbox to allow double buffering for desktop mode; default is + UNCHECKED; can provide significant speed boost, but you might see some + tearing during the vertical retrace; if so, enable double-buffering. + It used to always be double-buffered, which is slower, though it is + page-tearing-artifact-free. + -added always-on-top option for windowed mode + -added "page x of y" footnote to the preset and playlist menus + -improved the auto-texture-size management code, so users will be less + likely to get the "couldn't create offscreen surface #1" (or #2) error. + Instead, the textures are continally downsized until there is enough + memory for them. This might mean blockier images, but at least it will run. + -desktop mode can now do software blit when an RGB overlay surface is created. + (before, software blit was really only available for YUV-type overlays.) + -desktop mode compatibility improved: more likely to work at higher resolutions now + -desktop mode: fixed YUV-type *non-mmx* software blits when Windows is in 16-bit color. + (weren't implemented before; it just assumed windows was in 32-bit color, + and the result would look munged.) + -improved mmx memcpy: will now copy as long as the (difference between two + pointers) % 8 is zero. (before, they both had to be a multiple of 8). + -reorganized the config panel; nice + -centered the config panel on the screen (by removing winamp as hwndparent - der) + -centered the 3 color picker dialogs (by specifying current dialog window + as the parent - der) + -(also cleaned up redundant code for color picker dialogs) + -super-slight optimizations to speed of waveform blending + -tweaked the way the "clear screen at startup" option works, since some + users had problems with it + -fixed aspect ratio, so when window is at an extreme AR, it clips the extra + (instead of fitting the image to the window) + -fixed a fullscreen lost surface bug introduced in 0.99f that blacked + the screen out if you ALT-TABBED out of milkdrop & returned. + -fixed bug where tooltips were lost on some systems (left variable in, + but no way to change it - locked to TRUE for now) + -fixed bug where 'try for RGB overlay...' and 'try for YUV overlay...' + checkboxes were disabled when software blit was on. (Don't know what + I was thinking there!) + -tweaked presets; added some cool shift-on-beat effects + +0.99f - 8/22/01 + -added graphical song titles + -added screen borders; can be used to create interesting feedback patterns when + zooming out + -waveforms now blend smoothly! + -finally gave milkdrop an application icon + -added 'U' key to toggle winamp's shuffle feature on/off + -fixed bug with handling of 'r' key when preset menu is up; now, to rename a file, + use INSERT + -fixed a 1-frame-delay bug for warping (caused a lag for audio-driven 'warps') + -fixed bug where 'progress' variable's value was always 0 in per-pixel eq's + (thanks rovastar) + -removed "F7: show tooltips for menu items" hotkey (needed it for title animations) + -removed U, I keys (for warp) + -moved T key (for zoom) to I (i=zoom in, I=zoom out) (T is now used for song titles) + -speed optimization: now using memcpy_MMX to copy 576*2*4=4608 bytes of sound data + per frame + -size optimizations: painstakingly shaved 8k off the .dll + -in windowed mode, when a user resizes the window to a size that's too large and + there's not enough video memory and MilkDrop closes, it now resets the size + of the window for the next time you run MilkDrop. (before it would just try + to start the next time with the same window position/size and keep failing.) + -added 'try for RGB overlay before trying YUV-types' checkbox + -added 'try for YUY2 overlay surface before trying UYVY' checkbox + -added "stereo 3d always on" option (unchecked by default) + -added "clear screen at startup" option (checked by default) + -made soft cut timer reset on hard cuts + +0.99e - 7/5/01 + -added beat-driven HARD CUTS; very cool + -added a VJ mode, where you can make all the text draw in a separate + window instead of to the main graphics display; should be very + handy for concerts + -added preset rating; use + and - keys (volume control is only available + w/up,down arrows now); use F6 to show rating of current preset + -you can now use any color lenses for left/right stereo vision; just tell + it what color you've got (by speaking aloud) + -desktop mode optimization: block copy from video memory is now optional, + because on 5-10% of systems, it actually makes things slower. + -transitions between 2 presets both using video echo, but in different + orientations, are now smooth + -added 'progress' variable to per-frame and per-pixel equations; tells you + how far through the preset you are (temporally) (0..1), so you can make + gradually-shifting effects + -added mystery param to per-frame eq's (variable name is 'wave_mystery') + -settings such as showing song titles, times, fps, ratings, tooltips, etc. + are all now preserved from session to session + -when Load menu is up, added seeking by typing in first char of name + -also disabled left/right arrows when Load menu is up, so music + won't skip on you + -windowed mode now remembers the window's final size, position between sessions + -safe for 2nd monitor, too + -fixed bug with ALT-TABBING in and out of fullscreen mode + -fixed bug with vertical spacing of song title/time readout when the fancy + font size was set to anything but "normal" + -plugin listing (in Winamp prefs screen) and the window title now show the + version # + -fonts now scale with the window + -protected against trying to run MilkDrop while the config panel is still open + -fixed the 1-pixel-wide garbage that sometimes sat at the right and bottom + edges, in windowed mode + -fixed bug where after going to another app, fullscreen, while in Desktop Mode, + upon your return from fullscreen the overlay surface was lost (and just sat + there, black). + -stopped sending WM_KEYUPs to Winamp (oops; never sent WM_KEYDOWNS to begin + with anyway) + -load menu: '[..]' now reads '[..] (parent directory)' + -config panel: broke some stuff off into a 'more options' dialog + +0.99d - 6/5/01 + -desktop mode is officially in + -added new waveforms + -added temporal wave alignment + -added fps limiting + -added "view documentation" button to config panel + -added UP/DOWN keys for volume up/down + -improved seeking for CTRL-LEFT, CTRL_RIGHT: now seeks by breaks between groups of + alphabetic characters, instead of just looking for spaces. + -added 5 new variables (q1..q5) for passing values from the per-frame to the per-pixel + equations (user-defined variables don't carry over like permanent variables) + -added brighten (square root), darken (square), invert, and solarize filters + -tweak: made transitions slightly sharper (10% more toward a cosine curve than a + linear curve now) + -now setting D3DRENDERSTATE_SHADEMODE to D3DSHADE_GOURAUD (used to be FLAT, + and combined with per-vertex coloration, which seemed to be asking for trouble) + -added warning messagebox for if first call to SetRenderTarget fails + -fixed bugs with the values of "x" and "y" for per-pixel equations + -x: range was -1..1; should have been 0..1 + -y: range was 0..2; should have been 0..1 + -(all presets using x,y in their per-pixel equations had to be adjusted) + -fixed bug where if the previous preset folder disappeared, you couldn't hit 'L' + to browse to a new folder + -fixed a potential bug with dither not being a hardware capability + -fixed a bug with scroll lock (didn't reset the LED state when MilkDrop started) + -fixed a bug with loading presets with blank lines in the per-frame or per-pixel + equations + -(the blank line, and everything after it, would not be read in) + -revamped gamma loop + +0.99c - 5/21/01 + -added red-blue stereo; use F9 to toggle it on/off + -note: you need those cheesy glasses with the red & blue plastic + lenses for this to work! + -added a bunch of 3D presets in the \3D subdir + -added the ability to browse the directory structure + -added F8 to jump to new directory (or drive) + -changed the 'fix pink/white color saturation artifact' checkbox + into a simple brightness slider, so you have more freedom with it + -"+", "-" keys now work for the numeric keypad and regular keys. + -fixed a video memory leak for windowed mode (the manually-created backbuffer wasn't + being released; once you exited winamp, though, the memory was freed) + -fixed a bug with closing Winamp while milkdrop was running in windowed mode + -fixed a weird bug with hitting ESC from the config panel sometimes doing nothing + -fixed a weird bug where when milkdrop was launched in windowed mode, + keystrokes to winamp don't work until you moused-over the winamp window + +0.99b - 5/16/01 + -added windowed mode + -added +/- keys for volume control + -added SHIFT + left/right arrows to rewind/ffwd 30 seconds + -improved various error messages + -protected vs. running config panel while MilkDrop is running + -protected vs. running milkdrop without music playing + +0.99 - 5/11/01 + -first version + + +<A HREF="#milkdrop_top">return to top</A> +</PRE> +</BODY> +</HTML> |