summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD21
-rw-r--r--python3.11.patch631
3 files changed, 650 insertions, 6 deletions
diff --git a/.SRCINFO b/.SRCINFO
index adc471ab6b6c..4d78a645a7a4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = friture
pkgdesc = An application to visualize and analyze live audio data in real-time.
pkgver = 0.49
- pkgrel = 1
+ pkgrel = 2
url = https://friture.org/
arch = i686
arch = x86_64
@@ -21,6 +21,8 @@ pkgbase = friture
depends = python-sounddevice
optdepends = jack: for JACK I/O support
source = https://github.com/tlecomte/friture/archive/refs/tags/v0.49.tar.gz
+ source = python3.11.patch
sha256sums = 9643c56c4901ae892e16a35c418099bb28784bc4baeebfcf1cd8ea0f9b5de743
+ sha256sums = 253b32b6e4b4855fe06f9fc8b4a6ed03eb0241a434ddc6ad9baa2bf2b3939250
pkgname = friture
diff --git a/PKGBUILD b/PKGBUILD
index 2a03eeb15b75..cc7bbc3eceea 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,16 +4,26 @@
pkgname=friture
pkgver=0.49
-pkgrel=1
+pkgrel=2
pkgdesc="An application to visualize and analyze live audio data in real-time."
arch=(i686 x86_64)
url="https://friture.org/"
license=('GPL3')
-depends=('python-appdirs' 'python-docutils' 'python-multipledispatch' 'python-numpy' 'python-pa-ringbuffer' 'python-pyqt5' 'python-pyrr' 'python-rtmixer' 'python-sounddevice')
+depends=('python-appdirs' 'python-docutils' 'python-multipledispatch' 'python-numpy'
+ 'python-pa-ringbuffer' 'python-pyqt5' 'python-pyrr' 'python-rtmixer'
+ 'python-sounddevice')
optdepends=('jack: for JACK I/O support')
makedepends=('cython' 'python-pip' 'python-setuptools' 'python-wheel')
-_commit=ea7210dae883edf17de8fec82f9428b18ee138b6
-source=("https://github.com/tlecomte/friture/archive/refs/tags/v${pkgver}.tar.gz")
+source=(
+ "https://github.com/tlecomte/friture/archive/refs/tags/v${pkgver}.tar.gz"
+ python3.11.patch
+)
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -Np1 -i ../python3.11.patch
+}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
@@ -34,4 +44,5 @@ package() {
"${pkgdir}/usr/share/applications/${pkgname}.desktop"
}
-sha256sums=('9643c56c4901ae892e16a35c418099bb28784bc4baeebfcf1cd8ea0f9b5de743')
+sha256sums=('9643c56c4901ae892e16a35c418099bb28784bc4baeebfcf1cd8ea0f9b5de743'
+ '253b32b6e4b4855fe06f9fc8b4a6ed03eb0241a434ddc6ad9baa2bf2b3939250')
diff --git a/python3.11.patch b/python3.11.patch
new file mode 100644
index 000000000000..5f4675127a11
--- /dev/null
+++ b/python3.11.patch
@@ -0,0 +1,631 @@
+From e12cd9a76810a0dd1adbc424218ff5badec877b4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Thu, 17 Mar 2022 10:01:45 +0100
+Subject: [PATCH 01/12] fix(Octave spectrum): reduce margins
+
+---
+ friture/octavespectrum.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/friture/octavespectrum.py b/friture/octavespectrum.py
+index 8bfa96b8..928bcbdd 100644
+--- a/friture/octavespectrum.py
++++ b/friture/octavespectrum.py
+@@ -48,6 +48,7 @@ def __init__(self, parent, engine):
+ self.setObjectName("Spectrum_Widget")
+ self.gridLayout = QtWidgets.QGridLayout(self)
+ self.gridLayout.setObjectName("gridLayout")
++ self.gridLayout.setContentsMargins(2, 2, 2, 2)
+ self.PlotZoneSpect = HistPlot(self, engine)
+ self.PlotZoneSpect.setObjectName("PlotZoneSpect")
+ self.gridLayout.addWidget(self.PlotZoneSpect, 0, 0, 1, 1)
+
+From 449a67b8f3c4c98efac4469c7ce43cc30df1a1e7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Wed, 2 Nov 2022 21:08:07 +0100
+Subject: [PATCH 02/12] chore: package updates
+
+Update various packages, including:
+- pyinstaller
+- pyqt5
+- numpy
+---
+ .github/workflows/install-linux.sh | 2 +-
+ .github/workflows/install-macos.sh | 2 +-
+ setup.py | 12 ++++++------
+ winbuild.ps1 | 2 +-
+ 4 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/.github/workflows/install-linux.sh b/.github/workflows/install-linux.sh
+index 93b92a82..79e5388e 100644
+--- a/.github/workflows/install-linux.sh
++++ b/.github/workflows/install-linux.sh
+@@ -34,7 +34,7 @@ make install
+ ls -laR portaudio-install
+ cd ..
+
+-pip3 install -U pyinstaller==4.10
++pip3 install -U pyinstaller==5.6.2
+
+ pyinstaller friture.spec -y --log-level=DEBUG
+
+diff --git a/.github/workflows/install-macos.sh b/.github/workflows/install-macos.sh
+index 95b09cfe..327f67bc 100644
+--- a/.github/workflows/install-macos.sh
++++ b/.github/workflows/install-macos.sh
+@@ -15,7 +15,7 @@ python3 setup.py build_ext --inplace
+ # see: https://github.com/tlecomte/friture/issues/154
+ brew install portaudio --HEAD
+
+-pip3 install -U pyinstaller==4.10
++pip3 install -U pyinstaller==5.6.2
+
+ pyinstaller friture.spec -y --onedir --windowed
+
+diff --git a/setup.py b/setup.py
+index 280cbc98..0e03dd6c 100644
+--- a/setup.py
++++ b/setup.py
+@@ -50,17 +50,17 @@ def include_dirs(self, dirs):
+ # these will be installed when calling 'pip install friture'
+ # they are also retrieved by 'requirements.txt'
+ install_requires = [
+- "sounddevice==0.4.2",
+- "rtmixer==0.1.3",
+- "docutils==0.17.1",
+- "numpy==1.22.1",
+- "PyQt5==5.15.4",
++ "sounddevice==0.4.5",
++ "rtmixer==0.1.4",
++ "docutils==0.19",
++ "numpy==1.23.4",
++ "PyQt5==5.15.7",
+ "appdirs==1.4.4",
+ "pyrr==0.10.3",
+ ]
+
+ # Cython and numpy are needed when running setup.py, to build extensions
+-setup_requires=["numpy==1.22.1", "Cython==0.29.24"]
++setup_requires=["numpy==1.23.4", "Cython==0.29.32"]
+
+ with open(join(dirname(__file__), 'README.rst')) as f:
+ long_description = f.read()
+diff --git a/winbuild.ps1 b/winbuild.ps1
+index c839937b..9f06dbb7 100644
+--- a/winbuild.ps1
++++ b/winbuild.ps1
+@@ -85,7 +85,7 @@ Write-Host "==========================================="
+ Write-Host "Installing pyinstaller"
+ Write-Host "==========================================="
+
+-& pip install -U pyinstaller==4.10
++& pip install -U pyinstaller==5.6.2
+
+ Write-Host ""
+ Write-Host "==========================================="
+
+From f2e55c272fe9078ebf688b39695866f4dc0c7f53 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Wed, 2 Nov 2022 21:40:17 +0100
+Subject: [PATCH 03/12] Fix pyinstaller options, redundant and now crashing
+ newer version of pysintaller
+
+---
+ .github/workflows/install-macos.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/.github/workflows/install-macos.sh b/.github/workflows/install-macos.sh
+index 327f67bc..4a56a05e 100644
+--- a/.github/workflows/install-macos.sh
++++ b/.github/workflows/install-macos.sh
+@@ -17,7 +17,7 @@ brew install portaudio --HEAD
+
+ pip3 install -U pyinstaller==5.6.2
+
+-pyinstaller friture.spec -y --onedir --windowed
++pyinstaller friture.spec -y
+
+ ls -la dist/*
+
+
+From 49b5501bbfa12c282b865cb9f174801b18bc236b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Wed, 2 Nov 2022 21:40:50 +0100
+Subject: [PATCH 04/12] Update pyinstaller hook for sounddevice
+
+---
+ .../pyinstaller-hooks/hook-sounddevice.py | 59 +++++++++++++++----
+ 1 file changed, 48 insertions(+), 11 deletions(-)
+
+diff --git a/installer/pyinstaller-hooks/hook-sounddevice.py b/installer/pyinstaller-hooks/hook-sounddevice.py
+index ee157898..7d37bda5 100644
+--- a/installer/pyinstaller-hooks/hook-sounddevice.py
++++ b/installer/pyinstaller-hooks/hook-sounddevice.py
+@@ -9,7 +9,6 @@
+ #
+ # SPDX-License-Identifier: GPL-2.0-or-later
+ # ------------------------------------------------------------------
+-# -----------------------------------------------------------------------------
+
+ """
+ sounddevice:
+@@ -17,21 +16,59 @@
+ """
+
+ import os
++import pathlib
+
+-from PyInstaller.compat import is_darwin, is_win
+-from PyInstaller.utils.hooks import get_package_paths
++from PyInstaller.compat import is_darwin
++from PyInstaller.utils.hooks import get_module_file_attribute, logger
+
+-sfp = get_package_paths("sounddevice")
++binaries = []
++datas = []
+
+-path = None
+-if is_win:
+- path = os.path.join(sfp[0], "_sounddevice_data", "portaudio-binaries")
+-elif is_darwin:
++# PyPI wheels for Windows and macOS ship the sndfile shared library in _sounddevice_data directory,
++# located next to the sounddevice.py module file (i.e., in the site-packages directory).
++module_dir = pathlib.Path(get_module_file_attribute('sounddevice')).parent
++data_dir = module_dir / '_sounddevice_data' / 'portaudio-binaries'
++
++if is_darwin:
+ # for Macos Big Sur, the stable portaudio (19.6.0) makes Friture freeze on startup
++ # so we build our own and bundle it manually here
+ path = "/usr/local/lib/libportaudio.dylib"
++ destdir = str(data_dir.relative_to(module_dir))
++ binaries += [(path, destdir)]
+ if not os.path.isfile(path):
+ raise ValueError('libportaudio could not be found')
++elif data_dir.is_dir():
++ destdir = str(data_dir.relative_to(module_dir))
++
++ # Collect the shared library (known variants: libportaudio64bit.dll, libportaudio32bit.dll, libportaudio.dylib)
++ for lib_file in data_dir.glob("libportaudio*.*"):
++ binaries += [(str(lib_file), destdir)]
++
++ # Collect the README.md file
++ readme_file = data_dir / "README.md"
++ if readme_file.is_file():
++ datas += [(str(readme_file), destdir)]
++else:
++ # On linux and in Anaconda in all OSes, the system-installed portaudio library needs to be collected.
++ def _find_system_portaudio_library():
++ import os
++ import ctypes.util
++ from PyInstaller.depend.utils import _resolveCtypesImports
++
++ libname = ctypes.util.find_library("portaudio")
++ if libname is not None:
++ resolved_binary = _resolveCtypesImports([os.path.basename(libname)])
++ if resolved_binary:
++ return resolved_binary[0][1]
++
++ try:
++ lib_file = _find_system_portaudio_library()
++ except Exception as e:
++ logger.warning("Error while trying to find system-installed portaudio library: %s", e)
++ lib_file = None
++
++ if lib_file:
++ binaries += [(lib_file, '.')]
+
+-if path is not None and os.path.exists(path):
+- binaries = [(path,
+- os.path.join("_sounddevice_data", "portaudio-binaries"))]
++if not binaries:
++ logger.warning("portaudio shared library not found - sounddevice will likely fail to work!")
+
+From 1b3fb73bdb17056f88a8de516acbbdd33d7a8e89 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Thu, 3 Nov 2022 12:14:15 +0100
+Subject: [PATCH 05/12] chore: update to Python 3.10
+
+---
+ .github/workflows/build.yml | 6 +++---
+ INSTALL.md | 18 +++++++++---------
+ choco/packages.config | 2 +-
+ 3 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
+index b912eadb..a979771a 100644
+--- a/.github/workflows/build.yml
++++ b/.github/workflows/build.yml
+@@ -7,7 +7,7 @@ jobs:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+- python-version: [3.9]
++ python-version: '3.10'
+
+ steps:
+ - name: Checkout
+@@ -71,7 +71,7 @@ jobs:
+ runs-on: ubuntu-18.04
+ strategy:
+ matrix:
+- python-version: [3.9]
++ python-version: '3.10'
+
+ steps:
+ - name: Checkout
+@@ -99,7 +99,7 @@ jobs:
+ runs-on: macos-10.15
+ strategy:
+ matrix:
+- python-version: [3.9]
++ python-version: '3.10'
+
+ steps:
+ - name: Checkout
+diff --git a/INSTALL.md b/INSTALL.md
+index 4e95ff82..854b0384 100644
+--- a/INSTALL.md
++++ b/INSTALL.md
+@@ -23,9 +23,9 @@ sudo apt-get install -y git
+ sudo apt-get install -y libportaudio2
+ ```
+
+-3. Install python 3.9 and related build tools
++3. Install python 3.10 and related build tools
+ ```
+-sudo apt-get install -y python3.9-dev
++sudo apt-get install -y python3.10-dev
+ ```
+
+ 4. Clone the repository
+@@ -43,30 +43,30 @@ git checkout origin/<branchName>
+ 6. Update `pip`, `setuptools` and `virtualenv`
+
+ ```
+-sudo python3.9 -m pip install --upgrade pip
+-sudo pip3.9 install --upgrade setuptools
+-sudo pip3.9 install --upgrade virtualenv
++sudo python3.10 -m pip install --upgrade pip
++sudo pip3.10 install --upgrade setuptools
++sudo pip3.10 install --upgrade virtualenv
+ ```
+
+ 7. Create a virtualenv and activate it
+ ```
+-virtualenv -p /usr/bin/python3.9 buildenv
++virtualenv -p /usr/bin/python3.10 buildenv
+ source ./buildenv/bin/activate
+ ```
+
+ 8. Install Friture requirements (PyQt5, etc.)
+ ```
+-pip3.9 install -r requirements.txt
++pip3.10 install -r requirements.txt
+ ```
+
+ 9. Build Cython extensions
+ ```
+-python3.9 setup.py build_ext --inplace
++python3.10 setup.py build_ext --inplace
+ ```
+
+ 10. Run Friture
+ ```
+-python3.9 main.py
++python3.10 main.py
+ ```
+
+ ## Running Friture from source on Windows
+diff --git a/choco/packages.config b/choco/packages.config
+index 5c120e09..46c2fd54 100644
+--- a/choco/packages.config
++++ b/choco/packages.config
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="utf-8"?>
+ <packages>
+- <package id="python" version="3.9.1" />
++ <package id="python" version="3.10.8" />
+ <!-- Microsoft Visual Build Tools and C++ workload for Cython, Numpy, etc. -->
+ <package id="visualstudio2017buildtools" version="15.9.4.0" />
+ <package id="visualstudio2017-workload-vctools" version="1.3.1" packageParameters="--add Microsoft.VisualStudio.Component.VC.140"/>
+
+From 1b23d28c4a47e1ea88183726abf01841c15a1547 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Thu, 3 Nov 2022 12:22:29 +0100
+Subject: [PATCH 06/12] Fix workflow
+
+---
+ .github/workflows/build.yml | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
+index a979771a..1679db1c 100644
+--- a/.github/workflows/build.yml
++++ b/.github/workflows/build.yml
+@@ -7,7 +7,7 @@ jobs:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+- python-version: '3.10'
++ python-version: ['3.10']
+
+ steps:
+ - name: Checkout
+@@ -71,7 +71,7 @@ jobs:
+ runs-on: ubuntu-18.04
+ strategy:
+ matrix:
+- python-version: '3.10'
++ python-version: ['3.10']
+
+ steps:
+ - name: Checkout
+@@ -99,7 +99,7 @@ jobs:
+ runs-on: macos-10.15
+ strategy:
+ matrix:
+- python-version: '3.10'
++ python-version: ['3.10']
+
+ steps:
+ - name: Checkout
+
+From a01f86ccaa066f90fa85394fea85cd587e342df1 Mon Sep 17 00:00:00 2001
+From: Sam Lavin <salavin12@gmail.com>
+Date: Wed, 18 Jan 2023 15:57:59 -0600
+Subject: [PATCH 07/12] Fix #230: Changed float to int
+
+---
+ friture/generators/sweep.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/friture/generators/sweep.py b/friture/generators/sweep.py
+index c42dab00..770e1f09 100644
+--- a/friture/generators/sweep.py
++++ b/friture/generators/sweep.py
+@@ -155,9 +155,9 @@ def saveState(self, settings):
+ settings.setValue("sweep period", self.spinBox_sweep_period.value())
+
+ def restoreState(self, settings):
+- sweep_start_frequency = settings.value("sweep start frequency", DEFAULT_SWEEP_STARTFREQUENCY, type=float)
++ sweep_start_frequency = settings.value("sweep start frequency", DEFAULT_SWEEP_STARTFREQUENCY, type=int)
+ self.spinBox_sweep_startfrequency.setValue(sweep_start_frequency)
+- sweep_stop_frequency = settings.value("sweep stop frequency", DEFAULT_SWEEP_STOPFREQUENCY, type=float)
++ sweep_stop_frequency = settings.value("sweep stop frequency", DEFAULT_SWEEP_STOPFREQUENCY, type=int)
+ self.spinBox_sweep_stopfrequency.setValue(sweep_stop_frequency)
+ sweep_period = settings.value("sweep period", DEFAULT_SWEEP_PERIOD_S, type=float)
+ self.spinBox_sweep_period.setValue(sweep_period)
+
+From 252899e380b6e414c32d6576be7e33dfd6fffdbd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Sun, 5 Feb 2023 13:46:43 +0100
+Subject: [PATCH 08/12] chore: update to Python 3.11
+
+---
+ .github/workflows/build.yml | 6 +++---
+ INSTALL.md | 18 +++++++++---------
+ choco/packages.config | 2 +-
+ 3 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
+index 1679db1c..29525312 100644
+--- a/.github/workflows/build.yml
++++ b/.github/workflows/build.yml
+@@ -7,7 +7,7 @@ jobs:
+ runs-on: windows-2019
+ strategy:
+ matrix:
+- python-version: ['3.10']
++ python-version: ['3.11']
+
+ steps:
+ - name: Checkout
+@@ -71,7 +71,7 @@ jobs:
+ runs-on: ubuntu-18.04
+ strategy:
+ matrix:
+- python-version: ['3.10']
++ python-version: ['3.11']
+
+ steps:
+ - name: Checkout
+@@ -99,7 +99,7 @@ jobs:
+ runs-on: macos-10.15
+ strategy:
+ matrix:
+- python-version: ['3.10']
++ python-version: ['3.11']
+
+ steps:
+ - name: Checkout
+diff --git a/INSTALL.md b/INSTALL.md
+index 854b0384..736d3f28 100644
+--- a/INSTALL.md
++++ b/INSTALL.md
+@@ -23,9 +23,9 @@ sudo apt-get install -y git
+ sudo apt-get install -y libportaudio2
+ ```
+
+-3. Install python 3.10 and related build tools
++3. Install python 3.11 and related build tools
+ ```
+-sudo apt-get install -y python3.10-dev
++sudo apt-get install -y python3.11-dev
+ ```
+
+ 4. Clone the repository
+@@ -43,30 +43,30 @@ git checkout origin/<branchName>
+ 6. Update `pip`, `setuptools` and `virtualenv`
+
+ ```
+-sudo python3.10 -m pip install --upgrade pip
+-sudo pip3.10 install --upgrade setuptools
+-sudo pip3.10 install --upgrade virtualenv
++sudo python3.11 -m pip install --upgrade pip
++sudo pip3.11 install --upgrade setuptools
++sudo pip3.11 install --upgrade virtualenv
+ ```
+
+ 7. Create a virtualenv and activate it
+ ```
+-virtualenv -p /usr/bin/python3.10 buildenv
++virtualenv -p /usr/bin/python3.11 buildenv
+ source ./buildenv/bin/activate
+ ```
+
+ 8. Install Friture requirements (PyQt5, etc.)
+ ```
+-pip3.10 install -r requirements.txt
++pip3.11 install -r requirements.txt
+ ```
+
+ 9. Build Cython extensions
+ ```
+-python3.10 setup.py build_ext --inplace
++python3.11 setup.py build_ext --inplace
+ ```
+
+ 10. Run Friture
+ ```
+-python3.10 main.py
++python3.11 main.py
+ ```
+
+ ## Running Friture from source on Windows
+diff --git a/choco/packages.config b/choco/packages.config
+index 46c2fd54..c38d9cf1 100644
+--- a/choco/packages.config
++++ b/choco/packages.config
+@@ -1,6 +1,6 @@
+ <?xml version="1.0" encoding="utf-8"?>
+ <packages>
+- <package id="python" version="3.10.8" />
++ <package id="python" version="3.11.1" />
+ <!-- Microsoft Visual Build Tools and C++ workload for Cython, Numpy, etc. -->
+ <package id="visualstudio2017buildtools" version="15.9.4.0" />
+ <package id="visualstudio2017-workload-vctools" version="1.3.1" packageParameters="--add Microsoft.VisualStudio.Component.VC.140"/>
+
+From befda8a7d941001481d705ede2c5fcf36a93e243 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Sun, 5 Feb 2023 13:48:25 +0100
+Subject: [PATCH 09/12] chore: update dependencies
+
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 0e03dd6c..fa3cd8a2 100644
+--- a/setup.py
++++ b/setup.py
+@@ -53,14 +53,14 @@ def include_dirs(self, dirs):
+ "sounddevice==0.4.5",
+ "rtmixer==0.1.4",
+ "docutils==0.19",
+- "numpy==1.23.4",
+- "PyQt5==5.15.7",
++ "numpy==1.24.1",
++ "PyQt5==5.15.8",
+ "appdirs==1.4.4",
+ "pyrr==0.10.3",
+ ]
+
+ # Cython and numpy are needed when running setup.py, to build extensions
+-setup_requires=["numpy==1.23.4", "Cython==0.29.32"]
++setup_requires=["numpy==1.24.1", "Cython==0.29.33"]
+
+ with open(join(dirname(__file__), 'README.rst')) as f:
+ long_description = f.read()
+
+From 801cbdeea1f2b459df2f964f5c0395306b31d11c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Sun, 5 Feb 2023 13:50:44 +0100
+Subject: [PATCH 10/12] chore: gitignore pyenv config file
+
+---
+ .gitignore | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/.gitignore b/.gitignore
+index d89dab33..6ef17e6c 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -44,3 +44,6 @@ Notepad++
+
+ # Macos
+ .DS_Store
++
++# pyenv local config
++.python-version
+\ No newline at end of file
+
+From a3e6da7dba658974eab721127e3c34084e54c985 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Sun, 5 Feb 2023 13:53:11 +0100
+Subject: [PATCH 11/12] chore: update Pyinstaller to 5.7.0
+
+---
+ .github/workflows/install-linux.sh | 2 +-
+ .github/workflows/install-macos.sh | 2 +-
+ winbuild.ps1 | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/.github/workflows/install-linux.sh b/.github/workflows/install-linux.sh
+index 79e5388e..1ade5431 100644
+--- a/.github/workflows/install-linux.sh
++++ b/.github/workflows/install-linux.sh
+@@ -34,7 +34,7 @@ make install
+ ls -laR portaudio-install
+ cd ..
+
+-pip3 install -U pyinstaller==5.6.2
++pip3 install -U pyinstaller==5.7.0
+
+ pyinstaller friture.spec -y --log-level=DEBUG
+
+diff --git a/.github/workflows/install-macos.sh b/.github/workflows/install-macos.sh
+index 4a56a05e..ab3675ea 100644
+--- a/.github/workflows/install-macos.sh
++++ b/.github/workflows/install-macos.sh
+@@ -15,7 +15,7 @@ python3 setup.py build_ext --inplace
+ # see: https://github.com/tlecomte/friture/issues/154
+ brew install portaudio --HEAD
+
+-pip3 install -U pyinstaller==5.6.2
++pip3 install -U pyinstaller==5.7.0
+
+ pyinstaller friture.spec -y
+
+diff --git a/winbuild.ps1 b/winbuild.ps1
+index 9f06dbb7..c23be778 100644
+--- a/winbuild.ps1
++++ b/winbuild.ps1
+@@ -85,7 +85,7 @@ Write-Host "==========================================="
+ Write-Host "Installing pyinstaller"
+ Write-Host "==========================================="
+
+-& pip install -U pyinstaller==5.6.2
++& pip install -U pyinstaller==5.7.0
+
+ Write-Host ""
+ Write-Host "==========================================="
+
+From 2972d2bd7d11bfc75530900ee9a36c199df9fb97 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timoth=C3=A9e=20Lecomte?= <lecomte.timothee@gmail.com>
+Date: Sun, 5 Feb 2023 14:47:12 +0100
+Subject: [PATCH 12/12] chore: remove unused multibuild module
+
+---
+ .gitmodules | 3 ---
+ multibuild | 1 -
+ 2 files changed, 4 deletions(-)
+ delete mode 160000 multibuild
+
+diff --git a/.gitmodules b/.gitmodules
+index 347fe930..e69de29b 100644
+--- a/.gitmodules
++++ b/.gitmodules
+@@ -1,3 +0,0 @@
+-[submodule "multibuild"]
+- path = multibuild
+- url = https://github.com/matthew-brett/multibuild.git