Emulates the SID sound-chip
Project description
pyresidfp
Emulates the SID sound-chip in software. The C++ emulation code was copied over from libsidplayfp.
How to install
Requirements:
- compiler for ISO C++11
- Python 3 and header files
From PyPI
Install the latest version using
python -m pip install pyresidfp
From cloned git repository
Build from source using
python -m build
and install using
python -m pip install dist/pyresidfp-*.whl
Example
For the example, NumPy and soundcard python packages are required. The example is ported from the section Sample Sound Program, Commodore 64 User's Guide, page 80:
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)
Thanks
I 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyresidfp-0.4.1rc1.tar.gz
(77.3 kB
view hashes)
Built Distributions
Close
Hashes for pyresidfp-0.4.1rc1-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b032afbc5adc26b471b30ffaa211c4382f165982efe3d70944b49abae9073bc |
|
MD5 | 9127cbcbffe811713ae7e3045a957229 |
|
BLAKE2b-256 | d85d27997901a4e1606fe414e1edde6d0082f92dab3bd2dc2e2f8f7900ea0807 |
Close
Hashes for pyresidfp-0.4.1rc1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2068c7c52578bcdb667230679b85797c20d2a836d52d4215c601f5d75edce923 |
|
MD5 | 375ae80627c8ec7e707e444450f22b42 |
|
BLAKE2b-256 | 97d2fe3fbe4ceed666e042178a685f5d6262cd61a6b697f784596772d7e29267 |
Close
Hashes for pyresidfp-0.4.1rc1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7b52ab344fa603f99d653dbd0d68c11e123885c416183ea82548a7a5eb4e9fe |
|
MD5 | b5bef1829d5612732f146028a431eeb0 |
|
BLAKE2b-256 | bc72a8703ec242ae58f4309a19334e93b48ab0d467dd1b91dc54729cf01f2705 |
Close
Hashes for pyresidfp-0.4.1rc1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3477e14d9e7ae9167d12e703d9276e09cba1d3905a7b16c6daae1c0d2403a2 |
|
MD5 | 1084284b00492b844249c192552793bf |
|
BLAKE2b-256 | eb49474ff5417eca19236bc30a8938e7dca3e00f461a0559d421add228043962 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cee08dedf169d8e06163253db4fd6e9dcc5f10596688fd65264255c7f3c355f |
|
MD5 | 40d23f7ef4cd695cc79b94eb8609c05c |
|
BLAKE2b-256 | 9a1f6264bd6c815e8df83f6644b80d33a1b72fc0f09d76d55c2f30cadd5d5108 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c9cd24938f5615d2c205c420db6bcfe43cb1bf6f1c0cd8580a8bb0781ff0a0c |
|
MD5 | 8d3ffefc4f5b19e3cbb5e93fb099c8c8 |
|
BLAKE2b-256 | f54676485489f07cf6e1a37ded3931c4ef165196fd18faeb2864bab64577357b |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2fd0651f0fc38f25f18d43c3401a35b4ffe7f1b74b8dce277d23695eb3de90aa |
|
MD5 | 5da97141f5e5da95fc95ad9802cc9e9f |
|
BLAKE2b-256 | 808b10ec3ae0752c8427b6c698db933f2b01ec658d47eeeba1d8ff0c99515578 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f20d8ab9a7218563a3f2116e863fc33e2d66c3c255693308f695ee773f13d1a3 |
|
MD5 | b68b4c55db47d727b74f12910a46b0ce |
|
BLAKE2b-256 | 8044e11acb7bea285cb5db124f58c4518b6339fd3d4480211987a46b7b2f3fa2 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00f6f5ff479b6c0b3f43ac3b9a331849cab9562748eb8fa684e2e33502109334 |
|
MD5 | 3efa5361188009e65cd613b90bc06e3c |
|
BLAKE2b-256 | 6f2a1e5f7d905410b899512ff557ea25778afbef58319c334aa6df3f60a2ad35 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac523a5bb26fe860f492c98576d2d208a49ad3f0551cf06dd3ee58b07d622a51 |
|
MD5 | 8892b57e6c09232cff836da352a93387 |
|
BLAKE2b-256 | d350b18024e43c8f680289757569d905699fff8945257d7c6f145f0085295cd5 |
Close
Hashes for pyresidfp-0.4.1rc1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b723d8cb9ebb459a9ae64b576b5bee5aa0fe762bb05d6ac565bed53cf5ee7ea |
|
MD5 | 3f5f4b98f7a99b899b6c01b002d81856 |
|
BLAKE2b-256 | 4a24fb13586e4c65fbdc0c5b05a6e6cad9b5622bc32e1c7ad82ee8b0a33b09e8 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bdba734a0eabd380c6e0ef857b1b98572083ec7129e6947c38e2db5a237896b |
|
MD5 | 60bf19c2b6821d608681a7f8a93ce286 |
|
BLAKE2b-256 | df5177ea48536836c2c41cb2ade6b470aedb224a3c71fd438bac070dd5dde007 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 191c3dfa87fd50c4eddbdaa1d524dd83d0ee1e6fa0ac4027bd262214b47af008 |
|
MD5 | 1db631aa7bf2588b3f05db2821272c81 |
|
BLAKE2b-256 | 70227ece240f6e3f81e34a7f6e2fc9bb7b8430281e9a64789f543607047ff300 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e26ee29a34c5f677ef0684354ca5a3756e1f9a4d70871c21823ea5b313ef1d15 |
|
MD5 | 60342d3eb1bdd76cf47c758a7ee52a0e |
|
BLAKE2b-256 | b4c1fd272d2e5c7737c78430612385555ae4ff539d3a751f83b4a7b3566b5117 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72e1457653513a8f79574c31881ad19637a88c4f2a0534449747c17d865822d2 |
|
MD5 | 4a4dcc06759599725045e835af3c0689 |
|
BLAKE2b-256 | 77a8fa37d792ae88c6683d895674a012697ef7a55c6533b7ba4179c8d008c961 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f52c550d6c6eea663520b195b299845a5df73f484e08bee8258c61d8962c6f2 |
|
MD5 | 50a59618f6c9b40c67e7a927b0124cfc |
|
BLAKE2b-256 | 15fcd2e1433468e5a76bec54352158a3c0d37fe2a13b85458177596f9f5bfad0 |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2484a084ad8f855a95ec68ac9a55afe349d98fd14322dd5cc68faf9de08d9055 |
|
MD5 | 77134e6fdd34610cb84173a974e576db |
|
BLAKE2b-256 | 3d109fbed48d7f0479523af6fa0cc56d84b0e0a9723449c39d71e347c546bfff |
Close
Hashes for pyresidfp-0.4.1rc1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a2946bad3caeb9a11d785108e0da0d449ee6d6b0d06f4db2c2fe6eb7e1d9800 |
|
MD5 | 04c51c4c9b34fddc320930ba4e9802aa |
|
BLAKE2b-256 | c6a144623341bc5f40225de01917659ba98e52448e8c86a57a890b2b8302003e |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c548c7dc4470062368ad0db54d0038662227087fef3cc62924408f62bebf7bf |
|
MD5 | a1d795b87bb929f74aef737f6d0bcbeb |
|
BLAKE2b-256 | 40708b84e3969ccd84c98097f9597edbeee9d9771814a58eb4bcbe7fec79580e |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7738b612543aa7829e63606369956cba51826e385835bdf2df3510ee1bd0ccb |
|
MD5 | d77874394ff76fc780280a57787a9973 |
|
BLAKE2b-256 | a814bd003c259328c20f8678516cdd5e6c3657b9a7ce69015ebeb3f2efca18bd |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcfda4ab6fe10239aed59858affe49ee010767ca0ca48ffca29b8ea1123464c3 |
|
MD5 | 67d4d14b2e95e851eae0da498b087f25 |
|
BLAKE2b-256 | 39ded85b0c2945003aec6c218dd24834ea00070a29b369d26b06d2e0ca00b8d1 |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e0479575baa90c62bc06b282adc18087321b6cac916582bdb64bd9af2b9e250 |
|
MD5 | e3560de70709b3c698ee110da023b59f |
|
BLAKE2b-256 | 9636ded7477cba19830d8b92e095d60d8d355d53c468e23a612a1d6a22204720 |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b81391c2ecbe9078e7bde46f21ed683928e94615aaed0de21643c7a68258511b |
|
MD5 | 21520f18d67faf2938765e873e89cf32 |
|
BLAKE2b-256 | 842ee265ecb2e9c07e25390e44f220e688b59235bed6e0bd6099a59c88a7e3ec |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c9ce0b82cac2a2092fa46029bceb96218b1d37e14d60473b562aed3489d25cf |
|
MD5 | c2b659100e63581fcb9924f243d1a221 |
|
BLAKE2b-256 | d0c0b412d734a994d23112d6986bd39408e8be146351db09e4ed5289e5c02fa0 |
Close
Hashes for pyresidfp-0.4.1rc1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92733e4ab1c3648b23029c361e63935b23285fcce63e029861c62eb9aa6b9a72 |
|
MD5 | 01c7cfb6ffb4591fcbf0b04bb7c4f68d |
|
BLAKE2b-256 | 0ca533b77632e0213cf268276dde66662ef7215181cc8192f3a6d13dabca7e93 |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01c03704e0def1ddfc0041741400f2446a2819fafcc4a245cf403ed6ce6bc163 |
|
MD5 | 1557681311b671f144058b1c8795d4d4 |
|
BLAKE2b-256 | e3fbeaed2c4452cf51f3f650450988ec0f447cdf4541ccc818ca5cbf246cbc30 |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ff60c266c2d9a98c5155cf098211520963045e5165751f59175688d9afa870 |
|
MD5 | aba422eb993bcfcd40365deea812b4ae |
|
BLAKE2b-256 | 136984459c2dff455be803bf7221cc48db134745a8957ff20cb5e426a4f34527 |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b178a8454d1668ba6c890a05775f9d504656a624b00aa9a4ebf1d5b54df9fb98 |
|
MD5 | 4e811a089fdc12efb70b9af61bb91b48 |
|
BLAKE2b-256 | 9e8093862c51fe20e555348f722136a26269745c34fec5bb198e27beeca801e0 |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 648b2076e70580611914aca61c2ea2e557ee5b10c12956698ee32174db466f7c |
|
MD5 | 661cebe4d330b5f7a768dd5d006d4984 |
|
BLAKE2b-256 | eb55e264bad8e75301f25962f549b6ddf1fb96999d3763090ca4a83975ada2fe |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8801f5feaa4d7c4a4a10e321e4ac36bd82eb4d0eb12a4ea93ca238e15914632d |
|
MD5 | 4c65f075b6cbc5334c61d39d0caadef2 |
|
BLAKE2b-256 | 6835278a13d8e13d2b0d01a0a328e0cf04b31caabe44fe4fcce1b46b02abdbdb |
Close
Hashes for pyresidfp-0.4.1rc1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b04f21bd91196788087781c44feaa1b5e0b0419cffedbaaf15224ec1de0a4f8 |
|
MD5 | 9b8e8c23fb7a78bd07ef871319dc6f53 |
|
BLAKE2b-256 | c64a43bc49280d39b898c9610f3fc0804c36be6fce9c255a49722127332c6611 |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa86844ffea36e234d35150bba96e8b598e4ea2ca04716f329a72f770429d8a0 |
|
MD5 | d759b225bdcb86198aaf01b823bcab3e |
|
BLAKE2b-256 | 0644d03db7b8864589a4b52e1cb71e444aace3ed94a1e0ab0d0c4cf70b8a7f35 |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d57c45b1fd0cbbbd491fdfb20dbef32dd8bac6c3cfb7238635cc865e51d4bde |
|
MD5 | 1ef8d5aedcd84619b4c9944851324808 |
|
BLAKE2b-256 | cd8b360e8cfdf8afb005a1f854b9a8ad163bf64df4191d3432fc140abc41ef53 |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-musllinux_1_1_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 402ed1a861d8624e59ec37938b1bf2283c15fa360c51d5df11594557e5dbe135 |
|
MD5 | 21948d435f2b0912dd7f1589b6f70f38 |
|
BLAKE2b-256 | 00a929ff2c698a2395906466d65665b33615e9d68421fb681cc4440d7f7e4f42 |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4ba03308cbec9a79dc9845264b45c44033fe0a0c9327dac9c8522affa9c212f |
|
MD5 | c8ca339a624d79c0036e99f112b8af16 |
|
BLAKE2b-256 | b8557924777f50d5c0a3c5f429f0f30abb3d0ef5364dfc73320c39a7c9f2dfaa |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df6b5182572313d813a64e9c91cc6a31418705a5d5719290ea26ef4984f79b8f |
|
MD5 | ffa4cf340541eb83a2d9dab975bb77c6 |
|
BLAKE2b-256 | 8f347a338d6327f3439f9588928f6e260320a06b0738721bf5cf4c19d1866c03 |
Close
Hashes for pyresidfp-0.4.1rc1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 291813ea067c9a6b1b450b30e2ab43612aa8ebb0c2a47db27278d2d8feeb17fa |
|
MD5 | ea9b67ba71352971870a1b84ca6cc49b |
|
BLAKE2b-256 | 684f95bf8c238a8398c1bac92beea232392fb56ccf93cec11b9bf1e39885feda |