test_multimode_tx.py sounds OK through a sound card

This commit is contained in:
drowe67 2021-12-14 13:46:20 +10:30 committed by David Rowe
parent e7fbca9405
commit 290d2dd8b7
2 changed files with 16 additions and 5 deletions

View file

@ -20,24 +20,32 @@ parser = argparse.ArgumentParser(description='FreeDATA TEST')
parser.add_argument('--bursts', dest="N_BURSTS", default=0, type=int)
parser.add_argument('--framesperburst', dest="N_FRAMES_PER_BURST", default=0, type=int)
parser.add_argument('--delay', dest="DELAY_BETWEEN_BURSTS", default=0, type=int)
parser.add_argument('--audiooutput', dest="AUDIO_OUTPUT", default=0, type=int)
parser.add_argument('--audiodev', dest="AUDIO_OUTPUT_DEVICE", default=-1, type=int, help="audio output device number to use")
parser.add_argument('--list', dest="LIST", action="store_true", help="list audio devices by number and exit")
args = parser.parse_args()
if args.LIST:
p = pyaudio.PyAudio()
for dev in range(0,p.get_device_count()):
print("audiodev: ", dev, p.get_device_info_by_index(dev)["name"])
quit()
N_BURSTS = args.N_BURSTS
N_FRAMES_PER_BURST = args.N_FRAMES_PER_BURST
DELAY_BETWEEN_BURSTS = args.DELAY_BETWEEN_BURSTS/1000
AUDIO_OUTPUT_DEVICE = args.AUDIO_OUTPUT
AUDIO_OUTPUT_DEVICE = args.AUDIO_OUTPUT_DEVICE
# AUDIO PARAMETERS
AUDIO_FRAMES_PER_BUFFER = 2048
MODEM_SAMPLE_RATE = codec2.api.FREEDV_FS_8000
AUDIO_SAMPLE_RATE_TX = 48000
assert (AUDIO_SAMPLE_RATE_TX % MODEM_SAMPLE_RATE) == 0
if AUDIO_OUTPUT_DEVICE != 0:
if AUDIO_OUTPUT_DEVICE != -1:
# pyaudio init
p = pyaudio.PyAudio()
stream_tx = p.open(format=pyaudio.paInt16,
@ -48,7 +56,7 @@ if AUDIO_OUTPUT_DEVICE != 0:
output_device_index=AUDIO_OUTPUT_DEVICE,
)
modes = [14,10,12]
modes = [codec2.api.FREEDV_MODE_DATAC0, codec2.api.FREEDV_MODE_DATAC1, codec2.api.FREEDV_MODE_DATAC3]
for m in modes:
@ -105,7 +113,7 @@ for m in modes:
# check if we want to use an audio device or stdout
if AUDIO_OUTPUT_DEVICE != 0:
if AUDIO_OUTPUT_DEVICE != -1:
# sample rate conversion from 8000Hz to 48000Hz
audio = audioop.ratecv(txbuffer,2,1,MODEM_SAMPLE_RATE, AUDIO_SAMPLE_RATE_TX, None)

View file

@ -72,6 +72,9 @@ api.freedv_get_n_tx_modem_samples.restype = c_int
api.FREEDV_FS_8000 = 8000
api.FREEDV_MODE_DATAC1 = 10
api.FREEDV_MODE_DATAC3 = 12
api.FREEDV_MODE_DATAC0 = 14