https://github.com/dbraun/vita

Python bindings to the Vital Synthesizer

https://github.com/dbraun/vita

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary

Keywords

audio modular-synthesizers python synthesizer
Last synced: 5 months ago · JSON representation

Repository

Python bindings to the Vital Synthesizer

Basic Info
  • Host: GitHub
  • Owner: DBraun
  • License: gpl-3.0
  • Language: C++
  • Default Branch: main
  • Homepage:
  • Size: 29.5 MB
Statistics
  • Stars: 10
  • Watchers: 2
  • Forks: 2
  • Open Issues: 2
  • Releases: 4
Topics
audio modular-synthesizers python synthesizer
Created about 1 year ago · Last pushed 5 months ago
Metadata Files
Readme License

README.md

Vita

Vita is a Python module for interacting with the Vital Synthesizer. It is not an official product related to Vital. Vita uses Effort-based versioning.

Installation

Vita is supported on Linux, macOS, and Windows. Install with pip:

bash pip install vita

Example

```python from scipy.io import wavfile import vita

samplerate = 44100 bpm = 120.0 notedur = 1.0 render_dur = 3.0 pitch = 36 # integer velocity = 0.7 # [0.0 to 1.0]

synth = vita.Synth()

The initial preset is loaded by default.

synth.setsamplerate(samplerate) synth.setbpm(bpm)

Let's make a custom modulation using

the available modulation sources and destinations.

These lists are constant.

print("potential sources:", vita.getmodulationsources()) print("potential destinations:", vita.getmodulationdestinations())

"lfo_1" is a potential source,

and "filter1cutoff" is a potential destination.

assert synth.connectmodulation("lfo1", "filter1cutoff")

controls = synth.getcontrols() controls["modulation1amount"].set(1.0) controls["filter1on"].set(1.0) val = controls["filter1on"].value() controls["lfo1tempo"].set(vita.constants.SyncedFrequency.k116)

Use normalized parameter control (0-1 range, VST-style)

controls["filter1cutoff"].setnormalized(0.5) # Set knob to 50% print(controls["filter1cutoff"].getnormalized()) # Get normalized value

Get parameter details and display text

info = synth.getcontroldetails("delaystyle") print(f"Options: {info.options}") # ["Mono", "Stereo", "Ping Pong", "Mid Ping Pong"] print(f"Current: {synth.getcontroltext('delaystyle')}") # e.g., "Stereo"

Render audio to numpy array shaped (2, NUM_SAMPLES)

audio = synth.render(pitch, velocity, notedur, renderdur)

wavfile.write("generatedpreset.wav", samplerate, audio.T)

Dump current state to JSON text

presetpath = "generatedpreset.vital"

jsontext = synth.tojson()

with open(presetpath, "w") as f:
f.write(json
text)

Load JSON text

with open(presetpath, "r") as f: jsontext = f.read()

assert synth.loadjson(jsontext)

Or load directly from file

assert synth.loadpreset(presetpath)

Load the initial preset, which also clears modulations

synth.loadinitpreset()

Or just clear modulations.

synth.clear_modulations() ```

Documentation is not yet automated. Please browse bindings.cpp to get a sense of how the code works.

Issues

If you find any issues with the code, report them at https://github.com/DBraun/Vita.

Code Licensing

If you are making a proprietary or closed source app and would like to use Vital's source code, contact licensing@vital.audio for non GPLv3 licensing options.

What can you do with the source

The source code is licensed under the GPLv3. If you download the source or create builds you must comply with that license.

Things you can't do with this source

  • Do not create an app and distribute it on the iOS app store. The app store is not comptabile with GPLv3 and you'll only get an exception for this if you're paying for a GPLv3 exception for Vital's source (see Code Licensing above).
  • Do not use the name "Vital", "Vital Audio", "Tytel" or "Matt Tytel" for marketing or to name any distribution of binaries built with this source. This source code does not give you rights to infringe on trademarks.
  • Do not connect to any web service at https://vital.audio, https://account.vital.audio or https://store.vital.audio from your own builds. This is against the terms of using those sites.
  • Do not distribute the presets that come with the free version of Vital. They're under a separate license that does not allow redistribution.

Owner

  • Name: David Braun
  • Login: DBraun
  • Kind: user
  • Company: DIRT Design

Do It Real-Time | Audiovisual ML, Faust, TouchDesigner | alum @ccrma

GitHub Events

Total
  • Create event: 8
  • Issues event: 1
  • Release event: 4
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 2
  • Public event: 1
  • Push event: 13
  • Pull request event: 3
  • Fork event: 1
Last Year
  • Create event: 8
  • Issues event: 1
  • Release event: 4
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 2
  • Public event: 1
  • Push event: 13
  • Pull request event: 3
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 3 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 3 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tiianhk (1)
Pull Request Authors
  • DBraun (5)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 69 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
pypi.org: vita

Python bindings for the Vital synthesizer

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 69 Last month
Rankings
Dependent packages count: 9.8%
Forks count: 31.9%
Average: 34.6%
Stargazers count: 41.8%
Dependent repos count: 55.1%
Maintainers (1)
Last synced: 5 months ago