Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] First release #13

Open
wants to merge 240 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
240 commits
Select commit Hold shift + click to select a range
ce0c5f9
Add initial type stubs
rlee287 Oct 20, 2019
c64c7b7
Merge branch 'develop' into create_type_stubs
rlee287 Oct 26, 2019
bf782e0
Create mypy stub for encode_pad
rlee287 Oct 26, 2019
d502b3d
Add mypy typecheck to 3.7 after success
rlee287 Oct 26, 2019
37dc3c7
Create custom script for running mypy checks
rlee287 Oct 26, 2019
f82f5f0
Remove non-POSIX pushd and popd from mypy script
rlee287 Oct 26, 2019
986dcf7
Try adding back in Python 3.8 to Travis
rlee287 Oct 26, 2019
e726c86
Try installing liblapack-dev to allow scipy building
rlee287 Oct 26, 2019
0370c81
See if pypy3 also works
rlee287 Oct 26, 2019
ff91ce6
Make modulator a proper abstract class
rlee287 Oct 28, 2019
ba88f8c
Give types to the generate_timearray static method
rlee287 Oct 28, 2019
432d899
Move samples_per_symbol helper into base modulator class
rlee287 Oct 28, 2019
caec8e7
Update base modulator typestub
rlee287 Oct 28, 2019
b0e6a6a
Merge branch 'create_type_stubs' into develop
rlee287 Oct 28, 2019
67a4b6e
Add ending newlines to some files
rlee287 Oct 28, 2019
d6d8464
Minor cleanup of ECC test
rlee287 Oct 29, 2019
41bab10
[ci skip] Update gitignore to ignore provisional stubgen pyi files
rlee287 Oct 29, 2019
2258e07
Convert all dt references to fs references
rlee287 Nov 3, 2019
7d6d320
Move helper static methods to be functions
rlee287 Nov 5, 2019
9ed0b1d
Remove WROG annotation from FSK
rlee287 Nov 6, 2019
d17a491
Convert gaussian window to fs and add docstrings
rlee287 Nov 9, 2019
0e905c7
Create integral averaging function in modulator utils
rlee287 Nov 11, 2019
e907ddf
Skeleton of ASK modulator
rlee287 Nov 11, 2019
d540d35
Use linspace instead of arange for timearray generation
rlee287 Nov 11, 2019
407ad45
Write some tests for modulator utils
rlee287 Nov 11, 2019
7b0eb3b
Fix average function bugs and add bounds checking
rlee287 Nov 11, 2019
fcb8a86
Write more tests for the average function
rlee287 Nov 11, 2019
76edb56
Add property test for average using triangular area under function
rlee287 Nov 11, 2019
80bdbdb
Check for special case of width=0 when averaging
rlee287 Nov 11, 2019
2908570
Add test for when bounds are equal
rlee287 Nov 11, 2019
e72146c
Increase repetitions in triangle average property test
rlee287 Nov 11, 2019
b11565b
Bum lower bound of range for triangle average test
rlee287 Nov 11, 2019
5357e26
Increase minimum amplitude threshold for ASK
rlee287 Nov 12, 2019
c48476e
Work on data upsampling procedures (no linear interpolation)
rlee287 Nov 12, 2019
f552da6
Update docstrings of modulator utils
rlee287 Nov 13, 2019
b5929db
Init Sphinx project
rlee287 Nov 13, 2019
4fc78ae
Adjust wording of trapezoidal average docstring
rlee287 Nov 16, 2019
0f3ad5f
Set up Sphinx and Trapezoidal Averaging notebook
rlee287 Nov 16, 2019
1fa232e
Switch docs to "haiku" theme
rlee287 Nov 17, 2019
1697041
Merge branch 'create_notebooks' into create_modulators
rlee287 Nov 17, 2019
3a5e597
Update Pipfile.lock
rlee287 Nov 17, 2019
0dd16e2
Drop support for Python 3.4
rlee287 Nov 17, 2019
ab612e3
Normalize the computed gaussian window
rlee287 Nov 24, 2019
9fd1c2c
Create basic ASK modulator code
rlee287 Nov 24, 2019
91c30e2
Remove print statement from ASK Gaussian
rlee287 Nov 24, 2019
cb6f737
Remove unused padding functions from utils
rlee287 Nov 25, 2019
35df0b5
Use bytes instead of bytearray for semantics in base 16 encoder
rlee287 Nov 25, 2019
cfdcc0b
Use more numpy/scipy functions in modulation for speed
rlee287 Nov 25, 2019
461ebc4
Smarter sigma calculation and move into separate func
rlee287 Nov 28, 2019
e1d342e
Start ASK demodulator
rlee287 Nov 28, 2019
8acb653
Finish writing demodulator for ASKModulator
rlee287 Nov 29, 2019
f1ad35c
Add comments to ASK modulator
rlee287 Nov 30, 2019
5bb43b9
Write unit integrity tests for ASK
rlee287 Nov 30, 2019
2a5771f
Fix test typos and cast time sample count to int
rlee287 Nov 30, 2019
7b907cc
Remove incorrect shuffling comment from ASK unit test
rlee287 Nov 30, 2019
48aa9c7
Add property test of constant integration for averager
rlee287 Dec 1, 2019
4f490a3
Increase count for test_property_average_constant and add pytest verb…
rlee287 Dec 2, 2019
0c8c082
Reduce average test count again
rlee287 Dec 2, 2019
c5d860f
Add obsolescence marker to Trapezoidal Averaging notebook
rlee287 Dec 2, 2019
89f95fc
Fix off-by-one error in modulator_utils constant test
rlee287 Dec 2, 2019
77f7337
Replace buggy averager with function based on numpy.trapz
rlee287 Dec 2, 2019
b502a97
Handle specific edge case of single element average
rlee287 Dec 2, 2019
d4c3b29
Create ModulationIntegrityWarning class for future use
rlee287 Dec 9, 2019
5089d80
Use firls for lowpass filter design
rlee287 Dec 9, 2019
1b6968d
Reduce count for modulator utils average property test
rlee287 Dec 10, 2019
edc4db9
Finish fixing ASK Demodulator and add an instance of ModulationIntegr…
rlee287 Dec 10, 2019
9406cc1
Forgot to remove debug boolean from call in property test
rlee287 Dec 10, 2019
b27beb8
Use pytest decorators to mark unit vs property
rlee287 Dec 10, 2019
f3b99f2
Run pipenv update to update dependencies
rlee287 Dec 14, 2019
ed862d1
Sigma calculation now uses actual halfway point to reflected components
rlee287 Dec 14, 2019
e79ae2e
Add the beginning of a notebook describing Gaussian smoothing
rlee287 Dec 15, 2019
8a80532
First draft of smoothing notebook
rlee287 Dec 23, 2019
b782365
Allow any 0-1 amplitudes that are valid
rlee287 Dec 23, 2019
d70e92e
Write tests to trigger ASKModulator errors and warnings
rlee287 Dec 23, 2019
09e4d5b
Adjust lengths for encoder turnaround property tests
rlee287 Dec 23, 2019
ec8b551
Check filter generation error handling
rlee287 Dec 23, 2019
613f69f
In filter generation, check that both cutoffs are below Nyquist
rlee287 Dec 23, 2019
2b9a2da
Disable pypy3 Travis CI builds given PermissionErrors
rlee287 Dec 23, 2019
3d8dba8
Migrate README badge to Travis CI.com
rlee287 Dec 23, 2019
d4ba2ea
Add newline to end of parameters test file
rlee287 Dec 23, 2019
12b41db
Run pipenv update to update lockfile
rlee287 Dec 23, 2019
3aeaaf2
Fix second filtergen test to make sure it raises the correct ValueError
rlee287 Dec 23, 2019
1040d1f
Final revisions to Gaussian smoothing notebook
rlee287 Dec 23, 2019
3badc28
Merge branch 'create_modulators' into develop
rlee287 Dec 24, 2019
226f35f
Remove Trapezoidal Averaging legacy notebook
rlee287 Dec 24, 2019
178a9aa
Move type annotations for encoders into actual .py files
rlee287 Dec 24, 2019
2ad0989
Install the provisional numpy-stubs package
rlee287 Dec 24, 2019
f66e9e0
Add stubs for used SciPy functions
rlee287 Dec 24, 2019
7f490e4
Use ndarray in stubs for modulator utils
rlee287 Dec 24, 2019
566b834
Move modulator_base type hints into actual file
rlee287 Dec 24, 2019
c13b943
Remove type declarations from encode_pad for Python 3.5
rlee287 Dec 24, 2019
e5576d2
Install numpy-stubs and set up env matrix for Travis CI
rlee287 Dec 24, 2019
3d98434
Remove python keys left accidentally
rlee287 Dec 24, 2019
6a6e236
Specify egg for numpy-stubs url
rlee287 Dec 24, 2019
2d6e65a
Remove liblapack-dev since Scipy now supports 3.8
rlee287 Dec 24, 2019
b1204a5
Double-quote the $MYPY if statement tests
rlee287 Dec 24, 2019
fe4287d
Merge branch 'migrate_typestubs' into develop
rlee287 Dec 24, 2019
4b90d58
Install cleo as CLI interface package
rlee287 Dec 25, 2019
0089da4
Create preliminary config file spec
rlee287 Dec 27, 2019
e7a2f1b
Start creating CLI command for transmitting a file
rlee287 Dec 27, 2019
9f90691
Install the StrictYaml package
rlee287 Dec 28, 2019
8fb7740
Change config spec slightly as details worked out
rlee287 Dec 29, 2019
f61f7d7
Add cli options to disable preamble and toneburst
rlee287 Dec 29, 2019
9455e2f
Move sigma constants into modulator base
rlee287 Dec 29, 2019
a36d215
Update type stubs for ASK Modulator
rlee287 Dec 29, 2019
b1980e5
Remove _samples_per_symbol @property and add ModulationIntegrityWarni…
rlee287 Dec 29, 2019
66f6578
Slightly rearrange average_interval_data calculations
rlee287 Dec 29, 2019
657fd59
Miscellaneous comment cleanup
rlee287 Dec 29, 2019
9d8ae71
New stub for FSKModulator
rlee287 Dec 29, 2019
b4aa766
Write modulation portion of FSKModulator
rlee287 Dec 29, 2019
2f422ac
Create (at least superficially) working demodulator for FSK
rlee287 Jan 1, 2020
56e9dcd
Add frequency spacing warning and fix diff calculation
rlee287 Jan 1, 2020
f818483
Write unit test for FSK using Bell 202 scheme
rlee287 Jan 1, 2020
590c414
Write some invalid parameter tests for FSK
rlee287 Jan 1, 2020
72db0cb
Clean up FSK and move Goertzel to utils
rlee287 Jan 2, 2020
47b2f42
Write test to raise ValueError for improper Goertzel parameters
rlee287 Jan 2, 2020
fe7de21
Add docstring for Goertzel IIR method
rlee287 Jan 2, 2020
201011e
Reduce sigma_f for FSKModulator
rlee287 Jan 2, 2020
71daece
Another FSK parameter test
rlee287 Jan 2, 2020
dbe7c7d
Try to ignore warnings in integrity tests
rlee287 Jan 2, 2020
4e94aa9
Create .coveragerc to ignore _base.py files
rlee287 Jan 2, 2020
5e77880
Ignore .wav files from audio testing
rlee287 Jan 2, 2020
afd5512
Add newline to end of modulator utils
rlee287 Jan 2, 2020
673bd5f
Update FSK Modulator comments before merging
rlee287 Jan 3, 2020
c11c5dd
Merge branch 'fsk_modulator' into develop
rlee287 Jan 3, 2020
7abf0ba
Remove extra newline from end of utils
rlee287 Jan 6, 2020
9e0cb41
Fix warnings not being caught as errors
rlee287 Jan 6, 2020
fdac2cb
Merge branch 'develop' into cli
rlee287 Jan 6, 2020
eb7309b
Continue adjusting spec for config file
rlee287 Jan 8, 2020
21c74a5
Remove an extraneous newline from ASKModulator
rlee287 Jan 8, 2020
b6ad919
Write a validator (and tests) for complex number input
rlee287 Jan 8, 2020
12f08b8
Add more example configs and use literalinclude for RST
rlee287 Jan 9, 2020
a67ab7a
Reorganize tests into subfolders
rlee287 Jan 9, 2020
023ac9d
Add tests to parse documentation example YAML files
rlee287 Jan 9, 2020
fcf2bab
Add back __init__ files for test folders
rlee287 Jan 9, 2020
142bbf9
Adjust examples and write initial config loader+tests
rlee287 Jan 10, 2020
090ac81
Remove Gaussian smoothing before phase integration
rlee287 Jan 10, 2020
13d3117
Write initial notebook describing FSK modulation
rlee287 Jan 10, 2020
09e6d0f
Install matplotlib for graphs in modulation notebooks
rlee287 Jan 10, 2020
a921a1f
Finish writing FSK Modulator notebook
rlee287 Jan 10, 2020
67c64ba
Merge branch 'fsk_doc' into cli
rlee287 Jan 10, 2020
b8f5ba8
Give application name to cleo Application constructor
rlee287 Jan 11, 2020
5dc9c3e
Use cleaner error handling by raising CLIError and catching in decorator
rlee287 Jan 11, 2020
1a99582
Baud in config file YAML is Float, not Int
rlee287 Jan 12, 2020
4ea4f37
Edit modulators __init__ to make importing modulator classes cleaner
rlee287 Jan 12, 2020
d6ee801
Add ModulationIntegrityWarning to modulation utils typestub
rlee287 Jan 12, 2020
7da9855
Correct types for __all__ in modulators
rlee287 Jan 12, 2020
4a17836
Correct name of qam_schema list entry in schema
rlee287 Jan 12, 2020
24e80c5
Add modulator construction helper to config loader
rlee287 Jan 12, 2020
f28dd1a
Move datastream dicts into __init__ and expose from __all__
rlee287 Jan 12, 2020
a29a237
Forgot to return modulator list from constructor helper
rlee287 Jan 12, 2020
ff807f8
Initial working TxFile command
rlee287 Jan 12, 2020
bc23ee8
Refactoring of CLI utilities and continued work on TxFile
rlee287 Jan 14, 2020
68e45c5
Move docstrings in modulator_utils.py to proper place
rlee287 Jan 14, 2020
2dc4bee
Update comment in lowpass_fir_filter about using firls
rlee287 Jan 14, 2020
2845d95
Move docstrings in modulator_utils.py to proper place
rlee287 Jan 14, 2020
7702beb
Update comment in lowpass_fir_filter about using firls
rlee287 Jan 14, 2020
7c24530
Include the cli package in type checking
rlee287 Jan 14, 2020
884c9cb
Add missing typing imports to encoders __init__
rlee287 Jan 14, 2020
8ac4c8f
Further type annotation stuff
rlee287 Jan 14, 2020
ab8164f
Add __all__ attribute to ecc module
rlee287 Jan 16, 2020
37e7345
Add check for ECC in TxFile Command
rlee287 Jan 16, 2020
b658bce
Check that output file is writable after checking for input file in T…
rlee287 Jan 16, 2020
12aae2f
Write an RxFile command
rlee287 Jan 16, 2020
57f532a
Indicate sign characters for Cartesian constellation points in spec
rlee287 Jan 16, 2020
ac91589
Use comment type annotations for Python 3.5 support
rlee287 Jan 16, 2020
27d19ba
Start writing tests for new CLI elements
rlee287 Jan 16, 2020
070febf
Add some # pragma: no cover annotations and ignore __main__.py
rlee287 Jan 16, 2020
cbfd430
Add newlines to end of files that were lacking them
rlee287 Jan 18, 2020
f0aaa3d
Remove unnecessary pass statements from empty classes with docstrings
rlee287 Jan 18, 2020
4e61bf7
Refactor config file reading in Command objects into base class
rlee287 Jan 18, 2020
218a55d
Move decorator helpers to testing_utils.py
rlee287 Jan 18, 2020
21b05e0
Prepend fsk to bell_202.yaml example's file name
rlee287 Jan 19, 2020
b89a6fd
testing_utils.py newline at end
rlee287 Jan 19, 2020
9796f6d
Check file name and test that right modulator is present, when possible
rlee287 Jan 19, 2020
d216957
Copy yaml loading tests but use ExtendedCommand static methods this time
rlee287 Jan 19, 2020
de3ef11
Finish writing tests for ExtendedCommand helpers
rlee287 Jan 19, 2020
8c64265
Add missing args to FileCleanup __exit__ method
rlee287 Jan 20, 2020
0fb97a5
More tests for CLI interface
rlee287 Jan 20, 2020
457bbd8
Loosen type signatures for datastream decode functions
rlee287 Jan 21, 2020
077a4fb
Adjust whitespace of testing_utils.py
rlee287 Jan 21, 2020
50e0ac0
Merge branch 'develop' into cli
rlee287 Jan 21, 2020
082f24e
Merge branch 'cli' into develop
rlee287 Jan 21, 2020
613cff1
Modify ASK integrity test to ensure phase independence
rlee287 Jan 26, 2020
4f0948f
Rename base Modulator class to BaseModulator
rlee287 Jan 27, 2020
26d3b27
Explain random phase shift part of ASK property test
rlee287 Jan 27, 2020
23d5d8d
Move transition width calculation out of for loop
rlee287 Jan 27, 2020
4fe4efd
Only skip Gaussian smoothing parts at endpoints for FSK
rlee287 Jan 27, 2020
fb4c79f
Create modulator for PSK
rlee287 Feb 1, 2020
3e606e0
Fix missing comma for PSK typestub
rlee287 Feb 1, 2020
400bd05
Adjust a small comment in FSK modulator
rlee287 Feb 9, 2020
d7050d8
Complete the PSK Demodulator
rlee287 Feb 9, 2020
45d3eda
Update tests to include integrity test for PSKModulator
rlee287 Feb 9, 2020
ae63731
Begin testing PSKModulator invalid parameters
rlee287 Feb 9, 2020
1ccfcae
Complete PSK parameter tests
rlee287 Feb 9, 2020
929a68e
Merge branch 'psk_modulator' into develop
rlee287 Feb 9, 2020
c9ac1fe
Update Pipfile.lock
rlee287 Feb 9, 2020
f415b7d
Add PSK examples to docs and update config parser accordingly
rlee287 Feb 11, 2020
d88f820
Changes left behind when adding PSK to CLI
rlee287 Feb 11, 2020
1b13944
Slight refactorings of ASK and PSK Modulator
rlee287 Feb 29, 2020
5900a1b
Implement QAMModulator (mostly copying from SK)
rlee287 Feb 29, 2020
8ce34ee
Add integrity property test for QAMModulator
rlee287 Feb 29, 2020
e11843b
Add some parameter tests for QAMModulator
rlee287 Mar 5, 2020
02ad5b1
Update Pipfile.lock
rlee287 Mar 5, 2020
c931816
Test more of QAM and add some CLI stuff
rlee287 Mar 10, 2020
3d44341
Add QAM section to config loader
rlee287 Mar 10, 2020
2b69d19
Add a QAM modulator to the example configs
rlee287 Mar 16, 2020
7290522
Include QAMModulator assertion in test_yaml_loader
rlee287 Mar 16, 2020
547fec3
Add more complex number parsing validation tests
rlee287 Mar 16, 2020
0a18f76
Use edge extension vs constant 0 extension for FSK edge samples
rlee287 Mar 16, 2020
bd5db47
Begin writing a QAM Modulation notebook
rlee287 Mar 17, 2020
7a326c9
Finish writing QAM Modulator notebook
rlee287 Apr 7, 2020
14141b7
Add positive frequency check to all modulators
rlee287 May 11, 2020
8571b07
[ci skip] Update Pipfile.lock dependencies
rlee287 May 11, 2020
d9b5281
Extend demodulated signal with filt_delay padding
rlee287 May 12, 2020
28534f7
Fix signal name typo in ASK modulator
rlee287 May 12, 2020
f9c14f5
Add fs as an expected instance variable in the BaseModulator abstract…
rlee287 May 12, 2020
8972923
Turn PSKModulator into a thin wrapper around QAMModulator
rlee287 May 12, 2020
339ea22
Adjust type hint to work with Python 3.5
rlee287 May 12, 2020
8d1dfab
Add tests that check for exception on negative carrier
rlee287 May 12, 2020
1cee8f5
Merge branch 'qam' into develop
rlee287 May 12, 2020
1efc510
Update config script to state that QAM is now supported
rlee287 May 12, 2020
5f6d4a8
Raise ValueError upon encountering bad modulator type in examples
rlee287 May 12, 2020
890e5da
Check all example configs in CLI roundtrip modulation test
rlee287 May 12, 2020
9718102
Add test for corruption response upon demodulation
rlee287 May 13, 2020
11d7e25
Write docstrings for the bitstream+datastream functions
rlee287 May 13, 2020
7632e93
Add checks modulator utils to ensure positive inputs
rlee287 May 14, 2020
455ec27
Continue polishing Jupyter Notebook documentation
rlee287 May 14, 2020
f5a1aee
Adjust docstrings for base modulator object
rlee287 May 17, 2020
331263e
Add back the ignoring of warnings in ASK unit tests
rlee287 May 17, 2020
054a618
Adjust tests for negative parameters in filter utilities
rlee287 May 17, 2020
f4acf2a
Ignore warnings for fsk_integrity_high_pitch (again)
rlee287 May 18, 2020
fb68613
Parallelize property tests with pytest-cov and pytest-xdist
rlee287 May 18, 2020
34a8bb9
Add new dev dependencies to Travis list
rlee287 May 18, 2020
a638d7c
Include upgrade command in travis dev dependencies
rlee287 May 18, 2020
7102bf3
Add the interval offset to the end location in demodulation loops
rlee287 May 27, 2020
9c98c26
Use overlap-add convolution method for demodulation filtering
rlee287 May 27, 2020
31bdb8b
Enforce SciPy>=1.4.0 and update Pipfile.lock accordingly
rlee287 May 27, 2020
fb4ff0a
Remove filename clash in unit tests, allowing them to be run in parallel
rlee287 Jun 3, 2020
21629fe
Simplify bitstream read slightly and add tests
rlee287 Dec 5, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[run]
omit=
*_base.py
voicechat_modem_dsp/__main__.py
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,7 @@ venv.bak/
.mypy_cache/

#Custom additions
.vscode/
.vscode/
*.wav
#MyPy stubgen
out/
24 changes: 16 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,33 @@ language: python
notifications:
email: false

python:
- "3.7"
- "3.4"
- "3.6"
- "3.5"
#TODO: properly troubleshoot mypy permission errors
matrix:
include:
- python: '3.8'
os: linux
- python: '3.7'
env: MYPY=true
os: linux
- python: '3.6'
os: linux
- python: '3.5'
os: linux

cache: pip

install:
- if [ $TRAVIS_PYTHON_VERSION = "3.4" ]; then pip install pip==18.0; fi
- pip install pipenv
- rm Pipfile.lock # Re-lock dependencies
- pipenv lock -r > requirements.txt
- cat requirements.txt
- pip install -r requirements.txt
- pip install pytest coverage
- if [ $TRAVIS_PYTHON_VERSION = "3.7" ]; then pip install mypy; fi
- pip install -U pytest coverage pytest-cov pytest-xdist # Dev dependencies
- if [ "$MYPY" = true ]; then pip install mypy; pip install -e git+https://github.com/numpy/numpy-stubs.git#egg=numpy-stubs; fi

script:
- sh ./run_tests_coverage.sh
- if [ "$MYPY" = true ]; then sh ./run_mypy.sh; fi

after_script:
- wget -O codecov_upload "https://codecov.io/bash"
Expand Down
20 changes: 18 additions & 2 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,26 @@ name = "pypi"

[packages]
numpy = "*"
scipy = "*"
scipy = {version = ">=1.4.0"}
protobuf = "*"
ipykernel = "*"
cleo = "*"
strictyaml = "*"
matplotlib = "*"

[dev-packages]
pytest = "*"
mypy = {version="*", python_version=">='3.5'"}
coverage = "*"
Sphinx = "*"
nbsphinx = "*"
itikz = "*"
pytest-xdist = "*"
pytest-cov = "*"

[dev-packages.mypy]
version = "*"
python_version = ">='3.5'"

[dev-packages.numpy-stubs]
git = "https://github.com/numpy/numpy-stubs.git"
editable = true
1,000 changes: 831 additions & 169 deletions Pipfile.lock

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# voicechat-modem-dsp

[![Build Status](https://travis-ci.org/rlee287/voicechat-modem-dsp.svg?branch=master)](https://travis-ci.org/rlee287/voicechat-modem-dsp)
[![Build Status](https://travis-ci.com/rlee287/voicechat-modem-dsp.svg?branch=master)](https://travis-ci.com/rlee287/voicechat-modem-dsp)
[![codecov](https://codecov.io/gh/rlee287/voicechat-modem-dsp/branch/master/graph/badge.svg)](https://codecov.io/gh/rlee287/voicechat-modem-dsp)
[![CodeFactor](https://www.codefactor.io/repository/github/rlee287/voicechat-modem-dsp/badge)](https://www.codefactor.io/repository/github/rlee287/voicechat-modem-dsp)

`voicechat-modem` is an implementation of an audio modem communication program that transmits data over a voice/audio channel. The goal is to allow for data transmission and normal speaking over a voice channel simultaneously such that human communication will not interfere with the data transmission.

This is the DSP portion of `voicechat-modem` which modulates and demodulates data. It will write audio to an audio file, and eventually, use a protobuf communication channel to communicate with other programs to allow for live data transmission and receiving.

Requirements:
- Python>=3.5
- Requirements listed in `Pipfile`
20 changes: 20 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Minimal makefile for Sphinx documentation
#

# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = .
BUILDDIR = _build

# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

.PHONY: help Makefile

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
53 changes: 53 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))


# -- Project information -----------------------------------------------------

project = 'Voicechat Modem (DSP Component)'
copyright = '2019, rlee287'
author = 'rlee287'


# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"nbsphinx","sphinx.ext.mathjax"
]

# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', "**.ipynb_checkpoints", 'Thumbs.db', '.DS_Store']


# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'haiku' # default alabaster

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
25 changes: 25 additions & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
.. Voicechat Modem (DSP Component) documentation master file, created by
sphinx-quickstart on Tue Nov 12 21:38:15 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.

Welcome to Voicechat Modem (DSP Component)'s documentation!
===========================================================

.. toctree::
:maxdepth: 2
:caption: Contents:

notebooks/Datastream Upsampling
notebooks/Pre-Modulation Gaussian Smoothing
notebooks/QAM Modulator
notebooks/FSK Modulator
specs/config

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

35 changes: 35 additions & 0 deletions docs/make.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@ECHO OFF

pushd %~dp0

REM Command file for Sphinx documentation

if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build

if "%1" == "" goto help

%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end

:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

:end
popd
Loading