quiet / quietmodemkit Goto Github PK
View Code? Open in Web Editor NEWiOS framework for the Quiet Modem (data over sound)
License: BSD 3-Clause "New" or "Revised" License
iOS framework for the Quiet Modem (data over sound)
License: BSD 3-Clause "New" or "Revised" License
hey @brian-armstrong, I'm running into an error while trying to build QM. I get the following error while running a carthage update
command:
Run Build Command(s):/Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile cmTC_2607f/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_2607f.dir/build.make CMakeFiles/cmTC_2607f.dir/build
Building C object CMakeFiles/cmTC_2607f.dir/INT.c.o
/usr/bin/clang -= -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk -MD -MT CMakeFiles/cmTC_2607f.dir/INT.c.o -MF CMakeFiles/cmTC_2607f.dir/INT.c.o.d -o CMakeFiles/cmTC_2607f.dir/INT.c.o -c /Users/cmassoudi/Library/Caches/org.carthage.CarthageKit/DerivedData/14.0.1_14A400/QuietModemKit/v0.3.2/Build/Intermediates.noindex/ArchiveIntermediates/QuietModemKit/BuildProductsPath/Release-iphoneos/jansson/CMakeFiles/CheckTypeSize/INT.c
clang: error: unknown argument: '-='
That unknown arg error (clang: error: unknown argument: '-='
) made it seem like some env variables might be missing. I took a peek at the apple.toolchain.make
and I see the cmake flags have an arg APPLE_VERSION_FLAG
- I think that's the culprit.
apple.toolchain.make L195
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${APPLE_VERSION_FLAG} ${BITCODE_FLAG} -isysroot ${CMAKE_OSX_SYSROOT}" CACHE STRING "")
Any help would be much appreciated, thanks!
-Cam
Hi,
I built a iOs app based on https://github.com/winster/QuietShare and your latest release v.0.1.6.
I also built Android app based on quiet/org.quietmodem.Quiet .
What I notice is there is no difference between 4 ultrasonic profiles.
I ran iOs app on iphone 7 and Android app on Samsung S6, also https://quiet.github.io/quiet-js on Chrome browser on Macbook. All three devices are on listening/scanning.
My observation is iOs is quite good in receiving, it can hear from laptop and Android. But it is bad in transmit, the browser app never get text and Android app rarely get text from iOs. The iOs can listen to its own sending text though.
Android app is good in transmitting text, all devices can receive text from it.
All devices are set very close to each other.
Sound level on all devices is set around 50-70%.
Could you find any explanation for different behaviours on devices/OS?
@brian-armstrong Hi, I am happy to use this nice kit.
I am currently trying to use this repository but I see there is much difference in "devel" and "master"branch.
Which one is correct to use?
Thanks
QMKit should support installation by Cocoapods as well as by Carthage
Hi Brian, I am developing iOS native app for sending data between android and iOS devices using Quite framework. I can able to send/receive successfully. If the app is in receiving mode, I cant have a control to stop the receiving mode. is there any way to stop/start receiving mode.
I can able to do start/stop sending mode. Please check https://github.com/chanduthedev/iOS/tree/master/QuietShare repo if code reference needed.
Hi,
thanks for your work
I need calculate distance between devices
It’s possibile?
Thanks
Hello, I tried to create a small project with this library, I did setup two versions of the app one for receiver and another for the transmitter. I installed in two devices running iOS 10 and I never got a callback in the receiver end even though no crashes or errors were reported in the transmitter app.
Can you help?
I am trying to find a way to check how far can the signal be detected while keeping the lowest possible volume. How can I do that? For me the data is small, so speed is not a very big issue.
Receive callback function not working on any devices, simulators. Can you help me, please?
why iPhoneXs send quietModem didn't unrecognized?
iphone 6 & iphone X is success,but iphone xs Unrecognized...
the same code
please contact me, e-mail:[email protected]
Hello! I'm trying to build framework using Carthage and unable to successfully do that.
Here is the output log : https://gist.github.com/xzenon/e342865614ae0d482ddc1a86947fc9be
Error message says:
libquiet requires libliquid but cannot find it
fetch the devel branch using
git clone https://github.com/quiet/liquid-dsp.git -b devel --single-branch
and install it before continuing
I've fetched libliquid sources, compiled and installed it manually but still unable to compile QuietModem.
Would be great if you can advice something. Thanks!
For some reason, the receiver in QMKit doesn't perform as well as in JS or Android. I should investigate and attempt to bring it up to parity. It's likely to do with configuration of CoreAudio
Hi,
As you can see on my previous issue :
cawfree/react-native-quiet#9
I was playing with this library and I realized that the app is rejected by App Connect because the file build-c-libraries.sh
from QuietModemKit is not signed.
I get a message like this :
Invalid Signature. Code object is not signed at all
Do you have any idea how to solve this issue ?
self.rx?.setReceiveCallback(self.receiveCallback);
crashes on iOS 9 but works fine in iOS11
Log
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSThread initWithBlock:]: unrecognized selector sent to instance 0x7fd338697da0'
Hi,
I am trying out this project, and it works nicely. But my case is time sensitive, I use iphone and my nexus phone as transmitter, raspberry pi as receiver, and I send 32 bytes once a time. It costs around 800ms for both prefix audible mode and ultrasonic-experimental mode.
Is there any way that I can do with config file to make it faster?
PS: distance is not a issue, I can make it close enough. ^^
Any suggestion from you will really help me.
Hi!
There was a problem during installation. (Using Xcode 8.3.2)
$ carthage update --verbose
*** Fetching QuietModemKit
*** Checking out QuietModemKit at "v0.1.5"
... ...
Undefined symbols for architecture arm64:
"_quiet_encoder_close", referenced from:
-[QMFrameTransmitter close] in QMFrameTransmitter.o
"_quiet_encoder_set_nonblocking", referenced from:
-[QMFrameTransmitter setNonBlocking] in QMFrameTransmitter.o
"_quiet_encoder_send", referenced from:
... ...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
or
Undefined symbols for architecture armv7:
"_quiet_encoder_close", referenced from:
-[QMFrameTransmitter close] in QMFrameTransmitter.o
"_quiet_encoder_set_nonblocking", referenced from:
-[QMFrameTransmitter setNonBlocking] in QMFrameTransmitter.o
"_quiet_encoder_send", referenced from:
... ...
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What should I do?
Help me
Hi Brian, I can able to transfer data using Quiet framework in iOS. But consistently app is crashing in iOS due to below error message. I think this is related incorrect memory access. But I didn't do any code changes related to memory issue. Can you please help on this?
You can find the code if required https://github.com/chanduthedev/iOS/tree/master/QuietShare
2019-05-06 11:39:28.695414+0800 TestSoundPayment[745:112219] In receive profile :ultrasonic-experimental
TestSoundPayment(745,0x104cfebc0) malloc: Incorrect checksum for freed object 0x10581f000: probably modified after being freed.
Corrupt value: 0x0
TestSoundPayment(745,0x104cfebc0) malloc: *** set a breakpoint in malloc_error_break to debug
(lldb)
This problem is caused by the fact that quiet-lwip process is not compiled by build-c-libraries.sh. As long as the relevant content is configured, PR is already on the author master and waiting for merging.
When transmitting long data (about 100 characters ) packet loss is about 90% .
Tried with 50 % volume
Please Help
How can I pass QuiteModemKit a buffer of pre-recorded samples for demodulation, or samples from a sound file that may have been recorded at an earlier time?
I'm already recording audio to listen for voice commands (or other signals), and at times I want to pass it through quiet to look for modulated metadata, but QuietModemKit costs battery to listen at all times. I see some LoopbackAudio references in the original impl., so I'm hoping it's straightforward to expose the demodulation step as an explicit function.
Hello @brian-armstrong ,
I was creating a sample Swift app. https://github.com/winster/QuietShare
Getting an error while setting the ReceiveCallback. I could not find the definition of that. Can you please help?
Regards
Winster
Hi Brian,
I'm about to compile and develop QuietModem for both Android and IOS.
You mention that they are highly cross-platform so just wanted to confirm if you can use a device with the Android and a device using the IOS and that they can work with each other and are there any gotchas I need to be aware of?
Cheers
Andy
I've been trying out the library, which I have working on Android, but am running into issues when trying to build on iOS. I'm using Xcode 13.4.1 (13F100), with CMake version 3.23.2 installed via brew.
I've run through the following steps to get the dependencies compiled:
Carthage install
$ brew update
$ brew install carthage
Liquid DSP
$ brew install cmake
$ brew install automake
$ git clone https://github.com/quiet/liquid-dsp.git -b devel --single-branch
$ cd liquid-dsp
$ autoupdate
$ ./bootstrap.sh
$ ./configure
$ make
$ sudo make install
libfec
$ git clone https://github.com/quiet/libfec.git
$ cd libfec
$ ./configure --build=x86_64-apple-darwin15.0.0
$ make
$ sudo make install
Jansson
$ brew install libtool
$ git clone https://github.com/akheron/jansson.git
$ cd jansson
$ autoreconf -i
$ ./configure
$ make
$ make install
portaudio
$ git clone https://github.com/PortAudio/portaudio
$ cd portaudio
$ ./configure
$ make
$ make install
libsndfile
$ download from http://www.mega-nerd.com/libsndfile/#Download
$ cd libsndfile
$ ./configure
$ make
$ sudo make install
quiet-lwip
$ git clone https://github.com/quiet/quiet-lwip.git
$ cd quiet-lwip
$ mkdir build
$ cd build
$ cmake ..
$ copy headers from portaudio, quiet-portaudio, and quiet into include directory.
$ make
libcorrect
$ git clone https://github.com/quiet/libcorrect.git
$ cd libcorrect
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install
quiet
$ git clone https://github.com/quiet/quiet
$ cd quiet
$ ./bootstrap
$ cd build && make install
When I attempt to build the framework via:
xcodebuild -configuration Debug build
I am getting multple errors, including "libquiet requires libliquid but cannot find it". I've checked my path settings, and checked my included headers. If you could provide any insight I would greatly appreciate it. I've attached the full xcodebuild output for reference.
@brian-armstrong have you considered enabling sponsorship for this project? I would be interested in contributing financially, or in other ways to support it's development. Thank you for your hard work on this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.