summaryrefslogtreecommitdiff
path: root/python-py-midicsv.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-py-midicsv.spec')
-rw-r--r--python-py-midicsv.spec391
1 files changed, 391 insertions, 0 deletions
diff --git a/python-py-midicsv.spec b/python-py-midicsv.spec
new file mode 100644
index 0000000..3b22af4
--- /dev/null
+++ b/python-py-midicsv.spec
@@ -0,0 +1,391 @@
+%global _empty_manifest_terminate_build 0
+Name: python-py-midicsv
+Version: 4.0.0
+Release: 1
+Summary: A library for converting MIDI files from and to CSV format
+License: MIT
+URL: https://github.com/timwedde/py_midicsv
+Source0: https://mirrors.aliyun.com/pypi/web/packages/32/50/6569ce1e69ee6326cf08865c17ab4dacce53ef89119dce67480d36ec724f/py_midicsv-4.0.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-rich-click
+
+%description
+# py_midicsv
+
+[![Downloads](https://pepy.tech/badge/py-midicsv)](https://pepy.tech/project/py-midicsv)
+
+A Python library inspired by the [midicsv](http://www.fourmilab.ch/webtools/midicsv/) tool created by John Walker. Its main purpose is to bidirectionally convert between the binary `MIDI` format and a human-readable interpretation of the contained data in text format, expressed as `CSV`.
+If you found this library, you probably already know why you need it.
+
+
+## Installation
+
+`py_midicsv` can be installed via pip:
+```bash
+$ pip install py_midicsv
+```
+
+Alternatively you can build the package by cloning this repository and installing via [poetry](https://github.com/sdispater/poetry):
+```bash
+$ git clone https://github.com/timwedde/py_midicsv.git
+$ cd py_midicsv/
+$ poetry install
+```
+
+
+## Usage
+
+### As a Command Line Tool
+```bash
+Usage: midicsvpy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert MIDI files to CSV files.
+
+ midicsv reads a standard MIDI file and decodes it into a CSV file which
+ preserves all the information in the MIDI file. The ASCII CSV file may be
+ loaded into a spreadsheet or database application, or processed by a program
+ to transform the MIDI data (for example, to key transpose a composition or
+ extract a track from a multi-track sequence). A CSV file in the format
+ created by midicsv may be converted back into a standard MIDI file with the
+ csvmidi program.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ midicsv tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ --help Show this message and exit.
+```
+
+```bash
+Usage: csvmidipy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert CSV files to MIDI files.
+
+ csvmidi reads a CSV file in the format written by midicsv and creates the
+ equivalent standard MIDI file.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ csvmidi tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ -z, --strict-csv Raise exceptions on CSV errors (NOOP)
+ -x, --no-compress Do not compress status bytes (NOOP)
+ --help Show this message and exit.
+```
+
+### As a Library
+```python
+import py_midicsv as pm
+
+# Load the MIDI file and parse it into CSV format
+csv_string = pm.midi_to_csv("example.mid")
+
+with open("example_converted.csv", "w") as f:
+ f.writelines(csv_string)
+
+# Parse the CSV output of the previous command back into a MIDI file
+midi_object = pm.csv_to_midi(csv_string)
+
+# Save the parsed MIDI file to disk
+with open("example_converted.mid", "wb") as output_file:
+ midi_writer = pm.FileWriter(output_file)
+ midi_writer.write(midi_object)
+```
+
+## Documentation
+A full explanation of the `midicsv` file format can be found [here](https://github.com/timwedde/py_midicsv/blob/master/doc/file-format.md).
+
+## Differences
+
+This library adheres as much as possible to how the original library works, however generated files are not guaranteed to be entirely identical when compared bit-by-bit.
+This is mostly due to the handling of meta-event data, especially lyric events, since the encoding scheme has changed. The original library did not encode some of the characters in the Latin-1 set, while this version does.
+
+
+## Stargazers over time
+
+[![Stargazers over time](https://starchart.cc/timwedde/py_midicsv.svg)](https://starchart.cc/timwedde/py_midicsv)
+
+
+%package -n python3-py-midicsv
+Summary: A library for converting MIDI files from and to CSV format
+Provides: python-py-midicsv
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-py-midicsv
+# py_midicsv
+
+[![Downloads](https://pepy.tech/badge/py-midicsv)](https://pepy.tech/project/py-midicsv)
+
+A Python library inspired by the [midicsv](http://www.fourmilab.ch/webtools/midicsv/) tool created by John Walker. Its main purpose is to bidirectionally convert between the binary `MIDI` format and a human-readable interpretation of the contained data in text format, expressed as `CSV`.
+If you found this library, you probably already know why you need it.
+
+
+## Installation
+
+`py_midicsv` can be installed via pip:
+```bash
+$ pip install py_midicsv
+```
+
+Alternatively you can build the package by cloning this repository and installing via [poetry](https://github.com/sdispater/poetry):
+```bash
+$ git clone https://github.com/timwedde/py_midicsv.git
+$ cd py_midicsv/
+$ poetry install
+```
+
+
+## Usage
+
+### As a Command Line Tool
+```bash
+Usage: midicsvpy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert MIDI files to CSV files.
+
+ midicsv reads a standard MIDI file and decodes it into a CSV file which
+ preserves all the information in the MIDI file. The ASCII CSV file may be
+ loaded into a spreadsheet or database application, or processed by a program
+ to transform the MIDI data (for example, to key transpose a composition or
+ extract a track from a multi-track sequence). A CSV file in the format
+ created by midicsv may be converted back into a standard MIDI file with the
+ csvmidi program.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ midicsv tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ --help Show this message and exit.
+```
+
+```bash
+Usage: csvmidipy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert CSV files to MIDI files.
+
+ csvmidi reads a CSV file in the format written by midicsv and creates the
+ equivalent standard MIDI file.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ csvmidi tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ -z, --strict-csv Raise exceptions on CSV errors (NOOP)
+ -x, --no-compress Do not compress status bytes (NOOP)
+ --help Show this message and exit.
+```
+
+### As a Library
+```python
+import py_midicsv as pm
+
+# Load the MIDI file and parse it into CSV format
+csv_string = pm.midi_to_csv("example.mid")
+
+with open("example_converted.csv", "w") as f:
+ f.writelines(csv_string)
+
+# Parse the CSV output of the previous command back into a MIDI file
+midi_object = pm.csv_to_midi(csv_string)
+
+# Save the parsed MIDI file to disk
+with open("example_converted.mid", "wb") as output_file:
+ midi_writer = pm.FileWriter(output_file)
+ midi_writer.write(midi_object)
+```
+
+## Documentation
+A full explanation of the `midicsv` file format can be found [here](https://github.com/timwedde/py_midicsv/blob/master/doc/file-format.md).
+
+## Differences
+
+This library adheres as much as possible to how the original library works, however generated files are not guaranteed to be entirely identical when compared bit-by-bit.
+This is mostly due to the handling of meta-event data, especially lyric events, since the encoding scheme has changed. The original library did not encode some of the characters in the Latin-1 set, while this version does.
+
+
+## Stargazers over time
+
+[![Stargazers over time](https://starchart.cc/timwedde/py_midicsv.svg)](https://starchart.cc/timwedde/py_midicsv)
+
+
+%package help
+Summary: Development documents and examples for py-midicsv
+Provides: python3-py-midicsv-doc
+%description help
+# py_midicsv
+
+[![Downloads](https://pepy.tech/badge/py-midicsv)](https://pepy.tech/project/py-midicsv)
+
+A Python library inspired by the [midicsv](http://www.fourmilab.ch/webtools/midicsv/) tool created by John Walker. Its main purpose is to bidirectionally convert between the binary `MIDI` format and a human-readable interpretation of the contained data in text format, expressed as `CSV`.
+If you found this library, you probably already know why you need it.
+
+
+## Installation
+
+`py_midicsv` can be installed via pip:
+```bash
+$ pip install py_midicsv
+```
+
+Alternatively you can build the package by cloning this repository and installing via [poetry](https://github.com/sdispater/poetry):
+```bash
+$ git clone https://github.com/timwedde/py_midicsv.git
+$ cd py_midicsv/
+$ poetry install
+```
+
+
+## Usage
+
+### As a Command Line Tool
+```bash
+Usage: midicsvpy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert MIDI files to CSV files.
+
+ midicsv reads a standard MIDI file and decodes it into a CSV file which
+ preserves all the information in the MIDI file. The ASCII CSV file may be
+ loaded into a spreadsheet or database application, or processed by a program
+ to transform the MIDI data (for example, to key transpose a composition or
+ extract a track from a multi-track sequence). A CSV file in the format
+ created by midicsv may be converted back into a standard MIDI file with the
+ csvmidi program.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ midicsv tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ --help Show this message and exit.
+```
+
+```bash
+Usage: csvmidipy [OPTIONS] INPUT_FILE OUTPUT_FILE
+
+ Convert CSV files to MIDI files.
+
+ csvmidi reads a CSV file in the format written by midicsv and creates the
+ equivalent standard MIDI file.
+
+ Specify an input file and an output file to process it. Either argument can
+ be stdin/stdout.
+
+ Some arguments are kept for backwards-compatibility with the original
+ csvmidi tooling. These are marked as NOOP in this command line interface.
+
+Options:
+ -n, --nostrict Do not fail on parse/validation errors.
+ -u, --usage Print usage information (NOOP)
+ -v, --verbose Print debug information (NOOP)
+ -z, --strict-csv Raise exceptions on CSV errors (NOOP)
+ -x, --no-compress Do not compress status bytes (NOOP)
+ --help Show this message and exit.
+```
+
+### As a Library
+```python
+import py_midicsv as pm
+
+# Load the MIDI file and parse it into CSV format
+csv_string = pm.midi_to_csv("example.mid")
+
+with open("example_converted.csv", "w") as f:
+ f.writelines(csv_string)
+
+# Parse the CSV output of the previous command back into a MIDI file
+midi_object = pm.csv_to_midi(csv_string)
+
+# Save the parsed MIDI file to disk
+with open("example_converted.mid", "wb") as output_file:
+ midi_writer = pm.FileWriter(output_file)
+ midi_writer.write(midi_object)
+```
+
+## Documentation
+A full explanation of the `midicsv` file format can be found [here](https://github.com/timwedde/py_midicsv/blob/master/doc/file-format.md).
+
+## Differences
+
+This library adheres as much as possible to how the original library works, however generated files are not guaranteed to be entirely identical when compared bit-by-bit.
+This is mostly due to the handling of meta-event data, especially lyric events, since the encoding scheme has changed. The original library did not encode some of the characters in the Latin-1 set, while this version does.
+
+
+## Stargazers over time
+
+[![Stargazers over time](https://starchart.cc/timwedde/py_midicsv.svg)](https://starchart.cc/timwedde/py_midicsv)
+
+
+%prep
+%autosetup -n py_midicsv-4.0.0
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-py-midicsv -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 4.0.0-1
+- Package Spec generated