# Музыка и звуки
Wol4ik(syscall,22) — All
2017-10-19 20:26:41


Прошу прощения, но я не нашел способ воздействия кодом на громкость музыки (music). Делал ее при помощи snd.play.

# Re: Музыка и звуки
Wol4ik(syscall,22) — Wol4ik
2017-10-19 22:48:45


p.s. Вот, набросал программку.
snd.pan не действует на громкость проигрывания music (оно и логично, так как канал неизвестен),
в документации не сказано, как задавать громкость music. Может есть недокументированная команда для этого?
require "snd" -- модуль музыки и звуков
-- требуется два *.ogg файла с музыкой в корне папки с игрой и файлом main3.lua,
-- для этой программы их имена заданы как 'ice1.ogg' и 'basketcase.ogg'
--
global {
	volume = 50;
}
--
room {
	enter = function()
				put ('Включить музыку');
				put ('Отлючить музыку');
				put ('Включить звук');
				put ('Отлючить звук');
				put ('Увеличить');
				put ('Уменьшить');
				pl.obj:add 'громкость';
			end;
	nam = 'main';
	decor = 'Тест музыки и звуков';
}
--
obj {
	nam = 'Включить музыку';
	dsc = '{Play music^}';
	act = function()
			snd.music('ice1.ogg');
		  end;
}
--
obj {
	nam = 'Отлючить музыку';
	dsc = '{Stop music^}';
	act = function()
			snd.stop_music();
		  end;
	
}
--
obj {
	nam = 'Включить звук';
	dsc = '{Play sound^}';
	act = function()
			snd.play('basketcase.ogg', 1, 0);
		  end;
}
--
obj {
	nam = 'Отлючить звук';
	dsc = '{Stop sound^}';
	act = function()
		    snd.stop(1);
		  end;
}
--
obj {
	nam = 'Увеличить';
	dsc = '{+ volume^}';
	act = function()
		    volume = volume + 10;
		    snd.pan (1, volume, volume);
		    return;
		  end;
	
}
--
obj {
	nam = 'Уменьшить';
	dsc = '{- volume^}';
	act = function()
		    volume = volume - 10;
		    snd.pan (1, volume, volume);
		  end;
}
--
obj {
	nam = 'громкость';
	disp = function()
		    p (volume);
		    return;
		  end;
}

# Re: Музыка и звуки
Peter(syscall,1) — Wol4ik
2017-10-20 06:30:45


> p.s. Вот, набросал программку.
Здорово, ее можно теперь показывать для демонстрации функций.

К сожалению, нет такой возможности. Есть только vol, которая меняет общую громкость.
С другой стороны, для проигрывания музыки можно использовать и звуки (правда, грузиться они будут дольше, чем музыка).

# Re: Музыка и звуки
Wol4ik(syscall,22) — Peter
2017-10-20 07:39:07


Еще эта программа доказыват возможность управление громкостью заданного звука прямо во время его проигрывания. Это можно использовать например при создании эффекта приближения и удаления от источника звука, а также для плавного "перекатывания" звука с левого на правый динамик и обратно. Можно даже писать трекерную музыку из сеплов при помощи кода Инстед)))
Спасибо за пояснения про music, а то я думал, что опять что-то упустил в докумнтации.

# Re: Музыка и звуки
Peter(syscall,1) — Wol4ik
2017-10-20 12:44:45


Кстати, pl.obj:add 'громкость';
можно заменить на take 'громкость'

:) На всякий случай написал.

# Re: Музыка и звуки
Wol4ik(syscall,22) — Peter
2017-10-20 13:20:21


Ага, понял. Спасибо.