All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] package/python-midiutil: new package
@ 2023-01-03 20:00 Julien Olivain
  2023-01-03 20:00 ` [Buildroot] [PATCH 2/2] support/testing/tests/package/test_fluidsynth.py: new runtime test Julien Olivain
  2023-07-30 10:59 ` [Buildroot] [PATCH 1/2] package/python-midiutil: new package Thomas Petazzoni via buildroot
  0 siblings, 2 replies; 4+ messages in thread
From: Julien Olivain @ 2023-01-03 20:00 UTC (permalink / raw)
  To: buildroot; +Cc: Julien Olivain, Asaf Kahlon, Thomas Petazzoni

A pure python library for creating multi-track MIDI files.

https://github.com/MarkCWirt/MIDIUtil

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Patch tested on branch master at commit e593656 with commands:

    make check-package
    ...
    0 warnings generated

    python3 -m flake8 \
        support/testing/tests/package/sample_python_midiutil.py \
        support/testing/tests/package/test_python_midiutil.py
    [no-output]

    support/testing/run-tests \
        -d dl -o output_folder \
        tests.package.test_python_midiutil.TestPythonPy3MidiUtil
    ...
    OK
---
 DEVELOPERS                                    |  3 +++
 package/Config.in                             |  1 +
 package/python-midiutil/Config.in             |  6 +++++
 package/python-midiutil/python-midiutil.hash  |  5 ++++
 package/python-midiutil/python-midiutil.mk    | 14 +++++++++++
 .../tests/package/sample_python_midiutil.py   | 23 +++++++++++++++++++
 .../tests/package/test_python_midiutil.py     | 11 +++++++++
 7 files changed, 63 insertions(+)
 create mode 100644 package/python-midiutil/Config.in
 create mode 100644 package/python-midiutil/python-midiutil.hash
 create mode 100644 package/python-midiutil/python-midiutil.mk
 create mode 100644 support/testing/tests/package/sample_python_midiutil.py
 create mode 100644 support/testing/tests/package/test_python_midiutil.py

diff --git a/DEVELOPERS b/DEVELOPERS
index 8399dcc7af..af497114dc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1688,6 +1688,7 @@ F:	package/ola/
 F:	package/ptm2human/
 F:	package/python-distro/
 F:	package/python-gnupg/
+F:	package/python-midiutil/
 F:	package/python-pyalsa/
 F:	package/riscv-isa-sim/
 F:	package/tinycompress/
@@ -1695,6 +1696,7 @@ F:	package/z3/
 F:	package/zynaddsubfx/
 F:	support/testing/tests/package/sample_python_distro.py
 F:	support/testing/tests/package/sample_python_gnupg.py
+F:	support/testing/tests/package/sample_python_midiutil.py
 F:	support/testing/tests/package/sample_python_pyalsa.py
 F:	support/testing/tests/package/test_hwloc.py
 F:	support/testing/tests/package/test_ncdu.py
@@ -1703,6 +1705,7 @@ F:	support/testing/tests/package/test_ola.py
 F:	support/testing/tests/package/test_ola/
 F:	support/testing/tests/package/test_python_distro.py
 F:	support/testing/tests/package/test_python_gnupg.py
+F:	support/testing/tests/package/test_python_midiutil.py
 F:	support/testing/tests/package/test_python_pyalsa.py
 F:	support/testing/tests/package/test_z3.py
 
diff --git a/package/Config.in b/package/Config.in
index 995dae2c57..4157fe1214 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1123,6 +1123,7 @@ menu "External python modules"
 	source "package/python-matplotlib/Config.in"
 	source "package/python-mbstrdecoder/Config.in"
 	source "package/python-memory-profiler/Config.in"
+	source "package/python-midiutil/Config.in"
 	source "package/python-mimeparse/Config.in"
 	source "package/python-minimalmodbus/Config.in"
 	source "package/python-mistune/Config.in"
diff --git a/package/python-midiutil/Config.in b/package/python-midiutil/Config.in
new file mode 100644
index 0000000000..c496e60421
--- /dev/null
+++ b/package/python-midiutil/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_PYTHON_MIDIUTIL
+	bool "python-midiutil"
+	help
+	  A pure python library for creating multi-track MIDI files.
+
+	  https://github.com/MarkCWirt/MIDIUtil
diff --git a/package/python-midiutil/python-midiutil.hash b/package/python-midiutil/python-midiutil.hash
new file mode 100644
index 0000000000..88340a23b8
--- /dev/null
+++ b/package/python-midiutil/python-midiutil.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/midiutil/json
+md5  948c16c74e7355268158f227b710edce  MIDIUtil-1.2.1.tar.gz
+sha256  79fa983bd1efc60785f68a8fe78fa8f45b8d7ec5898bf7cb7f3f7f3336d6a90a  MIDIUtil-1.2.1.tar.gz
+# Locally computed sha256 checksums
+sha256  8d5bdaebe8445a4c2dc812c205eb5455ba123aa1af8503cc88712115ab7c97ef  License.txt
diff --git a/package/python-midiutil/python-midiutil.mk b/package/python-midiutil/python-midiutil.mk
new file mode 100644
index 0000000000..cb7e8f6ccb
--- /dev/null
+++ b/package/python-midiutil/python-midiutil.mk
@@ -0,0 +1,14 @@
+################################################################################
+#
+# python-midiutil
+#
+################################################################################
+
+PYTHON_MIDIUTIL_VERSION = 1.2.1
+PYTHON_MIDIUTIL_SOURCE = MIDIUtil-$(PYTHON_MIDIUTIL_VERSION).tar.gz
+PYTHON_MIDIUTIL_SITE = https://files.pythonhosted.org/packages/f5/44/fde6772d8bfaea64fcf5eb948124d0a5fdf5f848b14ac22a23ced53e562d
+PYTHON_MIDIUTIL_SETUP_TYPE = setuptools
+PYTHON_MIDIUTIL_LICENSE = MIT
+PYTHON_MIDIUTIL_LICENSE_FILES = License.txt
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_midiutil.py b/support/testing/tests/package/sample_python_midiutil.py
new file mode 100644
index 0000000000..58bf1fbccb
--- /dev/null
+++ b/support/testing/tests/package/sample_python_midiutil.py
@@ -0,0 +1,23 @@
+#! /usr/bin/env python3
+
+# Taken from:
+# https://github.com/MarkCWirt/MIDIUtil/blob/1.2.1/examples/c-major-scale.py
+
+from midiutil import MIDIFile
+
+degrees = [60, 62, 64, 65, 67, 69, 71, 72]  # MIDI note number
+track = 0
+channel = 0
+time = 0        # In beats
+duration = 1    # In beats
+tempo = 60      # In BPM
+volume = 100    # 0-127, as per the MIDI standard
+
+MyMIDI = MIDIFile(1)  # One track
+MyMIDI.addTempo(track, time, tempo)
+
+for i, pitch in enumerate(degrees):
+    MyMIDI.addNote(track, channel, pitch, time + i, duration, volume)
+
+with open("major-scale.mid", "wb") as output_file:
+    MyMIDI.writeFile(output_file)
diff --git a/support/testing/tests/package/test_python_midiutil.py b/support/testing/tests/package/test_python_midiutil.py
new file mode 100644
index 0000000000..302fbfb1ed
--- /dev/null
+++ b/support/testing/tests/package/test_python_midiutil.py
@@ -0,0 +1,11 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3MidiUtil(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_MIDIUTIL=y
+        """
+    sample_scripts = ["tests/package/sample_python_midiutil.py"]
-- 
2.39.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-07-30 11:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-03 20:00 [Buildroot] [PATCH 1/2] package/python-midiutil: new package Julien Olivain
2023-01-03 20:00 ` [Buildroot] [PATCH 2/2] support/testing/tests/package/test_fluidsynth.py: new runtime test Julien Olivain
2023-07-30 11:00   ` Thomas Petazzoni via buildroot
2023-07-30 10:59 ` [Buildroot] [PATCH 1/2] package/python-midiutil: new package Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.