```
_____ _____
| __ \ | __ \
| | | | __ _ __ __ | | | | _ __ ___ __ _ _ __ ___ ___ _ __
| | | | / _` | \ \ /\ / / | | | | | '__| / _ \ / _` | | '_ ` _ \ / _ \ | '__|
| |__| | | (_| | \ V V / | |__| | | | | __/ | (_| | | | | | | | | __/ | |
|_____/ \__,_| \_/\_/ |_____/ |_| \___| \__,_| |_| |_| |_| \___| |_|
* * Digital Audio Workstation with Python * *
```
![Supported Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Windows%20%7C%20Linux-green)
[![Test Badge](https://github.com/DBraun/DawDreamer/actions/workflows/all.yml/badge.svg)](https://github.com/DBraun/DawDreamer/actions/workflows/all.yml)
[![PyPI version fury.io](https://badge.fury.io/py/ansicolortags.svg)](https://pypi.python.org/pypi/dawdreamer/)
[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/DBraun/DawDreamer/blob/main/LICENSE)
![GitHub Repo stars](https://img.shields.io/github/stars/DBraun/DawDreamer?style=social)
[![Generic badge](https://img.shields.io/badge/Documentation-passing-brightgreen.svg)](https://dirt.design/DawDreamer/)
# DawDreamer
Read the [introduction](https://arxiv.org/abs/2111.09931) to DawDreamer, which was presented as a Late-Breaking Demo at the [2021 ISMIR Conference](https://ismir2021.ismir.net/lbd/).
DawDreamer is an audio-processing Python framework supporting core [DAW](https://en.wikipedia.org/wiki/Digital_audio_workstation) features and beyond:
* Composing graphs of multi-channel audio processors
* Audio playback
* [VST instruments and effects](https://github.com/DBraun/DawDreamer/wiki/Plugin-Processor) (with UI editing and state loading/saving)
* [FAUST](https://github.com/DBraun/DawDreamer/wiki/Faust-Processor) effects and polyphonic instruments
* [Time-stretching and looping](https://github.com/DBraun/DawDreamer/wiki/Playback-Warp-Processor), optionally according to Ableton Live warp markers
* [Pitch-warping](https://github.com/DBraun/DawDreamer/wiki/Playback-Warp-Processor)
* Parameter automation at audio-rate and at pulses-per-quarter-note
* Parameter automation saving in absolute audio-rate time
* MIDI playback in absolute time and PPQN time
* MIDI file export in absolute time
* Rendering and saving multiple processors simultaneously
* Support for the [Faust Box](https://github.com/DBraun/DawDreamer/tree/main/examples/Box_API) and Signal APIs
* Transpiling Faust code to [JAX/Flax](https://github.com/DBraun/DawDreamer/tree/main/examples/Faust_to_JAX) and other target languages (C++, Rust, Wasm, etc.)
* Machine learning experiments with [QDax](https://github.com/DBraun/DawDreamer/tree/main/examples/Faust_to_QDax)
* [Multiprocessing support](https://github.com/DBraun/DawDreamer/tree/main/examples/multiprocessing_plugins)
* Full support on macOS, Windows, Linux, Google Colab, and Ubuntu Dockerfile
DawDreamer's foundation is [JUCE](https://github.com/julianstorer/JUCE), with a user-friendly Python interface thanks to [pybind11](https://github.com/pybind/pybind11). DawDreamer evolved from an earlier VSTi audio "renderer", [RenderMan](https://github.com/fedden/RenderMan).
## Installation
macOS requirements:
* 64-bit Python 3.9 or higher
* macOS 11.0 or higher
Windows requirements:
* 64-bit Python 3.8 or higher
Linux requirements:
* 64-bit Python 3.8 or higher
Install with [PyPI](https://pypi.org/project/dawdreamer/):
`pip install dawdreamer`
## API Documentation
[https://dirt.design/DawDreamer/](https://dirt.design/DawDreamer/dawdreamer.html)
## Basic Example
Using Faust, let's make a stereo sine-tone at 440 Hz and -6 dB. You can run this code as-is.
```python
import dawdreamer as daw
from scipy.io import wavfile
SAMPLE_RATE = 44100
engine = daw.RenderEngine(SAMPLE_RATE, 512) # 512 block size
faust_processor = engine.make_faust_processor("faust")
faust_processor.set_dsp_string(
"""
declare name "MySine";
freq = hslider("freq", 440, 0, 20000, 0);
gain = hslider("vol[unit:dB]", 0, -120, 20, 0) : ba.db2linear;
process = freq : os.osc : _*gain <: si.bus(2);
"""
)
print(faust_processor.get_parameters_description())
engine.load_graph([
(faust_processor, [])
])
faust_processor.set_parameter("/MySine/freq", 440.) # 440 Hz
faust_processor.set_parameter("/MySine/vol", -6.) # -6 dB volume
engine.set_bpm(120.)
engine.render(4., beats=True) # render 4 beats.
audio = engine.get_audio() # shaped (2, N samples)
wavfile.write('sine_demo.wav', SAMPLE_RATE, audio.transpose())
# Change settings and re-render
faust_processor.set_parameter("/MySine/freq", 880.) # 880 Hz
engine.render(4., beats=True)
# and so on...
```
Next, let's make a graph with a VST instrument and effect. This graph will be simple, but you can make more complicated ones.
```python
import dawdreamer as daw
from scipy.io import wavfile
SAMPLE_RATE = 44100
INSTRUMENT_PATH = "path/to/instrument.dll"
EFFECT_PATH = "path/to/effect.dll"
engine = daw.RenderEngine(SAMPLE_RATE, 512)
engine.set_bpm(120.)
synth = engine.make_plugin_processor("synth", INSTRUMENT_PATH)
print('inputs:', synth.get_num_input_channels())
print('outputs:', synth.get_num_output_channels())
print(synth.get_parameters_description())
synth.set_parameter(7, .1234)
# (MIDI note, velocity, start sec, duration sec)
synth.add_midi_note(60, 100, 0.0, 2.)
effect = engine.make_plugin_processor("effect", EFFECT_PATH)
engine.load_graph([
(synth, []),
(effect, [synth.get_name()]) # effect needs 2 channels, and "synth" provides those 2.
])
engine.render(4.) # render 4 seconds.
audio = engine.get_audio()
wavfile.write('synth_demo.wav', SAMPLE_RATE, audio.transpose())
synth.clear_midi()
# add midi again, render again, and so on...
```
Please refer to the [Wiki](https://github.com/DBraun/DawDreamer/wiki), [examples](https://github.com/DBraun/DawDreamer/tree/main/examples/), [API documentation](https://dirt.design/DawDreamer), and [tests](https://github.com/DBraun/DawDreamer/tree/main/tests).
## License
DawDreamer is licensed under GPLv3 to make it easier to comply with all of the dependent projects. If you use DawDreamer, you must obey the licenses of [JUCE](https://github.com/juce-framework/JUCE/), [pybind11](https://github.com/pybind/pybind11/), [Libsamplerate](https://github.com/libsndfile/libsamplerate), [Rubber Band Library](https://github.com/breakfastquay/rubberband/), [Steinberg VST2/3](https://www.steinberg.net/vst-instruments/), and [FAUST](https://github.com/grame-cncm/faust).
## Thanks to contributors to the original [RenderMan](https://github.com/fedden/RenderMan)
* [fedden](https://github.com/fedden), RenderMan creator
* [jgefele](https://github.com/jgefele)
* [harritaylor](https://github.com/harritaylor)
* [cannoneyed](https://github.com/cannoneyed/)
Raw data
{
"_id": null,
"home_page": "https://github.com/DBraun/DawDreamer",
"name": "dawdreamer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "audio music sound",
"author": "David Braun",
"author_email": "braun@ccrma.stanford.edu",
"download_url": null,
"platform": null,
"description": "```\n _____ _____ \n | __ \\ | __ \\ \n | | | | __ _ __ __ | | | | _ __ ___ __ _ _ __ ___ ___ _ __ \n | | | | / _` | \\ \\ /\\ / / | | | | | '__| / _ \\ / _` | | '_ ` _ \\ / _ \\ | '__|\n | |__| | | (_| | \\ V V / | |__| | | | | __/ | (_| | | | | | | | | __/ | | \n |_____/ \\__,_| \\_/\\_/ |_____/ |_| \\___| \\__,_| |_| |_| |_| \\___| |_| \n \n* * Digital Audio Workstation with Python * *\n```\n\n![Supported Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Windows%20%7C%20Linux-green)\n[![Test Badge](https://github.com/DBraun/DawDreamer/actions/workflows/all.yml/badge.svg)](https://github.com/DBraun/DawDreamer/actions/workflows/all.yml)\n[![PyPI version fury.io](https://badge.fury.io/py/ansicolortags.svg)](https://pypi.python.org/pypi/dawdreamer/)\n[![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://github.com/DBraun/DawDreamer/blob/main/LICENSE)\n![GitHub Repo stars](https://img.shields.io/github/stars/DBraun/DawDreamer?style=social)\n[![Generic badge](https://img.shields.io/badge/Documentation-passing-brightgreen.svg)](https://dirt.design/DawDreamer/)\n\n# DawDreamer\n\nRead the [introduction](https://arxiv.org/abs/2111.09931) to DawDreamer, which was presented as a Late-Breaking Demo at the [2021 ISMIR Conference](https://ismir2021.ismir.net/lbd/).\n\nDawDreamer is an audio-processing Python framework supporting core [DAW](https://en.wikipedia.org/wiki/Digital_audio_workstation) features and beyond:\n* Composing graphs of multi-channel audio processors\n* Audio playback\n* [VST instruments and effects](https://github.com/DBraun/DawDreamer/wiki/Plugin-Processor) (with UI editing and state loading/saving)\n* [FAUST](https://github.com/DBraun/DawDreamer/wiki/Faust-Processor) effects and polyphonic instruments\n* [Time-stretching and looping](https://github.com/DBraun/DawDreamer/wiki/Playback-Warp-Processor), optionally according to Ableton Live warp markers\n* [Pitch-warping](https://github.com/DBraun/DawDreamer/wiki/Playback-Warp-Processor)\n* Parameter automation at audio-rate and at pulses-per-quarter-note\n* Parameter automation saving in absolute audio-rate time\n* MIDI playback in absolute time and PPQN time\n* MIDI file export in absolute time\n* Rendering and saving multiple processors simultaneously\n* Support for the [Faust Box](https://github.com/DBraun/DawDreamer/tree/main/examples/Box_API) and Signal APIs\n* Transpiling Faust code to [JAX/Flax](https://github.com/DBraun/DawDreamer/tree/main/examples/Faust_to_JAX) and other target languages (C++, Rust, Wasm, etc.)\n* Machine learning experiments with [QDax](https://github.com/DBraun/DawDreamer/tree/main/examples/Faust_to_QDax)\n* [Multiprocessing support](https://github.com/DBraun/DawDreamer/tree/main/examples/multiprocessing_plugins)\n* Full support on macOS, Windows, Linux, Google Colab, and Ubuntu Dockerfile\n\nDawDreamer's foundation is [JUCE](https://github.com/julianstorer/JUCE), with a user-friendly Python interface thanks to [pybind11](https://github.com/pybind/pybind11). DawDreamer evolved from an earlier VSTi audio \"renderer\", [RenderMan](https://github.com/fedden/RenderMan).\n\n## Installation\n\nmacOS requirements:\n* 64-bit Python 3.9 or higher\n* macOS 11.0 or higher\n\nWindows requirements:\n* 64-bit Python 3.8 or higher\n\nLinux requirements:\n* 64-bit Python 3.8 or higher\n\nInstall with [PyPI](https://pypi.org/project/dawdreamer/):\n\n`pip install dawdreamer`\n\n## API Documentation\n\n[https://dirt.design/DawDreamer/](https://dirt.design/DawDreamer/dawdreamer.html)\n\n## Basic Example\n\nUsing Faust, let's make a stereo sine-tone at 440 Hz and -6 dB. You can run this code as-is.\n\n```python\nimport dawdreamer as daw\nfrom scipy.io import wavfile\nSAMPLE_RATE = 44100\nengine = daw.RenderEngine(SAMPLE_RATE, 512) # 512 block size\nfaust_processor = engine.make_faust_processor(\"faust\")\nfaust_processor.set_dsp_string(\n \"\"\"\n declare name \"MySine\";\n freq = hslider(\"freq\", 440, 0, 20000, 0);\n gain = hslider(\"vol[unit:dB]\", 0, -120, 20, 0) : ba.db2linear;\n process = freq : os.osc : _*gain <: si.bus(2);\n \"\"\"\n )\nprint(faust_processor.get_parameters_description())\nengine.load_graph([\n (faust_processor, [])\n])\nfaust_processor.set_parameter(\"/MySine/freq\", 440.) # 440 Hz\nfaust_processor.set_parameter(\"/MySine/vol\", -6.) # -6 dB volume\n\nengine.set_bpm(120.)\nengine.render(4., beats=True) # render 4 beats.\naudio = engine.get_audio() # shaped (2, N samples)\nwavfile.write('sine_demo.wav', SAMPLE_RATE, audio.transpose())\n\n# Change settings and re-render\nfaust_processor.set_parameter(\"/MySine/freq\", 880.) # 880 Hz\nengine.render(4., beats=True)\n# and so on...\n```\n\nNext, let's make a graph with a VST instrument and effect. This graph will be simple, but you can make more complicated ones.\n\n```python\nimport dawdreamer as daw\nfrom scipy.io import wavfile\nSAMPLE_RATE = 44100\nINSTRUMENT_PATH = \"path/to/instrument.dll\"\nEFFECT_PATH = \"path/to/effect.dll\"\n\nengine = daw.RenderEngine(SAMPLE_RATE, 512)\nengine.set_bpm(120.)\n\nsynth = engine.make_plugin_processor(\"synth\", INSTRUMENT_PATH)\nprint('inputs:', synth.get_num_input_channels())\nprint('outputs:', synth.get_num_output_channels())\nprint(synth.get_parameters_description())\n\nsynth.set_parameter(7, .1234)\n\n# (MIDI note, velocity, start sec, duration sec)\nsynth.add_midi_note(60, 100, 0.0, 2.)\n\neffect = engine.make_plugin_processor(\"effect\", EFFECT_PATH)\n\nengine.load_graph([\n (synth, []),\n (effect, [synth.get_name()]) # effect needs 2 channels, and \"synth\" provides those 2.\n ])\n\nengine.render(4.) # render 4 seconds.\naudio = engine.get_audio()\nwavfile.write('synth_demo.wav', SAMPLE_RATE, audio.transpose())\nsynth.clear_midi()\n# add midi again, render again, and so on...\n```\n\nPlease refer to the [Wiki](https://github.com/DBraun/DawDreamer/wiki), [examples](https://github.com/DBraun/DawDreamer/tree/main/examples/), [API documentation](https://dirt.design/DawDreamer), and [tests](https://github.com/DBraun/DawDreamer/tree/main/tests). \n\n## License\n\nDawDreamer is licensed under GPLv3 to make it easier to comply with all of the dependent projects. If you use DawDreamer, you must obey the licenses of [JUCE](https://github.com/juce-framework/JUCE/), [pybind11](https://github.com/pybind/pybind11/), [Libsamplerate](https://github.com/libsndfile/libsamplerate), [Rubber Band Library](https://github.com/breakfastquay/rubberband/), [Steinberg VST2/3](https://www.steinberg.net/vst-instruments/), and [FAUST](https://github.com/grame-cncm/faust).\n\n## Thanks to contributors to the original [RenderMan](https://github.com/fedden/RenderMan)\n* [fedden](https://github.com/fedden), RenderMan creator\n* [jgefele](https://github.com/jgefele)\n* [harritaylor](https://github.com/harritaylor)\n* [cannoneyed](https://github.com/cannoneyed/)\n",
"bugtrack_url": null,
"license": null,
"summary": "An audio-processing Python library supporting core DAW features",
"version": "0.8.3",
"project_urls": {
"Documentation": "https://dirt.design/DawDreamer",
"Homepage": "https://github.com/DBraun/DawDreamer",
"Source": "https://github.com/DBraun/DawDreamer"
},
"split_keywords": [
"audio",
"music",
"sound"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "15aa61fb5f655c355528e4a48259a355c3dfcf6b086e2d72c200a0d357841256",
"md5": "6fdfb743fdee45c5df8cdbb4fc42392f",
"sha256": "4115817dd7b76a2caabe8d5e7ea5e55752cd69f1a279929e46c72fe6f0a30e21"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp310-cp310-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "6fdfb743fdee45c5df8cdbb4fc42392f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 30712288,
"upload_time": "2024-09-09T14:31:06",
"upload_time_iso_8601": "2024-09-09T14:31:06.918660Z",
"url": "https://files.pythonhosted.org/packages/15/aa/61fb5f655c355528e4a48259a355c3dfcf6b086e2d72c200a0d357841256/dawdreamer-0.8.3-cp310-cp310-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9929ae4319bd48a6786d2d124a101f333e378b8666c82adf5e20707636cc3746",
"md5": "fe885a0835c19503b3993225d25b7709",
"sha256": "bc3b72e40d62a9db2e3902e3e03831c362269525736c07757e01cfd731f662a9"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp310-cp310-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "fe885a0835c19503b3993225d25b7709",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 33087357,
"upload_time": "2024-09-09T14:31:10",
"upload_time_iso_8601": "2024-09-09T14:31:10.802724Z",
"url": "https://files.pythonhosted.org/packages/99/29/ae4319bd48a6786d2d124a101f333e378b8666c82adf5e20707636cc3746/dawdreamer-0.8.3-cp310-cp310-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f4e18e3072a7d4fb78a1e69bdf1cb00a0e181aefffa08d4e08b394a05b1e6fe",
"md5": "78f169f9f2907177064500fe4fb09e1e",
"sha256": "a5a1e0c4798e4794f7f2a9f7b53ea28def9a2ab84f7e050ff798d9462ebc66c2"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "78f169f9f2907177064500fe4fb09e1e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 40684375,
"upload_time": "2024-09-09T14:31:15",
"upload_time_iso_8601": "2024-09-09T14:31:15.353507Z",
"url": "https://files.pythonhosted.org/packages/3f/4e/18e3072a7d4fb78a1e69bdf1cb00a0e181aefffa08d4e08b394a05b1e6fe/dawdreamer-0.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f9b5e01fe914c116a5d735c17fa9c9d49fcc01aafdf6019f82ac4a9f64dc1ff6",
"md5": "a559cd9d0379a35ab27a8c467690d0cb",
"sha256": "8e5b17d48522acda643129266f9ab21d791ed832802a217a74e06bbaa0e3c00a"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "a559cd9d0379a35ab27a8c467690d0cb",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8",
"size": 30905369,
"upload_time": "2024-09-09T14:31:19",
"upload_time_iso_8601": "2024-09-09T14:31:19.677491Z",
"url": "https://files.pythonhosted.org/packages/f9/b5/e01fe914c116a5d735c17fa9c9d49fcc01aafdf6019f82ac4a9f64dc1ff6/dawdreamer-0.8.3-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "57de6809aaa312e7fc8f78e9c417ce1125500265df8304040bb72af75a3a4bd6",
"md5": "08980e75fcfb7a64738c1f4111000cdb",
"sha256": "2aa66a90f44cd1c3e174f641c16a1dd5952dcb1caa8d01a0c00188c343d19297"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp311-cp311-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "08980e75fcfb7a64738c1f4111000cdb",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 30715916,
"upload_time": "2024-09-09T14:31:23",
"upload_time_iso_8601": "2024-09-09T14:31:23.290760Z",
"url": "https://files.pythonhosted.org/packages/57/de/6809aaa312e7fc8f78e9c417ce1125500265df8304040bb72af75a3a4bd6/dawdreamer-0.8.3-cp311-cp311-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a06a1159d712c92cb0e98cec868d0948597edac66b6912fd1f6c118a5aaa7d41",
"md5": "d21f6c0f28def0a54cb7571853c2611e",
"sha256": "6388046df12a83e4b5630143cebf26ff907957886ba13624c3c2c8bed274b7f5"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp311-cp311-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "d21f6c0f28def0a54cb7571853c2611e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 33087583,
"upload_time": "2024-09-09T14:31:26",
"upload_time_iso_8601": "2024-09-09T14:31:26.959536Z",
"url": "https://files.pythonhosted.org/packages/a0/6a/1159d712c92cb0e98cec868d0948597edac66b6912fd1f6c118a5aaa7d41/dawdreamer-0.8.3-cp311-cp311-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e549a737b119a3cd59260b571c52d522af8dc6914c97355d1f80eb1d1fd49358",
"md5": "696c47d54eaee46cf97211f0ab6471c7",
"sha256": "dc7b90ee5c149e5a6f9333a347a1380ab2e2985cca96aeafa7ab68f7759280f1"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "696c47d54eaee46cf97211f0ab6471c7",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 40688306,
"upload_time": "2024-09-09T14:31:31",
"upload_time_iso_8601": "2024-09-09T14:31:31.072765Z",
"url": "https://files.pythonhosted.org/packages/e5/49/a737b119a3cd59260b571c52d522af8dc6914c97355d1f80eb1d1fd49358/dawdreamer-0.8.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33ccb32cd99d168a44cc4bcc42927329f33f3a9341149ab52b7d9196f5e7038f",
"md5": "0b9761fea6fbecc20c8f4b967a296b7d",
"sha256": "f603f96e110b1d581f108a3d5f62a09a56cb963bf7f84a0dbbf717e108a5b2a6"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "0b9761fea6fbecc20c8f4b967a296b7d",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 30906080,
"upload_time": "2024-09-09T14:31:34",
"upload_time_iso_8601": "2024-09-09T14:31:34.925498Z",
"url": "https://files.pythonhosted.org/packages/33/cc/b32cd99d168a44cc4bcc42927329f33f3a9341149ab52b7d9196f5e7038f/dawdreamer-0.8.3-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "326cea9d3160e7fbdb8666bedbd2dcf8443df1cb57b117d99c94fe421f13f1a7",
"md5": "406bc1420c44046081b9958dde78659d",
"sha256": "c04dd967411a2a7eaf9808349b0fdaa718557303b7ce62d28c2456b678bfee14"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp312-cp312-macosx_12_0_arm64.whl",
"has_sig": false,
"md5_digest": "406bc1420c44046081b9958dde78659d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 30718095,
"upload_time": "2024-09-09T14:31:38",
"upload_time_iso_8601": "2024-09-09T14:31:38.923168Z",
"url": "https://files.pythonhosted.org/packages/32/6c/ea9d3160e7fbdb8666bedbd2dcf8443df1cb57b117d99c94fe421f13f1a7/dawdreamer-0.8.3-cp312-cp312-macosx_12_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4dd216aba9fee64aeb2e025cb572470c7b75a1c26ae84f4c7b2d56a43f9799d1",
"md5": "0d5fa335266a52b7741ca00c03ed2791",
"sha256": "ddf6d8824a7d038e947be5a951f10695adb77194b03e876e059434644bff239a"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp312-cp312-macosx_12_0_x86_64.whl",
"has_sig": false,
"md5_digest": "0d5fa335266a52b7741ca00c03ed2791",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 33103949,
"upload_time": "2024-09-09T14:31:43",
"upload_time_iso_8601": "2024-09-09T14:31:43.030369Z",
"url": "https://files.pythonhosted.org/packages/4d/d2/16aba9fee64aeb2e025cb572470c7b75a1c26ae84f4c7b2d56a43f9799d1/dawdreamer-0.8.3-cp312-cp312-macosx_12_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c2eb0df1d2c82048e1b02320f2fe9f5f0ad93565ff48102a36bf2e2dedc68788",
"md5": "93881ea6952156345a11c0b444fadadd",
"sha256": "1d021076af78be70dae925ccddece56f1e5d021fda7dfb02ed6e706aac18b865"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "93881ea6952156345a11c0b444fadadd",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 40683589,
"upload_time": "2024-09-09T14:31:47",
"upload_time_iso_8601": "2024-09-09T14:31:47.569051Z",
"url": "https://files.pythonhosted.org/packages/c2/eb/0df1d2c82048e1b02320f2fe9f5f0ad93565ff48102a36bf2e2dedc68788/dawdreamer-0.8.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cdb8c2b761c6cdae3b25bb6b5ed2f2dcbe18c3f9fe58d3efea041d4147e63689",
"md5": "765152c076f5473ecf3407bfafc18b17",
"sha256": "b4eff365bf40f373406279c88728c8545b9a3cbd8b1e6ba29458dc4964e90e2c"
},
"downloads": -1,
"filename": "dawdreamer-0.8.3-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "765152c076f5473ecf3407bfafc18b17",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8",
"size": 30906925,
"upload_time": "2024-09-09T14:31:51",
"upload_time_iso_8601": "2024-09-09T14:31:51.848660Z",
"url": "https://files.pythonhosted.org/packages/cd/b8/c2b761c6cdae3b25bb6b5ed2f2dcbe18c3f9fe58d3efea041d4147e63689/dawdreamer-0.8.3-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 14:31:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DBraun",
"github_project": "DawDreamer",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dawdreamer"
}