Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 59 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,72 @@
# DICE

## ML Model for Musical Pattern Generation in Max/MSP/Jitter
![DICE GitHub Banner](./docs/assets/images/github-banner.png)

**DICE** is a Max external that uses a custom-trained model to generate musical patterns based on real-time suggestions from the user. Built with a focus on ethical machine learning, DICE does not utilize any external music datasets, ensuring an original approach to music generation.
[Download Page](https://github.com/eilseq/Dice/releases)

## Overview
## Diffusion Network for MIDI Transformation

- **Dynamic Pattern Generation**: Adapts to the musician's input to create responsive musical patterns.
- **Ethical Data Use**: DICE is trained on a custom dataset designed specifically for this tool, avoiding the use of other musicians’ data.
- **Seamless Max/MSP and Max for Live Integration**: Developed as a Max external for use in Max/MSP patches and Max for Live devices, compatible with Mac OS.
**DICE** is a tool designed for advanced manipulation of musical patterns using a custom-trained machine learning model based on diffusion architectures.

Rather than focusing on outright generation, DICE refines, transforms, and reinterprets existing patterns in real time while preserving the original musical features.

Built specifically for the Max/MSP environment as a max external, and embedded into a MIDI Transformation Tool for Ableton, it enables seamless integration into both live performance and studio workflows.

### Functionalities

Focusing on a minimal user experience, the goal of this tool is to bridge the gap between deterministic pattern manipulation and stochastic processes, allowing for a controlled but flexible approach to reshaping musical materials while limiting any form of bias related to style and genre.

- **Pattern Manipulation through Diffusion**
DICE employs a diffusion-based architecture to iteratively refine and reshape input patterns. This approach ensures that transformations retain musical coherence while introducing new structural possibilities.

- **Real-Time Interaction**
Designed for Ableton users, DICE responds instantly to user adjustments, enabling dynamic manipulation of musical sequences within a Max patch. Parameters like `threshold`, `noiseLevel`, and `seed` provide granular control over the transformation process.

- **Matrix-Based Input**
The system operates on a 16x16 matrix input, allowing users to define initial states that DICE can then expand upon, invert, or alter based on diffusion steps and user-defined parameters.

- **Integration with Max/MSP and Max for Live**
Fully compatible with Max/MSP and Max for Live, DICE can be embedded into existing workflows or used as a standalone tool.

### Ethical Considerations

- **Custom Dataset Use**
DICE is trained on a purpose-built synthetic dataset, ensuring that it does not rely on copyrighted or external musical material.

- **Transparency in Manipulation**
The diffusion-based architecture allows users to trace how patterns evolve through each manipulation stage, offering clarity in how changes occur. Every transformation depends only from the current set of parameters and input notes, so that generations on same states will give consistent results.

- **User-Driven Control**
Emphasizing the musician's role as the primary creative agent, DICE ensures that its manipulations serve the artist’s intent, rather than imposing algorithmic biases, while offering a minimal user interface.

---

## Getting Started

Download DICE from the [Releases](./releases) section and add it to your Max setup to begin using the object in your patches.
### Installation

## License
1. **Download DICE**
Access the [Releases](https://github.com/eilseq/Dice/releases) section to download the external.

2. **Open Ableton Project and Follow Lesson**
The bundle comes with an Ableton Live project containing examples of DICE use and accurate documentation on how to generate clips and install the tool globally.

### Basic Usage

DICE is provided under an **All Rights Reserved** license, with allowances for musicians to create commercial music and audio assets. For details, see the [license](./LICENSE.md).
1. **Input a 16x16 Matrix**
Like any other Ableton Live's MIDI Transformation Tool, create clip and select notes to provide structured input data to the model. This release is designed specifically for drum patterns, so it will act upon the first bar of notes in the conventionla drum rack range (additional info in Ableton Lesson).

2. **Adjust Parameters**

- `threshold`: Controls the cutoff for pattern retention or alteration.
- `noiseLevel`: Determines the intensity of stochastic perturbations during diffusion.
- `seed`: Sets the random seed for consistent results across sessions.

3. **Trigger Pattern Manipulation**
The tool provides a minimal user interface provided under clip view. Every control will trigger a MIDI transformation based on selected notes. Observe how the input pattern is transformed based on the configured diffusion settings.

---

DICE supports creativity in music without compromising data integrity or artistic respect.
## License

DICE is provided under an **All Rights Reserved** license. While musicians are free to use it for commercial music and audio asset creation, redistribution or modification of the source code requires explicit permission. Full license details can be found in the [LICENSE](./LICENSE.md).
13 changes: 13 additions & 0 deletions docs/_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
remote_theme: b2a3e8/jekyll-theme-console

title: DICE
description: Diffusion Network for MIDI Transformation

favicon: /assets/images/github-favicon.png
style: dark

header_pages:
- index.md
- getting-started.md
- license.md
- github.md
Binary file added docs/assets/images/github-banner-black-600.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/github-banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/github-favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
36 changes: 36 additions & 0 deletions docs/getting-started.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: page
title: /getting-started
---

# Getting Started

---

## Installation

### **Download DICE**

Access the [Releases](https://github.com/eilseq/Dice/releases) section to download DICE.

### **Open Ableton Project and Follow Lesson**

The bundle includes an Ableton Live project with examples and further documentation. It requires Ableton Live 12.

---

## Basic Usage

### **Input a 16x16 Matrix**

Like any other Ableton Live's MIDI Transformation Tool, create clip and select notes to provide structured input data to the model. This release is designed specifically for drum patterns, so it will act upon the first bar of notes in the conventionla drum rack range (additional info in Ableton Lesson).

### **Adjust Parameters**

- `threshold`: Controls the cutoff for pattern retention or alteration.
- `noiseLevel`: Intensity of stochastic perturbations during diffusion.
- `seed`: Sets the random seed for consistent results across sessions.

### **Trigger Pattern Manipulation**

The tool provides a minimal user interface provided under clip view. Every control will trigger a MIDI transformation based on selected notes. Observe how the input pattern is transformed based on the configured diffusion settings.
11 changes: 11 additions & 0 deletions docs/github.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
layout: page
title: /github
permalink: /github/
---

<script>
window.location.href = "https://github.com/eilseq/Dice";
</script>

<p>For feature requests and contribution, check out the GitHub repo <a href="https://github.com/eilseq/Dice">here</a>.</p>
50 changes: 50 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
layout: home
title: /dice
---

![DICE GitHub Banner](./assets/images/github-banner-black-600.png)

**DICE** is a tool designed for advanced manipulation of musical patterns using a custom-trained machine learning model based on diffusion architectures.

Rather than focusing on outright generation, DICE refines, transforms, and reinterprets existing patterns in real time while preserving the original musical features.

Built specifically for the Max/MSP environment as a max external, and embedded into a MIDI Transformation Tool for Ableton, it enables seamless integration into both live performance and studio workflows.

---

# Functionalities

Focusing on a minimal user experience, the goal of this tool is to bridge the gap between deterministic pattern manipulation and stochastic processes, allowing for a controlled but flexible approach to reshaping musical materials while limiting any form of bias related to style and genre.

## **Pattern Manipulation through Diffusion**

DICE employs a diffusion-based architecture to iteratively refine and reshape input patterns. This approach ensures that transformations retain musical coherence while introducing new structural possibilities.

## **Real-Time Interaction**

Designed for Ableton users, DICE responds instantly to user adjustments, enabling dynamic manipulation of musical sequences within a Max patch. Parameters like `threshold`, `noiseLevel`, and `seed` provide granular control over the transformation process.

## **Matrix-Based Input**

The system operates on a 16x16 matrix input, allowing users to define initial states that DICE can then expand upon, invert, or alter based on diffusion steps and user-defined parameters.

## **Integration with Max/MSP and Max for Live**

Fully compatible with Max/MSP and Max for Live, DICE can be embedded into existing workflows or used as a standalone tool.

---

# Ethical Considerations

# **Custom Dataset Use**

DICE is trained on a purpose-built synthetic dataset, ensuring that it does not rely on copyrighted or external musical material.

# **Transparency in Manipulation**

The diffusion-based architecture allows users to trace how patterns evolve through each manipulation stage, offering clarity in how changes occur. Every transformation depends only from the current set of parameters and input notes, so that generations on same states will give consistent results.

# **User-Driven Control**

Emphasizing the musician's role as the primary creative agent, DICE ensures that its manipulations serve the artist’s intent, rather than imposing algorithmic biases, while offering a minimal user interface.
36 changes: 36 additions & 0 deletions docs/license.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: page
title: /license
---

# License

## All Rights Reserved with Music and Audio Derivatives Exception

**Copyright 2024, EILSEQ**

**All Rights Reserved**

## Permission for Music and Audio Asset Creation

Permission is hereby granted to musicians, producers, and individual creators (the "Licensee") to use, modify, and incorporate this software (the "Software") solely for creating musical compositions, audio recordings, soundscapes, and other audio-related assets ("Audio Assets") for personal or commercial purposes. This permission includes the use of the Software within personal plugins or digital tools exclusively for generating such Audio Assets.

## Limitations and Prohibited Uses

1. **Prohibition of Software Redistribution**: The Software, in whole or in part, may **not** be reproduced, distributed, sublicensed, or used as part of any software application, library, framework, or tool intended for distribution, sale, or licensing to any third parties. Redistribution of the Software itself or any derivative software applications incorporating the Software is strictly prohibited.

2. **No Derivative Software Works**: Modifications or derivative works of the Software that incorporate it into other software applications, libraries, or frameworks are not permitted, except as specifically allowed for the creation of Audio Assets.

3. **Commercial Use of Audio Assets Only**: The commercial use of the Software is strictly limited to the production and sale of Audio Assets derived from it. Licensee may not incorporate the Software into any other software products or technology to be sold, licensed, or otherwise distributed.

4. **Personal Use Only**: Use of the Software in plugins, digital tools, or environments beyond the Licensee's personal creation of Audio Assets is prohibited.

## Global Applicability

This license is intended to be legally binding in all jurisdictions and is subject to and governed by the applicable laws of the Licensee’s country of residence. Any violation of this license will be pursued under international copyright and intellectual property laws to the fullest extent permitted by law.

## Disclaimer of Liability and Warranty

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM OR IN CONNECTION WITH THE SOFTWARE OR THE USE OF THE SOFTWARE FOR CREATING AUDIO ASSETS.

This license ensures that all rights are reserved while allowing musicians limited rights to create commercial Audio Assets from the Software.