Рендеринг гитарного звука в SPICE

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

Bogner Extasy (Overdrive Channel)
Soldano SLO100 (Overdrive Channel)
Mesa Dual Rectifier (Red Channel)
Mesa Mark IV (Lead Channel, Rhythm 2 Channel)

Примеры, чего получается в результате (пропущен звук из сэмпла riff_dry, выложенного в ветке про Вагнер dmrecords, надеюсь он не обидится; звук прибит импульсом).

Чтобы открыть файлы схем нужен ORCAD 10. Для конвертирования WAV->PWL, CSD->WAV, нужны программы PSpice Wave Processor или GTLab Converter. Модели ламп в лежат папке Mоdels, их нужно подключить в настройках библиотек программы.
 
о, умное дело.
я своисмиуляторы сосна и создавал в ходе упрощения спицовых моделей до возможности работать в реальном времени.
 
Именно Оркад. Легкие проблемы есть - нужно конвертить WAV->PWL, CSD->WAV с помощью программы PSpice Wave Processor (ссылка в первом посте). Перед конвертацией нужно удалить заголовок из WAV-файла. Я это делаю в WinAmp - пересохраняю файл через Disk Writer plug-in.

Можно пропускать звук прямо через LTspice/SwCAD III. На gtlab.net эту прогу любят - она заметно быстрее (как с точностью - хз), там же сделали библиотеку ламп под нее.
 
и ыде то гтлап? сайт на ремондте.

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

да и еще: я мог бы попробывать новым совим симулятором погонять эту схемку 5150. точнее - среднюю часть , тк 1я и последняя лампы это по сути буфкаскады, их можно заменить линейными фильтрами, все будет так же.
 
Cleopard - хочу предложить такую идею. Создать некое подобие открытого или полуоткрытого (в котором спрятана реализация моделирования, напр. через DLL) конструктора. Потому как одни люди (как НикКроу или ты) имеют готовые средства моделирования, но не имеют времени моделировать новые схемы. Другие имеют желание, но не имеют готовых инструментов.

Я, например, за отсутствием времени практически обломался моделировать схемы - проблемы со стабильностью обсчета численными методами, большая загрузка ЦПУ и это без обсчета внутренних емкостей ламп и прочих мелочей.

>>новую модль ламп - на нейросетках

Это как? Поясни на пальцах, плз.

>>1я и последняя лампы это по сути буфкаскады, их можно заменить линейными фильтрами, все будет так же

1 - 100%, а вот последняя? Это ж не повторитель. Но даже повторитель в ректифаере режет сигнал.
 
<div class='quotetop'>Цитата(Gunpowder @ Nov 1 2007, 03:03 PM) [snapback]517620[/snapback]</div>
Cleopard - хочу предложить такую идею. Создать некое подобие открытого или полуоткрытого (в котором спрятана реализация моделирования, напр. через DLL) конструктора. Потому как одни люди (как НикКроу или ты) имеют готовые средства моделирования, но не имеют времени моделировать новые схемы. Другие имеют желание, но не имеют готовых инструментов.
[/b]
вот-вот!!! именно эту мысль я тут давно толкал. рад, что, похоже, нашел поддержку.
по этой идее у меня есть некое предложение, так я воспользуясь случаем его изложу пожалуй:

я бы мог сделать довольно таки быстрый симулятор-конструктор ламповых преампов при следущих ограничениях на схему:

1. все 3 вывода лампы (точнее - все выводы, которые генерят ток) - соединены по крайней мере резюками с питанием или землей или входом, т.е. с источниками независимых напряжений.

2. выводы разных ламп соединены только пассивными рц-цепями.

т.е блоксхемка такая вот:
http://neslon.analysing.org/nnpa/cbs.GIF
я думаю 99% преампов в такой стандарт уложуццо, практически во всех меж лампами только и есть рц-делители.

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

<div class='quotetop'>Цитата(Gunpowder @ Nov 1 2007, 03:03 PM) [snapback]517620[/snapback]</div>
Я, например, за отсутствием времени практически обломался моделировать схемы - проблемы со стабильностью обсчета численными методами, большая загрузка ЦПУ и это без обсчета внутренних емкостей ламп и прочих мелочей.
[/b]
точно! мне например при тюнинге численных методов приходится извращаццо так, что тов.ш0рох отдыхает %).

<div class='quotetop'>Цитата(Gunpowder @ Nov 1 2007, 03:03 PM) [snapback]517620[/snapback]</div>
>>новую модль ламп - на нейросетках

Это как? Поясни на пальцах, плз.
[/b]
ну как же - нейронные сети, такая мат-технология. их много типов а в данном случае я пользую их просто как универсальный апроксиматор хз-почему-таких-функций. они состоят из единообразных фунц узлов - "нейронов", свся хитрота как им коефициенты связи подобрать - существуют методы "обучения", т.е подгонки коэфициентов сети под наилучшее (наигладкое и наименьшее среднекв.) приближение по таблице вход(ы)-выход(ы). причем таблица может быть измерена с кривым унд неравномерным шагом - неважно. я ж для илюстрации в теме про измерение характеристик ламп как раз приводил пример что получается при таком подзоде: взял таблицу измеренных токов анода из текста, откуда ник взял модель и натаскал на это дело нейросетку.


<div class='quotetop'>Цитата(Gunpowder @ Nov 1 2007, 03:03 PM) [snapback]517620[/snapback]</div>
>>1я и последняя лампы это по сути буфкаскады, их можно заменить линейными фильтрами, все будет так же
1 - 100%, а вот последняя? Это ж не повторитель. Но даже повторитель в ректифаере режет сигнал.
[/b]
дык там же коефициент всего 2. хотя... если пердпоследний упираицо в питание ... %-)
 
Интересно, какую топологию сети будешь использовать. Скорее всего обычный многослойный персептрон. Тогда и метод обучения BackPropagation - тебе в помощь, но процесс обучения будет не меньше месяца, чтобы хоть как-то приблизить среднеквадратичную ошибку сети к минимуму, что впрочем не означает её адекватный отклик на сигнал ранее отсутствовавший в процессе обучения. Короче никакого точного моделирования лампы никак не получишь.
Тебе нужна сеть с обратными связями. Лампа - штука нелинейная и надо учесть что на результат её работы в момент t влияет то, что было с ней в момент t-1. А такую сеть фиг заставить обучаться по методу BackPropagation. Это уже что-то вроде сети Хопфилда и АРТ (адаптичная резонансная теория), Ато и Неокортекс. :blink: Так-что удачи. B) Сильно сомневаюсь в успехе твоей затеи.
 
дык собсна бекпроп я и пользую, более сложное на реальное время потом не потянет никак. про инертность лампы - дык там же емкости единицы пик - в паралель с 100-200кОм это дает мегогерцы частоты среза. нащот месяца обучения ты все же загнул - я это УЖЕ делал, а то бы не говорил так уверенно - можещ сам глянуть цыфорки в теме про измерение ламп здесь же - и лично сравнить измеренные результаты и сетевые. а это была сетка тупая - всего 1 внутренний слой из всего 4 нейронов! а вот что до результатов вне точек обучения - так я это могу пощитать ПРЯМ ЩАС.
 
>>нейронные сети, такая мат-технология. их много типов а в данном случае я пользую их просто как универсальный апроксиматор...

Cleopard - мозг! Решение действительно оригинальное и вполне подходящее.

>>я бы мог сделать довольно таки быстрый симулятор-конструктор ламповых преампов при следущих ограничениях на схему:
>>1. все 3 вывода лампы (точнее - все выводы, которые генерят ток) - соединены по крайней мере резюками с питанием или землей или входом, т.е. с источниками независимых напряжений.

Ну это условие ничем не помешает.
Т.е. лампа у тебя моделируется не как отдельный элемент, а уже в составе каскада?

>>2. выводы разных ламп соединены только пассивными рц-цепями.

Тоже нормальное условие.

>>т.е блоксхемка такая вот. Думаю 99% преампов в такой стандарт уложуццо, практически во всех меж лампами только и есть рц-делители.

В приниципе да, но есть проблема. Заряд проходных кондеров в РЦ-цепочках влияет на положение рабочей точки в соседних каскадах. Из-за этого сам сигнал модулирует положение раб. точки - в результате получаем изменение скважности и состава гармоник в момент атаки, хруст, дж-дж, драйв, то есть основной цимус живого лампового сигнала. Смоделировать это можно либо целиком решая систему по всей схеме, либо каким-то хитрым методом учитывать взаимовлияние каскадов и цепочек.
Хотя в первом приближении на это можно забить...

Вобщем, Cleopard, готов посильно помочь в разработке такого конструктора.
 
<div class='quotetop'>Цитата(Gunpowder @ Nov 5 2007, 09:35 AM) [snapback]519563[/snapback]</div>
В приниципе да, но есть проблема. Заряд проходных кондеров в РЦ-цепочках влияет на положение рабочей точки в соседних каскадах. Из-за этого сам сигнал модулирует положение раб. точки - в результате получаем изменение скважности и состава гармоник в момент атаки, хруст, дж-дж, драйв, то есть основной цимус живого лампового сигнала. Смоделировать это можно либо целиком решая систему по всей схеме, либо каким-то хитрым методом учитывать взаимовлияние каскадов и цепочек.
Хотя в первом приближении на это можно забить...

Вобщем, Cleopard, готов посильно помочь в разработке такого конструктора.
[/b]

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

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


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

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

http://www.hagtech.com/vacutrace.html
http://www.transcendentsound.com/tube_analyzer.htm
http://www.tech-diy.com/MCTracer_no_pix_fi...ver_feb6_04.htm
http://tone-lizard.com/Tube_Testers.html

так вот мне интересно в1х мнение ВСЕХ стоит ли это делоть. и если да то кто б мог мне в этом пособить?..
 
Очень интересная идея по созданию конструктора "для юзеров", т.к. большинство гитаристов могут спаять шнур для гитары, максимум примочку, а всё остальное, что связано с лампами и какими-либо сложными схемами - тёмный лес. :) А такой конструктор был бы очень интересен, а если к моделируемым схемам привязать возможность создания собственного графического интерфейса, было бо вообще замечательно. Рад был бы помочь вам в этом интересном начинании, но к сожалению мало чего понял в общении Cleopard и Gunpowder :) , так что сами понимаете...
А вот с графическим интерфейсом - очень даже можно!
 
<div class='quotetop'>Цитата(a-up @ Nov 6 2007, 06:53 PM) [snapback]520312[/snapback]</div>
А вот с графическим интерфейсом - очень даже можно!
[/b]

Вот и трушеньки...
Надо тогда как-то списаццо по поводу написалова интырфейса, потому как мне вечно не хватает времени на эту часть работы.
 
<div class='quotetop'>Цитата(Cleopard @ Nov 7 2007, 02:31 PM) [snapback]520663[/snapback]</div>
Вот и трушеньки...
Надо тогда как-то списаццо по поводу написалова интырфейса, потому как мне вечно не хватает времени на эту часть работы.
[/b]
Смотри личку :)
 
вот господа, для определенности хочу предложить начать этот симулятор с такой вот штуки:
http://www.azg.spb.ru/azgschemes/slo-recto-twin.gif

из этого безобразия думаю сделать среднюю дистовую чась, т.е v2.1, v2,2 & v3.1. остальное - это вобщем линейный фильтр по сути. как думаити, стоит? или есь более желаемые для смиуляции схемъки?
 
Cloepard, реально только на гтлабе народ может помочь со съемом характеристик. Писать надо туда и просить помощи и участия в проекте. И то, думаю, скорее всего это ограничится съемом одной-двух ламп или имеющихся каскадов. Просто создание универсально тестера - дело для хобби немного муторное, имхо.

Потому для начала можно взять любые имеющиеся характеристики (да хоть как Майлет из справочника RCA) для оттачивания моделей и параллельно искать реальные.

>>как думаити, стоит? или есь более желаемые для смиуляции схемъки?

Стоит однозначно! Но может для начала один отдельный каскад? С настраиваемыми RС-параметрами?
Для оценки реакции каскада, так сказать.
 
ну да начинать с мелких кирпичей. тогда схем такой &


----------------------------- +
Ra1
!_________Cout_________ Out
! !
A !
In - Rin -Cin - - G C Rout
! ! !
Rg1 Rc1 Cc1 !
! ! ! !
--- --- --- ---
 
кстати в схеме енгл мод2 сходу могу сказать - вся хитрость в сложной рц-цепи между лампами 1-2 и 2-1. точно не понял что это, но похоже что там какой то режекторный фильтр, т.е выдавливающий какую то частоту довольно широкой полосой.

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

Правильный схем! 90% каскадов им сразу описывается.

>>там какой то режекторный фильтр, т.е выдавливающий какую то частоту довольно широкой полосой

Так оно и есть. Это ж одно из важных отличий схемы энгла.

>>таки удалось приблизить 2 нейросетками

Клас!

>>там при нулевом анодном напряжении получается в формуле сеточного тока деление на нуль

Жаль ничего подказать не могу. Моделировал аналитическими функциями по Личу и Райдлу, там такого не получалось.

>>оставил зависимоть только от сеточного напряга

Думаю, для начала подойдет и этот результат.
 
хде там режектор?
еслиб был между 330к и 220к кондёр, был бы т-мост (цепь 330к - кондёр 220пик об землю - 220к)
а так там если не ошибаюсь аакукратный завал верха..
или ошибаюсь?
 
блин ну просмотрел я - точно потом пригляделса, т-моста нету, тока с виду похоже :)
 
Cleopard, оффтопик, на гтлабе забанят если не по-русски писать будешь. Случай не первый... Я так, предупредить, там модер строгий.
 

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