Question: When using both the fac output and the color output (which is the same as three different fac outputs in RGB) the values somehow are always between a 0 to 1 value range. If we use a reguralar perlin noise like the musgrave texture in Blender we see that for high detail values the output values quickly go above 1 and below 0. So the noise texture, which like the musgrave texture also evaluates a perlin noise, obviously remaps the perlin noise so that it always stays in the 0 to 1 range.

Could somebody please explain how the noise texture does that and link the source code, which controls this remapping?

Answer: 
The difference is actually only that for example `Musgrave Texture` initializes perlin noise as *signed integer*, and the `Noise Texture` as *unsigned integer*.

Therefore only the range from $-1$ to $1$ or $0$ - $1$ changes at the base.

The following example illustrates this a bit better:

[![enter image description here](https://i.stack.imgur.com/ZPrc9.jpg)](https://i.stack.imgur.com/ZPrc9.jpg)

On the left, the values have simply been mapped to a new range using the `Map Range` node, and on the right is the normal *Noise Texture* (the contrast here is just to make the result stand out more).

You can find the corresponding places in the source code here:

**Musgrave Texture:**

* [class MusgraveFunction](https://github.com/blender/blender/blob/master/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.cc#L126)
* [float musgrave\_multi\_fractal](https://github.com/blender/blender/blob/master/source/blender/blenlib/intern/noise.cc#L747)

**Noise Texture:**

* [class NoiseFunction](https://github.com/blender/blender/blob/master/source/blender/nodes/shader/nodes/node_shader_tex_noise.cc#L84)
* [float perlin\_fractal\_template](https://github.com/blender/blender/blob/master/source/blender/blenlib/intern/noise.cc#L533)
Scurest found the corresponding source code, linked in his comment.

Apart from that I also found the source code in question in a different folder:

<https://github.com/blender/blender/blob/dfb8c90324c018068f12ca41543c3c311dff6d21/source/blender/gpu/shaders/material/gpu_shader_material_fractal_noise.glsl#L29>

So, yeah basically it just divides by the maximal possible amplitude.