Ну если там такая мешанина, то почему бы просто не инициализировать класс взяв его из конфига. Или свести зависимости до одного класса, который возвратит остальные, и будет вам подконтрольный.
Арсен Сиюхов: Когда вы воспользуетесь советом Алексей Уколов и почитаете документацию, вы узнаете, то у триггеров есть специальные алиасы OLD и NEW. И тода поля будут не NULL.
Сергей Протько: Да это ActiveRecord (на Data Mapper понятно такой проблемы нет). ORM такого типа самые распространенные (могу ошибаться). Я никого не хаил, а всего лишь привел пример.
beduin01: Тут нужно отталкиваться от конкретной, а не абстрактной ORM. Например приходилось работать с портом Sprig для PHP для Kohana. Где каждая на каждую запись еще инициализировали отдельные классы на поля. Плюс магия на Get/Set. Плюс связанные записи. И в итоге был счет на разы.
Так же имейте ввиду что функция getByteFrequencyData относится к WebAudio. У которого поддержка еще далека от совершенства. caniuse.com/#feat=audio-api
Почему же. Пускай приносит, нужно лишь помнить какая его задаче первоочередная. Так же хобби тоже может приносить доход. И на первых этапах их можно грубо говоря поменять местами (но чем дальше тем сложнее будет сделать).
Но когда пройдет эйфория от маленьких побед, когда подступится обыденность, а с ней и надоедливость. Вот тогда вам понадобится уютное занятие чтобы поднять настроение, да набраться сил. А там и снова можно будет получать удовольствие.
sashafokin: Это передача переменной по ссылке, для того чтобы изменения отразились в исходном массиве. В любой непонятной ситуации читайте документацию, там об этом написано.