samplerate-ledfx 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. samplerate_ledfx-0.2.3/.gitattributes +1 -0
  2. samplerate_ledfx-0.2.3/.github/workflows/pythonpackage.yml +98 -0
  3. samplerate_ledfx-0.2.3/.gitignore +17 -0
  4. samplerate_ledfx-0.2.3/CMakeLists.txt +47 -0
  5. samplerate_ledfx-0.2.3/LICENSE.rst +25 -0
  6. samplerate_ledfx-0.2.3/MANIFEST.in +7 -0
  7. samplerate_ledfx-0.2.3/PKG-INFO +122 -0
  8. samplerate_ledfx-0.2.3/README.rst +102 -0
  9. samplerate_ledfx-0.2.3/docs/Makefile +20 -0
  10. samplerate_ledfx-0.2.3/docs/changelog.rst +7 -0
  11. samplerate_ledfx-0.2.3/docs/conf.py +189 -0
  12. samplerate_ledfx-0.2.3/docs/index.rst +29 -0
  13. samplerate_ledfx-0.2.3/docs/samplerate/converters.rst +34 -0
  14. samplerate_ledfx-0.2.3/docs/samplerate/exceptions.rst +7 -0
  15. samplerate_ledfx-0.2.3/docs/samplerate/index.rst +9 -0
  16. samplerate_ledfx-0.2.3/docs/samplerate/samplerate.rst +35 -0
  17. samplerate_ledfx-0.2.3/examples/play_modulation.py +117 -0
  18. samplerate_ledfx-0.2.3/external/CMakeLists.txt +23 -0
  19. samplerate_ledfx-0.2.3/pyproject.toml +53 -0
  20. samplerate_ledfx-0.2.3/setup.cfg +4 -0
  21. samplerate_ledfx-0.2.3/setup.py +140 -0
  22. samplerate_ledfx-0.2.3/src/samplerate.cpp +688 -0
  23. samplerate_ledfx-0.2.3/src/samplerate_ledfx.egg-info/PKG-INFO +122 -0
  24. samplerate_ledfx-0.2.3/src/samplerate_ledfx.egg-info/SOURCES.txt +32 -0
  25. samplerate_ledfx-0.2.3/src/samplerate_ledfx.egg-info/dependency_links.txt +1 -0
  26. samplerate_ledfx-0.2.3/src/samplerate_ledfx.egg-info/requires.txt +1 -0
  27. samplerate_ledfx-0.2.3/src/samplerate_ledfx.egg-info/top_level.txt +1 -0
  28. samplerate_ledfx-0.2.3/tests/test_api.py +166 -0
  29. samplerate_ledfx-0.2.3/tests/test_asyncio_performance.py +420 -0
  30. samplerate_ledfx-0.2.3/tests/test_exception.py +114 -0
  31. samplerate_ledfx-0.2.3/tests/test_resampling.py +125 -0
  32. samplerate_ledfx-0.2.3/tests/test_resize.py +12 -0
  33. samplerate_ledfx-0.2.3/tests/test_threading_performance.py +345 -0
  34. samplerate_ledfx-0.2.3/uv.lock +571 -0
@@ -0,0 +1 @@
1
+ samplerate/_version.py export-subst
@@ -0,0 +1,98 @@
1
+ name: samplerate
2
+
3
+ on: [push, pull_request]
4
+
5
+ concurrency:
6
+ group: ${{ github.workflow }}-${{ github.ref }}
7
+ cancel-in-progress: true
8
+
9
+ jobs:
10
+ build_wheels:
11
+ name: Build wheels on ${{ matrix.os }}
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ include:
17
+ # Linux x86_64
18
+ - os: ubuntu-latest
19
+ arch: x86_64
20
+ cibw_archs: "x86_64"
21
+ # Linux ARM64 (native, no QEMU)
22
+ - os: ubuntu-24.04-arm
23
+ arch: aarch64
24
+ cibw_archs: "aarch64"
25
+ # Windows AMD64
26
+ - os: windows-latest
27
+ arch: AMD64
28
+ cibw_archs: "AMD64"
29
+ # macOS x86_64 (Intel)
30
+ - os: macos-15-intel
31
+ macoosx_deployment_target: "10.15"
32
+ arch: x86_64
33
+ cibw_archs: "x86_64"
34
+ # macOS ARM64 (Apple Silicon)
35
+ - os: macos-latest
36
+ macoosx_deployment_target: "11.0"
37
+ arch: arm64
38
+ cibw_archs: "arm64"
39
+ steps:
40
+ - uses: actions/checkout@v5
41
+ with:
42
+ submodules: recursive
43
+
44
+ - name: Build wheels
45
+ uses: pypa/cibuildwheel@v3.3.0
46
+ with:
47
+ extras: uv
48
+
49
+ - uses: actions/upload-artifact@v5
50
+ with:
51
+ name: cibw-wheels-${{ matrix.os }}-${{ matrix.arch }}
52
+ path: ./wheelhouse/*.whl
53
+
54
+ build_sdist:
55
+ name: Build source distribution
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - uses: actions/checkout@v5
59
+ with:
60
+ submodules: recursive
61
+
62
+ - name: Install uv
63
+ uses: astral-sh/setup-uv@v7
64
+
65
+ - name: Build sdist
66
+ run: uv build --sdist
67
+
68
+ - uses: actions/upload-artifact@v5
69
+ with:
70
+ name: cibw-sdist
71
+ path: dist/*.tar.gz
72
+ if-no-files-found: error
73
+
74
+ publish:
75
+ needs: [build_wheels, build_sdist]
76
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
77
+ runs-on: ubuntu-latest
78
+ environment:
79
+ name: pypi
80
+ url: https://pypi.org/p/python-samplerate-ledfx/
81
+ permissions:
82
+ id-token: write # Required for trusted publishing
83
+ steps:
84
+ - name: Install uv
85
+ uses: astral-sh/setup-uv@v7
86
+
87
+ - name: Download all artifacts
88
+ uses: actions/download-artifact@v5
89
+ with:
90
+ path: dist
91
+ pattern: cibw-*
92
+ merge-multiple: true
93
+
94
+ - name: Display structure of downloaded files
95
+ run: ls -R dist
96
+
97
+ - name: Publish to PyPI
98
+ run: uv publish --trusted-publishing always
@@ -0,0 +1,17 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+
4
+ .coverage
5
+ .cache/
6
+ .eggs/
7
+ *.egg-info
8
+ dist/
9
+ build/
10
+ .venv/
11
+
12
+ docs/_build
13
+
14
+ tags
15
+ .vscode/
16
+
17
+ samplerate/_src.py
@@ -0,0 +1,47 @@
1
+ # https://stackoverflow.com/questions/51907755/building-a-pybind11-module-with-cpp-and-cuda-sources-using-cmake
2
+
3
+ cmake_minimum_required(VERSION 3.15)
4
+ set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
5
+
6
+ message(STATUS "Found Python prefix ${PYTHON_PREFIX}")
7
+ list(PREPEND CMAKE_PREFIX_PATH "${PYTHON_PREFIX}")
8
+
9
+ project(python-samplerate)
10
+ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
11
+
12
+ cmake_policy(SET CMP0148 NEW)
13
+
14
+ # adds the external dependencies
15
+ add_subdirectory(external)
16
+
17
+ pybind11_add_module(python-samplerate src/samplerate.cpp)
18
+
19
+ target_include_directories(python-samplerate PRIVATE ./external/libsamplerate/include)
20
+
21
+ if(MSVC)
22
+ target_compile_options(python-samplerate PRIVATE /EHsc /MP /bigobj)
23
+ set(CMAKE_EXE_LINKER_FLAGS /MANIFEST:NO)
24
+ endif()
25
+
26
+ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
27
+ CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
28
+ (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32))
29
+ target_compile_options(python-samplerate PRIVATE -std=c++14 -O3 -Wall -Wextra -fPIC)
30
+ endif()
31
+
32
+ ### stick the package and libsamplerate version into the module
33
+ target_compile_definitions(python-samplerate
34
+ PUBLIC LIBSAMPLERATE_VERSION="${LIBSAMPLERATE_VERSION}"
35
+ PRIVATE $<$<BOOL:${PACKAGE_VERSION_INFO}>:VERSION_INFO="${PACKAGE_VERSION_INFO}">
36
+ )
37
+
38
+ ### Final target setup
39
+ set_target_properties(
40
+ python-samplerate
41
+ PROPERTIES
42
+ PREFIX ""
43
+ OUTPUT_NAME "samplerate"
44
+ LINKER_LANGUAGE C
45
+ )
46
+
47
+ target_link_libraries(python-samplerate PUBLIC samplerate)
@@ -0,0 +1,25 @@
1
+ The MIT License (MIT)
2
+ =====================
3
+
4
+ Copyright © 2017 Tino Wagner
5
+
6
+ Permission is hereby granted, free of charge, to any person
7
+ obtaining a copy of this software and associated documentation
8
+ files (the "Software"), to deal in the Software without
9
+ restriction, including without limitation the rights to use,
10
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the
12
+ Software is furnished to do so, subject to the following
13
+ conditions:
14
+
15
+ The above copyright notice and this permission notice shall be
16
+ included in all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,7 @@
1
+ include README.rst
2
+ include LICENSE.rst
3
+ include src/*.cpp
4
+ include CMakeLists.txt
5
+ include external/CMakeLists.txt
6
+ include uv.lock
7
+ include examples/*.py
@@ -0,0 +1,122 @@
1
+ Metadata-Version: 2.4
2
+ Name: samplerate-ledfx
3
+ Version: 0.2.3
4
+ Summary: Monolithic python wrapper for libsamplerate based on pybind11 and NumPy
5
+ Author-email: Robin Scheibler <fakufaku@gmail.com>, Tino Wagner <ich@tinowagner.com>
6
+ Keywords: samplerate,converter,signal processing,audio
7
+ Classifier: Development Status :: 3 - Alpha
8
+ Classifier: Environment :: Console
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Topic :: Scientific/Engineering
14
+ Classifier: Topic :: Multimedia :: Sound/Audio
15
+ Requires-Python: >=3.9
16
+ Description-Content-Type: text/x-rst
17
+ License-File: LICENSE.rst
18
+ Requires-Dist: numpy>=1.7.0
19
+ Dynamic: license-file
20
+
21
+ python-samplerate
22
+ =================
23
+
24
+ .. image:: https://img.shields.io/pypi/v/samplerate.svg
25
+ :target: https://pypi.python.org/pypi/samplerate
26
+
27
+ .. image:: https://img.shields.io/pypi/l/samplerate.svg
28
+ :target: https://pypi.python.org/pypi/samplerate
29
+
30
+ .. image:: https://img.shields.io/pypi/wheel/samplerate.svg
31
+ :target: https://pypi.python.org/pypi/samplerate
32
+
33
+ .. image:: https://img.shields.io/pypi/pyversions/samplerate.svg
34
+ :target: https://pypi.python.org/pypi/samplerate
35
+
36
+ .. image:: https://readthedocs.org/projects/python-samplerate/badge/?version=latest
37
+ :target: http://python-samplerate.readthedocs.io/en/latest/?badge=latest
38
+ :alt: Documentation Status
39
+
40
+
41
+ This is a wrapper around Erik de Castro Lopo's `libsamplerate`_ (aka Secret
42
+ Rabbit Code) for high-quality sample rate conversion.
43
+
44
+ It implements all three `APIs
45
+ <http://www.mega-nerd.com/libsamplerate/api.html>`_ available in
46
+ `libsamplerate`_:
47
+
48
+ * **Simple API**: for resampling a large chunk of data with a single library
49
+ call
50
+ * **Full API**: for obtaining the resampled signal from successive chunks of
51
+ data
52
+ * **Callback API**: like Full API, but input samples are provided by a callback
53
+ function
54
+
55
+ The `libsamplerate`_ library is statically built together with the python bindings
56
+ using `pybind11 <https://github.com/pybind/pybind11/>`_.
57
+
58
+
59
+ Installation
60
+ ------------
61
+
62
+ $ pip install samplerate
63
+
64
+ Binary wheels of `libsamplerate`_ for macOS and Windows (64 bit) are available.
65
+ For other systems, a C++ 14 or above compiler is required to build the package.
66
+
67
+
68
+ Usage
69
+ -----
70
+
71
+ .. code-block:: python
72
+
73
+ import numpy as np
74
+ import samplerate
75
+
76
+ # Synthesize data
77
+ fs = 1000.
78
+ t = np.arange(fs * 2) / fs
79
+ input_data = np.sin(2 * np.pi * 5 * t)
80
+
81
+ # Simple API
82
+ ratio = 1.5
83
+ converter = 'sinc_best' # or 'sinc_fastest', ...
84
+ output_data_simple = samplerate.resample(input_data, ratio, converter)
85
+
86
+ # Full API
87
+ resampler = samplerate.Resampler(converter, channels=1)
88
+ output_data_full = resampler.process(input_data, ratio, end_of_input=True)
89
+
90
+ # The result is the same for both APIs.
91
+ assert np.allclose(output_data_simple, output_data_full)
92
+
93
+ # See `samplerate.CallbackResampler` for the Callback API, or
94
+ # `examples/play_modulation.py` for an example.
95
+
96
+ See ``samplerate.resample``, ``samplerate.Resampler``, and
97
+ ``samplerate.CallbackResampler`` in the API documentation for details.
98
+
99
+
100
+ See also
101
+ --------
102
+
103
+ * `scikits.samplerate <https://pypi.python.org/pypi/scikits.samplerate>`_
104
+ implements only the Simple API and uses `Cython <http://cython.org/>`_ for
105
+ extern calls. The `resample` function of `scikits.samplerate` and this package
106
+ share the same function signature for compatiblity.
107
+
108
+ * `resampy <https://github.com/bmcfee/resampy>`_: sample rate conversion in
109
+ Python + Cython.
110
+
111
+
112
+ License
113
+ -------
114
+
115
+ This project is licensed under the `MIT license
116
+ <https://opensource.org/licenses/MIT>`_.
117
+
118
+ As of version 0.1.9, `libsamplerate`_ is licensed under the `2-clause BSD
119
+ license <https://opensource.org/licenses/BSD-2-Clause>`_.
120
+
121
+
122
+ .. _libsamplerate: http://www.mega-nerd.com/libsamplerate/
@@ -0,0 +1,102 @@
1
+ python-samplerate
2
+ =================
3
+
4
+ .. image:: https://img.shields.io/pypi/v/samplerate.svg
5
+ :target: https://pypi.python.org/pypi/samplerate
6
+
7
+ .. image:: https://img.shields.io/pypi/l/samplerate.svg
8
+ :target: https://pypi.python.org/pypi/samplerate
9
+
10
+ .. image:: https://img.shields.io/pypi/wheel/samplerate.svg
11
+ :target: https://pypi.python.org/pypi/samplerate
12
+
13
+ .. image:: https://img.shields.io/pypi/pyversions/samplerate.svg
14
+ :target: https://pypi.python.org/pypi/samplerate
15
+
16
+ .. image:: https://readthedocs.org/projects/python-samplerate/badge/?version=latest
17
+ :target: http://python-samplerate.readthedocs.io/en/latest/?badge=latest
18
+ :alt: Documentation Status
19
+
20
+
21
+ This is a wrapper around Erik de Castro Lopo's `libsamplerate`_ (aka Secret
22
+ Rabbit Code) for high-quality sample rate conversion.
23
+
24
+ It implements all three `APIs
25
+ <http://www.mega-nerd.com/libsamplerate/api.html>`_ available in
26
+ `libsamplerate`_:
27
+
28
+ * **Simple API**: for resampling a large chunk of data with a single library
29
+ call
30
+ * **Full API**: for obtaining the resampled signal from successive chunks of
31
+ data
32
+ * **Callback API**: like Full API, but input samples are provided by a callback
33
+ function
34
+
35
+ The `libsamplerate`_ library is statically built together with the python bindings
36
+ using `pybind11 <https://github.com/pybind/pybind11/>`_.
37
+
38
+
39
+ Installation
40
+ ------------
41
+
42
+ $ pip install samplerate
43
+
44
+ Binary wheels of `libsamplerate`_ for macOS and Windows (64 bit) are available.
45
+ For other systems, a C++ 14 or above compiler is required to build the package.
46
+
47
+
48
+ Usage
49
+ -----
50
+
51
+ .. code-block:: python
52
+
53
+ import numpy as np
54
+ import samplerate
55
+
56
+ # Synthesize data
57
+ fs = 1000.
58
+ t = np.arange(fs * 2) / fs
59
+ input_data = np.sin(2 * np.pi * 5 * t)
60
+
61
+ # Simple API
62
+ ratio = 1.5
63
+ converter = 'sinc_best' # or 'sinc_fastest', ...
64
+ output_data_simple = samplerate.resample(input_data, ratio, converter)
65
+
66
+ # Full API
67
+ resampler = samplerate.Resampler(converter, channels=1)
68
+ output_data_full = resampler.process(input_data, ratio, end_of_input=True)
69
+
70
+ # The result is the same for both APIs.
71
+ assert np.allclose(output_data_simple, output_data_full)
72
+
73
+ # See `samplerate.CallbackResampler` for the Callback API, or
74
+ # `examples/play_modulation.py` for an example.
75
+
76
+ See ``samplerate.resample``, ``samplerate.Resampler``, and
77
+ ``samplerate.CallbackResampler`` in the API documentation for details.
78
+
79
+
80
+ See also
81
+ --------
82
+
83
+ * `scikits.samplerate <https://pypi.python.org/pypi/scikits.samplerate>`_
84
+ implements only the Simple API and uses `Cython <http://cython.org/>`_ for
85
+ extern calls. The `resample` function of `scikits.samplerate` and this package
86
+ share the same function signature for compatiblity.
87
+
88
+ * `resampy <https://github.com/bmcfee/resampy>`_: sample rate conversion in
89
+ Python + Cython.
90
+
91
+
92
+ License
93
+ -------
94
+
95
+ This project is licensed under the `MIT license
96
+ <https://opensource.org/licenses/MIT>`_.
97
+
98
+ As of version 0.1.9, `libsamplerate`_ is licensed under the `2-clause BSD
99
+ license <https://opensource.org/licenses/BSD-2-Clause>`_.
100
+
101
+
102
+ .. _libsamplerate: http://www.mega-nerd.com/libsamplerate/
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line.
5
+ SPHINXOPTS =
6
+ SPHINXBUILD = sphinx-build
7
+ SPHINXPROJ = python-samplerate
8
+ SOURCEDIR = .
9
+ BUILDDIR = _build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,7 @@
1
+ Change Log
2
+ ##########
3
+
4
+ 0.1.0
5
+ =====
6
+
7
+ * Initial release.
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ #
4
+ # python-samplerate documentation build configuration file, created by
5
+ # sphinx-quickstart on Thu Feb 9 12:32:39 2017.
6
+ #
7
+ # This file is execfile()d with the current directory set to its
8
+ # containing dir.
9
+ #
10
+ # Note that not all possible configuration values are present in this
11
+ # autogenerated file.
12
+ #
13
+ # All configuration values have a default; values that are commented out
14
+ # serve to show the default.
15
+
16
+ # If extensions (or modules to document with autodoc) are in another directory,
17
+ # add these directories to sys.path here. If the directory is relative to the
18
+ # documentation root, use os.path.abspath to make it absolute, like shown here.
19
+ #
20
+ # import os
21
+ # import sys
22
+
23
+ # sys.path.insert(0, os.path.abspath('.'))
24
+
25
+ import samplerate
26
+
27
+ # -- General configuration ------------------------------------------------
28
+
29
+ # If your documentation needs a minimal Sphinx version, state it here.
30
+ #
31
+ # needs_sphinx = '1.0'
32
+
33
+ # Add any Sphinx extension module names here, as strings. They can be
34
+ # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
35
+ # ones.
36
+ extensions = ["sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx.ext.napoleon"]
37
+
38
+ # Add any paths that contain templates here, relative to this directory.
39
+ templates_path = ["_templates"]
40
+
41
+ # The suffix(es) of source filenames.
42
+ # You can specify multiple suffix as a list of string:
43
+ #
44
+ # source_suffix = ['.rst', '.md']
45
+ source_suffix = ".rst"
46
+
47
+ # The master toctree document.
48
+ master_doc = "index"
49
+
50
+ # General information about the project.
51
+ project = "python-samplerate"
52
+ copyright = "2017, Tino Wagner"
53
+ author = "Tino Wagner"
54
+
55
+ # The version info for the project you're documenting, acts as replacement for
56
+ # |version| and |release|, also used in various other places throughout the
57
+ # built documents.
58
+ #
59
+
60
+ # The full version, including alpha/beta/rc tags.
61
+ release = samplerate.__version__
62
+
63
+
64
+ # The short X.Y version.
65
+ def get_short_version(version):
66
+ """Return short version from PEP-440 compatible version string."""
67
+ if "+" in version:
68
+ return version[: version.find("+")]
69
+ return version
70
+
71
+
72
+ version = get_short_version(release)
73
+
74
+ # The language for content autogenerated by Sphinx. Refer to documentation
75
+ # for a list of supported languages.
76
+ #
77
+ # This is also used if you do content translation via gettext catalogs.
78
+ # Usually you set "language" from the command line for these cases.
79
+ language = "en"
80
+
81
+ # List of patterns, relative to source directory, that match files and
82
+ # directories to ignore when looking for source files.
83
+ # This patterns also effect to html_static_path and html_extra_path
84
+ exclude_patterns = []
85
+
86
+ # The name of the Pygments (syntax highlighting) style to use.
87
+ pygments_style = "sphinx"
88
+
89
+ # If true, `todo` and `todoList` produce output, else they produce nothing.
90
+ todo_include_todos = False
91
+
92
+
93
+ # -- Options for HTML output ----------------------------------------------
94
+
95
+ # The theme to use for HTML and HTML Help pages. See the documentation for
96
+ # a list of builtin themes.
97
+ #
98
+ html_theme = "alabaster"
99
+
100
+ # Theme options are theme-specific and customize the look and feel of a theme
101
+ # further. For a list of options available for each theme, see the
102
+ # documentation.
103
+ #
104
+ html_theme_options = {
105
+ "description": "Sample rate conversion in Python using libsamplerate",
106
+ "github_user": "tuxu",
107
+ "github_repo": "python-samplerate",
108
+ "github_banner": True,
109
+ "fixed_sidebar": True,
110
+ }
111
+
112
+ html_sidebars = {
113
+ "**": [
114
+ "about.html",
115
+ "navigation.html",
116
+ "relations.html",
117
+ "searchbox.html",
118
+ "donate.html",
119
+ ]
120
+ }
121
+
122
+ # Add any paths that contain custom static files (such as style sheets) here,
123
+ # relative to this directory. They are copied after the builtin static files,
124
+ # so a file named "default.css" will overwrite the builtin "default.css".
125
+ html_static_path = ["_static"]
126
+
127
+
128
+ # -- Options for HTMLHelp output ------------------------------------------
129
+
130
+ # Output file base name for HTML help builder.
131
+ htmlhelp_basename = "python-sampleratedoc"
132
+
133
+
134
+ # -- Options for LaTeX output ---------------------------------------------
135
+
136
+ latex_elements = {
137
+ # The paper size ('letterpaper' or 'a4paper').
138
+ #
139
+ # 'papersize': 'letterpaper',
140
+ # The font size ('10pt', '11pt' or '12pt').
141
+ #
142
+ # 'pointsize': '10pt',
143
+ # Additional stuff for the LaTeX preamble.
144
+ #
145
+ # 'preamble': '',
146
+ # Latex figure (float) alignment
147
+ #
148
+ # 'figure_align': 'htbp',
149
+ }
150
+
151
+ # Grouping the document tree into LaTeX files. List of tuples
152
+ # (source start file, target name, title,
153
+ # author, documentclass [howto, manual, or own class]).
154
+ latex_documents = [
155
+ (
156
+ master_doc,
157
+ "python-samplerate.tex",
158
+ "python-samplerate Documentation",
159
+ "Tino Wagner",
160
+ "manual",
161
+ ),
162
+ ]
163
+
164
+
165
+ # -- Options for manual page output ---------------------------------------
166
+
167
+ # One entry per manual page. List of tuples
168
+ # (source start file, name, description, authors, manual section).
169
+ man_pages = [
170
+ (master_doc, "python-samplerate", "python-samplerate Documentation", [author], 1)
171
+ ]
172
+
173
+
174
+ # -- Options for Texinfo output -------------------------------------------
175
+
176
+ # Grouping the document tree into Texinfo files. List of tuples
177
+ # (source start file, target name, title, author,
178
+ # dir menu entry, description, category)
179
+ texinfo_documents = [
180
+ (
181
+ master_doc,
182
+ "python-samplerate",
183
+ "python-samplerate Documentation",
184
+ author,
185
+ "python-samplerate",
186
+ "One line description of project.",
187
+ "Miscellaneous",
188
+ ),
189
+ ]
@@ -0,0 +1,29 @@
1
+ .. include:: ../README.rst
2
+
3
+
4
+ API documentation
5
+ -----------------
6
+
7
+ .. toctree::
8
+ :maxdepth: 2
9
+
10
+ samplerate/index
11
+
12
+
13
+ Change Log
14
+ ----------
15
+ .. toctree::
16
+ :maxdepth: 2
17
+
18
+ changelog
19
+
20
+
21
+ Indices and tables
22
+ ------------------
23
+
24
+ * :ref:`genindex`
25
+ * :ref:`modindex`
26
+ * :ref:`search`
27
+
28
+
29
+ .. _libsamplerate: http://www.mega-nerd.com/libsamplerate/