Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full remediation #55

Merged
merged 38 commits into from
Dec 23, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
33efc53
Update README
SubhadeepJasu Nov 24, 2021
079926c
Update license header on all files to use SPDX
SubhadeepJasu Nov 24, 2021
37b42a9
Restructure code pass 1
SubhadeepJasu Nov 24, 2021
810a4a4
Core and Shell Separation pass 2
SubhadeepJasu Nov 25, 2021
0dde7d5
Remediation pass 3
SubhadeepJasu Nov 25, 2021
a1ba838
Remediation Pass 4
SubhadeepJasu Nov 25, 2021
4f18ef1
Remediaion Pass 5
SubhadeepJasu Nov 26, 2021
d8511e7
LInt
SubhadeepJasu Nov 26, 2021
576b416
LInt
SubhadeepJasu Nov 26, 2021
24e9b85
Fixed out of bound memory access in registry memory
SubhadeepJasu Nov 26, 2021
3361eeb
Make Display css
SubhadeepJasu Nov 29, 2021
7b0e813
Improve keyboard top panel layout
SubhadeepJasu Nov 29, 2021
4075702
Improve keyboard layout
SubhadeepJasu Nov 29, 2021
35bb0b1
Remediation pass 6
SubhadeepJasu Nov 30, 2021
56dc3dc
Make Display theme preview
SubhadeepJasu Nov 30, 2021
af77c72
Add elementary Light Display Theme
SubhadeepJasu Dec 1, 2021
871e4d7
Add elementary Dark Stylesheet
SubhadeepJasu Dec 1, 2021
5899f91
Fix elementary Light text color
SubhadeepJasu Dec 3, 2021
c21a28c
Rearrange all core files
SubhadeepJasu Dec 16, 2021
5691863
Rearrange everything
SubhadeepJasu Dec 19, 2021
2300ed9
FIx wrong size of style time stamp array (IDK how I made this mistake)
SubhadeepJasu Dec 19, 2021
1585dad
Remove synth index
SubhadeepJasu Dec 19, 2021
8a0558a
Make preference an actual dialog instead of hdy window
SubhadeepJasu Dec 19, 2021
c1c41a3
more code quality improvements
SubhadeepJasu Dec 19, 2021
6a34ef6
Add ability to stop all visualization
SubhadeepJasu Dec 19, 2021
808c265
Add Jack audio driver support
SubhadeepJasu Dec 20, 2021
c8719d0
Fix global reverb and chorus levels
SubhadeepJasu Dec 20, 2021
ea01c4b
Fix layout for HiDPI
SubhadeepJasu Dec 21, 2021
07c6d97
Fix recorder timing issue
SubhadeepJasu Dec 22, 2021
0da856c
Use g-object style construction
SubhadeepJasu Dec 22, 2021
8fca1a6
Make knobs and dials more reliable, update fluidsynth version
SubhadeepJasu Dec 22, 2021
630d137
Lint
SubhadeepJasu Dec 22, 2021
8b99c9f
Merge pull request #58 from SubhadeepJasu/synth_unification
SubhadeepJasu Dec 22, 2021
194eaee
Implement tempo tapper
SubhadeepJasu Dec 22, 2021
14deea7
Implement stop and sustain
SubhadeepJasu Dec 22, 2021
b69091e
Remove synth index from channel modulation screen
SubhadeepJasu Dec 23, 2021
2d0d2ee
Bump version to 0.0.17
SubhadeepJasu Dec 23, 2021
721e8e9
Use elementary Flatpak Platform 6.1
SubhadeepJasu Dec 23, 2021
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
29 changes: 21 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,51 +45,64 @@ You can install Ensembles by compiling it from source, here's a list of required
- `io.elementary.Platform>=6` (flatpak)
- `io.elementary.Sdk>=6` (flatpak)
- `elementary-sdk`
- `gtk+-3.0>=3.18`
- `granite>=5.3.0`
- `gtk+-3.0>=3.24`
- `granite>=6.1.2`
- `glib-2.0`
- `gobject-2.0`
- `meson`
- `libhandy-1`
- `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
**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)*

**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)*
**_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
The software does require quite a lot of CPU power. 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:
You can tweak audio settings in Ensembles and select one of the two drivers (**Alsa** or **PulseAudio**). 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.

## Plug-In Development
Ensembles will have support for sampled voice, voice synthesis and DSP plug-ins. Plug-ins may support their own UI which can be accessed from within Ensembles. You can create plug-ins and distribute them over Flathub or elementary OS AppCenter.
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 from 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.
Expand Down
6 changes: 3 additions & 3 deletions com.github.subhadeepjasu.ensembles.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
app-id: com.github.subhadeepjasu.ensembles
runtime: io.elementary.Platform
runtime-version: '6'
runtime-version: '6.1'
sdk: io.elementary.Sdk
command: com.github.subhadeepjasu.ensembles
finish-args:
Expand Down Expand Up @@ -138,8 +138,8 @@ modules:
- '*.so'
sources:
- type: archive
url: https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v2.2.1.tar.gz
sha256: 1c56660f23f6c406b36646cc619fc2d2a5265d1d3290e79bcef4505bcd985fdd
url: https://github.com/FluidSynth/fluidsynth/archive/v2.2.4.tar.gz
sha256: 83cb1dba04c632ede74f0c0717018b062c0e00b639722203b23f77a961afd390

# MIDI controller support
- name: portmidi
Expand Down
7 changes: 3 additions & 4 deletions data/Images/ensembles_splash.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading