All Projects → SubhadeepJasu → Ensembles

SubhadeepJasu / Ensembles

Licence: other
A digital arranger workstation powered by FluidSynth

Programming Languages

vala
323 projects
c
50402 projects - #5 most used programming language
CSS
56736 projects
Meson
512 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ensembles

NegativeHarmonizer
A python tool to invert the tonality (a.k.a negative harmony) of midi notation
Stars: ✭ 23 (-92.63%)
Mutual labels:  midi, music-composition
cl-patterns
Library for writing patterns to generate or process (a)musical sequences of mathematically (un)related (non-)compound values in Lisp.
Stars: ✭ 62 (-80.13%)
Mutual labels:  midi, music-composition
midica
A Music programming language. Translates source code into MIDI. Includes a player. Supports MIDI-Karaoke. Includes a MIDI analyzer.
Stars: ✭ 57 (-81.73%)
Mutual labels:  midi, music-composition
melrose
interactive programming of melodies, producing MIDI
Stars: ✭ 130 (-58.33%)
Mutual labels:  midi, music-composition
Zrythm
a highly automated and intuitive digital audio workstation - official mirror
Stars: ✭ 703 (+125.32%)
Mutual labels:  midi, music-composition
Textbeat
🎹 plaintext music sequencer and midi shell, with vim playback 🥁
Stars: ✭ 274 (-12.18%)
Mutual labels:  midi, music-composition
python-twelve-tone
🎶 12-tone matrix to generate dodecaphonic melodies 🎶
Stars: ✭ 68 (-78.21%)
Mutual labels:  midi, music-composition
Miti
miti is a musical instrument textual interface. Basically, its MIDI, but with human-readable text. 🎵
Stars: ✭ 103 (-66.99%)
Mutual labels:  midi, music-composition
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+92.31%)
Mutual labels:  midi, music-composition
Mezzo
A Haskell library for typesafe music composition
Stars: ✭ 327 (+4.81%)
Mutual labels:  midi, music-composition
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (+189.42%)
Mutual labels:  midi, music-composition
Helio Workstation
One music sequencer for all major platforms, desktop and mobile
Stars: ✭ 2,257 (+623.4%)
Mutual labels:  midi, music-composition
Midir
Cross-platform realtime MIDI processing in Rust.
Stars: ✭ 221 (-29.17%)
Mutual labels:  midi
Usb Midi Driver
USB MIDI Driver for Android 3.1 or later
Stars: ✭ 244 (-21.79%)
Mutual labels:  midi
Minis
Minis: MIDI Input for New Input System -- A plugin that adds MIDI input support to Unity's new Input System
Stars: ✭ 214 (-31.41%)
Mutual labels:  midi
Moppy2
The evolution of the Musical flOPPY controller
Stars: ✭ 207 (-33.65%)
Mutual labels:  midi
Pedalino
Smart wireless MIDI foot controller for guitarists and more.
Stars: ✭ 105 (-66.35%)
Mutual labels:  midi
Midianimationtrack
SMF (.mid) file importer for Unity Timeline
Stars: ✭ 243 (-22.12%)
Mutual labels:  midi
Isobar
A Python library for creating and manipulating musical patterns, designed for use in algorithmic composition, generative music and sonification. Can be used to generate MIDI events, MIDI files, OSC messages, or custom events.
Stars: ✭ 207 (-33.65%)
Mutual labels:  midi
Drywetmidi
.NET library to read, write, process MIDI files and to work with MIDI devices
Stars: ✭ 204 (-34.62%)
Mutual labels:  midi

Musical Performance Arranger Workstation

Ensembles is a realtime musical performance arranger app. Its built using Vala and Gtk, powered by Fluidsynth. Ensembles is different from other DAW (Digital Audio Workstations) in the fact that the focus here is on live performance.

elementary flatpak build status

All Contributors


The main features:

  • Play any instrument from a selection of more than 200 in-built voices
  • 60-Key on-screen keyboard with mouse and touch support
  • Split Keyboard or Layer two voices for multiple voice playback
  • DSP (Digital Signal Processing) effects like filters, reverb and chorus
  • Assign knobs and sliders to multiple DSP effects along with a Master Knob which can be used to control multiple knobs and sliders
  • Touch based on-screen assignable joystick
  • Play a one-person band along with a Auto Accompaniment Style from over 100 [WIP] built-in styles based on various genres of music
  • Automate your band with Registration Memory
  • Record and play audio files using 12 assignable Sampling Pads
  • Record your playback in a multitrack recorder (10 tracks)
  • Play MIDI files using the inbuilt synthesizer
  • Connect to external MIDI keyboard/controller with General MIDI Standard compatibility

⚠️ Ensembles is in early development and not ready for production just yet ⚠️

However, feel free to test it early

Get it on elementary OS Appcenter

Get it on AppCenter

Install from source

You can install Ensembles by compiling it from source, here's a list of required dependencies:

  • io.elementary.Platform>=6 (flatpak)
  • io.elementary.Sdk>=6 (flatpak)
  • elementary-sdk
  • gtk+-3.0>=3.24
  • granite>=6.1.2
  • glib-2.0
  • gobject-2.0
  • meson
  • libhandy-1>=1.2
  • json-glib-1.0>=1.4.4
  • lv2
  • lilv-0
  • suil-0
  • fluidsynth>=2.2.1
  • portmidi

Clone repository and change directory

git clone https://github.com/SubhadeepJasu/ensembles.git
cd ensembles

Compile, install using flatpak and start Ensembles on your system (Recommended)

flatpak-builder build  com.github.subhadeepjasu.ensembles.yml --user --install --force-clean
flatpak run com.github.subhadeepjasu.ensembles

OR using meson (Requires GIT-LFS)

meson _build --prefix=/usr
cd _build
sudo ninja install
com.github.subhadeepjasu.ensembles

Don't forget to also install the soundfont from https://gitlab.com/SubhadeepJasu/ensemblesgmsoundfont, if you are doing meson build

Realtime Audio Performance

You can tweak audio settings in Ensembles and select one of the three drivers (Alsa, PulseAudio or Jack). Increasing buffer size will reduce system load but too much increase in buffer-size may also cause sounds to go out of sync. So, feel free to tinker a little until you find your sweet spot in terms of performance.

Even after all that, while using PulseAudio, if you notice bad delay or stuttering audio, launch the app from terminal; check to see if there is any error messages stating that fluidsynth was unable to set realtime priority. In that case, edit the file- /etc/security/limits.conf and add the following lines:

@audio   -  rtprio      90
@audio   -  memlock     unlimited

The problem currently usually happens with the flatpak version.

PipeWire support is planned and Ensembles will detect if you have it installed and it will modify the PulseAudio driver settings internally to better utilise PipeWire-Pulse if that is available.

Jack is also an option but it currently only works from outside the flatpak soundbox, ie. when you compile it natively.

Discussions

If you want to ask any questions or provide feedback, you can make issues in this repository or use the discussions section of this repository.

Contributing

Feel free to send pull requests to this repository with your code, or other types of assets like soundfont voices, style files, etc. Soundfont in this repo is no longer updated and its available in a different repository https://gitlab.com/SubhadeepJasu/ensemblesgmsoundfont due to LFS concerns. Refrain from using copyrighted melodies or copyrighted sounds without proper license.

Plug-In Development

Ensembles will have support for effects and instrument plug-ins. Plug-ins may support their own UI which can be accessed from within Ensembles. There is partial support for LV2 plug-ins and it will be while before that is fleshed out properly. You can create plug-ins and distribute them over Flathub or elementary OS AppCenter, provided they follow the usual standards.

External Files

Ensembles supports creation and distribution of external soundfonts (SF2), style files and MIDI recordings. External content can be placed in special folders in user's document folder. Style files in other formats like STY, AC7, etc. are not compatible with Ensembles. Ensembles has its own style format ENSTL, check out styles Readme file in your documents folder for style specifications (Check: https://github.com/SubhadeepJasu/Ensembles/blob/master/data/Styles/README.md). External MIDI recordings may have reserved copyrights. Styles used in this alpha often use copyrighted melodies and chords (Check copyright notice in the rg files). They are due to be changed to public domain melodies or original composition, before the final release when the app will actually be commercially available in AppCenter and Flathub.

Contributors

Thanks goes to these wonderful people (emoji key):


Subhadeep Jasu

🎨 💻 📖

Ryo Nakano

💻

Darshak Parikh

💻 📖

Micah Ilbery

🎨

Newbyte

📖

Hedron Digital

📓

benpocalypse

📓

Nathan Bonnemains

💻 🌍

This project follows the all-contributors specification. Contributions of any kind welcome!



License: GNU GPLv3
Certain components like soundfonts and styles have their own Licensing
SoundFont(R) is a registered trademark of E-mu Systems, Inc.
Ensembles © Copyright 2021-2022 Subhadeep Jasu
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].