Yes, that would work. The other solution is to just treat the values as unsigned data. This leaves positive numbers as they are and converts negatives: [-1..-128] will be [255..128] if I'm not mistaken. This example illustrates the both cases:[pascal]var
i: shortint;
b: byte;
begin
i := 50;
b := byte(i);
writeln(b); //50

i := 50;
b := i + 128;
writeln(b); //178

i := -50;
b := byte(i);
writeln(b); //206

i := -50;
b := i + 128;
writeln(b); //78
end.
[/pascal]
You just need to try out which one will work for OpenAL correctly.