Giter Site home page Giter Site logo

alejandrosame / sardine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bubobubobubobubo/sardine

0.0 2.0 0.0 35.04 MB

Python's missing "algorave" module

Home Page: https://sardine.raphaelforment.fr

License: GNU General Public License v3.0

JavaScript 5.77% Python 66.60% CSS 0.04% TeX 2.59% Makefile 0.18% HTML 24.81%

sardine's Introduction

Sardine: ✨ Live Coding Library for Python ✨

Python's missing algorave module. Simple/hackable live coding tool for modern Python (3.10+)

Discord | Website | Examples | Installation | Author | About Live Coding


Sardine algorave picture

Sardine is a hacker-friendly Python library tailored for musical improvisation, algorithmic composition and much more. Sardine is transforming your typical Python interpreter into a music instrument that allows you to write melodic and rhythmic patterns of any kind and to map them to any electronic instrument: MIDI, OSC and/or SuperCollider. Using Sardine, you can:

  • Improvise music freely on stage / in the studio / for your own enjoyment.
    • Sardine can talk to any MIDI/OSC device and to the SuperCollider audio engine.
    • Bindings for SuperDirt, a well-known synthesis engine used by live coders around the world.
  • Build complex and rich audio/visual installations using MIDI and OSC I/O.
    • Attach callbacks to any OSC event, turn Sardine into a complex reactive toolbox.
    • Watch values as they change and propagate them to your musical patterns or code.
  • Synchronise with other computers / other musical instruments
    • MIDI Clock Out.
    • Link Protocol synchronization.
  • Make Python code time-aware
    • Using temporal recursion, you can make any Python code time and tempo aware.
    • Launch any sync or async function precisely in time, with results falling back on time.
    • Hack your own Senders or Receivers to pattern whatever you see fit!

Installation

In order to install Sardine, your system will require a recent version of Python (3.10+). We now support 3.11 versions as well. A more detailed installation guide can be found on Sardine's website.

  1. Run: python -m pip install --find-links https://thegamecracks.github.io/python-rtmidi-wheels/ sardine-system.
    • the --find-links option is used as a temporary fix to the unavailability of some dependencies in the Pypi repositories for Python 3.10/3.11.
  2. Install SuperCollider and SuperDirt for an additional supported audio backend.
  3. Run sardine-config and configure Sardine to your liking following this guide
  4. Install the text editor of your choice: VSCode, Neovim, Vim, Emacs, Jupyter Notebook, etc... There are many options you can pick from. They have all been tested with Sardine.

Contributions

Sardine is currently in the early development phase. We are looking for contributors! Anybody is welcome to contribute with code / documentation / thoughts, etc... You can contact the Sardine community directly on Discord or PM me if you have specific questions.

Documenting Sardine

Sardine is a Python library that you learn to use as a musical instrument. For this reason, documentation is of paramount importance so that others can learn your cool tricks too :). The documentation resides in the docs/ folder. It is a bunch of loosely organised Markdown files. You can contribute by editing these files and adding the missing bit of information you would like to see being updated or added.

Source code is contained to the sardine/ and fishery/ folder. Most functions are already documented but the architecture of Sardine needs some time to get used to. You can contact me directly if you would like to learn more about it. There are no contributions rules for the moment, and I will explore each and every request that you would like to propose!

sardine's People

Contributors

bubobubobubobubo avatar thegamecracks avatar twal avatar mugulmd avatar jarmitage avatar highharmonics2 avatar pipazoul avatar jure2018 avatar lutangar avatar giohappy avatar rhoumi avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.