keep phase between tones, for real this time
This commit is contained in:
parent
c450d90372
commit
f2a9da7ce9
2 changed files with 9 additions and 13 deletions
|
@ -3,13 +3,13 @@ extends Node3D
|
||||||
func encode_sstv():
|
func encode_sstv():
|
||||||
#var encoder = Martin1.new()
|
#var encoder = Martin1.new()
|
||||||
var encoder = RobotBW8.new()
|
var encoder = RobotBW8.new()
|
||||||
#var cameraImage = get_viewport().get_texture().get_image()
|
var cameraImage = get_viewport().get_texture().get_image()
|
||||||
#var cameraImage = load("res://tests/checker.png").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/spiral.png").get_image()
|
||||||
var cameraImage = load("res://tests/testtest.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/testtest2.png").get_image()
|
||||||
#var cameraImage = load("res://tests/testtest3.png").get_image()
|
#var cameraImage = load("res://tests/testtest3.png").get_image()
|
||||||
var audioBuffer = encoder.EncodeSSTV(cameraImage)
|
var audioBuffer = encoder.EncodeSSTV(cameraImage, false)
|
||||||
encoder.SaveAsWav("res://../sstv.wav")
|
encoder.SaveAsWav("res://../sstv.wav")
|
||||||
|
|
||||||
# Spew that audio yo.
|
# Spew that audio yo.
|
||||||
|
@ -24,7 +24,7 @@ func encode_sstv():
|
||||||
var startTimer = 0
|
var startTimer = 0
|
||||||
var first = true
|
var first = true
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if startTimer > 10 and first:
|
if startTimer > 20 and first:
|
||||||
first = false
|
first = false
|
||||||
encode_sstv()
|
encode_sstv()
|
||||||
|
|
||||||
|
|
|
@ -47,19 +47,17 @@ func EncodeHeader(vis: Array):
|
||||||
|
|
||||||
outputFloats.append_array(GenerateTone(SYNC_PULSE_FREQ, VIS_BIT_LENGTH))
|
outputFloats.append_array(GenerateTone(SYNC_PULSE_FREQ, VIS_BIT_LENGTH))
|
||||||
|
|
||||||
var lastPhase = 0.0
|
var phase = 0.0
|
||||||
|
|
||||||
func GenerateTone(frequency: float, duration: float) -> PackedFloat32Array:
|
func GenerateTone(frequency: float, duration: float) -> PackedFloat32Array:
|
||||||
var samples = PackedFloat32Array()
|
var samples = PackedFloat32Array()
|
||||||
var totalSamples = int(duration * SAMPLE_RATE)
|
var totalSamples = int(duration * SAMPLE_RATE)
|
||||||
var phase = 0.0
|
|
||||||
|
|
||||||
|
var timeStep = 1.0 / SAMPLE_RATE
|
||||||
for i in range(totalSamples):
|
for i in range(totalSamples):
|
||||||
var time = float(i) / SAMPLE_RATE
|
phase += TWO_PI * frequency * timeStep
|
||||||
phase = TWO_PI * frequency * time
|
var sample = sin(phase)
|
||||||
var sample = sin(lastPhase + phase)
|
|
||||||
samples.append(sample)
|
samples.append(sample)
|
||||||
lastPhase = phase
|
|
||||||
|
|
||||||
return samples
|
return samples
|
||||||
|
|
||||||
|
@ -68,7 +66,6 @@ func GenerateToneFromCurve(frequencies: Array, duration: float) -> PackedFloat32
|
||||||
var totalSamples = int(duration * SAMPLE_RATE)
|
var totalSamples = int(duration * SAMPLE_RATE)
|
||||||
var points = frequencies.size()
|
var points = frequencies.size()
|
||||||
|
|
||||||
var phase = 0.0
|
|
||||||
var timeStep = 1.0 / SAMPLE_RATE
|
var timeStep = 1.0 / SAMPLE_RATE
|
||||||
|
|
||||||
for i in range(totalSamples):
|
for i in range(totalSamples):
|
||||||
|
@ -86,9 +83,8 @@ func GenerateToneFromCurve(frequencies: Array, duration: float) -> PackedFloat32
|
||||||
|
|
||||||
phase += TWO_PI * freq * timeStep
|
phase += TWO_PI * freq * timeStep
|
||||||
|
|
||||||
var sample = sin(lastPhase + phase)
|
var sample = sin(phase)
|
||||||
samples.append(sample)
|
samples.append(sample)
|
||||||
lastPhase = phase
|
|
||||||
|
|
||||||
return samples
|
return samples
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue