Помогите создать экшн / кастом экшн / скрипт (7 онлайн)

Buyan

Member
19 Апр 2016
137
24
18
40
Белая Церковь
@Alex_V, Спасибо! Пошел курить матчасть.

это обусловлено самой системой хранения данных
Вот об этом я тоже вспомнил. Когда-то давно пробовал програмировать на асемблере, еще во времена MS-DOS. Помню, что дроби в машинном коде хранятся и обрабатываются в формате целых чисел или целочисленных выражений(не знаю как правильно обозвать). То-есть машина вычисляет разницу 7.2 - 2.4 также как разницу 72 - 24 и не видит между ними разницы, результат первой только впоследствии предоставляется в виде выражения - результат умножен на 10^-1. Вот это я понимаю под системой хранения и предоставления данных.

Да, там где нужны вычисления и преобразования без потери точности, например, для финансовых расчетов, используются другие форматы хранения вещественных чисел, например BCD:
В каком формате мне работать с числами в LUA, чтобы в приведенном мной примере (4.8-7.2-2.4) было достаточно точности что-бы получить хотя-бы 0,0000пофигпофигпофиг.
В этом-то и была изначальная суть моего вопроса.
 
Последнее редактирование:

Alex_V

Active Member
12 Апр 2017
484
231
43
В каком формате мне работать с числами в LUA
В Lua есть только один формат чисел, хранится в виде floating point. То есть вариантов нет, от слова совсем. Единственное, что можно тут посоветовать вместо сравнения двух нецелых чисел сравнивать их разницу, взятую по модулю с неким малым значением и если разница меньше этого значения, считать числа равными. Это будет по вычислениям дешевле, чем округление через преобразование в строку.
[DOUBLEPOST=1515506820][/DOUBLEPOST]До кучи.
То-машина вычисляет разницу 7.2 - 2.4 также как разницу 72 - 24 и не видит между ними разницы, результат первой только впоследствии предоставляется в виде выражения - результат умножен на 10^-1.
Машина работает с теми данными которые ей предоставляются, то есть сама по себе она ничего не делает. Другое дело, что в языках высокого уровня могут быть типы данных для которых неявно для пользователя делается умножение чисел на один-два порядка. Но в lua такого нет.
 

Buyan

Member
19 Апр 2016
137
24
18
40
Белая Церковь
бороться с ней вообще не нужно, нужно считать как есть.
Да, я понял суть вопроса. Спасибо!
Проблема в моей невнимательности и округленном выводе на экран. На практике-же это отклонение оказалось совершенно ничтожным и ни на что не влияющим. Формулы работают как надо.

@Alex_V, Спасибо за полезные ссылки и разъяснения. В голове все вроде потихоньку становится на свои места.

Еще раз спасибо всем за участие!
Это все азы конечно-же, но для гуманитариев некоторые из них, как открытие Америки)
 

Alex_V

Active Member
12 Апр 2017
484
231
43
На практике-же это отклонение оказалось совершенно ничтожным и ни на что не влияющим.
Ну, собственно, да, про это уже и было написано. При вычислении неточность получается где-то в очень малых величинах, ей вполне можно пренебречь. А вот при сравнении тонкости как раз и вылезают. Потому, что хоть и на ничтожно малую величину, но числа таки могут отличаться. Это, как я уже говорил, не баг, а фича и её нужно просто иметь в виду и для сравнения использовать методы обхода неточностей. :)
 
  • Like
Реакции: Buyan

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Я тоже сталкивался с подобными "проблемами" при сравнении, но давно уже решил не делать сравнений типпа -
if var1 == var2 then
Всегда делаю -
if var1 >= var2 then
или
if var1 <= var2 then
Потому как очень часто случалось та, что даже, например значение уровня сигнала запомненное один раз, много раз подряд точно не повторялось вообще.
 

Buyan

Member
19 Апр 2016
137
24
18
40
Белая Церковь
Я тоже сталкивался с подобными "проблемами" при сравнении, но давно уже решил не делать сравнений типпа -
if var1 == var2 then
Всегда делаю -
if var1 >= var2 then
или
if var1 <= var2 then
Потому как очень часто случалось та, что даже, например значение уровня сигнала запомненное один раз, много раз подряд точно не повторялось вообще.
Да с этим доводилось раньше сталкиваться. В данном случае сравнения типа if var1 == var2 then не имело места, просто проверял верность уравнения, разница двух частей которого должна была быть равна нулю, а получил единицу. Потом потихонечку разобрался во всем, и понял, что я сам себя обманул. На самом деле отклонение оказалось не столь значительным, единица в минус какой-то степени.
В общем немного устал наверное и не совсем соображал трезво. Но зато получил возможность разобраться в этом вопросе более детально, спасибо участникам форума. Общение многое значит. В моем окружении нету людей, с которыми можно обсудить вопрос подобного рода. Часто доводится разговаривать с неживыми предметами)) которые не отвечают)
Спасибо всем!
 

vitalker

Well-Known Member
8 Окт 2013
5.085
2.195
113
Гродно
@Archchie, экшн может и toggle, только у него нет состояния on/off, так что фиг его знает. А какое практическое применение у такого экшна было бы?
 

YuriOl

Well-Known Member
6 Май 2005
1.060
590
113
55
Луганск
youtube.com
Подскажите плиз. Когда то скачал в репаке уважаемого @Michael скрипт Script: mpl_Solo MIDI Editor active take track.lua. Установил данный скрипт на кнопку в MIDI editor.
Вопрос: Что нужно добавить в скрипте или где еще, чтобы при нажатии на эту кнопку (включение режима "соло") - она горела, а при выключении соотв. гасла.
Supa75, надо чаще ReaPack синхронизировать.
Михаил обновил скрипт. Теперь скрипт имеет статус (State on/off) и горит! :)
Кино: GIF.gif
 
Последнее редактирование:
  • Like
Реакции: Supa75 и Furqat

vitalker

Well-Known Member
8 Окт 2013
5.085
2.195
113
Гродно
А не от kawa есть скрипт?
зачем вам редактировать?

А я хотел чтобы при открытии:
экшн "Options: Toggle window docking" вам в помощь (можно использовать в скрипте).

а вы попробуйте
открыть один миди editor вытащить его из дока—закрыть
Действительно, может это недоработка какая. Напишите баг репортт.
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Михаил обновил скрипт. Теперь скрипт имеет статус (State on/off) и горит!
Толку от этого ноль. Косяка два:
1) Нету синхронизации, если нажать solo/unsolo в основном треке
2) Нету синхронизации, если перешел на другой айтем, который находится в mute
Так что пускай лучше будет без toggle отображения) Так только запутаешься
 
Последнее редактирование:
  • Like
Реакции: Furqat

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@Archchie,
SWS: Select next item, keeping current selection (across tracks)
SWS: Select previous item, keeping current selection (across tracks)
Item: Glue items
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Не вижу почему-то темы по предложению создания скриптов, пока напишу здесь. Если возможно, хотелось бы скрипт, который работал бы идентично Mixer: Toggle show tracks in folders in mixer, но в TCP. Пока сделал кастом, но визуально не устраивает мелькающее или остающееся select состояние у папок. Чередуется два состояния - collapsed и uncollapsed
 
Последнее редактирование:

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Еще обнаружил, что Mixer: Toggle show tracks in folders in mixer перестает работать в том случае, если есть трековый роутинг (треки с посылами не скрываются). Поэтому и здесь пришлось создать кастом, у которого такая же мелочь с select состоянием.
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@Archchie, теперь выделяются чилдрен треки в микшере) И если есть треки не в паках, они тоже пропадают. Короче пока не вижу смысла все равно. С селектом легко и кастом сделать
 
Последнее редактирование:

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@Archchie, спасибо, теперь осталось сделать так, чтобы не скрывались остальные треки) Я так понял он по методу show/hide работает (а не по методу работы папок). Когда пытаюсь открыть папку вручную, она не показывает треки из-за hide состояния чилдренов
Выяснилось, что точно такой же скрипт нужен и для микшера, потому что штатный экшион не работает, если чилдрен треки в роутинге.
Короче что-то должно быть вроде toggle collapse, но не для конкретной выбранной папки, а для всех папок (без селекта). Либо в MCP либо в TCP
 
Последнее редактирование:

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@vitalker, проблема то не в этом) У меня давно уже стоит ноль. Если папок много, я хотел одним кликом их все свернуть и развернуть) Для чего уже и сделал два кастом экшиона, но они работают через селект, который меня чисто визуально немного напрягает (ведь я селект не хотел делать, а он сделался)
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@vitalker,
для TCP:
SWS: Select all folders (parents only)
Script: me2beats_Toggle folder collapsed.lua
для MCP:
SWS: Select all folders (parents only)
Mixer: Show/hide children of selected tracks
Можно еще "скапитанить" и сказать, добавь unselect all tracks, но я выше сказал, мелькает, тоже некрасиво)
 

vitalker

Well-Known Member
8 Окт 2013
5.085
2.195
113
Гродно
@borisuperful, в начало каждого добавьте SWS: Save current track selection , а в конец SWS: Restore saved track selection .
Может ещё вам пригодится SWS(не обязательно тут): Toggle between current and saved track selection .
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@vitalker, во, а в микшере кстати не мелькает уже) в треках мелькает. Да и ладно, в принципе
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@vitalker, о том, что виден процесс кастома, когда селект на папках появляется и исчезает. В целом можно привыкнуть)
 

Сейчас онлайн (Пользователей: 0, Гостей: 7)