Quote: "I guess the next challenge is to make it seamless; some finite aspect of the algorithm is no doubt the repetitious culprit."
Yes. I'm baffled by that problem at the moment. I've got a hard coded version of one octave and it tiles perfectly. I suspect a silly error somewhere in my code - although an otherwise minor precision issue might also be to blame. I'm inclined to doubt that latter theory though, since I would then expect difficulties along the various tile seams within the main image and not merely along the outer edges.
This is the first time I've encountered the persistent Dark Shader problems you mentioned a while back. I just cannot run this shader in Dark Shader - DS gets as far as syntax checking (which is what I need really) and then gives me the familiar timeout errors. I thought the new version of DS fixed this but it doesn't. Fortunately, it runs fine in DBPro. I haven't tested this on my desktop machine yet. I've noticed that the problem gets progressively worse as I add extra bits of code.
Once I've fixed the seam issue I intend to optimise the code - I suspect it can be streamlined a lot. However, I doubt that will make it run much faster since the shader compiler has an efficient optimizer built in. On the other hand it's possible that cleaning up the code will remove or highlight the bug.

It might also allow it to run properly in Dark Shader.
The other annoying thing is that I had to use a workaround to supply the shader with the selected octaves. There's a DBPro command that comes with Dark Shader that's supposed to do the job, i.e.
set object effect constant vector element. That command works - but I can only get it to work once per element! So if you remove an octave you can't then reinstate it using that command. That's the sole reason for the use of the otherwise clumsy float4's
list1 and
list2 in the shader. But at least that works effortlessly.
I'd also like to follow up Derek Darkly's comment:
Quote: "One of my game goals is to eventually be able to fly over seamless, tiled terrains at high speed while generating upcoming terrains on the fly."
although I'm not sure how to implement that yet. One solution might be to fix the edge tangents with the same seed throughout but change the seeds for the interior tangents. But as you say, that'll have to wait till I've mastered the seamless issue.