helio-fm / helio-sequencer

One music sequencer for all major platforms, desktop and mobile
https://helio.fm
GNU General Public License v3.0
3.04k stars 115 forks source link

Request to add a sampler and the first sound bundle. #289

Open Ivan-Spoda opened 8 months ago

Ivan-Spoda commented 8 months ago

[EN] Look, what idea came to my mind, let's add our own sampler to Helio, and a sound set to it? Not right now, but later. In order for Helio to have more than 1 instrument (Helio Default), I suggest adding a trace to the sampler. Features:

[RU] Смотрите, какая мне в голову идея пришла, давайте добавим в Helio свой семплер, и звуковой набор к нему? Не прям сейчас, а потом. Чтобы у Helio было больше, чем 1 инструмент (Helio Default), предлагаю в семплер добавить след. функции:

peterrudenko commented 8 months ago

Спасибо за идею, мне пару лет назад писали пару похожих запросов про то, чтобы добавить больше встроенных инструментов, но я не хочу этого делать, потому что подозреваю, что большинство пользователей все равно будут подключать свои плагины или саундфонты. Всем не угодишь, а приложение распухнет и/или система сборки усложнится. Пусть лучше будет минимализм и разделение ответственности.

Дефолтный инструмент сейчас нужен для двух вещей:

Я думал о том, чтобы заменить дефолтный инструмент на какой-нибудь саундфонт/сэмплер, чтобы вместо голой синусоиды звучало что-то поприятней.

Но тут две проблемы: во-первых, не могу найти саундфонт или сэмплы, которые бы мало весили и прилично звучали, а размер приложения раздувать не хочется - на Андроиде сейчас ~10 Мб, и это уже многовато по моим меркам :). Во-вторых, секвенсер поддерживает микротональные темперации, и нужно, чтобы дефолтный инструмент умел их играть из коробки без донастроек, и с синусоидой это делать проще всего. В теории, несложно будет доработать и проигрыватель саундфонтов - размножать имеющиеся звуки и подгонять их под нужные частоты примерно так, как он это уже делает, но я пока этим не занимался.

Ivan-Spoda commented 8 months ago

Спасибо за идею, мне пару лет назад писали пару похожих запросов про то, чтобы добавить больше встроенных инструментов, но я не хочу этого делать, потому что подозреваю, что большинство пользователей все равно будут подключать свои плагины или саундфонты. Всем не угодишь, а приложение распухнет и/или система сборки усложнится. Пусть лучше будет минимализм и разделение ответственности.

Дефолтный инструмент сейчас нужен для двух вещей:

  • чтобы приложение при первом запуске сразу же умело издавать хоть какие-то звуки, желательно не самые противные, а дальше пользователь уже настроит свои инструменты,
  • в некоторых местах нужно делать превью нот, но непонятно, каким инструментом: например, в диалоге тональности и лада для этого используется дефолтный.

Я думал о том, чтобы заменить дефолтный инструмент на какой-нибудь саундфонт/сэмплер, чтобы вместо голой синусоиды звучало что-то поприятней.

Но тут две проблемы: во-первых, не могу найти саундфонт или сэмплы, которые бы мало весили и прилично звучали, а размер приложения раздувать не хочется - на Андроиде сейчас ~10 Мб, и это уже многовато по моим меркам :). Во-вторых, секвенсер поддерживает микротональные темперации, и нужно, чтобы дефолтный инструмент умел их играть из коробки без донастроек, и с синусоидой это делать проще всего. В теории, несложно будет доработать и проигрыватель саундфонтов - размножать имеющиеся звуки и подгонять их под нужные частоты примерно так, как он это уже делает, но я пока этим не занимался.

Тогда предлагаю добавить поддержку sfz, я читал про этот формат, он работает с flac, а flac по сравнению с wav весит очень мало, и дает больше возможностей для создания инструментов... Но я предлагаю добавить не просто поддержку, а ещё настройки для загрузки sfz, к примеру настройки ограничения на кол-во полифонии, памяти, кеширования, в общем и целом как в sforzando, это сильно поможет людям со слабыми пк или телефонами загружать большие soundfont файлы, то есть иметь звучание сильно схожее с пк