-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First release of breath expression soundfont. Version 0.0.1
- Loading branch information
1 parent
242cf06
commit 84939f9
Showing
6 changed files
with
560 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,88 @@ | ||
# ExpresionSoundFont | ||
Sound Font with expression for use with MIDI wind controllers | ||
# Breath_Expression.sf2 | ||
|
||
**Version 0.0.1** | ||
|
||
--- | ||
|
||
|
||
This SoundFont works well with a MIDI Wind Controller (an Electronic Wind Instrument) | ||
that uses the breath controller #2 (CC2) to set the level of the sound. | ||
|
||
> WARNING: This soundfont will not normally work with standard MIDI keyboards | ||
or respond to a MIDI file unless the MIDI breath controller (CC2) is used. | ||
|
||
## Download | ||
|
||
This soundfont is too large to be included as part of the source code in this GitHub repository | ||
but it is provided on the GitHUb release page. see: https://github.com/louis-barman/breath-expression-soundfont/releases | ||
|
||
|
||
## About | ||
|
||
This soundfont is based on the **MuseScore_General_Full** SoundFont that is | ||
provided in the **musescore-general-soundfont-lossless** package on Debian (Linux). | ||
This soundfont uses all the expression patches that were added to support | ||
Single-Note Dynamics available in MuseScore >3.2. | ||
As these expression patches all use the breath controller (CC2) they also | ||
work very well with a MIDI Wind instrument. | ||
|
||
To reduce the size of this soundfont it has been reorganised by removing all | ||
General MIDI patches leaving just the expression patches which have been | ||
renumbered and moved to bank 0. | ||
|
||
## MIDI Wind Controller setup | ||
|
||
When using a MIDI Wind Controller it is recommended that fluidsynth 2.x | ||
is used and that MIDI Mono (Monophonic mode) is turned on using Control Change #126 | ||
(CC126). There is a noticeable improvement in the quality of some of | ||
the sounds with MIDI Mono On which causes the ADSR volume envelopes to be improved | ||
when playing legato. | ||
|
||
This soundfont has been tested using FluidSynth version 2.1.1 and the WARBL | ||
MIDI Wind Controller. For the WARBL set Expression to "Send Pressure as CC" | ||
using CC2 for the breath pressure sensor output. | ||
|
||
## Expressive Presets | ||
|
||
The dynamics of these presets are controlled using MIDI Control Change #2 (CC2), | ||
allowing fluid crescendos and diminuendos while a note is being held. This makes | ||
for much more realistic expression of strings, brass, woodwinds, etc. Note velocity | ||
no longer controls dynamics in these presets, but in some instruments, velocity will | ||
have some effect on the speed of the note attack. In MuseScore, the default (and ideal) | ||
behaviour is for expressive instruments to have their dynamics controlled by sending | ||
identical values to both CC2 and note velocity (the latter only during note-on, naturally). | ||
|
||
|
||
## SoundFont Compatibility | ||
|
||
**Breath_Expression** makes full use of SoundFont 2.01 specification modulators | ||
(particularly in the newer instruments) and requires a player/sampler with robust | ||
support for the standard. To my knowledge, the only SoundFont players that can | ||
accurately play this SoundFont are: | ||
|
||
* [MuseScore](https://musescore.org) | ||
* [FluidSynth](http://www.fluidsynth.org/) | ||
* [Sobanth VSTi](https://blog.rosseaux.net/page/e5ca75d98990e33b31dadc78a8df1333/Sobanth) | ||
* Sound Blaster Audigy/Audigy2 hardware SoundFont synth (probably X-Fi as well) | ||
|
||
The only SoundFont editors that can play this SoundFont correctly are: | ||
|
||
* Creative Vienna SoundFont Studio (requires Sound Blaster or E-MU hardware synth with SoundFont 2.01 modulator support) | ||
* [SWAMI](http://www.swamiproject.org/) (uses FluidSynth) | ||
|
||
|
||
## Breath Expression Requirements | ||
|
||
There are some different requirements when adding a new instrument or editing | ||
an existing one when designing them to be used with a MIDI Wind Controller: | ||
|
||
* It is much better to have sound samples without any vibrato because the player | ||
can control the amount of vibrato using their breath. | ||
* Be aware that a MIDI wind instrument may generate very short transient | ||
MIDI notes. This is because the players fingers may not open or | ||
close all the keys at exactly the same time when moving to another note. | ||
The soundfont should be setup to handle these short transient MIDI notes without | ||
introducing any unwanted sounds (pops or squeaks). | ||
* When two notes are played legato on a monophonic wind instrument the | ||
first note does not need to have a decay and the second note does not need | ||
to have an attack so that the sound flows smoothly between the two notes. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
This Breath_Expression SoundFont uses the same licence as | ||
the MuseScore_General_HQ SoundFont which is reproduce below. | ||
|
||
|
||
Licence: | ||
|
||
MuseScore_General_HQ SoundFont | ||
|
||
Original Stereo version (Fluid (R3) SoundFont) | ||
Copyright © 2000-2002, 2008 Frank Wen <[email protected]> | ||
Inclusion into Debian derivatives © 2008 Toby Smithe | ||
Debian packaging © 2018-2020 mirabilos <[email protected]> | ||
|
||
Temple Blocks instrument Copyright © 2002 Ethan Winer | ||
Drumline Cymbals (MIT) Copyright © 2016 Michael Schorsch | ||
|
||
Fluid (R3) Mono GM SoundFont Copyright © 2014-2017 Michael Cowgill | ||
|
||
Splendid Grand piano from AKAI S5000 (verified Public Domain) | ||
|
||
Ensemble strings from Versilian Studios Chamber Orchestra (VSCO) 2.1.1 | ||
Community Edition (CC0) by Sam Gossner, Simon Dalzell, Elan Hickler/Soundemote | ||
|
||
Marching Cymbals: open crash samples from Versilian Community Sample Library | ||
https://github.com/sgossner/VCSL (CC0) by Sam Gossner | ||
|
||
MuseScore Drumline (MDL) samples (CC0) by S. Christian Collins & Amir Oosman | ||
|
||
Adaptation for MuseScore_General Copyright © 2018-2020 S. Christian Collins | ||
|
||
Fluid was constructed in part from samples found in the public | ||
domain that I [Frank Wen] edited/cleaned/remixed/programmed and | ||
largely from recordings of my own and in conjunction with the | ||
people below who helped along the way: Suren M. Seron, | ||
Scott Hanan, Steve Aupperle, Chris Gillman, Alex Taubr, | ||
Chris Prola, Andrew Klenk, Winfried Hubbe, Dylan, Tim, Gort, | ||
Uros Katic, Ethan Winer (http://www.ethanwiner.com) | ||
|
||
Permission is hereby granted, free of charge, to any person | ||
obtaining a copy of this software and associated documentation | ||
files (the "Software"), to deal in the Software without | ||
restriction, including without limitation the rights to use, | ||
copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the | ||
Software is furnished to do so, subject to the following | ||
conditions: | ||
|
||
The above copyright notice and this permission notice shall be | ||
included in all copies or substantial portions of the Software. | ||
|
||
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, | ||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
OTHER DEALINGS IN THE SOFTWARE. |
1 change: 1 addition & 0 deletions
1
original-musescore-docs/.~lock.MuseScore_General_HQ_Sample_Sources.csv#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
,louis,rocket-spin,09.07.2021 17:30,file:///home/louis/.config/libreoffice/4; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
# MuseScore_General_HQ.sf2 | ||
|
||
**Version 0.1.9** | ||
|
||
--- | ||
|
||
Please see **MuseScore_General_HQ_License.md** for authorship and license information. | ||
|
||
The purpose of this README is to provide useful information on instruments contained within MuseScore_General_HQ. It is currently a work-in-progress. | ||
|
||
## About | ||
|
||
This is a fork of FluidR3Mono_GM.sf2, with many samples (eventually) being replaced and/or reprogrammed. The SoundFont is currently a work-in-progress. Detailed information on presets and sample sources used can be found in "MuseScore_General_HQ_Sample_Sources.csv". All instruments without attribution are still using samples from FluidR3Mono. | ||
|
||
## SoundFont Compatibility | ||
|
||
**MuseScore_General_HQ** makes full use of SoundFont 2.01 specification modulators (particularly in the newer instruments) and requires a player/sampler with robust support for the standard. To my knowledge, the only SoundFont players that can accurately play this SoundFont are: | ||
|
||
* [MuseScore](https://musescore.org) | ||
* [FluidSynth](http://www.fluidsynth.org/) | ||
* [Sobanth VSTi](https://blog.rosseaux.net/page/e5ca75d98990e33b31dadc78a8df1333/Sobanth) | ||
* Sound Blaster Audigy/Audigy2 hardware SoundFont synth (probably X-Fi as well) | ||
|
||
The only SoundFont editors that can play this SoundFont correctly are: | ||
|
||
* Creative Vienna SoundFont Studio (requires Sound Blaster or E-MU hardware synth with SoundFont 2.01 modulator support) | ||
* [SWAMI](http://www.swamiproject.org/) (uses FluidSynth) | ||
|
||
## Presets | ||
|
||
### General MIDI Presets | ||
|
||
**MuseScore_General_HQ** is compatible with the [General MIDI standard](https://en.wikipedia.org/wiki/General_MIDI) with some additional presets from the [Roland GS standard](https://en.wikipedia.org/wiki/Roland_GS) as well. | ||
|
||
### Fluid r3 Additional Drum Kits | ||
|
||
Additional drum kits have been inherited from **Fluid r3**, beyond the kits specified in the [Roland GS standard](https://en.wikipedia.org/wiki/Roland_GS). It is possible that some of these kits will be removed in the future when new drum samples are added. | ||
|
||
### Instrument Variations | ||
|
||
In addition to the General MIDI presets, further instrument variations can be found on banks 20 and above, utilizing identical preset numbers so that General MIDI preset fallback can occur if ever the instrument becomes no longer available on the higher bank number. In other words, if you have a track assigned to bank #40, preset #48 "Celli Fast", then try to play it using a different General MIDI device or SoundFont, the preset will fall back to bank #0, preset #48 "Fast Strings" instead, and playback will at least sound somewhat correct. | ||
|
||
### MuseScore Marching Percussion | ||
|
||
The following marching percussion presets exist in the percussion bank (bank 128): | ||
* 56: Marching Snare | ||
* 57: OldMarchingBass | ||
* 58: Marching Cymbals | ||
* 59: Marching Bass | ||
* 95: OldMarchingTenor | ||
* 96: Marching Tenor | ||
|
||
These presets are used for marching percussion support in MuseScore and do not conform to GM layout. | ||
|
||
### Expressive Presets | ||
|
||
As of version 0.1.5, **MuseScore_General_HQ** features expressive variants of all sustained presets, indicated by "Expr." at the end of the preset name. The dynamics of these presets are controlled using MIDI Control Change #2 (CC2), allowing fluid crescendos and diminuendos while a note is being held. This makes for much more realistic expression of strings, brass, woodwinds, etc. Note velocity no longer controls dynamics in these presets, but in some instruments, velocity will have some effect on the speed of the note attack. In MuseScore, the default (and ideal) behavior is for expressive instruments to have their dynamics controlled by sending identical values to both CC2 and note velocity (the latter only during note-on, naturally). | ||
|
||
The expressive presets exist on higher bank numbers but use the same preset number as their non-expressive defaults. You can see what bank numbers the expressive presets use in column #2 ("Expr. Bank #") of the included **MuseScore_General_HQ_Sample_Sources.csv** file. The general rule is as follows: | ||
|
||
* Bank 0 expressive presets are on Bank 17 | ||
* Bank 8 expressive presets are on Bank 18 | ||
* Bank 20-126 expressive presets are one bank higher (e.g., Bank 20 Expr. presets are on Bank 21) | ||
|
||
### VSCO2 Ensemble Strings | ||
|
||
**MuseScore_General_HQ** features an ensemble strings library based on samples from [VSCO 2.1.1 Community Edition](http://vis.versilstudios.net/vsco-community.html). This library includes unique sections for Violins, Violins 2, Violas, Celli and Basses, the presets for which can be found on banks 20-32. The bank:preset arrangement is such that proper GM fallback can occur (e.g., if a user selects "020:048 Violins Fast" for a staff but plays the score back later using a different SoundFont, they will hear the fallback preset "000:048 Strings Fast" instead). The default GM strings presets on bank 0 offer a more homogenized sound, with the Violins, Violas, Celli and Basses spread across the entire key range. | ||
|
||
Each instrument section contains the following articulations: | ||
|
||
* **Fast:** Sustained notes with fast attack | ||
* **Slow:** Sustained notes with slow attack | ||
* **Tremolo:** Tremolo, sustained notes | ||
* **Pizzicato:** Plucked strings | ||
|
||
The default sustained articulation for use in MuseScore should be "Fast", so that notes in fast passages will be audible. "Slow" can be used where a more lyrical tone is desired. | ||
|
||
Some additional articulations have been created, but are not yet included in **MuseScore_General_HQ**: | ||
|
||
* **CC2:** Sustained with note volume & tone controlled by CC2, and note attack controlled by key velocity | ||
* **Staccato:** Short bowstrokes | ||
* **Trem CC2:** Tremolo, sustained with note volume & tone controlled by CC2 | ||
|
||
The Staccato presets will only be added if there are enough SoundFont instrument generators left after upgrading all of the other instrument samples, potentially along with second viola and cello sections as well. The "CC2" presets cannot currently be used by MuseScore, but future versions may be able to incorporate a fluid expression mode (e.g., crescendo on a single note). I am designing all of the new expressive instruments to be able to support this feature. See: https://www.youtube.com/watch?v=TlhB6RBWIJA. Any developers wishing to implement such support in MuseScore should contact me, [S. Christian Collins](mailto:[email protected]), for details. | ||
|
||
#### Preset List (bank:preset) | ||
|
||
- 000:044 - Strings Tremolo | ||
- 000:045 - Strings Pizzicato | ||
- 000:048 - Strings Fast | ||
- 000:049 - Strings Slow | ||
- 020:044 - Violins Tremolo | ||
- 020:045 - Violins Pizzicato | ||
- 020:048 - Violins Fast | ||
- 020:049 - Violins Slow | ||
- 025:044 - Violins2 Tremolo | ||
- 025:045 - Violins2 Pizzicato | ||
- 025:048 - Violins2 Fast | ||
- 025:049 - Violins2 Slow | ||
- 030:044 - Violas Tremolo | ||
- 030:045 - Violas Pizzicato | ||
- 030:048 - Violas Fast | ||
- 030:049 - Violas Slow | ||
- 040:044 - Celli Tremolo | ||
- 040:045 - Celli Pizzicato | ||
- 040:048 - Celli Fast | ||
- 040:049 - Celli Slow | ||
- 050:044 - Basses Tremolo | ||
- 050:045 - Basses Pizzicato | ||
- 050:048 - Basses Fast | ||
- 050:049 - Basses Slow | ||
|
||
#### Additional Details | ||
|
||
* Each instrument's tone changes gradually across the entire velocity range. VSCO2 only provides samples at two dynamic levels (in some cases only one), so the samples use pseudo-crossfading to provide a smooth transition from PP to FF. | ||
* The second violin section ("Violins2") uses the same samples as the first, but they are manipulated using sample offset and other tricks so that they can play in unison with the first section without the usual sample doubling effect. | ||
* Realtime sample manipulation is performed to achieve variable note attacks for each instrument group. The violin samples, for example, all have a slow attack, so I used sample offset and layering of the staccato samples to create a faster attack for the "Violins Fast" preset. Doing this without sounding artificial is *extremely* difficult, but I think I have it about as realistic as possible using these samples. As with any orchestral sample library, a good reverb plugin will help everything sound more natural. | ||
* I have made many changes to the original VSCO2 samples, including: | ||
* All samples were normalized. | ||
* Loops were created for all sustained and tremolo samples. | ||
* Created new timestretched samples to extend the upper range of all instruments (particularly needed for the violins). | ||
* There was no bass section in the VSCO 2 samples (only solo contrabass), so I combined solo bass samples to create a small section. | ||
* Many noises have been removed/reduced (scrapes, bangs, notes from instrument in neighboring room). | ||
* Pitch drift on some samples has been fixed. |
Oops, something went wrong.