O had the right idea about using ripple.
I found the PS tutorial a little overbearing on the use of waves. I figured if the user knows how many ruffle panels they want, why not duplicate one set x number of times, and use IWarp minimally on each ruffle panel layer to offset the shaping to make each ruffle unique?
Using O's idea with bi-linear gradient shading, you can make a few large or a lot of small ruffles.
To obtain this, open a fairly large (decent sized) pattern. Small patterns are fine, but lose detail, when using this process.
Duplicate the original pattern. You should now have two exact copies of the pattern.
Create a new white layer (top most) change its mode to multiply.
Apply the bi-linear gradient (black and white) using repeat triangular wave, apply a short horizontal gradient. You can hold CTRL key when setting the gradient path to keep it perfectly horizontal (the gradient path) from the edge of your image.
If the spacing is too short, undo, and make your gradient path a little longer (undo and redo the gradient path until you are satisfied with the results).

Now Merge the gradient layer down and right click to make sure it has an alpha channel ("Add Alpha Channel"). You can also turn off the bottom layer so its no longer visible.
Layer - Scale Layer (reduce the scale at least by half, or 2/3rd) this is why it's important to start out with a fairly large pattern.
Right click the duplicate layer and Layer to Image Size.
Now run Ripple (Filters - Distorts - Ripple). There is no "ONE SIZE FITS ALL" parameter because it totally depends on how many gradient ripples you made, how large your image is, and how you want your ripples to fit the gradient wave. I strongly recommend you move your image view to a corner (any corner will do) and adjust period, amplitude, and phase shift by eye.

Now all that is left is how many ruffle layers do you want? 4? 6? 2 rows of 2 or 2 rows of 3. The choice is yours. Duplicate the layer to represent the number of ruffles you want, don't forget to add the existing layer into the count. Use the Move tool to adjust each layer to the proper place in the image. Just remember to keep the top ruffle layers at the top of the dialog.
Now, keep top row layers at the top, bottom row layers at the bottom of your layer dialog. You can now select each ruffle layer and apply IWarp (Filters - Distorts - IWarp) and minimally enhance each layer using the Move option (set the deform radius high to around 50). If you don't like your IWarp results, just reset it and start over.
I also added transparent layers in between rows of ruffles for shading, which is using the airbrush with a fuzzy brush on black, and reduce the opacity of the layer to mimic shadows.
Result: (pattern provided by Oregonian)

_________________
"In order to attain the impossible, one must attempt the absurd."
~ Miguel de Cervantes