Pull to refresh
3
0
Vasily @vasan

Programmer, musician, composer

Send message

Попробуйте для примера Nanobrot Fractal Renderer. Там в исходном коде есть библиотека (nmblib) для работы с числами произвольной точности, (конкретно смотрите mpreal.h).

Самые интересные и красивые фракталы Мандельброта, напоминающие мандалы, получаются при очень громадным зуме, порядка 1.0e³⁰⁰ и более. Но вот проблема, стандартные типы данных (даже таких как long double) не способны обеспечить нужную точность расчётов, из за пресловутого "машинного эпсилона", ограничивая увеличение максимум на 1.0e²³. В этом случае применяют библиотеки, производящие математические операции с числами произвольной точности.

Может имеет смысл попробовать применить CUDA для расчётов фракталов с громадным зумом?

Фрактал Мандельброта с зумом 9.0e³⁰⁰
Фрактал Мандельброта с зумом 9.0e³⁰⁰

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

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

с double проблем меньше )

Кстати если точность является критичной, то имеется библиотеки для вычислений с плавающей запятой многократной точности, например, GNU MPFR Library.

Если нужна точность, то зачем работать с числами типа float?

Для этого есть double и long double.)

Да у меня имеется JetBrains PyCharm Community Edition 2017.2.1 x64, несколько лет назад изучал работу некоторых программ на Python, однако всё сводилось к банальному разбору кода, в последствии вручную переписывания на С++. Хотя пожалуй попробую использовать онлайн конвертер https://www.codeconvert.ai/python-to-c++-converter

Эх, как бы этот код на C++ портировать, чтобы подцепить к одному интересному проекту...???

В чистом виде нет, но материал из Sound Art используется при работе над композициями, например в Journey to the metaverse или Wood texture improvisation (в последней использовано преобразование в звук фотографии текстуры дерева).

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

В арсенале моих разработок как раз имеется бесплатное приложение Sound Art, которое осуществляет преобразование изображение в звук и наоборот.

Такой критерий как "Музыкальность звука" прежде всего оценивается по наличию в нём гармонических составляющих - консонансов, и собственно соблюдением общепринятых музыкальных канонов. С другой стороны, я не противник подобных звуковых экспериментов, а наоборот сторонник. Также иногда занимаюсь подобными проектами, например, можете заценить мой виртуальный синтезатор VSTi формата, создающий необычные звуковые формы - Marazmator.

В музыкальном плане подобные звуки малопригодны, ну разве что использовать их в различных экспериментальных жанрах вроде dark/drone ambient, да и то обработав их процессором эффектов.

Бывало подобное. По сему тщательно просматриваю код после подобного рода манипуляций.

Ещё в СССР программистов порой назвали кибернетиками.

Когда учился в начале 90-х, нас были преподаватели, который учили тому, что настоящий программист должен дорожить каждым байтом информации. Если учесть что в те года у нас основным носителем информации были дискеты 5.25'' с 360/720 Кб, то много на такую дискету не запишешь. Поэтому порой некоторые преподаватели снижали оценки, видя в исходном коде лишние пробелы, отступы, пустые строки и длинные комментарии.

P.S. Долгое время не мог отказаться от этой "привычки" писать в таком стиле код. )

Хотелось бы дополнить - первый в СССР музыкальный компьютер на базе АГАТ 7 был создан в Новосибирске в 1984 году, на базе компьютерной лаборатории в Новосибирской государственной консерватории. Включал в себя: ПЭВМ «Агат», музыкальную клавиатуру 3—5 октав, синтезатор семиканальный (ЯЗС5/2СК — воспроизведение оркестровой партитуры, пять мелодических и два ударных канала, псевдостереовыход, подключение музыкальной клавиатуры), акустический ввод и адаптер MIDI (ЯАВМИ — ввод сигнала с микрофона, ввод-вывод информации в стандарте MIDI, микрофон с микрофонным усилителем, головные телефоны). Программное обеспечение: «Графический нотный редактор», «Текстовый нотный редактор», «Сольфеджио», «Клавиатура», «Высота», «Ритм», «Диктант», «Чтение», «Музыкальный конструктор», «Дискотека», «Игра — ДМ1», «Игра — ДМ2».

Вот поэтому свой старенький Alcatel Pixi 4 не за что не променяю на такие вот современные игровые.)

Даже порой обыкновенная рандомизация тональностей в MIDI сообщениях позволяет получить новые музыкальные текстуры. И где в рандоме искусственный интеллект?

P.S. Желающие могут поэкспериментировать с рандомизацией посредством бесплатной программы Crazy Music.

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

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

Information

Rating
Does not participate
Location
Красноярский край, Россия
Date of birth
Registered
Activity

Specialization

DSP/VST/DAW Developer
OOP
C++
C
Software development
Visual Studio
Delphi
Lazarus
PHP
Objective-C