dingram/jsmidgen

[feature request] - jsmidgen - idea for a project based in jsmidgen (automatic music generation)

Opened this issue · 0 comments

Core Concept

  • Develop an AI system with a sophisticated understanding of music theory, akin to ChatGPT's language capabilities. This system aims to generate jsmidgen files, providing a formalized musical dialogue, which can themselves generat musescore projects that can be rendered with c++ and cuda or otherwise rendered in real time

Objectives

  • Create an abstraction layer, inspired by ChatGPT, to express complex musical ideas and generate cascades of Musescore files.
  • Extend functionality beyond mere MIDI files, enabling the creation of intricate compositions using jsmidgen.
  • Implement CUDA and C++ for efficient rendering, allowing the generation of an extensive library of high-quality music files.

Problem Statement

  • The challenge lies in formalizing intricate musical concepts and leveraging an abstraction layer similar to ChatGPT. The goal is to produce an abundance of Musescore files using jsmidgen and efficiently render them with CUDA and C++.

Previous Work

  • Grounding upon Algorrithmic Composition thought coming from a rich history of AI experiments in music creation, spanning from early Koenig and Xenakis to the thoguht of Bach Palestrina and Guillaume de Machaut.

Contextual Relevance

  • Addressing the increasing demand for automated tools capable of generating vast amounts of music, particularly for virtual reality, augmented reality, mixed reality, and hybrid reality systems.

Fascinating Additional Insights

  • Integration flexibility extends across diverse environments, encompassing Unity, Unreal Engine, Cryengine, Godot, Processing, OpenFrameworks, Cinder, P5Js, Threejs, and more.
  • Seamless binding capabilities to a wide array of programming languages including C++, Java, Python, Nodejs, Ruby on Rails, Bash, PowerShell, and others.
  • Compatibility extends to music-oriented platforms such as Ableton, MaxMSP, Puredata, Csound, and Supercollider.
    The system's adaptability is highlighted by its capacity to be invoked through system commands, making it applicable across an extensive range of language libraries and framework APIs.