You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you so much for the great software! I'm trying to modulate AFSK via soundcard:
import sys, math
import soundcard as sc
import struct
class Modulator:
#TODO: Bit-rate defined by periodsize...fix this by allowing bitrate to be an input
def __init__(self, samplerate, periodsize, amplitude):
self.samplerate = samplerate
self.periodsize = periodsize
self.amplitude = amplitude
self.index = 0 #needed to keep phase continous
self.speaker = sc.default_speaker()
self.a = self.speaker.player(self.samplerate, channels=1, blocksize=self.periodsize)
#Creates the signal in the form of signed, 16 bit samples which can be passed to the ALSA device
def generate(self, freq):
sine = [int((2**15-1)*self.amplitude*math.sin(2*math.pi*freq*x/self.samplerate)) \
for x in range(self.index, self.index + self.periodsize)]
return sine
#Takes a string and returns it as a string of raw little-endian binary (assuming ASCII input only)
def string_to_bin(self, data):
data = ''.join(['%x' % ord(n) for n in data]) #convert into a string of hex
bin_string = ''
for n in data:
i = bin(int(n,16))[2:] #convert each hex digit into binary
while len(i) < 4: i = '0' + i #prepend binary with 0s as needed to make 4 bits long
bin_string += i #add to string
return bin_string
def output(self, data):
bin_string = self.string_to_bin(data)
for n in bin_string:
if n == '1':
buff = self.generate(1200)
else:
buff = self.generate(2200)
self.a.play(buff)
However, I'm getting this error:
Traceback (most recent call last): File "D:/Documents/pyssdv/encode_packet.py", line 5, in <module> g.output("W2GMD>APRS:>Hello World!") File "D:\Documents/pyssdv\modulate_packet.py", line 46, in output self.a.play(buff) File "C:\Users\Sasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\soundcard\mediafoundation.py", line 654, in play buffer = self._render_buffer(towrite) File "C:\Users\Sasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\soundcard\mediafoundation.py", line 590, in _render_buffer hr = self._ppRenderClient[0][0].lpVtbl.GetBuffer(self._ppRenderClient[0], numframes, data) AttributeError: '_Player' object has no attribute '_ppRenderClient'. Did you mean: '_render_client'?
Could you please help? I'm not sure how to fix this.
Thank you so much!!
Sasha
The text was updated successfully, but these errors were encountered:
Hi!
Thank you so much for the great software! I'm trying to modulate AFSK via soundcard:
However, I'm getting this error:
Traceback (most recent call last): File "D:/Documents/pyssdv/encode_packet.py", line 5, in <module> g.output("W2GMD>APRS:>Hello World!") File "D:\Documents/pyssdv\modulate_packet.py", line 46, in output self.a.play(buff) File "C:\Users\Sasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\soundcard\mediafoundation.py", line 654, in play buffer = self._render_buffer(towrite) File "C:\Users\Sasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\soundcard\mediafoundation.py", line 590, in _render_buffer hr = self._ppRenderClient[0][0].lpVtbl.GetBuffer(self._ppRenderClient[0], numframes, data) AttributeError: '_Player' object has no attribute '_ppRenderClient'. Did you mean: '_render_client'?
Could you please help? I'm not sure how to fix this.
Thank you so much!!
Sasha
The text was updated successfully, but these errors were encountered: