Arrays by a function

Is there any way I can use the arty modifier in a non linear way? I want to use it to space out frets on a guitar by 26(2^(-1/12))^x x being the fret number.

You can use the array modifier as a modeling aid. In your case, you could space out frets linearly using the modifier then apply the modifier. Put the resulting mesh in edit mode and use the P-KEY to bring up the separate menu. Separate by loose parts would give you each fret as an object roughly layed out. Then you would have to manually move them into the appropriate position on the neck to produce the musical scale.

Or use python to space them out

Applied array modifier, separated by loose parts, ctrl+alt+shift+C -> origin to geometry, rename last object to have the last number in its name, select all, alt+G to clear the location and then in python console:

frets = sorted(C.selected_objects, key=lambda x:
for i, obj in enumerate(frets):
    obj.location.x = 24*(2**(-1/12))**i

Sweet, nice solution!