Сценарии оболочки выполняются в подоболочке, и каждая подоболочка имеет свое собственное понятие того, каков текущий каталог. Эти cd
успешно выполняется, но как только подоболочка выходит, Вы вернулись в интерактивной оболочке, и ничто никогда не изменялось там.
Один способ обойти это состоит в том, чтобы использовать псевдоним вместо этого:
alias proj="cd /home/tree/projects/java"
Я думаю, вы хотите преобразовать децибел в усиление.
Уравнения для звука:
децибел для усиления:
gain = 10 ^ (attenuation in db / 20)
или в C:
gain = powf(10, attenuation / 20.0f);
Уравнения для convert from gain to db:
attenuation_in_db = 20 * log10 (gain)
Если вы просто хотите настроить звук, у меня были хорошие результаты с пакетом normalize с nongnu.org
. Если вы хотите изучить, как это делается, исходный код находится в свободном доступе. Я также использовал wavnorm
, домашняя страница которого, похоже, в данный момент недоступна.
Следует учесть одно: файлы .WAV имеют МНОГО разных форматов. Приведенный выше код работает только для WAVE_FORMAT_FLOAT. Если вы имеете дело с файлами PCM, то ваши образцы будут 8-, 16-, 24- или 32-битными целыми числами (8-битный PCM использует беззнаковые целые числа от 0..255, 24-битный PCM может быть упакован или распакован (упакован == 3-байтовые значения, упакованные рядом друг с другом, распакованные == 3-байтовые значения в 4-байтовом пакете).
И еще есть проблема альтернативных кодировок - например, в Win7 все звуки Windows на самом деле являются файлами MP3 в WAV контейнер.
К сожалению, это не так просто, как кажется: (.