1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
|
<HTML>
<PRE>
<A NAME="milkdrop_top">
<B>MILKDROP 1.04 (7/31/03)</B>
a Winamp visualization plug-in by Ryan Geiss
copyright (c) 2001-2003 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.milkdrop.co.uk/">www.milkdrop.co.uk, an excellent third-party site</A>
<A HREF="http://classic.winamp.com/">Nullsoft Winamp</A>
<A HREF="http://www.microsoft.com/windows/directx/">Microsoft DirectX</A>
<B>What is MilkDrop?</B>
-----------------------
MilkDrop is a Winamp audio-visualization plug-in. It uses 3D graphics hardware,
combined with iterative image-based rendering techniques, to create a visual
journey through sound.
<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, or XP.
2. Hardware-based 3D graphics acceleration (i.e. a video card with 3D support)
with at least 8 MB of video memory; however, 32 MB or more is recommended.
3. DirectX 8.0 or later ( <A HREF="http://www.microsoft.com/windows/directx/">http://www.microsoft.com/windows/directx/</A> )
4. Winamp 2.72 or later ( <A HREF="http://classic.winamp.com/">http://classic.winamp.com/</A> ),
or <A HREF="http://www.winamp.com/">Winamp 3.xx</A> with the <A HREF="http://www.winamp.com/components3/detail.jhtml?componentId=122130">Classic Visualization</A> component installed.
<A NAME="2">
<B>2. Installation</B>
-----------------------
To install MilkDrop, simply run the installation program.
To configure it, load up Winamp, and hit CTRL+K. Make sure
'MilkDrop' is selected in the list, and then click 'Configure'
to customize it, or 'Start' to start it.
You can also use the hotkeys ALT+K to configure MilkDrop,
and CTRL+SHIFT+K to start/stop it.
<A NAME="3">
<B>3. Tweaking to acheive the best image quality</B>
-----------------------
a) color (bit) depth: 16 or 32?
The ideal color (bit) depth for MilkDrop is 32 bits. That
means that you want Windows to be running in 32-bit color
so that MilkDrop, when run in windowed mode, runs in 32-bit
color. To make MilkDrop run fullscreen in 32-bit color, be
sure you've selected a fullscreen display mode (from the
config panel) that is 32 bits (i.e. one of the '8888' formats
in the list).
Some older 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.
b) 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.
<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>
spacebar: 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)
<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>)
BACKSPACE: 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>)
BACKSPACE: 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 ##
BACKSPACE: clear any digits entered.
CTRL + T/Y: kill song title and/or any custom messages
CTRL + K: kill all sprites
</FONT>
<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 BACKSPACE key to back up.
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 'BACKSPACE' to back up one digit. 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, all white, or all black, 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. [RE]INSTALL DIRECTX
Make sure you have the latest version of <A HREF="http://www.microsoft.com/windows/directx/">Microsoft DirectX</A>
(9.x at the time this documentation was written). Even if
you already have it, consider re-installing it, since files
can be corrupted over time, and because poorly-written video
drivers can sometimes break your DirectX installation.
2. UPDATE YOUR VIDEO DRIVER, OR TRY OTHER 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.
There are typically three sources for video drivers:
1) those from the card manufacturer's website
2) those from the chip manufacturer's website
("reference" drivers for the chip that powers the card)
3) those that shipped with Windows
Give them all a shot. Track down every driver you can find for
your card, and try it. If your card isn't top-of-the-line, try
uninstalling your driver and use Windows Update to install the
drive that came with Windows. If it is top-of-the-line, try the
various drivers available: the latest "beta" (pre-release)
drivers, the certified drivers, and perhaps the reference driver.
In general, though, it's a very good idea to use only Microsoft-
certified WHQL (Windows Hardware Quality Labs) 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.
Here is a list of some common card/chip manufacturers and where
to get their drivers:
[ <A HREF="http://www.nvidia.com/view.asp?PAGE=drivers">nVidia</A> ]
[ <A HREF="http://www.ati.com/">ATI</A> ]
[ <A HREF="http://www.matrox.com/mga/support/drivers/home.cfm">Matrox</A> ]
[ <A HREF="http://www.voodoofiles.com/">3dfx voodoo drivers</A> ]
[ <A HREF="http://www.diamondmm.com/default.asp?menu=support&submenu=Legacy_Graphics">Diamond</A> ]
[ <A HREF="http://www.creative.com/">Creative</A> ]
[ <A HREF="http://www.tridentmicro.com/drivers/index.html">Trident</A> ]
Here are some sites that mirror (or link to) drivers from many sources:
[ <A HREF="http://winfiles.cnet.com/">CNET</A> ] (then click 'Utilities & Drivers', then 'Display & Video')
[ <A HREF="http://www.driverzone.com/video.html">Driverzone.com</A> ]
And if those all fail, there's always Google:
[ <A HREF="http://www.google.com/">Google</A> ]
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, or
3) you might need to reinstall DirectX.
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.
It can also help (especially when running MilkDrop in
windowed mode) to set your Windows display mode to 16-bit to
free up some video memory. To do this, go to the Start Menu
-> Settings -> Control Panel -> Display -> Settings tab, and
then select "High Color (16 bit)".
Finally, you can try locking the texture size to "256" and see
if that fixes the problem. Some video cards - especially
those built-in to laptops - report that they can support texture
sizes of 512x512 or 1024x1024, but they don't seem to do it
properly (or else I've got a bug in there... still working on
this one). If 256x256 works (i.e. no garbage), try locking it
at 512x512 and see if that works as well, because the higher the
texture size, the better the image will look.
2,3) for instructions on how to reinstall DirectX or update
drivers, <A HREF="#5">click here</A>.
ENTRY 2
SYMPTOM:
-MilkDrop turns bright pink or white after running for a few
seconds in 16-bit color.
-MilkDrop is just way too bright.
CAUSE:
The extremely technical explanation is that when your video
card "blits", it rounds to the nearest color, instead of rounding
down, and because of the limited precision (5 bits per channel)
in 16-bit color video modes, the iterative decay process (that
fades pixels to black as they age) gets stuck.
SOLUTION:
Go to the config panel, find the "brightness control" slider,
and slide it to the right (to "2" or darker).
ENTRY 3
SYMPTOM:
-long pauses when MilkDrop starts, or when you change directory
CAUSE:
You could have a virus checker running that is interfering with
MilkDrop's scanning of preset files; or, your hard drive might
just have a really slow access speed.
SOLUTION:
Try disabling your virus protection software and see if this
helps; if often does. If that doesn't work, try going to the
config panel and toggling the "Disable preset rating" checkbox
so that it is checked. Disabling the preset rating system
prevents MilkDrop from having to scan all your preset files
for their ratings, which, on a rare few systems, can cause
long pauses at times.
ENTRY 4
SYMPTOM:
-MilkDrop is too dark in 16-bit color
CAUSE:
Similar to the above problem
SOLUTION:
Go to the config panel, find the "brightness control" slider,
and slide it to the left (to "2" or brighter; try "0" first).
If this causes your display to turn bright pink or white after
running MilkDrop for a few seconds, though, you'll need to
return here and try darker settings.
ENTRY 5
SYMPTOM:
-there's a pause every time MilkDrop switches presets
CAUSE:
You might have a virus scanner enabled.
SOLUTION:
Disable your virus scanning program before running MilkDrop.
ENTRY 6
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.)
<A NAME="6">
<B>6. Known Issues / Misc. / Tips:</B>
---------------
a. When Winamp is running, your screensaver will not kick in,
your monitor will be prevented from entering powersave mode,
and your system will not be able to go into standby.
b. 3DFX VOODOO 3, 4, 5, etc. ON WINDOWS 2000: you will likely
have to go to <A HREF="http://www.voodoofiles.com/">http://www.voodoofiles.com/</A> to find
good display drivers that work with MilkDrop (be warned, you might
have to try several). If you get a white screen, especially, try
other drivers.
c. ATI rage mobility 8mb chipset (on many laptops): from the Milkdrop
config panel, you must set the texture size to 256x256, otherwise
you'll get weird garbage & flickering at the bottom of the screen.
d. 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>
e. 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.
<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 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.
Also, a super special thanks go out to the following preset
authors for their excellent artistic & mathematical work:
Aderrasi
Bill Melgren
Che
CTho
Eo.S.
Idiot
Illusion
Krash
Mstress
Phat
Red Jedi
Rovastar
Rozzor
Studiomusic
Shifter
Telek
Tobias Wolf Boi
Unchained
Yin
Zylot
...and to everyone else who has contributed.
<A NAME="9">
<B>9. Version History</B>
-----------------------
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>
</HTML>
|