вот часть вашего кода:
let audioCtx = new (window.AudioContext || window.webkitAudioContext)();
let audio = document.querySelector('song1');
let analyser = audioCtx.createAnalyser();
let source = audioCtx.createMediaElementSource(audio);
вы пытаетесь получить элемент song1
, но он не существует в вашем HTML. Вероятно, поэтому вы получаете эту ошибку. Также, если вы пытаетесь получить элемент по идентификатору, вы должны сделать
let audio = document.querySelector('#song1');
, а затем в html
<audio id="song1" controls="">
, тогда я проверил, вы получите другие ошибки, но это отвечаетваш вопрос.