Login
A   A   A  
welcome

 Album 

米Teen唔鐘意玩現成品,喜歡由零件開始砌。99次失敗唔係問題,最緊要係有1次成功!

米Teen總部設在聖公會白約翰會督中學506室,在午膳後和放學後集會。有興趣參與的同學,請與會長或導師聯絡。

米Teen專頁

506室內 2020-11-04 21:43:57
溫度 26℃ 濕度 95%
街景 2020-11-04 21:41:52
街景
5樓室外 2020-11-04 21:43:43
溫度 22℃ 濕度 95%
街景 2020-11-04 21:34:34
街景

Sine wave generator

icon

Home>ICT>Sine wave ...

Wave file format

A wave file consists of a 44 bytes header and sound wave samples.

data chunk size = number of sample frames * 4 (4 bytes for stereo and 16 bit samples)
file size = 44 + data chunk size
numbers are stored with least significant byte first (little-endian)
[4]-[7] value=file size-8=data chunk size+36
[22]-[23] number of channels, stereo=2
[24]-[27] sampling rate
[28]-[31] byte rate=sampling rate * NumChannels * BitsPerSample/8
[34]-[35] bits per sample, value 16 for 16 bits
[40]-[43] data chunk size
[44]- the sound samples (16 bit signed integer, 2 bytes for the left followed by 2 bytes for the right)

ref: bit rate for 44100Hz 16bit stereo = 1411200bps

Left (Hz):
Right (Hz):
Duration (max 8s):

sampling of a sine wave

A=amplitude
f=frequency of the sine wave
T=period=1/f
R=sampling rate
t=time=i*1/R (i=loop counter)
s=sample=A*sin(2*pi*t/T)
=A*sin(2*pi*f*t)
=A*sin(2*pi*f*i/R)

Unlike many other programming languages, JavaScript numbers are always stored as double precision floating point numbers. 16-bit wave samples are stored as 2's-complement signed integers, ranging from -32768 to 32767 (little-endian). Therefore, negative JavaScript numbers must be converted to 2's complement format before converting to base64 characters.
if (s<0) s=s+65536;

ref: WAVE PCM sound file format

welcome

 Album 

米Teen唔鐘意玩現成品,喜歡由零件開始砌。99次失敗唔係問題,最緊要係有1次成功!

米Teen總部設在聖公會白約翰會督中學506室,在午膳後和放學後集會。有興趣參與的同學,請與會長或導師聯絡。

米Teen專頁

506室內 2020-11-04 21:43:57
溫度 26℃ 濕度 95%
街景 2020-11-04 21:41:52
街景
5樓室外 2020-11-04 21:43:43
溫度 22℃ 濕度 95%
街景 2020-11-04 21:34:34
街景
 ⇧