{"id":14007276,"url":"https://github.com/ensemblesaw/ensembles-app","last_synced_at":"2025-07-24T01:31:27.462Z","repository":{"id":37610549,"uuid":"277270789","full_name":"ensemblesaw/ensembles-app","owner":"ensemblesaw","description":"A digital arranger workstation powered by FluidSynth","archived":false,"fork":false,"pushed_at":"2024-06-24T16:29:00.000Z","size":11812,"stargazers_count":320,"open_issues_count":16,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-06-24T19:37:55.210Z","etag":null,"topics":["arranger","elementary-os","hacktoberfest","midi","music","music-composition","workstation"],"latest_commit_sha":null,"homepage":"","language":"Vala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ensemblesaw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-07-05T09:35:48.000Z","updated_at":"2024-06-24T19:37:55.211Z","dependencies_parsed_at":"2023-12-13T20:05:19.639Z","dependency_job_id":null,"html_url":"https://github.com/ensemblesaw/ensembles-app","commit_stats":null,"previous_names":["ensemblesaw/ensembles-app","subhadeepjasu/ensembles"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ensemblesaw%2Fensembles-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ensemblesaw%2Fensembles-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ensemblesaw%2Fensembles-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ensemblesaw%2Fensembles-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ensemblesaw","download_url":"https://codeload.github.com/ensemblesaw/ensembles-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":214780402,"owners_count":15783765,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arranger","elementary-os","hacktoberfest","midi","music","music-composition","workstation"],"created_at":"2024-08-10T10:01:57.923Z","updated_at":"2024-08-10T10:04:11.320Z","avatar_url":"https://github.com/ensemblesaw.png","language":"Vala","funding_links":[],"categories":["Vala"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"data/Images/Logo.svg\" height=\"128\"\u003e\n  \u003c/div\u003e\n  \u003chr\u003e\n  \u003cdiv align=\"center\"\u003e\n    \u003cb\u003eMusical Performance Arranger Workstation\u003c/b\u003e\n    \u003cbr\u003e\n    \u003cimg src=\"screenshots/Screenshot.png\" width=\"500\"\u003e\n  \u003c/div\u003e\n  \u003cbr\u003e\n\u003c/div\u003e\nEnsembles 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.\n\n![elementary flatpak build status](https://github.com/SubhadeepJasu/Ensembles/actions/workflows/ci.yml/badge.svg)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n\u003cbr\u003e\n\n## The main features:\n\n* Play any instrument from a selection of more than 200 in-built voices\n* 60-Key on-screen keyboard with mouse and touch support\n* Split Keyboard or Layer two voices for multiple voice playback\n* DSP (Digital Signal Processing) effects like filters, reverb and chorus\n* Assign knobs and sliders to multiple DSP effects along with a Master Knob which can be used to control multiple knobs and sliders\n* Touch based on-screen assignable joystick\n* Play a one-person band along with a Auto Accompaniment Style from over 100 [WIP] built-in styles based on various genres of music\n* Automate your band with Registration Memory\n* Record and play audio files using 12 assignable Sampling Pads\n* Record your playback in a multitrack recorder (10 tracks)\n* Play MIDI files using the inbuilt synthesizer\n* Connect to external MIDI keyboard/controller with General MIDI Standard compatibility\n\n⚠️ **Ensembles is in early development and not ready for production just yet** ⚠️\n\nHowever, feel free to test it early\n## Get it on elementary OS Appcenter\n[![Get it on AppCenter](https://appcenter.elementary.io/badge.svg)](https://appcenter.elementary.io/com.github.subhadeepjasu.ensembles/)\n\n## Install from source\nYou can install Ensembles by compiling it from source, here's a list of required dependencies:\n - `io.elementary.Platform\u003e=6` (flatpak)\n - `io.elementary.Sdk\u003e=6` (flatpak)\n - `elementary-sdk`\n - `gtk+-3.0\u003e=3.24`\n - `granite\u003e=6.1.2`\n - `glib-2.0`\n - `gobject-2.0`\n - `meson`\n - `libhandy-1\u003e=1.2`\n - `json-glib-1.0\u003e=1.4.4`\n - `lv2`\n - `lilv-0`\n - `suil-0`\n - `fluidsynth\u003e=2.2.1`\n - `portmidi`\n\n**Clone repository and change directory**\n```\ngit clone https://github.com/SubhadeepJasu/ensembles.git\ncd ensembles\n```\n\n**Compile, install using flatpak and start Ensembles on your system** *(Recommended)*\n```\nflatpak-builder build  com.github.subhadeepjasu.ensembles.yml --user --install --force-clean\nflatpak run com.github.subhadeepjasu.ensembles\n\n```\n**_OR_ using meson** *(Requires GIT-LFS)*\n\n```\nmeson _build --prefix=/usr\ncd _build\nsudo ninja install\ncom.github.subhadeepjasu.ensembles\n```\nDon't forget to also install the soundfont from https://gitlab.com/SubhadeepJasu/ensemblesgmsoundfont, if you are doing meson build\n\n## Realtime Audio Performance\nYou 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.\n\nEven 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:\n```\n@audio   -  rtprio      90\n@audio   -  memlock     unlimited\n```\n\nThe problem currently usually happens with the flatpak version.\n\n**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.\n\n**Jack** is also an option but it currently only works from outside the flatpak soundbox, ie. when you compile it natively.\n\n## Discussions\nIf you want to ask any questions or provide feedback, you can make issues in this repository or use the discussions section of this repository.\n\n## Contributing\nFeel 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.\n\n## Plug-In Development\nEnsembles 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.\n\n## External Files\nEnsembles 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.\n\n\n## Contributors\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://subhadeepjasu.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/20795161?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSubhadeep Jasu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-SubhadeepJasu\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=SubhadeepJasu\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=SubhadeepJasu\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://ryonakano.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26003928?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRyo Nakano\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=ryonakano\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://proseandconst.xyz/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/8205055?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eDarshak Parikh\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=dar5hak\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=dar5hak\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://micahilbery.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/10608836?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMicah Ilbery\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-micahilbery\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Newbytee\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4428753?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNewbyte\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=Newbytee\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://digital.hedronmx.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/26935602?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHedron Digital\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-Hedronmx\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/benpocalypse\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6274196?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ebenpocalypse\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#userTesting-benpocalypse\" title=\"User Testing\"\u003e📓\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/NathanBnm\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/45366162?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eNathan Bonnemains\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/SubhadeepJasu/Ensembles/commits?author=NathanBnm\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#translation-NathanBnm\" title=\"Translation\"\u003e🌍\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n\u003cbr\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003csup\u003e\u003cb\u003eLicense\u003c/b\u003e: GNU GPLv3\u003c/sup\u003e\n\u003cbr\u003e\n\u003csup\u003eCertain components like soundfonts and styles have their own Licensing\u003c/sup\u003e\n\u003cbr\u003e\n\u003csup\u003eSoundFont(R) is a registered trademark of E-mu Systems, Inc.\u003c/sup\u003e\n\u003cbr\u003e\n\u003csup\u003eEnsembles © Copyright 2021-2022 Subhadeep Jasu\u003c/sup\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fensemblesaw%2Fensembles-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fensemblesaw%2Fensembles-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fensemblesaw%2Fensembles-app/lists"}