Skip to content

Commit 68ca672

Browse files
committed
fix: various tweaks to my pianobook mappings to streamline them
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
1 parent 5f56365 commit 68ca672

23 files changed

+485
-271
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<control>
2+
default_path=flac/
3+
#define $EXT flac
4+
#include "data/control.sfz"
5+
6+
<global>
7+
#include "data/global.sfz"
8+
9+
<group>
10+
sw_last=24
11+
#include "data/Grumpy-Phili-8-V13.sfz"
12+
13+
<group>
14+
sw_last=25
15+
#include "data/Grumpy-Phili-8-V1245.sfz"
16+
17+
<group>
18+
sw_last=26
19+
#include "data/Grumpy-Phili-82-V1245.sfz"
20+
21+
<group>
22+
sw_last=27
23+
#include "data/Grumpy-Phili-842-V1245.sfz"
24+
25+
<group>
26+
sw_last=28
27+
#include "data/Grumpy-Phili-84-V14.sfz"
Lines changed: 8 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,27 @@
11
<control>
2-
#define $CC_ATTACK 22
3-
#define $CC_CUTOFF 6
4-
#define $CC_RELEASE 23
5-
#define $CC_RESONANCE 13
6-
#define $CC_TREMOLO_DEPTH 26
7-
#define $CC_TREMOLO_FREQ 25
8-
#define $CC_VIBRATO_DEPTH 1
9-
#define $CC_VIBRATO_FREQ 24
2+
default_path=Samples/
103
#define $EXT wav
11-
12-
label_cc$CC_ATTACK=Attack
13-
label_cc$CC_CUTOFF=LPF Cutoff
14-
label_cc$CC_RELEASE=Release
15-
label_cc$CC_RESONANCE=LPF Resonance
16-
label_cc$CC_TREMOLO_DEPTH=Tremolo Depth
17-
label_cc$CC_TREMOLO_FREQ=Tremolo Frequency
18-
label_cc$CC_VIBRATO_DEPTH=Vibrato Depth
19-
label_cc$CC_VIBRATO_FREQ=Vibrato Frequency
20-
21-
set_cc$CC_ATTACK=0
22-
set_cc$CC_CUTOFF=127
23-
set_cc$CC_RELEASE=0
24-
set_cc$CC_RESONANCE=0
25-
set_cc$CC_TREMOLO_DEPTH=0
26-
set_cc$CC_TREMOLO_FREQ=64
27-
set_cc$CC_VIBRATO_DEPTH=0
28-
set_cc$CC_VIBRATO_FREQ=64
4+
#include "data/control.sfz"
295

306
<global>
31-
sw_lokey=24
32-
sw_hikey=28
33-
sw_default=24
34-
amp_veltrack=0
35-
loop_mode=loop_continuous
36-
loop_crossfade=0.1
37-
38-
// controls
39-
40-
// Vibrato
41-
pitchlfo_freq=3.0
42-
pitchlfo_freqcc$CC_VIBRATO_FREQ=6.0
43-
pitchlfo_depthcc$CC_VIBRATO_DEPTH=50
44-
45-
// Tremolo
46-
amplfo_freq=1.0
47-
amplfo_freqcc$CC_TREMOLO_FREQ=9.0
48-
amplfo_depth=0.0
49-
amplfo_depthcc$CC_TREMOLO_DEPTH=6.0
50-
51-
// Amp AR envelope
52-
ampeg_attack=0.0
53-
ampeg_release=0.02
54-
ampeg_attackcc$CC_ATTACK=3.0
55-
ampeg_releasecc$CC_RELEASE=3.0
56-
57-
// Filter
58-
fil_type=lpf_2p
59-
cutoff=100
60-
cutoff_cc$CC_CUTOFF=9900
61-
resonance=0.0
62-
resonance_oncc$CC_RESONANCE=12.0
7+
#include "data/global.sfz"
638

649
<group>
6510
sw_last=24
66-
#include "Grumpy-Phili-8-V13.sfz"
11+
#include "data/Grumpy-Phili-8-V13.sfz"
6712

6813
<group>
6914
sw_last=25
70-
#include "Grumpy-Phili-8-V1245.sfz"
15+
#include "data/Grumpy-Phili-8-V1245.sfz"
7116

7217
<group>
7318
sw_last=26
74-
#include "Grumpy-Phili-82-V1245.sfz"
19+
#include "data/Grumpy-Phili-82-V1245.sfz"
7520

7621
<group>
7722
sw_last=27
78-
#include "Grumpy-Phili-842-V1245.sfz"
23+
#include "data/Grumpy-Phili-842-V1245.sfz"
7924

8025
<group>
8126
sw_last=28
82-
#include "Grumpy-Phili-84-V14.sfz"
27+
#include "data/Grumpy-Phili-84-V14.sfz"

Pianobook SFZ/Grumpy Phili/README-SFZ.md

Lines changed: 0 additions & 81 deletions
This file was deleted.
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Grumpy Phili Favourites - SFZ Version
2+
3+
This is an [SFZ] conversion of the [Grumpy Phili Favourites] sample library
4+
of a [Philips Philicorda], available in EXS and DecentSampler format from
5+
*pianobook.co.uk*, created by user [Woodencup]. The SFZ version was created
6+
by me, Christopher Arndt, on 2023-03-04 and was tested with the [sfizz] player
7+
(LV2 plugin version), but it should be usable with any SFZ-compatible sample
8+
player.
9+
10+
Please see the included file [readme.txt] for information on the original
11+
library.
12+
13+
![Philicorda](Philicorda.jpg)
14+
15+
16+
## Usage
17+
18+
Download the DecentSampler version of the library from the link above
19+
(registration with email address required) and extract the archive. Copy the
20+
contained `Samples` folder into the folder containing this file and the
21+
`Grumpy-Phili-Favourites.sfz` file. The SFZ files should be next to the
22+
`Samples` folder and the actual sample WAV files should be in the latter
23+
folder. Do *not* copy the *contents* of the `Samples` folder into the folder
24+
with the SFZ files itself.
25+
26+
Then load the file `Grumpy-Phili-Favourites.sfz` into your SFZ player.
27+
28+
29+
### FLAC Format
30+
31+
If you want to save disk space, you can use the provided Shell script
32+
`convert-to-flac.sh` to convert the sample audio files from WAV to (lossless)
33+
FLAC compressed format. The FLAC audio files use only 6 Mb (3.5 Mb at 16-bit)
34+
instead of 13 Mb for the 24-bit WAV files.
35+
36+
To use the script, you need to have the `flac` command installed. If you want
37+
to convert the samples to 16-bit sample bit depth before the FLAC conversion,
38+
you also need the `sox` command.
39+
40+
To perform the conversion, make sure the WAV samples have been copied to the
41+
`Samples` folder as described above, open a terminal with a shell in the
42+
directory containing this file and run:
43+
44+
./convert-to-flac.sh
45+
46+
Optionally, you can add the option `-16` to the command line, to convert the
47+
samples to 16-bit as well.
48+
49+
The resulting FLAC files will be written to the `flac` sub-folder. Afterwards
50+
you may remove the `Samples` folder and hence-forward load the file
51+
`Grumpy-Phili-Favourites-FLAC.sfz` into your SFZ player.
52+
53+
54+
## Key Range
55+
56+
The instrument is playable from **F1** (Note 29) up to **C6** (Note 96).
57+
58+
The actual samples cover only a range from **C1** (Note 36) to **C7** (Note 84),
59+
with two samples per octave.
60+
61+
62+
## Sound Selection
63+
64+
There are five (5) different sounds. These are selected via key switches
65+
starting at **C0** (Note 24) up to **E0** (Note 28).
66+
67+
68+
## Controllers
69+
70+
| Controller | Destination | Value Range | Default Value |
71+
| ------------------- | --------------------- | -------------- | --------------- |
72+
| Modulation (CC #1) | Vibrato Depth | 0.0..50.0 ct | 0 (0.0 ct) |
73+
| Data (CC #6) | Lowpass Filter Cutoff | 100..10,000 Hz | 127 (10,000 Hz) |
74+
| CC #13 | Filter Resonance | 0.0..12.0 dB | 0 (0.0 dB) |
75+
| CC #22 | Amp Envelope Attack | 0.0..3.0 s | 0 (0.0 s) |
76+
| CC# 23 | Amp Envelope Release | 0.02..3.0 s | 0 (0.02 s) |
77+
| CC #24 | Vibrato Frequency | 3.0..9.0 Hz | 64 (~6 Hz) |
78+
| CC #25 | Tremolo Frequency | 1.0..10.0 Hz | 64 (~5.5 Hz) |
79+
| CC #26 | Tremolo Depth | 0.0..6.0 dB | 0 (0.0 dB) |
80+
81+
These controllers are designed to work with my Kurzweil keyboard, whose sliders
82+
send the listed MIDI control changes. To adapt them to your needs, open the file
83+
`data/control.sfz` with a text editor and change the controller numbers, which are
84+
`#define`d by the variables with a `CC_` prefix.
85+
86+
87+
## Limitations
88+
89+
* Vibrato is applied to every note independently. SFZ does not support
90+
global (monophonic) LFOs :-(
91+
92+
* Reverb (or any other effects) needs to be added externally. Support for
93+
specific effect types in SFZ is not very standardized. I suggest using
94+
an IR reverb and loading an impulse response for a spring reverb.
95+
96+
97+
## Mapping License Terms
98+
99+
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img
100+
alt="Creative Commons License" style="border-width:0"
101+
src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a><br /><span
102+
xmlns:dct="http://purl.org/dc/terms/" property="dct:title">Grumpy Phili
103+
SFZ</span> by <a xmlns:cc="http://creativecommons.org/ns#"
104+
href="https://github.com/sfzinstruments/mappings/tree/master/Pianobook%20SFZ/Grumpy%20Phili"
105+
property="cc:attributionName" rel="cc:attributionURL">SpotlightKid</a> is
106+
licensed under a <a rel="license"
107+
href="http://creativecommons.org/licenses/by/4.0/">Creative Commons
108+
Attribution 4.0 International License</a>.<br />Based on a work at <a
109+
xmlns:dct="http://purl.org/dc/terms/"
110+
href="https://www.pianobook.co.uk/packs/grumpy-phili-favourites/"
111+
rel="dct:source">https://www.pianobook.co.uk/packs/grumpy-phili-favourites/</a>.
112+
113+
114+
[Grumpy Phili Favourites]: https://www.pianobook.co.uk/packs/grumpy-phili-favourites/
115+
[Philips Philicorda]: http://www.drummachines.de/beatboxer/philicorda/phili.htm
116+
[readme.txt]: ./readme.txt
117+
[sfizz]: https://sfz.tools/sfizz/
118+
[SFZ]: http://sfzformat.com/
119+
[Woodencup]: https://www.pianobook.co.uk/profile/woodencup/
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/bin/bash
2+
3+
if [[ "$1" = "-16" ]]; then
4+
if ! which sox >&/dev/null; then
5+
echo "Program 'sox' not found. Please install package 'sox'. Aborting..."
6+
exit 1
7+
fi
8+
9+
BIT_DEPTH_16=1
10+
shift
11+
fi
12+
13+
if ! which flac >&/dev/null; then
14+
echo "Program 'flac' not found. Please install package 'flac'. Aborting..."
15+
exit 1
16+
fi
17+
18+
SRCDIR="${1:-Samples}"
19+
echo -n "Convert WAV samples in '$SRCDIR' to FLAC and write them to dir 'flac/'? (y/N): "
20+
read res
21+
22+
if [[ -d "$SRCDIR" && "$res" = "y" ]]; then
23+
mkdir -p flac
24+
25+
for wav in "$SRCDIR"/*.wav; do
26+
echo "Converting ${wav##*/} to FLAC..."
27+
if [[ "$BIT_DEPTH_16" -eq 1 ]]; then
28+
echo "Converting WAV $wav to bit-depth=16..."
29+
sox "$wav" -b 16 flac/"${wav##*/}"
30+
else
31+
cp -f "$wav" flac/"${wav##*/}"
32+
fi
33+
34+
flac --force --silent --best flac/"${wav##*/}" && \
35+
rm -f flac/"${wav##*/}"
36+
done
37+
38+
echo "FLAC samples written to directory 'flac/'."
39+
fi

0 commit comments

Comments
 (0)