keep phase between tones
This commit is contained in:
parent
726a89abb0
commit
c450d90372
2 changed files with 21 additions and 14 deletions
25
node_3d.gd
25
node_3d.gd
|
@ -3,21 +3,22 @@ extends Node3D
|
|||
func encode_sstv():
|
||||
#var encoder = Martin1.new()
|
||||
var encoder = RobotBW8.new()
|
||||
var cameraImage = get_viewport().get_texture().get_image()
|
||||
#var cameraImage = load("res://checker.png").get_image()
|
||||
#var cameraImage = load("res://spiral.png").get_image()
|
||||
#var cameraImage = load("res://testtest.png").get_image()
|
||||
#var cameraImage = load("res://testtest2.png").get_image()
|
||||
#var cameraImage = load("res://testtest3.png").get_image()
|
||||
#var cameraImage = get_viewport().get_texture().get_image()
|
||||
#var cameraImage = load("res://tests/checker.png").get_image()
|
||||
#var cameraImage = load("res://tests/spiral.png").get_image()
|
||||
var cameraImage = load("res://tests/testtest.png").get_image()
|
||||
#var cameraImage = load("res://tests/testtest2.png").get_image()
|
||||
#var cameraImage = load("res://tests/testtest3.png").get_image()
|
||||
var audioBuffer = encoder.EncodeSSTV(cameraImage)
|
||||
encoder.SaveAsWav("res://../sstv.wav")
|
||||
|
||||
# Spew that audio yo.
|
||||
$AudioStreamPlayer.stream.mix_rate = SSTVEncoder.SAMPLE_RATE
|
||||
$AudioStreamPlayer.stream.buffer_length = 120
|
||||
$AudioStreamPlayer.play()
|
||||
var player = $AudioStreamPlayer.get_stream_playback()
|
||||
for i in range(0, audioBuffer.size()):
|
||||
player.push_frame(Vector2(audioBuffer[i], audioBuffer[i]))
|
||||
#$AudioStreamPlayer.stream.mix_rate = SSTVEncoder.SAMPLE_RATE
|
||||
#$AudioStreamPlayer.stream.buffer_length = 120
|
||||
#$AudioStreamPlayer.play()
|
||||
#var player = $AudioStreamPlayer.get_stream_playback()
|
||||
#for i in range(0, audioBuffer.size()):
|
||||
#player.push_frame(Vector2(audioBuffer[i], audioBuffer[i]))
|
||||
|
||||
# a lil hacky delay so sdfgi can settle lol.
|
||||
var startTimer = 0
|
||||
|
|
|
@ -47,14 +47,19 @@ func EncodeHeader(vis: Array):
|
|||
|
||||
outputFloats.append_array(GenerateTone(SYNC_PULSE_FREQ, VIS_BIT_LENGTH))
|
||||
|
||||
var lastPhase = 0.0
|
||||
|
||||
func GenerateTone(frequency: float, duration: float) -> PackedFloat32Array:
|
||||
var samples = PackedFloat32Array()
|
||||
var totalSamples = int(duration * SAMPLE_RATE)
|
||||
var phase = 0.0
|
||||
|
||||
for i in range(totalSamples):
|
||||
var time = float(i) / SAMPLE_RATE
|
||||
var sample = sin(TWO_PI * frequency * time)
|
||||
phase = TWO_PI * frequency * time
|
||||
var sample = sin(lastPhase + phase)
|
||||
samples.append(sample)
|
||||
lastPhase = phase
|
||||
|
||||
return samples
|
||||
|
||||
|
@ -81,8 +86,9 @@ func GenerateToneFromCurve(frequencies: Array, duration: float) -> PackedFloat32
|
|||
|
||||
phase += TWO_PI * freq * timeStep
|
||||
|
||||
var sample = sin(phase)
|
||||
var sample = sin(lastPhase + phase)
|
||||
samples.append(sample)
|
||||
lastPhase = phase
|
||||
|
||||
return samples
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue