Yamaha CS1X vs AN1X - в чём разница?

оба этих синтезатора не рулил. Хочу закрыть пробел в знаниях. Просто интересно стало, откуда такая любовь к более урезанным VA. Вернее, что они такого умеют, чего не умеют более ранние монстры, у которых память более расширена палитрой исходных волн и звуков?
Так порулите послушайте и вопросы отпадут. Что такого умеет AN? Он умеет звучать, это главное. Да и СS1x называть монстром очень оптимистично ). Так то можно и PSS-51 назвать "более ранним монстром с широкой палитрой" )
 
Так то можно и PSS-51 назвать "более ранним монстром с широкой палитрой" )
Самая классная псска это 780, там еще fm а не awm и pcm ударные, и дизайн супер, сейчас такие не делают
 
  • Like
Реакции: Storchak LP и deplexer
PSS-51 назвать "более ранним монстром с широкой палитрой" )
птичку прошу не обижать! Моя первая Ямаха, эргономический шедевр. Потом поменял на PSR-510, до сих пор у друга стоит :)
А на малютке и в кабаках играли, после списания с ней по электричкам ходили - народный инструмент практически. Сродни духом с "соком" Юпи и спиртом "Рояль".
 
  • Like
Реакции: Storchak LP и deplexer
Самая классная псска это 780, там еще fm а не awm и pcm ударные, и дизайн супер, сейчас такие не делают
я тут недавно даже подумывал её прикупить ) ностальжи посетила. Но fm там конечно не ахти, 2-х операторный.
птичку прошу не обижать! Моя первая Ямаха, эргономический шедевр.
ни в коем разе, 51-я это ж моя не сбывшаяся подростковая мечта )
Но так сложилось, что первой ямахой стал винтажный CS10 ) с простейшей архитектурой, но совершенно бомбическим звучанием. До сих пор считаю его фильтр одним из лучших. Стоящий тогда рядом с этой ямахой легендарный sh-101 казался довольно заурядным.
Ещё и поэтому CS1x из шапки этой темы, носящий имя легендарной CS серии, это жуть жуткая. Это всё равно что джуно 60 сравнивать с джуно джи.

PS кстати кто-то ж вроде вст делал на тему pss (или psr), аудио энималз по моему
 
Последнее редактирование:
  • Like
Реакции: mitinglas
CS1x из шапки этой темы, носящий имя легендарной CS серии, это жуть жуткая.
Да нормальный РОМплер за свои деньги! Почти тот же ROM, что и на MU50(DB50, SW60)XG, только к 4МБ ещё половину добавили. И банк типа "модных" звуков прошили. Он нормально звучал, лёгкий был и надёжный. Много кто на сцене его использовал ибо удобно. Даже БГ клавишник долго аккомпанировал на нём :) падики, стрингс, эл.пиано.

кстати кто-то ж вроде вст делал на тему pss (или psr)
а как его сделать, если там смысл в самоиграйке и кнопках-пэдах? Как ROMплер давно энтузиасты VSTi MU50(DB50, SW60)XG сделали.
 
Последнее редактирование:
@mitinglas, sw60xg у меня рядом с пинаклом тогда в одном компе стояли, норм в те годы было, но называть cs1x по имени крутейшей серии CS было как-то даже неприлично имхо. Ну маркетинг, все дела, понимаю ) роланды ещё паскуднее поступали и не раз, при всем уважении

Вот здесь сравнивают AN и Оберхайм и, что характерно, никому даже в голову не приходит сравнивать оберхайм с cs1x
 
Последнее редактирование:
И нигде перегон партитур всти в аудио семплированием не называют...

То есть если я захочу в железный семплер засемплировать кусок произведения с винила - это сэмплирование.

Если вместо винила в железный акай я подключу выход звуковухи и засемплирую партитуру с DAW - это сэмплирование.

Но если я запишу этот же кусок партитуры в программный сэмплер - это вдруг не сэмплирование. Логики ноль. Получается, чтоб это было тру сэмплирование надо только DAW пропустить через каскад ЦАП и потом обратно в АЦП, что было бы тупо.

Или вот ещё инфо для размышления, если у меня генератор вычисляет сигнал по формулам на одном компе, я этот сигнал через зуковуху вывожу и записываю другим компом, то получается я другим компом этот сигнал сэмплирую. Но если же я делаю то же самое в пределах одного компа, одной программой генерирую, а второй записываю, исключая тракт АЦП ЦАП, то вдруг у меня такой сигнал становится не сэмплированным )) ... логики ноль..


И нигде перегон партитур всти в аудио семплированием не называют...

Как это нигде? Как минимум один Вы точно могли видеть выше... но я начинаю понимать Вашу логику .. даже если их предоставить сотню, всё равно будет "нигде". Так вот я уже кидал пруф, что перевод конкретной миди ноты VST инструмента в сэмпл у них это тоже называется Сэмплирование (С чего бы вдруг ))) ведь не логично как.. перевод в сэмплы вдруг называют сэмплирование.. какие не логичные ребята) ... Если при нажатии на ноту в VST вместо одного звука будет эмуляция целой партитуры, как вот в Nexus или Avanger, или же банальное арпеджио в каком-то синте, как Вы думаете, что в данном случае засэмплируется в программный сэмплер? Именно "перегон партитуры" ... и сигнал, как было написано на весь экран называется ЗАСЭМПЛИРОВАННЫМ ... поэтому и этот очередной Ваш довод пустой. Пока партитура находится в VST синте, её можно рулить, модифицировать, изменять bpm, но как только вы её переведёте в статичный сэмпл, чтоб использовать в сэмплере, то да... вы эту партитуру или арпеджиатор засэмплируете... ровно как и кусок произведения с какого-нибудь винила.
 
Последнее редактирование:
  • Haha
Реакции: Alexander Yakuba
но первоначальные синусы генерятся на основе отсчётов (сэмплов)
бля!!!... как много пиз...жа!!! "Синусы простые, сложные, модерновые" - шо за хрень???!!! А!!! - еще, "засемплированные" в dx-овых ямахах - за-семп-пли-ро-ван-ны-е?!!! Да на вас - неучей! - таблицы Брадиса в суд подадут! ))) и почему именно банальные синусы там - откройте учебники и разберитесь со спектрами того, что оставляет именно чистый синус!
...Не удержался, обещал не лезть больше сюда, но рмм-эмщики - технари больше, чем музыканты (ну должны быть) потому и с математикой надо дружить.
 
А ещё в этом вашем фрутилупсе..."]панорама работает не так как у всех прочих, скорее всего именно из-за этого и звук там многие считают пластиковым... я бы такому "софтваре" в принципе доверять не стал бы...

Знатно проржал с зависимости панорамы и пластикового звука )) Да, там когда крутишь влево высокие пропадают, а вправо - всё трещит.

А если серьёзно - Вам кроме ImageLine мало других источников, которые в этой теме уже по кругу упоминались по несколько раз?

Напомню:

1)

В этой статье по разбору FM чипов автор пишет:
containing one quarter of a sine wave, 256 SAMPLES long

Слово Сэмплы видите? Никакие не табличные данные.


2)

тут указано, что Each FM-tone is generated by a digital oscillator using a form of direct digital synthesis

Заходим дальше по ссылкам - https://en.wikipedia.org/wiki/Direct_digital_synthesis

видим, что в основе лежит осциллятор Numerically-controlled oscillator - https://en.wikipedia.org/wiki/Numerically-controlled_oscillator

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

221134


Слово SAMPLE видите? На котором в итоге основан синтез FM чипов



3)
Это вообще топчик. В этой статье автор называет синусы оцифрованными )) Ану идите и покажите ему где раки зимуют, пусть он ищет, где там была запись через АЦП )))))


The digital implementation of frequency modulation starts with a lookup table that holds a DIGITIZED sine wave.


----------

Эти ссылки уже несколько раз тут мелькали. Забугорные разработчики софт для Вас не авторитет. Спецы, которые деребанят FM чипы, и распедаливают внутренности на части - тоже не авторитет. Да уж, с Вашей, как Вы выразились "колхозной колокольни" видимо виднее ))
 
Последнее редактирование:
Вот здесь сравнивают AN и Оберхайм и, что характерно, никому даже в голову не приходит сравнивать оберхайм с cs1x



Верхушка спектра смазанная, звук пластиковый, искусственный, характерной острой оберхеймовской резкости в звуке нету, про ущербную самоосциляцию резонанса по сравнению с аналогом даже и говорить не стану... Что характерно, вообще не в какое сравнение. В чём эмуляция? В том, что распихали ручки и крутить можно? А звук-то чего забыли положить? Конкретно CS1x не рулил. По поводу некоторых других ромплеров я бы поспорил. Например, тот же JD-800 местами звучит намного теплей, аналоговей, сочней, мясистей, чистое имхо... И все ручки на месте, рули себе как VA. Хотя может он и есть VA ? Ведь никто толком и не объяснил, чем VA в корне отличается от ромплера, от того же JD-800.

Ну ладно-ладно... а то щас заклюют фанаты va )) ... ой чувствую срач поднимется...
 
И это не про хранение сэмплов, а про:
Четверть преобразованного в логарифм синусоидального сигнала сохраняется в виде дискретизированного приближения в таблице памяти (ROM), доступной только для чтения, состоящей из 256 слов
...
так что единственное что я могу сказать про связь SAMPLED с OPL, это форумилировка "хранения", а не "медиа лупа волны", требующего воспроизведения

Да, Вы правы, что в ROM сохранена не конечная часть волны, которая готова без обработки уйти на ЦАП, а некая трансформация этой волны. Потом происходит последующее восстановление формы к первоначальному виду в процессе обработки. Как мы знаем, в данном случае это было сделано для упрощения вычислений. Алгоритмам DX7 с логарифически-преобразованным сэмплом "легче" управляться. Но подобный принцип в том или ином виде используется и в других сэмплерах и ромплерах. Это не мешает синтам на основе ROM генерации оставаться ромплерми.


1)

Например здесь в разделе: "DPCM or a companding compression and Roland" можно почитать о том, что в ромплерах от Roland сэмплы тоже в памяти сохранены в видоизменённом виде, грубо говоря не такие как должны поступать на ЦАП. Потом в процессе происходит их дополнительня обработка, чтоб привести их в "читаемый вид" для ЦАП. Но значит ли это, что Ромплер теперь не Ромплер, раз в ROM не "медиа лупа волны", а только формулировка "хранения"? - Нет, всё так же такие девайсы называют ромплерами. В данном случае трансформации записанного сигнала были сделаны для экономии памяти, с последующим восстановлением.

2) Если ещё коснуться темы Роландовских сэмплеров и ромплеров, то известно, что сэмплы для их сэмплеров S серии и по-моему в некоторых ромплерах хранятся в видоизменённом виде, а именно с изменённой амплитудно-частотной характеристикой, и в последствии после проигрывания действует восстановление спектра зеркальной кривой эквалайзера. Делается это для того, чтоб понизить шумы на высоких частотах. Это у них называется Emphasis. То есть по факту опять же сэмплы хранятся не в чистом виде, а с некой трансформацией, и в процессе генерации сигнал восстанавливается к первоначальному. Это конечно банальный эквалайзинг. Но... в случае с логарифмическими синусами в DX7 - тоже ничего страшного не происходит, звуковая волна поддалась шейпингу логарифмической кривой, тоже обычный себе процесс. В процессе проигрывания экспонентой шейпинг восстанавливает кривую в обратную сторону. Только если в DX7 трансформируется кривая в плоскости координат Время/Амплитуда, то в Роландах в плоскости Амплитуда/Частота. И потом обратно зеркальной кривой сигнал восстанавливается в процессе проигрывания. Но по факту в РОМ или на sample-CD у Роландов сигнал видоизменён, то есть под трансформацией! Тоже не то, что на прямую без обработки можно проиграть через ЦАП с оригинальным звуком, как с сэмплами в классическом понимании.

3) Некоторые специфические трансформации с сохранёнными сэмплами для их восстановления происходят и в Kawai K1. Суть описана на этой странице.


Грубо говоря сэмплы в ром тоже хранятся не в таком виде, в котором их следовало бы отправлять на ЦАП.

4) Ну и стоит ли упоминать о системе компандирования Dolby в аналоговом мире для понижения шума при записи на плёнку. Это конечно никаким боком не касается ромплеров, но Экспандер и Компандер сжимают и в последствии восстанавливают сигнал точно так же, как это происходит с ром DX7. Видоизменённая трансформированная запись на кассете продолжала называться записью, которая потом в процессе воспроизведения дополнительно восстанавливалась по форме сигнала. Процесс проигрывания такой кассеты называли "проигрывание", но никак не генерацию сигнала по функциям, хотя по факту там происходят именно "функция" Компадирования и Экспандирования, только в аналоговом мире ). То есть на плёнке записан не оригинальный сигнал, а трансформированный под "шейпером", который потом нужно восстановить к оригинальному виду зеркальной кривой. Это так, для аналогии.... нет ничего необычного в том, что синус с DX7 видоизменён логарифмической кривой и потом в процессе проигрывания восстанавливается. Тем не мене мы получаем именно тот сигнал, который изначально был подготовлен как готовый кусок сэмпла для ромплера, хоть и хранится в памяти в трансформированном виде.

Уже молчу про разные форматы сжатия музыки как mp3, где сигнал хранится в очень закодированном видоизменённом состоянии, но в процессе восстанавливается, хоть и не всегда точно. Но и при таком проигрывании mp3 файлов мы не говорим, что у нас сигнал не проигрывается, а генерируется но основе функций... Хотя по факту в процессе восстановления mp3 в сэмплоподобный вид для ЦАП, проходит много разных функций и преобразований.

Это так... всё аналогии, которые говорят о том, что факт видоизменения волны , хранимой в ромплере не свидетельствует о том, что ромплер перестаёт таковым быть.



Поскольку осциллирующий кристалл при скальпировании не обнаружен, ролью генератора выступает тупо мат функция параболы. И вот дальше она используется для построения волн.


Давайте подумаем, что такое мат функция параболы или синуса, и как она может быть реализована в рамках FM чипа?

Функцию можно вычислить ИЛИ по формуле, ИЛИ можно взять значение из готовой таблицы, которая когда-то была просчитана по этой формуле. (Как к примеру Таблица Брадиса). Раз вы говорите "МАТ ФУНКЦИЯ", то, вероятно, подразумеваете генерацию по формулам, без использования таблицы. Хотя мы знаем, что в чипе FM эта таблица зачем-то есть... Это противоречие! Это означает, что "тупо мат функция параболы" по формулам не просчитывается.

Если бы функция просчитывалась по формуле, то:

- Во-первых, было бы слишком ресурсоёмко для каждого отсчёта вычислять значение по этой формуле, тем более для каждого из 96 осцилляторов одновременно, вместо того, чтоб взять готовый просчитанный результат из таблицы.
- Во-вторых, такой формуле не нужна таблица засемплированных синусов, такая формула способна сама создать любую таблицу с любой точностью. (Именно так ведь таблица Брадиса и создавалась, по формулам.) Спрашивается, зачем тогда в ROM зашиты таблица сэмплов?
- В-третьих нигде не заявлено, что сам синус высчитывается по какой-то формуле. Выше вы давали формулу FM синтеза, из которой видно принцип работы FM синтеза в целом, но не видно, как именно вычисляется сам синус. Просто упоминается функция и известно, что её значения засэмплированны в ром. Поэтому ещё раз делаю акцент на том, что никакой формулы для мат функции параболы или для вычисления непосредственно синуса в описании FM движка не было. Была уже готовая таблица с вычисленными значениями. (По факту не чистый синус, а видоизменённый log sin(X) и exp, но не суть ...). Поэтому вся работа этой функции заключается в том, чтоб пойти по нужному адресу X в таблице сэмплов, и взять нужное значение амплитуды. Это как в таблице Брадиса. Вы не вычисляете значение по формуле, а идёте по нужному адресу (X), и находите значение, которое соответствует этому адресу. Это ли значит рассчитать? Нет, это не вычисление по формулам. Это именно то, что происходит при воспроизведении сэмплов. В этом смысле можно сказать, что любой сэмпл - это тоже табличная функция. То есть таблица отсчётов. Вместо Sin(X) у нас есть ROM с функцией SAMPLE(X) ... если за X брать время (то есть номер отсчёта), то ROM выдаст нам амплитуду сигнала по этому 'адресу', то есть в определённый момент времени. Так что, так называемое, в кавычках "вычисление" синуса на основе табличной функции, абсолютно по принципу работы не отличается от осцилляторов в ромплере, который генерирует сигнал на основе таблицы сэмплов. В качестве аргумента передаётся адрес, а именно какой отсчёт нужно проиграт, и РОМ выдаёт амплитуду этого отсчёта. Но при этом никто не называет сэмпл плеер вычислениями по функциям или табличными вычислениями, хотя пинцип тот же. Это называют проигрывание сэмплов. ИМЕННО по такому принципу работает сэмпл плеер, когда каждому отсчёту в таблице сэмплов сответствует значение амплитуды.

Поэтому наличие "функция" SIN (X) в формуле FM синтеза в данном случае нам говорит о том, что принцип работы этой функции эквивалентен сэмпл плееру SAMPLE (X) ... То есть вычисление по формулам, заменяется проигрыванием сэмпла с уже просчитанным значением этой формулы. Думаю, я максимально приближённо аргументировал РОМ-плеерный принцип действия генерации синуса в данном движке.

Более того, выше уже упоминалось, что вместо синусов в NCO осцилляторах может содержаться произвольная форма сигнала. То есть если я туда вместо синуса помещу сэмпл акустического инструмента, например гитары, ну и добавлю больше памяти, одним периодом не обойтись))), вряд ли это будет означать, что "ролью такого генератора будет выступает мат функция гитары" ... хотя по сути будут происходить все те же процессы. Если "проиграть" такой сэмпл без модуляций, мы услышим гитару вместо синуса. Вот такая вот загадочная "мат функция" гитары в NCO, в привычном мире именуемая сэмпл плеером, ромплером итп.

----

Выше ещё упоминали векторный принцип, когда сигнал строится по опорным точкам. Но здесь этим и в помине не пахнет, и даже приближённо не упоминается в мануалах, тем более для тех слабых процессоров из 80-ых. Да я и среди современных синтов на многоядерных процессорах таких рилтаймовых осцилляторов не припомню. Это что-то из разряда теории? Или на практике существует?

----------------------------------------


РЕЗЮМИРУЮ:

1) То, что там в мануалах пишут не сэмпл плееры, а генераторы - это не аргумент!

2) То, что там синусы считаются по формулам/функциям, опорным точкам, а не читаются из памяти - это не аргумент!

3) То, что в памяти не чистый сигнал, а модифицированный и потом в результате восстановленный, тоже не аргумент, во многих ромплерах встречал.

4) То, что там Кварц и ЦАП з пределами чипа, тоже не аргумент, ведь сразу было указано, что это не чистый DDS осциллятор, а вид DDS синтеза, или если хотите форма DDS, из которой, вероятно, взяли только суть NCO осцилляторов, апнули её, добавили частотную модуляцию итд... поэтому придираться, что там ЦАП вынесен за пределы чипа... ну то такое.
 
причём синусы-то как раз не вычисляются по формулам, а берутся из засемплированных таблиц log и exp
хранение в ПЗУ логарифмов синусоиды (то бишь функции) назвать сэмплом можно, только как понятие "образца". Не более того. Ничего там не "воспроизводится" ни из координатных соотношений с амплитудой по времени, ни из форм волн, которых нет.
Функция характеризует своей формулой - кривую. Эту кривую рисовать не надо, и читать не надо, ее надо подставлять в основную формулу ФМ-модуляции, что и является целью ФМ-чипа.

Есть функции представляющие на выходе правила конкретных кривых, участвующих в конечно расчете модуляции, и все по единственной формуле.

только просчитанная функция сохранённая в виде сэмпла с конечной точностью
в виде битных данных, заметьте. Что нас крайне сильно удаляет от реалий "воспроизведения" и "сэмплов".
Согласитесь, что сэмпл к форме волны имеет посредственное понятие, а точнее "пример", "единица". Но не является как таковой волной для воспроизведения чем либо. Играет уже DAC, за пределами ФМ чипа, то что выдает цифрой ФМ чип.

Если я пихну в Сэмплер или в Ромплер волну с оцифрованным логарифмом синусоиды, это же не значит, что теперь ромплер у меня высчитывает сигнал по функциям и является каким-то синтезатором, а не ромплером?
Именно. Вы вроде понимаете, и говорим почти об одном. Сэмплер, ромлпер работают с медиа и именно играют сэмпл. Они не работают с логарифмами синусоиды.

так что логарифм, не логарифм - это не аргумент... это об оптимизации ресурсоёмкости генерации
Никто о качестве реализации волны не говорит, но функция в арифметике выдает эту самую волну, этого достаточно.
Я уже привел данные реверс-инженеринга, где результаты теории совпали 1 к 1 с записью рилтайма и его анализа. нет координат в таблице (амплитуда/время), нет лупа волны. мы только знаем точно что данные в каждой ячейке - log-Sine.

Про наличие DDS (на основе NCO) в OPL чипах выше уже было процитировано, и это не мои слова, а цитата из Википедии.
Я извиняюсь, но Википедия это часто составляющая бреда, написанная людьми далекими от темы. (Укрытых тоже Чёрное море выкопали, не сдержался таки). Почитайте мануал, и инженерные форумы по OPL. Видел я это все, как говорится, так как есть куда более адекватные источники информации, подкрепленные инженерными работами сторонних людей, и создавших мануал на чип.

открываем мануал и читаем что в OPL нет ни слова про Sample, но есть ROM with log-Sin. Этого достаточно чтоб понять наличие мат функции представляющей собой кривую синусоиды, в математическом виде, а не координатном с учетом времени/амплитуды.
В нашем то конкретном случае - это вообще тупо функция...
image017.gif
,
Вот оно, здесь вычислений ничтожно незначительно, около 0.
256 ячеек регистров базируются этой формуле каждая, со своими статичными X/Y которые и представляют собой кривую.
Но в основе не таблица а скорее всего уже просчитанные данные кривой статичные, которые представляются в числах, и уходят в основную формулу модуляции ФМ в том же самом готовом виде.

а что там по поводу якобы продвинутой генерации Серума? Не нашли время ответить, или не нашлось аргументов?
вы о чем? В серуме есть аддитивный FFT (отрисовка с билдом спектра). Что тут пояснять?
А на вопрос по железном синту с FFT на осцилляции -Waldrof Iridum / Quantum из ближайших.

вопрос о статье про DX7, тоже если будет время... если можно - прокомментировать.
нужен контекст, я не могу вспомнить.

В этой статье по разбору FM чипов автор пишет:
containing one quarter of a sine wave, 256 SAMPLES long
Слово Сэмплы видите? Никакие не табличные данные.
все правильно. 256 сэмплов. Сэмплы здесь - единица измерения рилтайма. Люди записали результат, и получили статику в 256 сэмплов длиной. Любой редактор умеющий писать аудио, умеет измерять аудио в сэмплах.
image001.png

Вот сэмпл, его длина в сэмплах = 186226. Сэмпл - еденица измерения записанного ранее в рилтайм сигнала, отвечающий за длительность. Вот и там речь о волне полученной длиной 256 сэмплов по результатам записи, наверняка из рилтайм воспроизведения?

https://en.wikipedia.org/wiki/Yamaha_OPL
тут указано, что Each FM-tone is generated by a digital oscillator using a form of direct digital synthesis
Заходим дальше по ссылкам - https://en.wikipedia.org
Дальше можно не читать, в цивилизованном мире статьи с Wiki - это информационная помойка. Только здесь можно найти что любой ФМ чип это DDS, что ничем не подтверждено. Это частное трактуемое мнение, без фактических аргументов.
И не поддерживаются они ничем.

я бы посоветовал вам почитать про AdLib, базирующемся на ФМ чипе. Где все уже разобрано и перенесено в софт, структура чипа взята за основу. Ставит понимание что и откуда. Я сам осилил малую часть но про сэмплы там нет. Есть про log-Sine. Но не вникал еще, нужно время.

идим, что в основе лежит осциллятор Numerically-controlled oscillator - https://en.wikipedia.org/wiki/Numerically-controlled_oscillator
который в свою очередь работает на сэмплах.
Я в графике вижу длину в сэмплах некой волны. Все это читано давно и осознано, как мало относящееся к реалиям ФМ чипов ямахи.

Эти ссылки уже несколько раз тут мелькали. Забугорные разработчики софт для Вас не авторитет. Спецы, которые деребанят FM чипы, и распедаливают внутренности на части - тоже не авторитет. Да уж, с Вашей, как Вы выразились "колхозной колокольни" видимо виднее ))
Я незнаю с кем приводилось работать и общаться вам, но я намекну на свой круг общения - это программер Clavia NM, NL движков лицензируемый конторой по сей день, первого софт эмулятора тб303, и тонны софта, включая современный Algorithm. Еще к примеру, структурный фундаментальный автор VST SDK, на чем держится формат, и создатель большого числа муз ПО для прочих инженеров в музыке, это и инженеры компаний из начала 2000х топовых продухов своего времени, которые прошли и через ФМ за все эти годы, и бывшие сотрудники разработчики железных синтов. Это то, с кем я состою в переписке по вопросам DSP, теории звука.
Сам являюсь разработчиком уже 15 лет и с 50 плагинами в мире синтеза и обработки, и пытаюсь разобраться когда чего то не понимаю, а не кидаюсь ссылками с вики. Чуши там - океан. Есть задача разобраться - читать нужно первоисточники, можно книги по DSP, в целом инженерное чтиво.

В своем случае ФМ синта - я взял простейший путь. Именно FFT данные, по результатам спектрального анализа WAV форм, снятых абсолютно различными способами. То есть по сути в своем FM я использовал FFT анализ спектра с хранением кривых, объёмом легче самих оригинальных one-cycle сэмплов, разумеется, что мне позволило библиотеку цикл-сэмплов на 900мб преобразовать в 30мб хранения данных. Каждая отдельная волна - это статичные координаты. Таблицы как таковой нет, и РОМа) есть своя интерпретация на отдельном движке, где точки перечислены в запятую по порядку. Хотите - можно таблицей называть условной.
И даже сэмплом, но у меня как разработчика рука не поднимется))))

Так что как раз крупнейшие верзилы индустрии - для меня авторитет и помощь в возникающих множественных пробелах во вопросах теории синтеза и DSP. К махровым разработчикам, я отношения не имею)))

А на счет спецов деребанящих чипы я вам эту информацию дал первее про декапсулизацию и реверс-инжениринг OPL, разжевал на пальцах, там было лишь про сэмплы рилтайм записи как референс.
https://www.righto.com/2021/11/reverse-engineering-yamaha-dx7.html
The digital implementation of frequency modulation starts with a lookup table that holds a DIGITIZED sine wave.
ссылка не открывается даже под моими ВПН. А из фразы я вижу - DIGITIZED, что из раздела SAMPLED, а то есть имеет контекст, который я не вижу.
Вам уже в теме писали про Digitised, Calculated, и Sampled туда же.

Это означает, что "тупо мат функция параболы" по формулам не просчитывается.
Есть формула в целом (вообще) на логарифм синусоиды. В нашем случае в каждом регистре ячейке хранится уже посчитанный статичный результат так как для отдельной ячейки каждой есть свои координаты в РОМ. Но она не является набором XY. Это именно - 256 результатов просчитанных функций.

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

Один факт, это точно не хранимая кривая как аудиоволна в формате для воспроизведения. Это арифметический промежуточный фрагмент, участвующий в дальнейшем расчете ФМ модуляции чипа перед выходом с него.

Я усталь))))
Пошел лучше потрачу свободное время на эмуляцию Polymoog Resonator плагин, который просят с меня к реализации) После эмуляции MuRFA-24 Муговского))) Больше людей осчастливлю муговским резо-саундом в софте, нежели мы найдем в этом топике правду о данных хранимых в регистрах РОМа, где однозначно волны это log-Sine (а не сэмпл синусоиды)

Мне лично достаточно log-Sine, остальные трактаты уже смысла не имеют))
 
Последнее редактирование:
Ну ладно-ладно... а то щас заклюют фанаты va ))
Не знаю кто заклюёт, я не фанат VA, писал лишь о том что cs1x детская пукалка по сравнению с an1x. А винтажная аналоговая серия CS ямахи звучит намного вкуснее чем an1x, они у меня рядом стояли. Странно если б Оберхайм звучал хуже, вы хоть цены сравните на них.
Но при этом AN1x может звучать очень тепло, насыщенно, интересно, по аналоговому в определенной степени. И да он конечно далеко не идеален, там много до чего можно докопаться.
ЗЫ Где вы мясо нашли в JD-800 пусть для меня останется загадкой ))
 
  • Like
Реакции: Storchak LP
Верхушка спектра смазанная, звук пластиковый, искусственный, характерной острой оберхеймовской резкости в звуке нету, про ущербную самоосциляцию резонанса по сравнению с аналогом даже и говорить не стану... Что характерно, вообще не в какое сравнение. В чём эмуляция? В том, что распихали ручки и крутить можно? ...
Это про OB-X8 по сравнению с OB-8?
 
В серуме есть аддитивный FFT (отрисовка с билдом спектра). Что тут пояснять?

Тут принципиально важный момент - работает в рилтайме? Или при изменении параметров на лету генерирует сэмпл и потом в своём внутреннем сэмпл-плеере крутит этот луп по кругу? Я по-моему это уже второй раз в топике упоминаю, что в том же Sytrus тоже аддитвивный синтез генерит волну, но крутит её в своём смэпл плере, а не генерит в рилтайме....- а это эквивалетно ромплеру... так работают многие вст синты - на основе внутреннего сэмпл плеера, а это не генерация в рилтайме. Хотя на деле выглядит так, что изменил параметр, нажал кнопку - и другой звук...А ведь не всегда видно, что сгенерировался новый маленький однопериодный цикл, и крутится во внутреннем смэпл-плеере с транспонировнием сэмпла под нужную ноту со всеми вытекающими недостатками, присущими сэмпл плеерам, НО не перегенерацией в рилтайме для каждой ноты. Это принципиальная разница! Это значит, что рилтаймаовя модуляция такого FFT осциллятора не возможно была бы (в пределах разумной нагрузки). Можно было бы модулировать только сэмпл, который сохранён в ROM в результате такого FFT просчёта.. Это как в DX7

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

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

Что касается кто первее или не первее... про декапсуляциб в принципе упоминалось в моих ссылках в этом посте:


ещё до того, как вы начали принимать участие в этой дискуссии.

Жаль , что одна из ссылок у Вас не открывается. Может найдёте способ открыть... Я как раз из этой ссылки цитировал строки выше в топике и попросил их прокомментировать, если захотите найдёте выше в топике. В этих строках тоже прослеживается конкретный принцип действия сэмпл плеера в основе генерации синуса в DX7.

- - - -

Относительно того, что в памяти синус обработанный логарифмической трансформацией, и потом в процессе восстановленный - я достаточно подробно аргументировал, это никак не отходит от принципов работы некоторых других сэмпл плееров, где волны тоже сохранены в трансформированном виде. И то, что этот процесс эквивалентен проигрыванию сэмплов в целом я тоже достаточно подробно объяснил. И то, что для тру генерации конкретно СИНУСА по формулам не нужна таблица уже засемплированного синуса. И то что формула FM генерации никаким боком не касается именно генерации самого синуса из памяти.... Жаль, что Вы ничего не поняли, хотя говорите, что не первый год в теме. Может ещё раз перечитаете, что-то переосмыслите. Но честно, нет больше сил возить одно и то же по кругу.
 
Последнее редактирование:
Самая классная псска это 780, там еще fm а не awm и pcm ударные, и дизайн супер, сейчас такие не делают

И всё же 780-ая имхо жестковатая по звуку по сравнению с 70-ой серий... например PSS-470 , но зато 80-ая серия рулится гибче. А ещё на похожих или тех же чипах по типу PSS .. 70-80-ой серии были Yamaha PSR 36 / PSR 41 с интересным FM звуком. Но, конечно, на сегодняшний день они воспринимются, как игрушки )) хоть и действительно звучат довольно приятно и прикольно! Умели делать звук :)
 
Одно дело арифметически сосчитать несколько кусков параболы, и по формуле высчитывать результат частотной модуляции

Мне кажется всё же не корректно применять эквивалент формы параболы для замены четверти синуса. Это немного разные формы. У синуса есть точки перегиба, где дифференциал второго порядка будет равен нолю. А у параболы же функция всегда возрастает. Это означает, что вы не сможете склеить две параболы плавно без видимого стыка. Следовательно "синус" на основе таких парабол будет иметь неправильную форму и "неправильный" спектр, который будет состоять больше чем из одной гармоники. А это лишние искажения в сигнале.
 
И всё же 780-ая имхо жестковатая по звуку по сравнению с 70-ой серий... например PSS-470 , но зато 80-ая серия рулится гибче. А ещё на похожих или тех же чипах по типу PSS .. 70-80-ой серии были Yamaha PSR 36 / PSR 41 с интересным FM звуком. Но, конечно, на сегодняшний день они воспринимются, как игрушки )) хоть и действительно звучат довольно приятно и прикольно! Умели делать звук :)
Это да, я как раз недавно купил на авито pss 470 за 7 тыс, но в основном из за слайдеров, чтобы звук в рилтайме рулить, в более поздних все через меню уже, вот демку запилил, только дилей в сенде из обработок

 
  • Like
Реакции: Storchak LP и mitinglas
Я не углубился в деление синусоиды на четверти, потому как понятно, что это применяется арифметически в чипе. на уровне построения функции. а пример давал именно на простое тригонометрическое решение функции логарифма синусоиды, а вовсе не параболы) хотя где то да, давал как пример вроде еще и параболу, чтоб так сказать отсылка была на понятие функции как таковой, формирующих кривую образно на примере.
Понятно, что там работа с четвертями и они делятся в рамках тригонометрии функции. Готовые ли данные в регистрах таблицы стоят рассчитанной функции, или же она идет в расчет, и обрезается четвертью - это вот уже не важно. важно что есть тригонометрическая кривая синусоиды и она на выходе из регистра - обрезана до четверти.
Там даже было сказано. мануале, что за основной синусодой, по сути берется формирование оставшихся волн путем отражений четвертей. Все это не несет заметной нагрузки для просчета в рамках чипа, но возможно оно и заложено уже статично и пред-просчитано.. тут не будем гадать.

И то что формула FM генерации никаким боком не касается именно генерации самого синуса из памяти.... Жаль, что Вы ничего не поняли
Я нигде не упоминал подобного, а упоминал основную формулу ФМ модуляции чипа, и что исходные для них - данные 2х РОМ, и не только.
Формула FM-модуляции как раз имеет расчет с исходными на основе самих хранимых / сгенерированных log-Sine функций.
Вы не получите в этой формуле результата работы чипа, не имея исходные отработавших Log-Sine ROMa с exp ROM и прочими процессами контроля.
Так что тут я вообще не понял о чем речь) x=a+b, для их решения нужны a+b, где по сути упрощенно это данные 2х РОМ. С прочими влияющими параметрами. Не мог я говорить о том что X оказывает влияние на формирование кривой в "a".

Я имею достаточно опыта в синтезе и принципах генерации сигнала в осцилляторах. Применял и просто сэмплы, и циклы волн само собой, и FFT-данные сканированных циклов, в тч участвующих как часть WT-таблиц в операторах FM-синтеза.

Наша с вами беда - мы расходимся в употреблении понимания слова "сэмпл". Я только в теории согласен называть данные таблиц волны, или тригонометрическую функцию формирующую волну - сэмплом. Как "пример" или "образец". Не всегда имеются средства для воспроизведения таких волн. Чаще, когда нет хранения волны в софт-вариантах именно сэмплом, имеются функции вычисления форм волн с дальнейшими ракетами, а не воспроизведениями таких волн.
Легкий пример - взять исходники модулей Mutable instruments. Часть волн ЛФО и осцев - решаются по разному. От цикличных сэмплов, до функций генерирующих волну, от ЛФО до ФМ и WT. Я к тому, чтоб применяется то, что удобно и нужно, а так же может вытянуть та же ARM-архитектура. Хотя для генерации волн куда более чем достаточно дохлых древних Мотороловских чипов, и даже предостаточно возможностей тех же FM-чипов. Здесь нет массивов по части расчетов. Это в современных решениях используются плавающие точки в вычислениях.

Для меня как разработчика, и топ-разработчиков с 20-летним стажем в индустрии VST, сэмплами оное не называют. Потому как для них аналогично - сэмплы по сути это сэмплы означающие наличие хранимой волны условно WAV.
И применяют его только как "единицы", для удобства в отдельных обсуждениях, прекрасно отражая в контексте что осциллятор, генератор, оператор, модулятор, имеют некий контент, что не означает наличия воспроизводимого элемента и не обязательно наличие таблиц для хранения таких "образцов".
Я сталкиваюсь с таким понятием как sampled не впервые, но впервые встречаю что это стоит трактовать в составляющих осцев как воспроизводимую волну.

В целом мы с вами пришли к общему знаменателю уже некоторое врем назад. Наличие Sampled, в описании OSC, ENV, LFO кривых - может означать "образец" волны. Но это не означает факта воспроизведения такой волны.
Есть куча модулей LFO, которые берут за основу резонансные импульсы от кристаллического осциллятора, управляются клоком. Есть базовые вещи - образующиеся в аналоговом тракте таким образом. А есть и такие же точно решения, но с программной частью - у такой волны выполняется просчет шейпинга для модификации квадрата - в синусоиду, и треугольник, опять таки путем арифметических исчислений. И это классика жанра.
В базовых примерах DSP вы легко встретите пути применения в LFO квадрата как основу-генератор, остальные волны получают из квадрата. И прежде всего - синусоиду. Да, те самые мягкие и острые огибайки модуляций - это как правило сгенерированный импульс, а не зашитые волны Sine, кажущиеся такими на примере.

Взять педали гитарные, где бывают ЛФО, и там для применяемых Sine, берутся генераторы квадрата как правило.

Что по Serum, даже легкий беглый поиск вам расскажет что это Аддитивный синтез на базе FFT-спектрального анлизатора, конкретно в "рилтайм".
С сайта разработчика:
Generate or modify waveforms using FFT (additive). Create or process waveforms using formula functions.
Есть там и такое, помимо рисования волны, применение формул функций, что напрямую показывает, что движок работает на базе исчислении по функциям (ожидаемо). Наличие функционала применения гармонического и спектрального морфинга, показывает и то, как оно вообще работает, точно не через генерируемые сэмплы, а через морфинг значений FFT из рилтайма.
FFT в рилтайме это не сложно, это по сути рилтайм изменения всех ее сэмплов по всей длины волны, в каждом ее отдельном сэмпле(длине волны рилтайма). то есть уровень каждого сэмпла волны, по сути представляет собой рилтайм изменяющуюся составляющую.
Вы можете назвать это таблицей. Но нет там на стадии рисования и формирования волны воспроизведения генерируемого сэмпла, есть морфинг табличных данных получаемых рилтайм от FFT, ведущийся в лице рилтайм аддитивного синтеза, который и порождает на выход аддитивный сигнал.
 
Как будто ромплер это что-то ругательное )) Часть из них давно уже приобрели статус культовых
 
Последнее редактирование:
@euggie2000, вы не поверите, но сегодняшние SDK VST, Juice, Gorilla, ELK, и прочие позволяют делать не только плагины разных форматов, но и делать билды на арм и х86 линукс, в целях построения железных синтов. То есть да - создается под СДК, а собирается на базе какой нить распбери условной. И по типу того, что участвует ОС, сложно дать характер продукту
Я сам уже думал сделать и процессор и Синт на базе ELK, но выходит дороговато, сама платформа + распберри, хотя можно и атом, + корпус и управление.. все делается легко, опыт с DIY большой. Но я как софт-разработчик, совсем не уверен в спросе оного на железном рынке. Жил бы в Еуропах, пошел бы на Кикстартер в легкую, а так.. без краудфандинга слишком велики шансы самозатратиться и окупиться в ноль. Нет, вещи можно сделать отличные. Вопрос в реализации из РФ))) С ноля не вспрыгнуть) Но больше думаю теперь о еврорек модулях, но там нужно для такой смеси распберри и Elk - все таки нечто монструозное, и риски опять таки есть уйти на низкие партии. Я к тому, что софт реализовать проще. Уходить опять таки в чистый АРМ на кортексах мне не оч интересно, как делает мир еврорека)

А так в поисании синта С15: Based on elementary mathematic algorithms, the signals are generated, modulated, shaped, and filtered in realtime. Хотя вроде корни там ли от реактора у разработчика
 
Последнее редактирование:
  • Like
Реакции: Alexander Yakuba
PSS470...чтобы звук в рилтайме рулить, в более поздних все через меню уже

Yamaha PSR 36 / PSR 41 тоже содержит слайдеры, и базируется на том же чипе (или около того). На сколько разница в окрасе хз, если она вообще есть... но зато полноразмерная клавиатура и, что немаловажно - миди вход/выходы. (На самом деле именно норм клава и наличия миди как раз ой как не хватает ... ну может кому как. Ну и ещё жаль шумновата немного. А так цацка норм. Есть что-то прикольное в окрасе этих игрушек, по сравнению со взрослой DX серией, из которой не получается выжать тембра с таким же "тёплым" LoFi окрасом, в хорошем смысле). Дальше серия SY ещё взрослей и ещё холодней. А FS1R и ещё взрослей... и ещё холодней )

PS - дэмака зачётная! Жаль, что на канале всего два видео...
 
Последнее редактирование:
Что по Serum, даже легкий беглый поиск вам расскажет что это Аддитивный синтез на базе FFT-спектрального анлизатора, конкретно в "рилтайм".
С сайта разработчика:
Generate or modify waveforms using FFT (additive). Create or process waveforms using formula functions.

Что-то я не увидел в процитированных английских словах конкретно "рилтайм" :)

Или под рилтаймом подразумевается создание сэмпла на лету? Именно короткого однопериодного СЭМПЛА, а не сигнала синтезатора? Ну такой себе рилтайм :) Ну да.. это генерация кусоооочка сэмпла, не более... только синт остаётся быть сэмпл плеером этого кусочка. В простонародии такие синты называют ромплерами. Когда заранее просчитанный сигнал проигрывается из памяти во внутреннем сэмпл плеере.

Наша с вами беда - мы расходимся в употреблении понимания слова "сэмпл".

У меня с этим нет никакой беды. Я достаточно подробно выше аргументировал, что сэмпл - это отсчёт, а проигрывание сэмплов друг за другом это волна (тоже именуемая сэмплов). Нет никакой принципиальной разница - музыкальный это отсчёт или не музыкальный. Сигнал он и в Африке сигнал... Любой сигнал можно подать на ЦАП - что-то да воспроизведёт. Так что это только Ваша беда, что Вы не можете осознать, что таблица сэмплов, таблица отсчётов, таблица синуса в Таблице Брадиса - это всё одно и то же по смыслу. Это таблица уровней, таблица значений, таблица цифр... разницы вообще ноль... можно называть как угодно. Табличные вычисления - это найти в таблице значение, которое соответствует аргументу. Проиграть нужный отсчёт из таблицы сэмплов - это взять отсчёт, который соответствует порядковому номеру, то есть аргументу времени. Абсолютно эквивалентные процессы. А то, что эти сэмплы проходят обработку, это уже из другой оперы. Это не относится к генерации напрямую, это относится к обработке. Как есть VSTi и VST. Одни генерируют сигнал, другие обрабатывают. Так вот синус обработали кривой и засунули в РОМ. А потом проиграли, и обработали на выходе зеркальной кривой для восстановления. Но сам процесс "проиграли" к этому процессу обработки не имеет никакого отношения. То есть сама генерация на основе сэмплов и обработка - два независимых процесса, которые в комплексе дают нужный результат. Но "обработка" нужна была лишь для оптимизации вычислений, её могло и не быть. Результат волны был бы тот же, но вычислений больше. Поэтому экспоненту и логарифм к "генерации" самого синуса приплетать вообще не следует. Они нужны лишь для оптимизации вычислений FM формулы. В чистом DDS эти дополнительные обработки сигнала не используется, а принцип всё тот же.


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


Опять Вы за свои "построения функции" арифметически. Вы знаете, что такое арифметическое построение функции синуса, а не использование табличных данных? Это колоссальная разница. Вы только вникните в суть процесса. Если у Вас вдруг некоторые сайты не открываются даже через VPN, я уж сразу скопипастю информацию сюда. Самое интересное выделил ))) Итак:

Чаще всего, когда не нужна высокая точность, компьютер берёт значения синуса из готовых таблиц — он находит там нужный угол и возвращает значение, ничего не вычисляя. Это быстро и достаточно точно для бытовых вычислений. Вы наверняка использовали его в школе, когда считали синусы по таблице Брадиса.

Но когда нужна высокая точность вычислений, то синусы и другие тригонометрические функции высчитывают каждый раз с нуля. Для этого используют много разных алгоритмов, и самый простой из них — использование рядов Тейлора

В общем виде ряд Тейлора функции выглядит так:

221220



Выглядит сложно. Но если разложить эту формулу сумму в понятный вид, она будет выглядеть так:


221221


-----

На фразе "самый простой" я просто проржал ))), глядя на формулу ... куда там сэмпл плеерам )))

Так вот... Вы себе представляете разницу по нагрузке между двумя действиями ниже???

1) - пойти в таблицу ROM сэмплов, и взять оттуда уже просчитанный результат

ИЛИ

2) - каждый отсчёт из 44100 за секунду просчитывать на основе формул, в которой есть сложение/ вычитание, деление, факториал (а это многократное умножение в цикле), возведение в степень (а это многократное умножение)...жуть... и так с бесконечной периодичностью пока не достигнется нужная точность. На самом деле это очень большая нагрузка по вычислительным операциям. И всё это только для просчёта ОДНОГО отсчёта (который можно было взять из просчитанной таблицы), а таких формул надо просчитывать 44100 за секунду для 96 осцилляторов, а это 4233600 формул в секунду, где в каждой формуле - куча факториалов, возведений в степени, деления итд... - вот это есть, как Вы говорите "тупо" функция, которая так изящно выглядит на высокоуровневом языке программирования одной короткой строчкой SIN(X).... а на самом деле под капотом происходит полный трэшак.

Так какой всё же из этих двух вариантов логичней использовать? Тем более, если учитывать, что все 96 осцилляторов могут использовать один общий ресурс - ROM. И ВСЁ! Никакие больше дополнительные вычисления не просчитываются, как Вы пытаетесь навязать. На основе этих сэмплов никакие больше функции и дополнительные данные не высчитываются. Именно для этого нужна уже просчитанная таблица, чтоб больше ничего дополнительно не высчитывать! Вы когда таблицу Брадиса используете, вы просто берёте соответствующее аргументу просчитанное значение. ВСЁ! Тоже дополнительно ничего не высчитывая. Это на столько просто и очевидно. Не могу понят, зачем Вы придумываете какие-то вычисления по каким-то неизвестно работающим функциям, если известно, что есть уже готовая просчитанная таблица.

А теперь подумайте, почему даже современные многоядерные микропроцессоры компьютера не высчитывают синусы на основе формул, а содержат в памяти ROM уже таблицу просчитанных значений (до определённого порога точности). Потому что этот трэшак каждый раз просчитывать очень ресурсоёмко даже для современных многоядерников. Конечно можно, но не разумно. А вот DX7 из 80-ых ... по вашей логике с этим справляется на раз два. Жуть... Нет, там точно такой же принцип, в памяти тупо таблица значений (в описании NCO осцилляторов именуемые SAMPLES), которые вызываются друг за другом по порядку с разной скоростью в зависимости от необходимой частоты звука, что эквивалентно сэмпл плееру.

Я думаю для этого Вам надо ещё раз процитировать принцип генерации синусов в DX по ссылке, которая у Вас не открывается. Вникните в суть происходящего процесса, и Вы поймёте, что это банальный сэмпл плеер. Я эти строки для Вас уже цитировал, повторю их ещё раз:

The digital implementation of frequency modulation starts with a lookup table that holds a digitized sine wave. By stepping an index through the table at a specific rate, you can produce a sine wave of a fixed frequency. To make this concrete, suppose the table is 4096 entries long and the index is updated at 40960 Hertz. If you increment the index by 100 each time, you'll cycle through the table 1000 times every second, so a sine wave at 1 kHz will be produced. The index represents the phase of the signal: as the index moves through the table, this corresponds to a phase of 0 to 2π and an output of sin(0) through sin(2π). Changing the increment value controls the frequency. For instance, an increment of 44 would produce 440 Hz.12

(взято отсюда - https://www.righto.com/2021/11/reverse-engineering-yamaha-dx7.html )


------


Я понимаю, почему Вы так заблуждаетесь в своих суждениях. Вы думаете, что одна изящная и короткая строчка кода вида SIN(X) в компьютере работает так же быстро и эффективно, как и выглядит (на высокоуровневом языке программирования). Причём наверно даже не задумываетесь, что в компе тоже данные синуса оцифрованы в виде таблицы, и ничего не вычисляется. Причём оцифрованы с бОльшей точностью! Ибо ROM dx7 из 80ых и ROM в современных микропроцессорах - это разные возможности. А если нужна более высокая точность, то синус просчитывается по формулам с такой нагрузкой, в которую Вы никогда не углублялись на уровне арифметических операций. Поэтому ложно думаете, что раз такой короткий алгоритм записи функции - одной строчкой, то и действия такие же простые.

Производители чипов - инженеры и тут куда проще себе представить математическую функцию описывающую ту самую часть параболы и представит как Sine.


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


Поскольку осциллирующий кристалл при скальпировании не обнаружен, ролью генератора выступает тупо мат функция параболы. И вот дальше она используется для построения волн.

парабола... парабола... парабола...

Ещё одно заблуждение состоит в том, что Вы ошибочно думаете, что четверть синуса можно легко заменить более простой параболой. Да, действительно функция параболы (икс квадрат) выглядит намного менее ресурсоёмко, чем полином Тейлора, который приведён выше для трушного вычисления синуса. Только вот такой простой формулой как (икс квадрат) четверть синуса не построишь. Если соединить такие 4 параболы - это будет очень искажённая форма синуса. То есть это вовсе не синус. Более подробно я выше уже объяснял. Но Вы этого не учли, и наверно думаете, что вычисление функции это где-то что-то там взять в степень, скопипастить 4 раза и готово... - нет!... не прокатывает. Так оно не работает. Оно работает по-другому. По трушной длинной формуле просчитывается четверть синуса, данные оцифровываются в таблицу, и на основе этой таблицы берутся соответствующие значения и всё! Больше ничего дополнительно не вычисляется! Это эквивалентно функции SAMPLE (X) , которую я выше описывал в постах.

Ровно то же самое происходит с FFT, которые по-вашему так легко вычисляются. Если с FFT всё так легко и быстро, объясните пожалуйста две вещи.

1 - почему такие синты как Serum и Sytrus буквально затыкаются, то есть на время перестают воспроизводить сигнал при нажатой ноте, когда я вношу изменения в FFT генерацию? Если это по-вашему рилтаймовый осциллятор, то почему нет беспрерывности звука?Ведь если бы сигнал всегда генерился от параметров, то синту было бы пофиг какое значение параметра в данный момент, изменены они или нет, он бы каждую секунду много раз пересчитывал одно и то же заново.. но нет! Всё просто, в этот момент затыка синт ЕДИНОЖДЫ пересчитывают FFT ряд, создаёт сэмпл, и дальше работает как сэмпл плеер. Никакой это не синтез FFT в реальном времени. Ровно как и синус DX7 когда-то был ЕДИНОЖДЫ просчитан по сложной формуле, засэмплирован, и дальше юзается как сэмпл.

2 - почему в Серуме при проигрывании FFT осциллятора на самых нижних октавах сигнал звучит как низкоразрядный дешёвый сэмпл, и спектр выглядит крайне обрезанный по верхушке частот, ровно как в сэмпл плеерах при транспонировании сэмпла вниз. Можно не отвечать на этот вопрос... достаточно заглянут, что производитель позиционирует синт как Wavetable Synthesizer. Чего ещё стоило ожидат... Вот такой вот он ваш FFT, приведённый в пример... FFT на сэмплах!!!
Было бы так легко сделать нежручий синт на FFT осцилляторах, стали бы SERUM-овцы заморачиваться с сэмплами, которые по-вашему намного "жручее", чем "простые" формулы.

Вот мне кажется и в D-50 всеми любимый PWM синтез является не чем иным, как "Вейвтейбл на основе сэмплов", позаимствованный из более ранних PPG WAVE. Никакой там не синтез в рилтайме, то есть если быть точным - не синтез по формулам, или по функциям, или по алгоритмам. Продвинутый сэмпл плеер, не более (У PPG именуемый вейвтейблом). Точно с таким же завалом высоких частот на низких октавах при транспонировании сэмплов как и в примерах PWM у Серума.

Так что, как видите, синты даже на многоядерных процессорах современных компьютеров не вычисляют FFT в РЕАЛЬНОМ времени, а синтезируют сигнал единожды, сохраняют его в виде сэмпла, и крутят короткий сэмпл луп в своём внутреннем сэмпл плеере. Что уже говорить про чип DX7, который и в помине не сравнится по вычислительной мощности с современными многоядерниками.
 
Последнее редактирование:
  • Love
Реакции: M Clis
У меня нет времени и желания объяснять то что вы можете читать но или не читаете или понимаете иначе чем написано.
это касается и мануала по чипу OPL где черным по белому написано, что вычисляется первая волна синусоиды, остальные не вычисляются а используют четверти в результате для построений оставшихся трех волн.
Но вы продолжайте мне объяснять что там идет просчет отдельный всех 4 волн. Написано в мануале иначе. Зачем спорить против документации? Это глупо, там идут симметричные развороты четвертей первичной синусоиды. Остальное - ваши трактовки удобные вам.

Что до Серума, напишите автору и спросите в лоб, почему на разных страницах он пишет четко.
что это аддитивный синтез на основе FFT, и да - в рилтайме.
вы сайт то открывали описания синта?
ну откройте статьи тот же SoundOnSound в поиске выпадает где расписывается про рилтайм работу FFT с анализом спектра импортируемой волны, рисуемой волны, или волны генерируемой в FFT по ввожу функций математически.
Автор четко указывает в рамках своего сайта, издания пишут об этом прямо - все результаты образования волны это анализ спектра по FFT и чтение вводимых функций рилтайм, а так же рилтайм шейпинг и модификация FFT волны.
я с этим всем работаю аналогично, и аналогично в моих разработках я могу использовать сканированные в FFT волны хранить статично, так и модифицировать их без участия в чтении и образовании неких сэмплов.
есть поле спектра изменяемой и модулирующееся рилтайм в каждой его точке.
и то что синт использует ввод функций для образования волны не означает какие то конвертации и образования сэмплов в цикл, я вам сотый раз повторю.
нет создаваемых сэмпл-волн цикличных, привычных для глаза визуальных волны хранимых в тех же ромплерах или отдельных пинтах конкретными волнами. Есть расчет функции, во что в том же Серуме упирается движок, в расчет функций, попутно поддерживая прямой ввод функции, помимо ее вычисления из рисуемого спектра волна, который при работе анализатора точно так же генерирует функцию характеризующую волну.
ничего там в сэмпл циклы не конвертируется для воспроизведения. Там идет работа с функциями по разным источникам, доступным в движке, с участием FFT для последующего аддитива.
функция просчитывается и выдает цифровой сигнал = расчет волны, преобразуя его в сам полезный сигнал, рилтайм потоком.
нет момента генерации сэмпла, с его чтением. есть момент генерации сигнала из функции. потока.
Напишите напрямую разработчику серума, и поймете что синт этот вейвтейьбл, потому что идет работа с таблицами волн = FFT анализ или ввод функции волны напрямую, для каждой ячейки таблиц, а по сути результаты этих волн участвуют конкретно в аддитивном синтезе (сложения волн), что является базой синта, с его возможностью формирования генерируемого сигнала рилтайм анализатором спектра импортируемых волн, рисуемых кривых рилтайм или генерации волны из вводимой функции.
Не к чему эти сказки про конвертацию цифрового сигнала в волну, которая воспроизводится чем либо до ее попадания в DAC.

Вы теоретик и воспринимаете читаемую в мануале информацию по своему. Я практик который работает в этом. И все что я могу - только согласиться что формируемый прообраз волны - удобен человеку для понимания что идет формирование кривой, и не обязательно визуально и доступно для воспроизведения, по факту есть функция как исходный сигнал, и для работы такой волны, движку синта что в ВСТ что в железе необязательно нужно формирование сэмпла. Есть поток сигнала из генератора, исходник - функция. Зачем пытаться называть поток сэмплом, я не понимаю. Но вы делаете именно это, и с этим я не соглашаюсь по своим причинам.
Генерируемая волна это и есть та функция, а не удобная для человека выстраиваемая координатно волна за единицу времени.
Я готов это условно называть сэмплом, примером, образцом в единицу времени. Но это не отменяет природу генерируемого сигнала из функции как потока. И не готов разделять что это воспроизводимая волна.

Те случаи ромплеров, где волны действительно заложены как сэмплы, с генерируемыми волнами через функции имеют лишь условное общее, так как волны сформированы разными путями. и всего навсего имеют цикличность.
У ромплеров волна циклична - в лупе. У генераторов на функции - есть формируемый поток волны, это не сэмпл, это поток.
Нет никакого процесса генерации волны в сэмпл в OPL, который нужно воспроизводить, разве что сама генерация сигнала в единицу времени рилтайма из функции, что больше представляет собой рилтайм поток, а вот когда закладывается конкретный цикл волны в ПЗУ для ее чтения, действительно - не нужны никакие генерации волны из функций, достаточно таблички с координатами описывающими волну и ее "воспроизведения/чтения"..
это два разных концепта работы генераторов и осцилляторов.

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

А для себя я беру анализатор спектра, получаю кривую, и работаю с каждой точкой кривой в рилтайме, что было бы невозможно в работе с сэмплом. Или же было бы работой с таблицей. Готов я или нет все это называть работой с сэмплом - вопрос риторический. Я работаю с сэмплом - когда я закладываю цикличный сэмпл волны в осциллятор. В противном случае - я с сэмплом и его формированием - попросту не работаю. Но то с чем я работаю когда имею дело с FFT, я условно с натяжкой могу назвать потоком и за единицу времени - могу условно называть процесс с результатам моментальных изменений - "сэмплом". Но это не имеет отношения к сэмплам как таковым, и чтению.
Сэмпл здесь будет частичкой времени, взятого от потока генерируемой волны.
И что важно - цикличность волны возникает благодаря функции образующей кривую, а не наличию некоего сэмпла находящегося в лупе. То есть здесь абсолютно не важен и не применим разговор о сэмпле с точками лупа. Здесь имеется образуемый поток генерируемый по функции. И нет никакой таблицы и образованием сэмпла, для его воспроизведения в последующем.
 
Последнее редактирование:
Собственно в Серуме открыто говорится про анализ волн ФФТ или из рисование или их генерация из формул.
При этом за рилтайм шейпинг ФФТ данных снятых во всех вариантах генерации сигнала, происходит в том числе процесс Warp, изменяющий ФФТ кривые волн в рилтайм модифицируя кривые волны в каждой ее точке.

собственно реализация Warp мной в моем WT-FM синте заканчивается на данный момент к реализации,то о чем я говорил. А конкретномодификация ФФТ данных в рилтайме, помимо ФМ модуляций статичных волн которые я закладывал изначально в синте.
то есть в моем случае это ФФТ кривые в таблицах ВТ синтеза с функционалом ФМ операторов/модуляторов.
так что по вопросу рилтайм процессинга волн - я сейчас как раз в работе.
 
  • Like
  • Love
Реакции: Alexander Yakuba и M Clis

Сейчас просматривают