Создание музыки в среде программирования Бейсик

             запись мелодии "Полюшко поле" - http://yadi.sk/d/_Pf_fGmg3GJDBR

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

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

  Оператор BEEP создаст короткий гудок. Он используется как звуковое сообщение, например, о том, что программа закончила свою работу.
  Более интересные возможности предоставляет оператор PLAY. Оператор PLAY обращается к находящейся после него строке, и выполняет последовательно те указания, которые в мнемонической форме в этой строке записаны. Например:

    PLAY "O3 B-2 G B- A-2 F2"

здесь, в строке, указания на ноты разделены пробелами, но можно пробелами их и не разделять.
 O3 указывает на то, что ноты будут играться в первой октаве.
 B-2  играется Си бемоль половинной длительности.
 G  играется Соль, длительность не указана, берётся по умолчанию - четвертная.
 B- играется Си бемоль четвертной длительности.
 A-2 Ля бемоль и F2 Фа, обе ноты имеют половинную длительность.

  Заметьте, что для обозначения нот используются общепринятые буквенные обозначения. Буквы CBFGAB обозначают ноты До-Ре-Ми-Фа-Соль-Ля-Си. Знаком минус обозначается бемоль, а на диез будет указывать знак #.
  Когда строка, которую мы записали, прозвучит, то Вы узнаете мелодию первой строки песни "Полюшко поле". Как выглядит эта строка в нотной записи, показано на рис.1 (см. начало статьи).

  Запись предполагает хоровое пение, но мы могли бы исполнить её, например, на фортепьяно. В строку оператора PLAY мы записали только нижние ноты левой руки, а если бы мы добавили ещё и другие ноты, то наша музыка зазвучала бы поинтереснее. А можно ли сделать это средствами бейсика?
  Да, это сделать можно. Но озаботимся пока другой проблемой.
  Заполнять строку оператора PLAY буквенными символами не очень удобно, и как хорошо было бы нажимать на клавиатуре компьютера клавиши, клавиши бы звучали, а буквенные символы нот сами бы записывались в строку.
  Для того, чтобы отслеживать нажатие клавиш, В Турбо Бейсике используется Функция INKEY$. Эта функция возвращает символы нажатых клавиш, или двухсимвольные строки, в том случае, если клавиша была нажата вместе с функциональной клавишей Alt или Ctrl.
  Итак, выполним оператор A$=INKEY$, а затем, по полученному символу нажатой клавиши A$ определим порядковый номер клавиши в последовательности нот До, До#, Ре, Ре#, и так далее. А потом, по заранее приготовленной таблице, найдём частоту звучания ноты. И, наконец, чтобы нота зазвучала, используем оператор SOUND F,m где F - частота в герцах, m - длительность звучания в секундах, поделённая на число 18.
  Одновременно с нахождением частоты, по порядковому номеру ноты мы можем найти и её буквенное обозначение, и записать это обозначение в строку.
  Однако, как расположить звучащие клавиши на клавиатуре компьютера?
  Я рекомендую сделать это так, как показано на рис.2.
  Если у Вас ноутбук с чёрными клавишами, то на некоторые из них можно наклеить кусочки светлой изоленты, так, как показано на рисунке. Ряд чёрных клавиш фортепьяно этими наклейками будет удобно выделен.

  Подобную программу я сделал, и назвал её Пианола. Как Пианола заполняет строку в своём окне символами нот, показано на рисунке 3 - чёрная строчка.
  Строка пишется четвертными нотами, а продление нот вдвое обозначается крышей. Строка может быть проиграна, при этом на звучащие ноты указывает голубая стрелочка. На зелёной строчке ведётся счёт четвертных нот, в двух тактах их набралось восемь. Всего в записи 4 строки – цифра 4 в скобках указывает на это.
  Запись запоминается в обычном текстовом файле, и первая строка этого файла выглядит так:

 1  {*0420| B-^GB-  A-^F^   }

  И такая же запись нот делается отдельно для партии правой руки.
  Теперь сделанную запись неплохо бы озвучить. Давайте, озвучим её звуками трубы. Но прежде приготовим партитуру – тоже текстовый файл, содержащий значения частот, длительности звучания нот, и длительности посленотных пауз. Такой файл программа Пианола выводит, а мы делаем в него добавления – в виде пометок указываем на то, что играет именно труба R=5, что звук громкий H=5, и буквами G=/ устанавливаем аккорды. В результате первая страница партитуры выглядит так:

1 ================= TFL.TXT 
  R=5 H=5 G=/3 - цифра 3 показывает, что второй звук аккорда
F= 466.160 T1= 26460  T2= 540 находится на 3 полутона выше
F= 392     T1= 13230  T2= 270
F= 466.160 T1= 13230  T2= 270
F= 415.299 T1= 26460  T2= 540 G=/4
F= 349.230 T1= 26460  T2= 540 G=/3

  Точно то же самое мы делаем для партии правой руки, и получаем для неё свою партитуру. Для того, чтобы обе партитуры озвучить, используется другая программа, тоже написанная в Турбо Бейсике. Она называется Трио.
  Названа она так потому, что ею можно озвучивать одновременно три партитуры, объединяя все звуки в один файл. Поговорим об этом подробнее.

  Все музыканты, создающие музыку на компьютере, работают с файлами WAV формата. Каждые два байта этого файла составляют семпл - пару символов, или целое число, называемое амплитудой звукового сигнала. При проигрывании записи семплы следуют друг за другом с большой частотой. Частота эта ещё называется скоростью раздачи. Обычно семплы раздаются со скоростью 44100 семплов в секунду, и на один период колебания ноты Ля первой октавы (частота 440 Гц) при такой раздаче приходится около ста семплов.
  Программа Трио звук не воспроизводит, но она создаёт семплы и записывает их в звуковой файл. Потом этот файл можно отредактировать и прослушать. Такой способ работы очень удобен: во-первых, можно не торопиться с записью – её скорость может отставать от скорости будущего воспроизведения; а, во-вторых, в ходе записи можно останавливаться, чтобы прочесть новую строку партитуры, или останавливаться перед началом нового периода звукового колебания, с тем, чтобы поменять некоторые параметры и немного изменить рельеф звука в следующем периоде.

  Программа Трио по своей структуре напоминает ансамбль с тремя музыкантами и дирижёром. Задача дирижёра – заполнить WAV файл семплами. Он, прежде всего, открывает те файлы партитур, по которым музыканты будут играть. И тем из троих музыкантов, которые будут играть, подаёт знак – как бы стучит палочкой по пюпитру. А потом обращается к ним по очереди – к первому, ко второму и к третьему, с тем, чтобы получить от каждого амплитуду звука.
  Музыканты вначале не знают, на каком инструменте, с какой громкостью, и какие ноты они будут играть. Но каждый музыкант начинает читать свою партитуру, и из строк партитуры узнаёт об этом. Как только музыкант находит в партитуре знак паузы, он заносит в счётчик то число семплов, которое пауза должна длиться, и на каждое обращение дирижёра возвращает ему ноль, означающий молчание в паузе, и вычитает единицу из счётчика.
  А если музыкант читает строку, в которой указана частота ноты, то он тоже заносит в счётчик длительность её звучания. А за амплитудой звука обращается к своей звуковой функции, указав ей номер инструмента и частоту.
  И вот так дирижёр с музыкантами работают, заполняя WAV файл семплами, но в конце каждой странички партитуры музыканты останавливаются и ждут друг друга, с тем, чтобы новую страничку начать играть дружно и вместе.
  Точь в точь, как это происходит в настоящем оркестре.

  Чтобы послушать звук, который у музыкантов получается, и посмотреть на форму звукового колебания, мы можем использовать какой-нибудь звуковой редактор, например Wave Editor. Как выглядят в окне этого редактора синтезированные звуки трубы и фортепьяно можно видеть на рисунке 4.
  Звуки различаются между собой формой и, соответственно, звучат по-разному, но есть между ними и общее.

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

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

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

  Но посмотрим, как формируется звук трубы.
  За основу этого звука взята обычная синусоида ( «а» на рисунке 5):
   

  Правда для простоты вычисления полупериоды синусоиды аппроксимируются параболой, а фаза меняется не от нуля до двух Пи, а от 0 до 2-х.
  Это очень удобно – если от начала появления звука прошло T секунд, а частота звука равна F Гц, то целая часть произведения T*F указывает на число прошедших периодов N, а дробная часть этого произведения после умножения на два укажет на фазу X.
  Вычислим амплитуду синусоиды в первой четверти:

A1 = 1-(2X-1)^2 и вычислим четвертую степень этой амплитуды: A4=A1^4
 затем вычислим A = EA*A1+(1-EA)*A4, где параметр EA при его значении, например, .8 создаст обострение вершины колебания – показано на рисунке «а» пунктиром. Именно так создаётся звук фортепьяно.

  Сам метод называется методом деформации синусоиды. Помимо EA в нём используются и другие параметры. Однако, создадим звук трубы – возьмём вместо значения EA=.8 значение EA=-2. Тогда, вместо обострения максимума синусоиды мы получим на его месте провал с высоким пиком в его середине, см. рисунок «б».
  Продолжим преобразования. Используя параметр E1, удлиним первую четверть колебания и сократим вторую, а задав параметр E2=1.3, поступим также с четвёртой и третьей четвертями. Результат показан на рисунке «в».
  Наконец, с помощью параметра E0 сделаем ассиметричными полупериоды колебания – см. рисунок «г».
  Пропускаем колебание через слабый фильтр, представляющий собой дифференцирующую цепочку, колебание уменьшается по амплитуде и обостряется по форме, и становится звуком трубы, который показан на предыдущем рисунке.

  Сложно это или просто? В сравнении с общепринятыми методами аддитивного и субтрактивного синтеза, конечно, просто. А главное, понятно – тут растянем, тут сократим, тут добавим.
  Но посмотрим, каким образом задаются и изменяются параметры в программе озвучивания.

  Развитие звука того или другого инструмента задаётся в звуковой функции в виде компактной записи, называемой сценарием. Сценарии имеют номера и входят в тело оператора SELECT CASE. Вот сценарий развития звука трубы:

  CASE 5 : IF UX3=0 THEN UX3=.31 'du du  tembr => UX=0
    MU1=50.06 : AU1=2 : DU1=100.998 : EA=-2
    Apm$="505050707050505560657035504744433857" : Dpm=.995
  CASE -5 : E0=1.25*(1+.2*FNTIM(4,T))
    E1=1.3*(1+.2*FNTIM(10,T)) : E2=1.3*(1+.2*FNTIM(7,T))
    DK1=1+(UX3+.1)*(FNTIM(16,T)+FNTIM(5,T))*FS/780-(UX3+.2)*FS/390

  Сценарий состоит из двух частей. Верхняя его часть - CASE 5, выполняется в самом начале, при первом обращении к сценарию с новой частотой, а нижняя, с отрицательным номером, выполняется перед каждым новым периодом звукового колебания.
  В первой строке сценария проверяется, установлена ли глобальная переменная UX3. Эта переменная используется для изменения гулкости звучания трубы. Гулкость трубы можно задать, сделав пометку в партитуре, но если гулкость в партитуре не задана, то по умолчанию полагается UX3=.31.
  Во второй строке задаются модуляционный, амплитудный и диссипативный факторы развития звука.
 MU1=50.06 указывает на модуляцию звука по амплитуде с размахом плюс, минус 6%, и с цикличностью в 50 периодов. AU1=2 указывает на максимальную амплитуду звука.
 DU1=100.998 указывает на то, что эта амплитуда достигается постепенно -линейным повышением громкости за 100 периодов, а после завершения фазы атаки, в каждом последующем периоде амплитуда будет уменьшаться в соответствии со множителем 0.998. О задании параметра EA=-2 уже говорилось.
 Третья строка сценария в мнемонической форме описывает неровность звука трубы в начальной фазе звучания. Там же указывается диссипативный фактор для постепенного сглаживания этой неровности.
  Нижняя часть сценария - CASE -5, описывает девиацию параметров E0, E1 и E2, и изменение фактора, описывающего свойства дифференцирующего фильтра - DK1. Амплитуда девиации фактора DK1 зависит от параметра гулкости UX3, а сама девиация осуществляется периодическим колебанием вида «треугольник» с помощью функции FNTIM(частота,время).

  Описанный алгоритм, основанный на методе «деформации синусоиды», не единственный, используемый в программе Трио для создания музыкального звука. В программе используются также «метод заполнения периода пичками» и «метод рельефа». Указанные методы, вместе со своими специфическими алгоритмами и своими параметрами, образуют три группы – «группу фортепьяно», «группу Виолы» и «группу рельефа».
  На основе этих групп может быть написано много самых разнообразных сценариев развития звука. Для получения выразительного и богатого звука группы обычно используются парами. Например, сценарий звука фортепьяно использует «группу фортепьяно» и «группу рельефа». Для создания звуков альта, скрипки или аккордеона используются «группа Виолы» и «группа рельефа». На основе «группы фортепьяно» и «группы Виолы» может быть получен звук гитарной струны.
  В программе имеется также отдельная группа из четырёх обертонов, звук которых также можно присоединять к общему звуку. И имеется ревербератор, точнее – три ревербератора, по одному на каждого музыканта. Как заполнять ревербератор звуком, указывается в сценарии, а распоряжаются звуком ревербератора сами музыканты – они решают, присоединять ли к общему звуку эхо, должно ли эхо звучать в паузах, а, может быть, эхо предыдущего звука должно переходить и на звук последующий. Свои манипуляции с эхом музыканты делают, следуя тем указаниям, которые они находят в партитурах.
  Существуют также и отдельные техники. Об одной из них уже говорилось – это техника создания аккордов, а, заодно с ними, и арпеджиато.
 
  Интересно, конечно, было бы услышать, как это всё звучит. Записи, сделанные с помощью программы озвучивания Трио, можно послушать и скачать тут - http://yadi.sk/d/poMxlrBuxendv и обратите внимание на звучание записи песни «Полюшко поле», о которой мы так много говорили. К звукам трубы в записи присоединяется сначала звук «Бумс» - так в шутку назван сценарий этого звука, потом добавляется звучание фонемы «а» певческого голоса, а потом труба звучит вместе со звуками «Дзинь», и наконец, она звучит соло, удаляясь куда-то вправо.
  Об истории проекта можно прочесть здесь - http://www.proza.ru/2016/12/29/1190

  Вы видите, что Турбо Бейсик и в настоящее время является продуктивной средой, в которой можно не только изучать основы программирования, или создавать простенькие игры, но можно также осуществлять сложные, серьёзные и очень интересные проекты.
______
Сейчас музыкальный проект переведён в более современную среду - Визуал Бейсик.
Подробно о современном состоянии проекта можно прочесть тут - http://www.proza.ru/2018/06/26/656

===== ДОПОЛНЕНИЕ =====
      
  Основываясь на достигнутых результатах, поговорим теперь о проблеме, и об общей философии синтеза музыкального звука.
  Проблема синтеза музыкального звука на компьютере, по-видимому, будет существовать долго, поскольку все ожидают от компьютера невероятно успешного решения всех задач, однако в создании музыки с помощью компьютера успехи далеко не так хороши, как того хотелось бы. Прежде всего, синтезаторы, что бы о них не говорилось, не могут полноценно заменить реальные музыкальные инструменты, ни по качеству звука, ни по передаче всех тонкостей исполнения. Чаще всего, синтезатор, это некий суррогат.
  Но может быть, и реальный звук не настолько хорош, чтобы к нему стремиться? Почему мы так уверены в том, что звук реальных инструментов более красив и благороден, чем яркий звук компьютерных композиций? Может быть. Это просто дело вкуса, и выбор тут похож на выбор между анилиновыми красителями и классическими масляными красками?

  Как бы то ни было, но любители классической музыки, пожалуй, согласятся с тем, что красота, благородство и выразительность звука присущи классическим музыкальным инструментам. Задумаемся, однако, над тем, почему именно звук классических инструментов представляется нам таким?

  Первый ответ прост - инструменты совершенствовались веками. Форма корпуса скрипки и толщины её деки именно таковы чтобы звук скрипки был совершенным в нашем представлении.
  Второй ответ менее очевиден - акустические инструменты существуют в реальности, и поэтому имеют звук естественный. А чем хорош естественный звук? Если не красотой и благородством, то выразительностью. И в самом деле, многотысячелетняя эволюция человека проходила в природных условиях, и слух человека поэтому оказался приспособленным к распознаванию естественных звуков - к шороху трав, к шелесту листьев, к звуку шагов, к крикам птиц и животных, к отделению эха от просто далёких звуков. Человеческое ухо способно распознавать многие нюансы естественного звука, в том числе и интонации человеческого голоса.
  Поэтому звуки акустических инструментов являются не просто гармоничными и красивыми, нет, на фоне этой гармонии и красоты, человеческое ухо легко различает, насколько близко к подставке находится смычок, как вибрируют пальцы, зажимающие струну, слышит обертоны и звуки флажолет. В настоящее время доказано, что восприятие звука человеком не просто резонансный, но и в достаточной степени интеллектуальный процесс, включающий работу сознания. Владелец по голосу может узнать лай своей собаки, музыкант может узнать тембр своей скрипки.

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

  В этом плане по-периодный метод синтеза музыкального звука представляется весьма перспективным. Он не стремится к комбинированию простейших форм колебаний, таких как пила, меандр, треугольник или синусоида, а находит, изучает и использует формы реального звука. Наблюдение и эксперимент находятся в центре этого процесса.
  Использование формы реального музыкального звука не означает его копирование. Правильно найденная форма синтеза находится в таком же отношении к реальным звукам, как понятие о предметах относится к предметам, нас окружающим. Она и выделяет в звуке общность, и очищает его от случайных проявлений.
 
  И в самом деле, глядя, например, на осциллограммы звука аккордеона, мы наблюдаем массу самых разнообразных по форме реализаций этого звука, но звучащих совершенно одинаково. И, следовательно, мы не можем сказать, что же в этом звуке такого «аккордеонистого», что выделяет тембр именно этого инструмента. И, следовательно, мы не можем правильно синтезировать этот звук. Если что и получится, то получится случайно. И управлять тембром мы не сможем, потому, что мы не знаем, как собственно этот тембр получается.
  Поэтому, ещё раз – прежде чем браться за синтез звука, его следует тщательно изучить.
  Как изучать? Сперва – наблюдать, и сравнивать, догадываться, почему именно так звучит. А потом проверять свои догадки экспериментально. Бейсик очень мобилен в этом плане – «по быстрому попробовать», лучшей среды для этого нет.
  Но скажите, кто звук таким образом изучает? Вы видели такое в интернете? Мне кажется, я один делаю это.

  Работа с отдельно взятым периодом вообще выделяет описываемый метод озвучивания среди всех остальных. Приходится вводить новые, неизвестные доселе понятия и термины. Знаете ли Вы, например, что такое «простой звук»? Чёткого понятия такого нет. И термин такой никому был не нужен. Однако, если мы делаем по-периодный синтез звука, то термин этот возникает сам собой. Простым можно назвать звук, имеющий периодическую структуру, и амплитуду близкую к нулю, или имеющую небольшую величину в начале и конце каждого периода.
  Именно такой звук, с приблизительно повторяющейся в соседних периодах формой, синтезируется по-периодном методом. Слово «приблизительно» указывает здесь на то, что форма не во всём повторяется, но может и изменяться, но только плавно, а если не изменяться, то претерпевать девиацию.
  Простому звуку может быть поставлена в соответствие частота, вычисляемая по формуле частота=1/период. Звук, не являющийся простым, называется сложным (буквально – сложенным). Многие сложные звуки могут быть представлены конечной суммой простых звуков. Пример простого звука – звук отдельно взятой ноты, пример сложного звука – аккорд.
  Термин, казалось бы, естественный, но термина такого нет. Не было надобности его вводить, стало быть. Оно и понятно – звучание отдельно взятой ноты всегда рассматривается в виде ряда Фурье. Синусоида, обременённая обертонами. И то, и другое ещё и размазывается по частоте. И Вы попробуйте, исходя из таких представлений, создать простой алгоритм синтеза звука.
  А вот методом по-периодного синтеза такой звук получается сразу – отклонение его формы от синусоиды обеспечивает ему сложный обертонный состав, а девиация формы обеспечивает размазанность Фурье составляющих по частоте. Всё сразу – как бы одним росчерком пера.

  Или возьмём такое понятие, как обертоны. Всем понятно – высшие типы колебаний, мыслимых обычно как синусоиды. Иногда к обертонам относят и призвуки более низкой частоты, называя их по-другому. И пока мы не занимаемся синтезом звука, нам в голову не приходит, что обертоны можно обострить – очень простым способом, возведя синусоиду в нечётную степень. Звучать обострённый обертон будет иначе.
  Обычно обертоны мыслятся, как бесконечно, или долго звучащие образования. Но в музыкальной практике обертоны не обязательно таковы. Обертон может не длиться из периода в период, а возобновляться в каждом периоде, повторяя при каждом появлении свою начальную фазу. Явление это имеет реальное обоснование – оторвалась струна от смычка, или оторвался воздушный поток от трости духового инструмента, и обертон возобновил своё звучание как бы сначала.
  Представим теперь, что возобновляемый обертон звучит в следующем периоде точно в противофазе к периоду предыдущему. Что мы услышим? Да и услышим ли – ведь частота обертона в разложении Фурье будет отсутствовать. Услышим мы основной тон, но окрашенный в своеобразный тембр. Подобный обертон можно назвать «квазиобертоном». Как и другие обертоны, «квазиобертон» может быть сделан обострённым. С помощью обострённых обертонов успешно имитируются низкие звуки рояльной струны.
  Наконец, можно ввести такое понятие, как «неполный обертон». Неполным, можно назвать обертон, часть колебаний которого внутри периода пропущена. Неполный обертон может быть даже представлен одним единственным пичком, но расположенном на соответствующем расстоянии от начала периода. Эксперименты показывают, что наш слух распознаёт положение этого пичка.
  Возьмём, например, второй обертон, обострим его, и оставим от него один единственный пичок в начале первого полупериода синусоидального колебания. А во втором полупериоде оставим три пичка четвёртого обертона. Позаботимся также о том, чтобы эти три пичка не были восприняты слухом как продолжение первого, а шли бы к нему в противофазе.
  В результате мы услышим характерный тембр аккордеона. Понятно и то, как управлять этим тембром – сделаем пички пошире, и тембр станет помягче. Придадим пичкам девиацию с большим размахом, и тембр станет более раскатистым. Можно и вообще тембр поменять, взяв не второй и четвёртый, а другие неполные обертоны. В записях, ссылка на которые дана выше, разные тембры аккордеона можно услышать в «Чардаше» Монти, и в «Бесаме мучо».
  Тому, что обертоны аккордеона оказываются неполными, есть физическое обоснование – язычок в звуковой планке попеременно идёт по воздушному потоку, и навстречу ему. Естественно, что в таких неравнозначных условиях, движение язычка может сопровождаться разными его изгибами, и соответствовать разным обертонам.

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

  И, возвращаясь к заглавию статьи, сделаем общий вывод – среда программирования Турбо Бейсик позволяет не только эффективно работать с музыкальным звуком, но и может быть успешным средством его изучения.
  Культура программирования является в настоящее время частью общей культуры, так что, не отлынивайте от этого предмета, изучайте его. Не ограничивайтесь знакомством с готовыми продуктами, изучайте основы.
______________

Статью можно скачать тут - https://yadi.sk/i/-Fj1ZWFT3GYRxD


Рецензии
Дима, спасибо. Рад, что нашёл ты себя в этой стихии, которая для меня -
абракадабра. Успехов тебе на этом поприще.

Павел Кожевников   22.04.2017 19:22     Заявить о нарушении
Я и сам иногда забываю, что попридумывал. Тогда собственные статьи читаю и вспоминаю )) Но с каждым разом идеи всё чётче становятся.
Дм.

Дмитрий Маштаков   22.04.2017 23:39   Заявить о нарушении
На это произведение написаны 2 рецензии, здесь отображается последняя, остальные - в полном списке.