summaryrefslogtreecommitdiff
path: root/python-pyresidfp.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-30 10:19:57 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-30 10:19:57 +0000
commit3da0911c0f3af2893d4068b55079f58f9e0ccb9b (patch)
tree7d677dceba0bd441f1cdc9bc347e25324e69d9d7 /python-pyresidfp.spec
parentd871ce0a437805ff44ddc537d37508fa3adece58 (diff)
automatic import of python-pyresidfp
Diffstat (limited to 'python-pyresidfp.spec')
-rw-r--r--python-pyresidfp.spec284
1 files changed, 284 insertions, 0 deletions
diff --git a/python-pyresidfp.spec b/python-pyresidfp.spec
new file mode 100644
index 0000000..45f6210
--- /dev/null
+++ b/python-pyresidfp.spec
@@ -0,0 +1,284 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pyresidfp
+Version: 0.6.7
+Release: 1
+Summary: Emulates the SID sound-chip
+License: GNU General Public License v2 or later (GPLv2+)
+URL: https://github.com/pyresidfp/pyresidfp
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/64/4e/09b901d1ef4f7eee2478dc15ca2de861d2f84875a9469b0e4bbe1f397342/pyresidfp-0.6.7.tar.gz
+
+
+%description
+# pyresidfp
+
+Emulates the SID sound-chip in software. The C++ emulation code was copied over from
+[libsidplayfp](https://github.com/libsidplayfp/libsidplayfp).
+
+## How to install
+
+Requirements:
+- compiler for ISO C++11
+- Python 3 and header files
+
+
+### From PyPI
+
+Install the latest version using
+```commandline
+python -m pip install pyresidfp
+```
+
+
+### From cloned git repository
+
+Build from source and install using
+```commandline
+python -m pip install .
+```
+
+## Example
+
+For the example, [NumPy](http://www.numpy.org/) and [soundcard](https://github.com/bastibe/SoundCard) python packages
+are required. The example is ported from the section *Sample Sound Program*,
+[Commodore 64 User's Guide](https://archive.org/embed/Commodore_64_Users_Guide_1982_Commodore), page 80:
+```python
+from datetime import timedelta
+import numpy as np
+import soundcard as sc
+from pyresidfp import SoundInterfaceDevice, Voice, ControlBits, Tone
+
+# program SID
+sid = SoundInterfaceDevice()
+sid.Filter_Mode_Vol = 15 # Maximum volume
+sid.attack_decay(Voice.ONE, 190) # 800 ms attack, 15 s decay
+sid.sustain_release(Voice.ONE, 248) # sustain peak, 300 ms release
+sid.tone(Voice.ONE, Tone.C4)
+sid.control(Voice.ONE, ControlBits.TRIANGLE | ControlBits.GATE)
+
+# sample attack phase
+attack_phase = timedelta(seconds=0.32)
+raw_samples = sid.clock(attack_phase)
+
+# reprogram SID for release phase and sample
+release_phase = timedelta(seconds=0.3)
+sid.control(Voice.ONE, ControlBits.TRIANGLE)
+raw_samples.extend(sid.clock(release_phase))
+
+# convert audio format and play
+samples = np.array(raw_samples, dtype=np.float32) / 2.0**15
+spkr = sc.default_speaker()
+spkr.play(data=samples, samplerate=int(sid.sampling_frequency), channels=1)
+```
+
+
+## Credits
+
+We like to thank all contributors of `libsidplayfp`, especially:
+
+- Dag Lem: Designed and programmed complete emulation engine.
+- Antti S. Lankila: Distortion simulation and calculation of combined waveforms
+- Ken Händel: source code conversion to Java
+- Leandro Nini: port to c++, merge with reSID 1.0
+
+
+%package -n python3-pyresidfp
+Summary: Emulates the SID sound-chip
+Provides: python-pyresidfp
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+BuildRequires: python3-cffi
+BuildRequires: gcc
+BuildRequires: gdb
+%description -n python3-pyresidfp
+# pyresidfp
+
+Emulates the SID sound-chip in software. The C++ emulation code was copied over from
+[libsidplayfp](https://github.com/libsidplayfp/libsidplayfp).
+
+## How to install
+
+Requirements:
+- compiler for ISO C++11
+- Python 3 and header files
+
+
+### From PyPI
+
+Install the latest version using
+```commandline
+python -m pip install pyresidfp
+```
+
+
+### From cloned git repository
+
+Build from source and install using
+```commandline
+python -m pip install .
+```
+
+## Example
+
+For the example, [NumPy](http://www.numpy.org/) and [soundcard](https://github.com/bastibe/SoundCard) python packages
+are required. The example is ported from the section *Sample Sound Program*,
+[Commodore 64 User's Guide](https://archive.org/embed/Commodore_64_Users_Guide_1982_Commodore), page 80:
+```python
+from datetime import timedelta
+import numpy as np
+import soundcard as sc
+from pyresidfp import SoundInterfaceDevice, Voice, ControlBits, Tone
+
+# program SID
+sid = SoundInterfaceDevice()
+sid.Filter_Mode_Vol = 15 # Maximum volume
+sid.attack_decay(Voice.ONE, 190) # 800 ms attack, 15 s decay
+sid.sustain_release(Voice.ONE, 248) # sustain peak, 300 ms release
+sid.tone(Voice.ONE, Tone.C4)
+sid.control(Voice.ONE, ControlBits.TRIANGLE | ControlBits.GATE)
+
+# sample attack phase
+attack_phase = timedelta(seconds=0.32)
+raw_samples = sid.clock(attack_phase)
+
+# reprogram SID for release phase and sample
+release_phase = timedelta(seconds=0.3)
+sid.control(Voice.ONE, ControlBits.TRIANGLE)
+raw_samples.extend(sid.clock(release_phase))
+
+# convert audio format and play
+samples = np.array(raw_samples, dtype=np.float32) / 2.0**15
+spkr = sc.default_speaker()
+spkr.play(data=samples, samplerate=int(sid.sampling_frequency), channels=1)
+```
+
+
+## Credits
+
+We like to thank all contributors of `libsidplayfp`, especially:
+
+- Dag Lem: Designed and programmed complete emulation engine.
+- Antti S. Lankila: Distortion simulation and calculation of combined waveforms
+- Ken Händel: source code conversion to Java
+- Leandro Nini: port to c++, merge with reSID 1.0
+
+
+%package help
+Summary: Development documents and examples for pyresidfp
+Provides: python3-pyresidfp-doc
+%description help
+# pyresidfp
+
+Emulates the SID sound-chip in software. The C++ emulation code was copied over from
+[libsidplayfp](https://github.com/libsidplayfp/libsidplayfp).
+
+## How to install
+
+Requirements:
+- compiler for ISO C++11
+- Python 3 and header files
+
+
+### From PyPI
+
+Install the latest version using
+```commandline
+python -m pip install pyresidfp
+```
+
+
+### From cloned git repository
+
+Build from source and install using
+```commandline
+python -m pip install .
+```
+
+## Example
+
+For the example, [NumPy](http://www.numpy.org/) and [soundcard](https://github.com/bastibe/SoundCard) python packages
+are required. The example is ported from the section *Sample Sound Program*,
+[Commodore 64 User's Guide](https://archive.org/embed/Commodore_64_Users_Guide_1982_Commodore), page 80:
+```python
+from datetime import timedelta
+import numpy as np
+import soundcard as sc
+from pyresidfp import SoundInterfaceDevice, Voice, ControlBits, Tone
+
+# program SID
+sid = SoundInterfaceDevice()
+sid.Filter_Mode_Vol = 15 # Maximum volume
+sid.attack_decay(Voice.ONE, 190) # 800 ms attack, 15 s decay
+sid.sustain_release(Voice.ONE, 248) # sustain peak, 300 ms release
+sid.tone(Voice.ONE, Tone.C4)
+sid.control(Voice.ONE, ControlBits.TRIANGLE | ControlBits.GATE)
+
+# sample attack phase
+attack_phase = timedelta(seconds=0.32)
+raw_samples = sid.clock(attack_phase)
+
+# reprogram SID for release phase and sample
+release_phase = timedelta(seconds=0.3)
+sid.control(Voice.ONE, ControlBits.TRIANGLE)
+raw_samples.extend(sid.clock(release_phase))
+
+# convert audio format and play
+samples = np.array(raw_samples, dtype=np.float32) / 2.0**15
+spkr = sc.default_speaker()
+spkr.play(data=samples, samplerate=int(sid.sampling_frequency), channels=1)
+```
+
+
+## Credits
+
+We like to thank all contributors of `libsidplayfp`, especially:
+
+- Dag Lem: Designed and programmed complete emulation engine.
+- Antti S. Lankila: Distortion simulation and calculation of combined waveforms
+- Ken Händel: source code conversion to Java
+- Leandro Nini: port to c++, merge with reSID 1.0
+
+
+%prep
+%autosetup -n pyresidfp-0.6.7
+
+%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-pyresidfp -f filelist.lst
+%dir %{python3_sitearch}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Tue May 30 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.7-1
+- Package Spec generated