git: 9774343e1633 - main - audio/entropypianotuner: Experimental software for tuning a piano

From: Bernhard Froehlich <decke_at_FreeBSD.org>
Date: Sat, 19 Sep 2026 13:13:00 UTC
The branch main has been updated by decke:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9774343e16337aa4a6a0da0fd5ecefd46ec92506

commit 9774343e16337aa4a6a0da0fd5ecefd46ec92506
Author:     Roger Olofsson <raggen@raggens.net>
AuthorDate: 2026-09-19 13:11:36 +0000
Commit:     Bernhard Froehlich <decke@FreeBSD.org>
CommitDate: 2026-09-19 13:12:45 +0000

    audio/entropypianotuner: Experimental software for tuning a piano
    
    PR:             293877
---
 audio/Makefile                                     |  1 +
 audio/entropypianotuner/Makefile                   | 51 ++++++++++++++++++++++
 audio/entropypianotuner/distinfo                   |  9 ++++
 .../files/patch-entropypianotuner__config.pri      | 12 +++++
 ...modules_core_calculation_calculationmanager.cpp | 13 ++++++
 .../files/patch-modules_core_config.h              | 17 ++++++++
 audio/entropypianotuner/pkg-descr                  | 20 +++++++++
 audio/entropypianotuner/pkg-plist                  | 10 +++++
 8 files changed, 133 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index 31f5b968e945..2404f30d91be 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -134,6 +134,7 @@
     SUBDIR += elisa
     SUBDIR += emms
     SUBDIR += enscribe
+    SUBDIR += entropypianotuner
     SUBDIR += eq10q-lv2
     SUBDIR += espeak-ng
     SUBDIR += espressivo-lv2
diff --git a/audio/entropypianotuner/Makefile b/audio/entropypianotuner/Makefile
new file mode 100644
index 000000000000..ee76faaa667b
--- /dev/null
+++ b/audio/entropypianotuner/Makefile
@@ -0,0 +1,51 @@
+PORTNAME=	entropypianotuner
+DISTVERSION=	1.3.0
+CATEGORIES=	audio
+
+MAINTAINER=	raggen@raggens.net
+COMMENT=	Experimental software for tuning a piano
+WWW=		https://gitlab.com/tp3/Entropy-Piano-Tuner
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/gpl_v3.md
+
+LIB_DEPENDS+=	libfftw3.so:math/fftw3 \
+		libuv.so:devel/libuv
+
+USES=		compiler:c++14-lang desktop-file-utils gl qmake qt:6 tar:bzip2
+USE_GITLAB=	yes
+GL_ACCOUNT=	tp3
+GL_PROJECT=	Entropy-Piano-Tuner
+GL_TAGNAME=	f9181865345be460ab5a08a009b49caae1f0d37c
+GL_TUPLE=	tp3:qtmidi:1c3bf17:qtmidi/thirdparty/qtmidi \
+		chwick:qwt-lib:c778d34:qwt_lib/thirdparty/qwt-lib \
+		tp3:tp3log:3861a44:tp3log/thirdparty/tp3log
+USE_GL+=	gl opengl
+USE_LDCONFIG=	${PREFIX}/lib/entropypianotuner \
+		${PREFIX}/lib/entropypianotuner/algorithms
+USE_QT+=	base multimedia svg
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' ${WRKSRC}/modules/core/calculation/calculationmanager.cpp
+
+do-install:
+	${INSTALL_PROGRAM} ${WRKSRC}/bin/entropypianotuner ${STAGEDIR}${PREFIX}/bin/
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/entropypianotuner
+	${INSTALL_LIB} ${WRKSRC}/bin/libcore.so.1.0.0 ${STAGEDIR}${PREFIX}/lib/entropypianotuner/
+
+	${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0  ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so
+	${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0  ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1
+	${RLN} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0.0  ${STAGEDIR}${PREFIX}/lib/entropypianotuner/libcore.so.1.0
+
+	${MKDIR} ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms
+	${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libentropyminimizer.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/
+	${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libpitchraise.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/
+	${INSTALL_LIB} ${WRKSRC}/bin/algorithms/libresettorecording.so ${STAGEDIR}${PREFIX}/lib/entropypianotuner/algorithms/
+
+	${INSTALL_DATA} ${WRKSRC}/app/shared/applications/entropypianotuner.desktop ${STAGEDIR}${PREFIX}/share/applications/
+	${REINPLACE_CMD} -e 's|Categories=Application;|Categories=AudioVideo;Audio;|g' ${STAGEDIR}${PREFIX}/share/applications/entropypianotuner.desktop
+	${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/128x128/apps
+	${INSTALL_DATA} ${WRKSRC}/app/shared/icons/hicolor/128x128/mimetypes/application-ept.png \
+	    ${STAGEDIR}${PREFIX}/share/icons/hicolor/128x128/apps/entropypianotuner.png
+
+.include <bsd.port.mk>
diff --git a/audio/entropypianotuner/distinfo b/audio/entropypianotuner/distinfo
new file mode 100644
index 000000000000..eef8f975d9c6
--- /dev/null
+++ b/audio/entropypianotuner/distinfo
@@ -0,0 +1,9 @@
+TIMESTAMP = 1773641173
+SHA256 (tp3-Entropy-Piano-Tuner-f9181865345be460ab5a08a009b49caae1f0d37c_GL0.tar.gz) = c2a5e3f8c191e59dac760058f455d0c6fabd612ef0ba8f25d737f8cd4d69fbde
+SIZE (tp3-Entropy-Piano-Tuner-f9181865345be460ab5a08a009b49caae1f0d37c_GL0.tar.gz) = 12358847
+SHA256 (qtmidi-1c3bf17.tar.bz2) = 115db1ec1a1a0b3ff52020b96f59c8e279b5a40740a2c3af3839c4bcf9d89d1a
+SIZE (qtmidi-1c3bf17.tar.bz2) = 205355
+SHA256 (qwt-lib-c778d34.tar.bz2) = e98e22f2d726287ac4b564dc9cb2e0bb1be2b0beeca70d0ec1a03591c76407ae
+SIZE (qwt-lib-c778d34.tar.bz2) = 256191
+SHA256 (tp3log-3861a44.tar.bz2) = d9278581452596ded01852ce21890836b1c2d9527ac0805e9e4c6297938abe6e
+SIZE (tp3log-3861a44.tar.bz2) = 5962
diff --git a/audio/entropypianotuner/files/patch-entropypianotuner__config.pri b/audio/entropypianotuner/files/patch-entropypianotuner__config.pri
new file mode 100644
index 000000000000..2102a2351ada
--- /dev/null
+++ b/audio/entropypianotuner/files/patch-entropypianotuner__config.pri
@@ -0,0 +1,12 @@
+--- entropypianotuner_config.pri.orig	2026-03-13 19:54:30 UTC
++++ entropypianotuner_config.pri
+@@ -72,4 +72,9 @@ win|linux:!android {
+     packagesExist(libuv):  EPT_THIRDPARTY_CONFIG+=system_libuv
+ }
+ 
++# FreeBSD change - use FreeBSD fftw3, libuv and qwt
++EPT_THIRDPARTY_CONFIG+=system_fftw3
++EPT_THIRDPARTY_CONFIG+=system_libuv
++EPT_THIRDPARTY_CONFIG+=system_qwt
++
+ include($$PWD/entropypianotuner_static_config.pri)
diff --git a/audio/entropypianotuner/files/patch-modules_core_calculation_calculationmanager.cpp b/audio/entropypianotuner/files/patch-modules_core_calculation_calculationmanager.cpp
new file mode 100644
index 000000000000..604bd8191390
--- /dev/null
+++ b/audio/entropypianotuner/files/patch-modules_core_calculation_calculationmanager.cpp
@@ -0,0 +1,13 @@
+--- modules/core/calculation/calculationmanager.cpp.orig	2025-02-15 20:38:45 UTC
++++ modules/core/calculation/calculationmanager.cpp
+@@ -111,7 +111,9 @@ void CalculationManager::loadAlgorithms()
+ #   endif
+ #elif defined(__unix)
+     // add system directories on unix systems
+-    search_dirs.push_back("/usr/lib/entropypianotuner/algorithms");
++/* FreeBSD change to add LOCALBASE to system directories 
++    search_dirs.push_back("/usr/lib/entropypianotuner/algorithms"); */
++    search_dirs.push_back("%%PREFIX%%/lib/entropypianotuner/algorithms");
+     search_dirs.push_back("/usr/lib64/entropypianotuner/algorithms");
+     search_dirs.push_back("~/.entropypianotuner/algorithms");
+ 
diff --git a/audio/entropypianotuner/files/patch-modules_core_config.h b/audio/entropypianotuner/files/patch-modules_core_config.h
new file mode 100644
index 000000000000..a46614163714
--- /dev/null
+++ b/audio/entropypianotuner/files/patch-modules_core_config.h
@@ -0,0 +1,17 @@
+--- modules/core/config.h.orig	2026-03-12 21:24:54 UTC
++++ modules/core/config.h
+@@ -106,8 +106,13 @@
+ #   endif
+ #else
+ 
++/* FreeBSD change enable same as for Linux */
++#define CONFIG_ENABLE_RTMIDI           1
++#define CONFIG_ENABLE_XMGRACE          0
++#define CONFIG_OPTIMIZE_FFT            1
++#define CONFIG_USE_SIMPLE_FILE_DIALOG  0
+ 
+-#error Unknown system
++/* #error Unknown system */
+ #endif
+ 
+ 
diff --git a/audio/entropypianotuner/pkg-descr b/audio/entropypianotuner/pkg-descr
new file mode 100644
index 000000000000..f0134678692a
--- /dev/null
+++ b/audio/entropypianotuner/pkg-descr
@@ -0,0 +1,20 @@
+What the entropy piano tuner is:
+
+	It is an experimental open-source software for piano tuning.
+
+	It is free of charge for everyone (GPL3 license).
+
+	It offers a modular platform for writing and testing new tuning
+	algorithms.
+
+	It is designed for experienced piano technicians, software experts,
+	and scientists.
+
+And what it isn't:
+
+	The EPT does not intend to compete with commercial high-end
+	tuning devices.
+
+	It is not suitable for laymen to tune their piano by themselves.
+
+	It does not save time.
diff --git a/audio/entropypianotuner/pkg-plist b/audio/entropypianotuner/pkg-plist
new file mode 100644
index 000000000000..63bbb6220fd8
--- /dev/null
+++ b/audio/entropypianotuner/pkg-plist
@@ -0,0 +1,10 @@
+bin/entropypianotuner
+lib/entropypianotuner/algorithms/libentropyminimizer.so
+lib/entropypianotuner/algorithms/libpitchraise.so
+lib/entropypianotuner/algorithms/libresettorecording.so
+lib/entropypianotuner/libcore.so.1.0.0
+lib/entropypianotuner/libcore.so.1.0
+lib/entropypianotuner/libcore.so.1
+lib/entropypianotuner/libcore.so
+share/applications/entropypianotuner.desktop
+share/icons/hicolor/128x128/apps/entropypianotuner.png