.. Dolce documentation master file, created by
   sphinx-quickstart on Wed Jun 19 10:14:49 2024.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.



.. image:: img/dolce.png
   :width: 200

The aim of the Dolce package is to provide a higher-level, more musically expressive and abstract set of routines for generating MIDI data. It is meant to make expressing algorithmic music more intuitive and easy, by taking care of low-level MIDI implementation so that the composer can focus on his composition rather than following midi messages!

Installation
============
Run the command 

.. code-block:: 

    pip install dolce

to install Dolce from Pypi.

Quick Start
===========

First things first: importing and initializing the module

.. code-block::

    >>> import dolce

    >>> dolce.realtime.init()

Now we can create a single note. I call this note `c4`:

.. code-block::

    >>> c4 = dolce.note("c4")

and put it in a list and send it to the processor to play it:

.. code-block::

    >>> dolce.proc([c4])

If your midi sequenceris setup and running, you should have heared a beautiful C4 note now!

Let us now define a second note with the key number 72, and specify it's starting time (onset) to be 1 second after the processor starts:

.. code-block::

    >>> c5 = dolce.note(pch=72, onset=1)
    >>> dolce.proc([c4, c5])

You should have heared both notes, played after each other.

`Dolce is hosted on Codeberg. <https://codeberg.org/Dolce>`_