I don't use "frm:formula_name", because that means you can't also run FRACTINT with "formulafile=heartsf.par" and expect to see your formulas. FRACTINT will let you try to run parameter specs. as formulas from such merged files, though. If you missed my QBASIC for blowing music _into_ Fractint, then you can reverse the enjineering with this formula, otherwise more QBASIC might come later with the other three formulas that I will use. My tuning is simple: whole numbered multiples of a source frequency. It doesn't matter what the source frequency is unless you want an orchestra to accompany the computer, because it's ratios that matter to the ear. My tune has literally changed. This one works quite nicely, but that's challenging, because it makes for a look very different from the basis equation: heartx, and I want more unity or commonality among the images than that. I wonder if PDF is sent to PostScript printers without rendition, because writing this stuff in PostScript and converting to PDF might let me compress my output (for cards) to what fits on a floppy (or takes less time to download than to render). If rendition of PDF is done on the host of the printer, then there's no problem, but if it's sent to the printer, then the FRACTALS must be very fast or they'll make it time out. It's tempting to explicitly copyright this work, even if it takes an hour and a half plus some editing on a box older than five years. It falls under collective works, but this doesn't: http://ecn.ab.ca/~brewhaha/img/hearts.jpg , so fair use rules apply, whatever that means with MicroSoft source code running around making a mess of everything else that doesn't work. _______ heartsH { ; Chrominance: Alter through mask of HeartsV as ; grayscale. reset=2003 type=formula formulafile=heartsf.par formulaname=hearty passes=d center-mag=0.00844324/-1.37358/0.3241387/1.2195 params=2/0 float=y maxiter=255 inside=0 colors=000z00zz00z00zV0zz0Wz00z<3>z0zz0Wz00<3>zz0Wz00z0<3>0zz<3>0Lz0Bz\ 00zV0zz0z<3>z0Lz0Bz00<3>zz0Wz00z0<3>0zz<3>0Lz0Bz00z<3>e0zo0zz0zz0Wz00<\ 3>ze0zo0zz0<3>0z00zV0zz<3>0Lz0Bz00z<3>z0z<3>z0Lz0Bz00<3>zV0zb0zj0zr0zz\ 0<3>0z00zV0zz<3>00zV0zz0z<3>z00<7>z_0zc0zh0<3>zz0<3>0z0<3>0ze0zo0zz0Wz\ 00z<3>P0zV0z`0z<3>z0zz0Wz00<3>ze0zo0zz0<3>Lz0Bz00z0<3>0zz<3>0Lz0Bz00z<\ 3>e0zo0zz0zz0Wz00<3>zP0zV0z`0<3>zz0Wz00z0<3>0zz0Wz00z<5>V0z_0ze0z<3>z0\ z<5>z0Wz0Rz0L<3>z00<3>zz0Wz00z0<3>0zz<3>0Lz0Bz00zV0zz0z<3>z0az0Wz0Q<3>\ z00<3>zzz } heartsV { ; Drop luminance through this "graymask" after raising 50%. reset=2003 type=formula formulafile=hearty.par formulaname=hearty passes=d center-mag=0.00844324/-1.37358/0.3241387/1.2195 params=2/0 float=y maxiter=255 inside=0 outside=atan; colors=@rainboh.map colors=000z50z70zB0<3>zJ0zL0zM0zN0zP0zR0<5>z_0z`0za0zb0zd0<14>zu0zv0zw\ 0zx0zy0<14>lz0kz0jz0<5>bz0az0`z0<4>Tz0Sz0Rz0Pz0Nz0Mz0Lz0Iz0Hz0Ez0Dz0Bz\ 0<2>0z00z30z70zB0zD0zH0zJ0zK0zL0zN<3>0zS0zT0zV0zX<4>0zc0zd0zf<14>0zu0z\ v0zw0zx0zy<8>0rz0qz0oz<4>0jz0iz0hz<8>0Xz0Vz0Tz<3>0Pz0Nz0Lz0Jz0Hz0Gz0Dz\ 0Bz<2>00z30z70zB0zD0zF0zG0z<4>P0zQ0zS0zT0zV0z<2>_0z`0za0zb0zc0z<3>h0zi\ 0zk0z<9>u0zv0zw0zx0zy0z<13>z0mz0lz0k<3>z0fz0dz0cz0az0`<4>z0Vz0Tz0S<3>z\ 0Lz0Jz0Hz0Gz0D<3>z04 } heartsS { ; Mask for stripes of fading. Maybe needs work. ; Perhaps wood grain, like on my skull. reset=2003 type=formula formulafile=hearty.par formulaname=hearty passes=d center-mag=0.00844324/-1.37358/0.3241387/1.2195 params=2/0 float=y maxiter=255 inside=0 proximity=1 outside=fmod colors=000zzz000zzz000000zzz000000000zzz000<3>000zzz000<5>000zzz000<4>\ 000<4>000zzz000<4>000<4>000zzz000<6>000<4>000zzz000<10>000<4>000zzz000\ <12>000<4>000zzz000<16>000<4>000zzz000<22>000<4>000zzz000<24>000<4>000\ zzz000<30>000<4>000zzz000<29>000 } Hearty { ; Formula. Needs arrays for speed. Cropped as above, ; about 30min. on 350MhzPII @ 1280x1024, ; more for atan and fmod. s=z=atanh(real(-1/pixel) +flip(imag(-.5/pixel))), iter=0, t=|P1|, mean= 24.15789473684211: imod=(iter/ 127 -trunc(iter/ 127 ))* 127 , ; imod=remainder(num_notes/iter) iter=iter+1, if(imod>-1 && imod< 8 ) note= 11 elseif(imod> 6 && imod< 19 ) note= 13 elseif(imod> 17 && imod< 22 ) note= 17 elseif(imod> 20 && imod< 27 ) note= 19 elseif(imod> 25 && imod< 34 ) note= 16 elseif(imod> 32 && imod< 41 ) note= 23 elseif(imod> 39 && imod< 52 ) note= 31 elseif(imod> 50 && imod< 55 ) note= 29 elseif(imod> 53 && imod< 60 ) note= 23 elseif(imod> 58 && imod< 67 ) note= 31 elseif(imod> 65 && imod< 74 ) note= 11 elseif(imod> 72 && imod< 85 ) note= 9 elseif(imod> 83 && imod< 88 ) note= 13 elseif(imod> 86 && imod< 93 ) note= 17 elseif(imod> 91 && imod< 100 ) note= 13 elseif(imod> 98 && imod< 107 ) note= 29 elseif(imod> 105 && imod< 118 ) note= 51 elseif(imod> 116 && imod< 121 ) note= 59 elseif(imod> 119 && imod< 128 ) note= 44 endif, z=s*(z-flip(note/mean))*(flip(note/mean)-z) |z| <= t } Heartx { ; Formula. The core of hearty. s=z=atanh(real(-1/pixel) +flip(imag(-.5/pixel))), iter=0, t=|P1|,: z=s*(z-(0,1))*((0,1)-z) |z| <= t }