ERROR: Primitive ' BasicPut' failed. Attempted write to immutable object.

Some objects in SuperCollider are immmutable, meaning you can't change their value after they've been created. This is not often important, but if you use array literals it can lead to this error.

For example this works fine:

( var x = [3,4,5,6]; x[2] = 'fish'; )

It gives the answer [ 3, 4, fish, 6 ].

But this doesn't work, it throws the error:

( var x = #[3,4,5,6]; x[2] = 'fish'; )

The extra hash mark in there (#) is being used to define an array literal - it becomes immmutable. It can be useful to define constants or for a slight efficiency gain.

For more info see the helpfile "Literals".