Хочется внести поправочку, вернее узнать про неточность: Compression code — 2 байта. Значит диапазон значений будет от 0 до 65535. Но в коде есть строка case 65536:compression = 'Experimental';break; И вот теперь вопрос, каким это образом в этой ячейки получится записать данное число? Если непосредственно записать туда 65536 то запишется 0, который распознается как 'Unknown'. Тогда выходит 3 варианта: либо число для Experimental = 65535, либо там не 2 байта, или это значение — отсебятина.
в десятичную систему переводятся при попытке их вывести, либо как то работать с ними.
Но тут коненчно виноват сам, так считывать нужно было кусками, а не побайтово. Мало пока знаком с нодой.
В десятичную систему переводится только при преобразовании в строку. Все, больше нет других вариантов.
Почитал еще код. Не учите людей так работать с битами, ну пожалуйста. Преобразовывать в строки – извращение, есть ведь побитовые операции – javascript.ru/bitwise-operators
Хм, интересно автор понимает что в ноде.жс по сути кооперативная многозадачность, и это означает что если отрисовка картинки занимает 1 секунду то все остальные конекты, даже ели оно отдаются за 1 микросекунду, будут отложены на 1 секунду, а если пройдет 10 таких запросов то на все 10?
Разве количество процессов как то зависит от количества ядер? Понятно, что как только их станет больше чем ядер. То они будут забирать друг у друга процессорное время, но ведь по крайней мере не будут блокировать ноду.
Блокировать не будут, но пользователю же всё равно придётся ждать пока будет генерироваться картинка. что первому, что последующим, которые пошлют запрос в эти 10 секунд.
Кроме того парсинг можно разбить на части (сделать потоковым на событиях) и тем самым не делать его блокирующим. Можно и отрисовку разбить на кусочки или делать по ходу выполнения парсинга.
Разбор Wave файла на JavaScript