This commit is contained in:
Nishi 2026-05-28 14:23:39 +09:00
commit 69ca8a90af
2 changed files with 13 additions and 4 deletions

View file

@ -21,8 +21,12 @@ int main(){
drv = new fishbone::SoundDriver();
snd = drv->mixer.open("music.mod");
snd = drv->mixer.open("shanghai.mp3");
snd->setLoop(true);
snd->position[0] = -1;
snd->position[1] = 0;
snd->position[2] = 0;
snd->is3d = true;
snd->resume();
while(!quit);

View file

@ -42,17 +42,17 @@ void fishbone::Mixer::read(short* buffer, size_t frames) {
float angle, v;
float d;
float lf, rf;
for(int j = 0; j < 3; j++) r[j] = this->sounds[i]->position[j] - this->position[j];
angle = atan2(r[2], r[0]);
v = cos(angle);
d = sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2]);
lf = 1.0 - v;
rf = 1.0 + v;
d = sqrt(r[0] * r[0] + r[1] * r[1] + r[2] * r[2]);
la = 1.0 / (1.0 + lf + d * d);
ra = 1.0 / (1.0 + rf + d * d);
}
@ -83,6 +83,11 @@ void fishbone::Mixer::read(short* buffer, size_t frames) {
r = req[(j * this->sounds[i]->rate / fishbone::Mixer::rate) * 2 + 1];
}
if(this->sounds[i]->is3d){
l = (l + r) / 2;
r = l;
}
tmp[2 * j + 0] += l / 32767.0 * la * this->sounds[i]->volume;
tmp[2 * j + 1] += r / 32767.0 * ra * this->sounds[i]->volume;
}