Я уже задавал этот вопрос на форумах OpenTK, но, похоже, никто не может ответить. (http://www.opentk.com/node/3638)
В OpenTK я пытаюсь получить значение баланса от -1 до 1, преобразованное в левый/правый аудиоканалы. Когда 0 (значение по умолчанию), обе стороны должны иметь усиление 100%. Когда 1 100% для правого и 0% для левого и наоборот для -1. Мне трудно заставить это работать в OAL, потому что на самом деле я впервые работаю с ним.
До сих пор я пробовал: После инициализации OAL:
AL.DistanceModel(ALDistanceModel.LinearDistanceClamped);
Для каждого нового источника:
AL.Source(SourceId, ALSourcef.MaxDistance, 1f);
AL.Source(SourceId, ALSourceb.SourceRelative, false);
Для настройки баланса:
float balance = 0f; //(-1f to 1f)
OpenTK.Vector3 position = new OpenTK.Vector3(balance, 0f, 0f);
AL.Source(SourceId, ALSource3f.Position, ref position);
Это приведет к тому, что звук будет чуть выше 100% на левом канале и 0% справа для всех отрицательных значений баланса и чуть выше 100% справа и 0% слева для всех положительных значений, так что я немного застрял.
Как мне это сделать? Любая помощь приветствуется!
Гр.Виллер
Кстати: это похоже на почти дубликат без ответа OpenAL 2d panning C++.