Is this just an assignment within a function call?
Yes.
Or is there some other kind of c++ magic going on here?
Not much magic there, the return value of an assignment operation usually is a reference to the instance assigned.
So it's equivalent to (I suspect that is constructor code):
class Arpeggiator : public Decorator {
public:
Arpeggiator() {
speed = new AudioParameterFloat ("speed", "Arpeggiator Speed", 0.0, 1.0, 0.5);
addParameter (speed); // Probably inherited from Decorator
}
private:
AudioParameterFloat* speed;
};
As the question came up, what happens if there's an overloaded assignment operator.
As stated in this answer in the canonical Operator overloading:
Assignment Operator
There's a lot to be said about assignment. However, most of it has already been said in GMan's famous Copy-And-Swap FAQ, so I'll skip most of it here, only listing the perfect assignment operator for reference:
X& X::operator=(X rhs)
{
swap(rhs);
return *this;
}