diff --git a/DEVELOPERS b/DEVELOPERS
index d7c4d03c4c..5355d6d5ac 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -165,6 +165,7 @@ F:	package/cups/
 F:	package/cups-filters/
 F:	package/fail2ban/
 F:	package/grep/
+F:	package/gtkiostream/
 F:	package/htpdate/
 F:	package/i2c-tools/
 F:	package/jq/
@@ -1978,6 +1979,9 @@ F:	board/technologic/ts4900/
 F:	configs/ts4900_defconfig
 F:	package/ts4900-fpga/
 
+N:	Matt Flax <flatmax@flatmax.org>
+F:	package/gtkiostream/
+
 N:	Matt Weber <matthew.weber@collins.com>
 F:	board/freescale/p*
 F:	board/freescale/t*
diff --git a/package/Config.in b/package/Config.in
index 06d0a05854..70e446be47 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1389,6 +1389,7 @@ menu "Audio/Sound"
 	source "package/bcg729/Config.in"
 	source "package/caps/Config.in"
 	source "package/fdk-aac/Config.in"
+	source "package/gtkiostream/Config.in"
 	source "package/libao/Config.in"
 	source "package/libasplib/Config.in"
 	source "package/libbroadvoice/Config.in"
diff --git a/package/gtkiostream/0001-Makefile.am-disable-tests.patch b/package/gtkiostream/0001-Makefile.am-disable-tests.patch
new file mode 100644
index 0000000000..26e229a58e
--- /dev/null
+++ b/package/gtkiostream/0001-Makefile.am-disable-tests.patch
@@ -0,0 +1,29 @@
+From b242a56ddaefdcf356cffdfb45f6518c9ce0809e Mon Sep 17 00:00:00 2001
+From: Angelo Compagnucci <angelo@amarulasolutions.com>
+Date: Wed, 8 Feb 2023 10:58:20 +0100
+Subject: [PATCH] Makefile.am: disable tests
+
+Tests are not interesting for buildroot use case, thus disabling
+entirely.
+
+Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 3cc0944..4f12708 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -20,7 +20,7 @@ AUTOMAKE_OPTIONS = foreign subdir-objects
+ SUBDIRS = src api include
+ 
+ if !HAVE_EMSCRIPTEN
+-SUBDIRS += applications test
++SUBDIRS += applications
+ endif
+ 
+ ACLOCAL_AMFLAGS = -I m4
+-- 
+2.25.1
+
diff --git a/package/gtkiostream/Config.in b/package/gtkiostream/Config.in
new file mode 100644
index 0000000000..58c22ecbcb
--- /dev/null
+++ b/package/gtkiostream/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_GTKIOSTREAM
+	bool "gtkiostream"
+	depends on BR2_INSTALL_LIBSTDCPP # eigen
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_EIGEN
+	select BR2_PACKAGE_FFTW
+	select BR2_PACKAGE_FFTW_DOUBLE
+	select BR2_PACKAGE_FFTW_SINGLE
+	help
+	  This package provides many useful software engineering and
+	  signal processing includes and linkable library.
+
+	  https://github.com/flatmax/gtkiostream
+
+comment "gtkiostream needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/gtkiostream/gtkiostream.hash b/package/gtkiostream/gtkiostream.hash
new file mode 100644
index 0000000000..90c754f48c
--- /dev/null
+++ b/package/gtkiostream/gtkiostream.hash
@@ -0,0 +1,3 @@
+# locally computed hash
+sha256  44e8d921d462005cd330a1c24e5bd8061175b90ae53f537dbf73f59b74f6e01b  gtkiostream-v1.8.0.tar.gz
+sha256  204d8eff92f95aac4df6c8122bc1505f468f3a901e5a4cc08940e0ede1938994  gpl.txt
diff --git a/package/gtkiostream/gtkiostream.mk b/package/gtkiostream/gtkiostream.mk
new file mode 100644
index 0000000000..e178bb668b
--- /dev/null
+++ b/package/gtkiostream/gtkiostream.mk
@@ -0,0 +1,31 @@
+################################################################################
+#
+# GTKIOSTREAM
+#
+################################################################################
+
+GTKIOSTREAM_VERSION = v1.8.0
+GTKIOSTREAM_SITE = $(call github,flatmax,gtkiostream,$(GTKIOSTREAM_VERSION))
+GTKIOSTREAM_LICENSE = GPL-2.0+
+GTKIOSTREAM_LICENSE_FILES = gpl.txt
+
+# configure script not available
+GTKIOSTREAM_AUTORECONF = YES
+
+GTKIOSTREAM_DEPENDENCIES = \
+	eigen \
+	fftw-double \
+	fftw-single \
+	host-pkgconf \
+	$(if $(BR2_PACKAGE_SOX),sox)
+
+ifeq ($(BR2_PACKAGE_OCTAVE),y)
+GTKIOSTREAM_DEPENDENCIES += octave
+GTKIOSTREAM_CONF_OPTS += --enable-octave
+else
+GTKIOSTREAM_CONF_OPTS += --disable-octave
+endif
+
+GTKIOSTREAM_CONF_OPTS += $(if $(BR2_TOOLCHAIN_HAS_OPENMP),--disable,--enable)-openmp
+
+$(eval $(autotools-package))
