# Атрибуция звукового банка `bass.sf3`

Файл `bass.sf3` — производная работа: из банка **MuseScore_General** извлечены
два пресета и записаны отдельным файлом. Лицензия исходного банка — **MIT**,
и она прямо требует сохранять приведённые ниже уведомления об авторстве
в любой производной работе. Этот файл и есть такое сохранение: удалять его
или отвязывать от `bass.sf3` нельзя.

## Что это за файл

| Поле | Значение |
| --- | --- |
| Исходный банк | MuseScore_General, версия **0.2** (строка в файле — `MuseScore_General v0.2`, файл `VERSION` — `0.2.0`, дата версии по README — 13 мая 2020) |
| Источник загрузки | <https://ftp.osuosl.org/pub/musescore/soundfont/MuseScore_General/MuseScore_General.sf3> — официальное зеркало MuseScore в Oregon State University Open Source Lab |
| Дата загрузки | 29 октября 2026 |
| Размер исходного файла | 39 900 972 байта (`MuseScore_General.sf3`) |
| SHA-256 исходного файла | `5b85b6c2c61d10b2b91cddd41efcce7b25cd31c8271d511c73afafbef20b6fa3` |
| Извлечённый пресет 1 | банк **0**, программа **33** — «Fingered Bass» (инструмент «Fingered Bass», 9 сэмплов, диапазон клавиш MIDI 0–84) |
| Извлечённый пресет 2 | банк **128**, программа **0** — «Standard» (перкуссионный кит). Из него оставлен один инструмент «Misc. Percussion», а в нём — глобальная зона и **одна** зона с сэмплом из четырнадцати: клавиша MIDI **33**, сэмпл «Metronome Click» (4919 байт в Ogg) |
| Зачем второй пресет | щелчок метронома и отсчёта alphaTab берёт строго из перкуссии: `setupMetronomeChannel` зовёт `channelSetPresetNumber(channel, 0, true)`, то есть банк 128, программа 0, и играет единственную клавишу `SynthConstants.MetronomeKey = 33`. Без этой зоны метроном и отсчёт беззвучны |
| Чем извлечено | собственные скрипты `scripts/soundfont/sfinfo.py` и `scripts/soundfont/extract_presets.py` (разбор чанков RIFF/SF2 на Python, без сторонних библиотек); сэмплы перенесены сжатыми, байт в байт |
| Формат результата | SoundFont 3.01 (`ifil` 3.1) — сэмплы остались в Ogg Vorbis, моно, 22 050 Гц |
| Размер результата | 241 314 байт (235,7 КиБ) |
| SHA-256 результата | `a7b0cb689d80eafb90c5cc00d2cf79e2024d04f31ef58220eafddc8176807f6a` |

Изменения относительно исходного банка — только отбор: оставлены два пресета
и десять сэмплов. У «Fingered Bass» сохранены инструмент, все зоны, модуляторы
и девять сэмплов целиком; у «Standard» из восьми инструментов кита оставлен
один, «Misc. Percussion», и в нём одна зона с сэмплом из четырнадцати —
клавиша 33 «Metronome Click». Семь выброшенных инструментов — «Std Kick»,
«Std Snare 1», «Std Tom», «Crashes & Rides», «Hi Hats Treb», «Hand Perc»
и «Percussion», вместе со всеми их сэмплами. Остальные 307 пресетов и 1236
сэмплов исходного банка в файл не попали. Сами сэмплы, генераторы и модуляторы
не правились: сжатые блобы Ogg Vorbis перенесены байт в байт, без распаковки
и пересэмплирования. Единственная техническая добавка — выравнивание каждого
блоба по границе четырёх байт нулями, как это делает Polyphone: без него
читатель SF3 в alphaTab не находит заголовок `OggS` и отдаёт тишину.

## Уведомления об авторстве и лицензия исходного банка

Ниже — дословный текст из файла `MuseScore_General_License.md`, входящего
в поставку банка (строки об авторстве и лицензия MIT):

> FluidR3 (original version) by Frank Wen Copyright (c) 2000-02
>
> Mono conversion (FluidR3Mono) by Michael Cowgill Copyright (c) 2014-17
>
> Adaptation for MuseScore_General.sf2 by S. Christian Collins Copyright (c) 2018-19
>
> Temple Blocks instrument provided by Ethan Winer Copyright (c) 2002
>
> Drumline Cymbals provided by Michael Schorsch Copyright (c) 2016
>
> MuseScore_General.sf2 is shared under the MIT license as described in COPYING,
> as was FluidR3Mono and FluidR3 before it.
>
> The acknowledgements and copyright notices above must be included in any
> derivative work.

Строка copyright из самого файла банка (чанк `ICOP`):

> Frank Wen 2000-02, Michael Cowgill 2014-17, S. Christian Collins 2018-20

Строка авторства из самого файла банка (чанк `IENG`):

> Frank Wen, Michael Cowgill & S. Christian Collins - see license file for details

Текст лицензии (файл `COPYING` исходного банка, приведён в
`MuseScore_General_License.md`):

> Mono version: Copyright (c) 2014-16 Michael Cowgill
> Copyright (c) 2000-2002, 2008 Frank Wen \<getfrank@gmail.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.

## Кто автор именно этих сэмплов

В файле `MuseScore_General_Sample_Sources.csv` у пресетов `0,,33,Fingered Bass`
и `128,,0,Standard` графы «Sample Credit» и «Details» пустые у обоих (проверено
разбором CSV 30 октября 2026). Правило из README исходного банка: «All
instruments without attribution are still using samples from FluidR3Mono»,
то есть и сэмплы «Fingered Bass», и сэмпл «Metronome Click» восходят к FluidR3
Фрэнка Уэна в моно-переработке Майкла Каугилла. Отдельного индивидуального
автора ни у одного из этих пресетов не указано — придумывать его нельзя,
действует общая строка авторства выше.

Отдельная оговорка про «Temple Blocks» и «Drumline Cymbals»: в уведомлениях
исходного банка они названы поимённо (Ethan Winer, Michael Schorsch), но в наш
файл не попали — это другие инструменты кита, их зоны отброшены. Строки об их
авторстве сохранены выше дословно, потому что лицензия требует переносить весь
блок уведомлений целиком, а не только относящиеся к взятым сэмплам части.

## Если понадобится пересобрать

Скрипты лежат в репозитории, в каталоге `scripts/soundfont/`. Банк-источник
скачивается отдельно и в git не идёт (40 МБ):

```bash
SRC=<пустой каталог вне репозитория>
curl -sSfL -o "$SRC/MuseScore_General.sf3" \
  https://ftp.osuosl.org/pub/musescore/soundfont/MuseScore_General/MuseScore_General.sf3
sha256sum "$SRC/MuseScore_General.sf3"
# ожидается 5b85b6c2c61d10b2b91cddd41efcce7b25cd31c8271d511c73afafbef20b6fa3

python3 -I scripts/soundfont/extract_presets.py "$SRC/MuseScore_General.sf3" \
  assets/audio/bass.sf3 --preset 0:33 --preset 128:0:33
```

Банк-источник — недоверенные внешние данные, поэтому `python3 -I` и путь
аргументом, а скрипты держатся вне каталога с загрузкой. Доказательная база
первой сборки (только пресет баса) — отчёт
`.dev/research/20261029-open-projects/11-sf2-bass.md`.
