mirror of
https://github.com/ggerganov/ggwave.git
synced 2026-02-06 16:47:59 +08:00
update default parameters + python updates
- by default ggwave will now output 32-bit float samples - python samples no longer use numpy - python test now decodes payload - fix buffer overflow in receive.py example
This commit is contained in:
@@ -134,7 +134,6 @@ Usage
|
||||
|
||||
import ggwave
|
||||
import pyaudio
|
||||
import numpy as np
|
||||
|
||||
p = pyaudio.PyAudio()
|
||||
|
||||
@@ -142,8 +141,8 @@ Usage
|
||||
waveform = ggwave.encode("hello python", txProtocol = 1, volume = 20)
|
||||
|
||||
print("Transmitting text 'hello python' ...")
|
||||
stream = p.open(format=pyaudio.paInt16, channels=1, rate=48000, output=True, frames_per_buffer=4096)
|
||||
stream.write(np.array(waveform).astype(np.int16), len(waveform))
|
||||
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=48000, output=True, frames_per_buffer=4096)
|
||||
stream.write(waveform, len(waveform)//4)
|
||||
stream.stop_stream()
|
||||
stream.close()
|
||||
|
||||
@@ -165,7 +164,7 @@ Usage
|
||||
|
||||
try:
|
||||
while True:
|
||||
data = stream.read(1024)
|
||||
data = stream.read(1024, exception_on_overflow=False)
|
||||
res = ggwave.decode(instance, data)
|
||||
if (not res is None):
|
||||
try:
|
||||
|
||||
@@ -8,7 +8,7 @@ README.rst is not commited to git because it is generated from [README-tmpl.rst]
|
||||
## Building
|
||||
|
||||
Run `make build` to generate an extension module as .so file.
|
||||
You can test it then by importing it from python interpreter `import ggwave` and running `ggwave.testC(...)` (you have to be positioned in the directory where .so was built).
|
||||
You can test it then by importing it from python interpreter `import ggwave` and running `ggwave.encode('test')` (you have to be positioned in the directory where .so was built).
|
||||
This is useful for testing while developing.
|
||||
|
||||
Run `make sdist` to create a source distribution, but not publish it - it is a tarball in dist/ that will be uploaded to pip on `publish`.
|
||||
|
||||
@@ -3,7 +3,6 @@ cimport cython
|
||||
from cpython.mem cimport PyMem_Malloc, PyMem_Free
|
||||
|
||||
import re
|
||||
import struct
|
||||
|
||||
cimport cggwave
|
||||
|
||||
@@ -43,7 +42,7 @@ def encode(payload, txProtocolId = 1, volume = 10, instance = None):
|
||||
if (own):
|
||||
free(instance)
|
||||
|
||||
return struct.unpack("h"*n, output_bytes[0:2*n])
|
||||
return output_bytes
|
||||
|
||||
def decode(instance, waveform):
|
||||
""" Analyze and decode audio waveform to obtain original payload
|
||||
|
||||
Reference in New Issue
Block a user