Cakewalk Application Language (CAL)_Создание, применение, проблемы (1 онлайн

Serg196

Без ансамбля. Сам, бля.
Vovchik
Скачал. Спасибо. Будет время - попробую написать.
Кстати, спасибо за вопрос - натолкнул меня на одну мысль (долго думал, как автоматически увеличить темп проекта, в котором темп все время меняется, хотел уже здесь помощи просить). Надо будет при помощи кала (о господи! ну что за сокращение они выбрали!) попробовать. Все таки, действительно, правильно поставленный вопрос содержит в себе большую часть ответа.
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Originally posted by Serg196
как автоматически увеличить темп проекта, в котором темп все время меняется
Ну, для этого кал не нужен, все просто. Выделяем регион, идем в Process > Fit to time. Выставляем новое конечное время и радиокнопку Modify by changing tempo map.
 

Serg196

Без ансамбля. Сам, бля.
Увы, в четвертом сонаре у меня этот метод работает обратно: вместо того, чтобы увеличивать темп, он его уменьшает. Я уже писал здесь об этом глюке. Неужели у кого-то работает нормально?
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Извини конечно за дурацкий вопрос: ты New Thru правильно выставлял? Чтобы темп уменьшить, конечное время надо увеличить. И наоборот.
 

Serg196

Без ансамбля. Сам, бля.
Vovchik
Ура! Попробовал - получилось! Спасибо за совет тебе и Antonio.

ты New Thru правильно выставлял
Н-ну... вроде, правильно. Раньше-то все норрмально было, в смысле, в третьей версии сонара. Но там я пытался подогнать темп под вавку. ROMiK не даст соврать, у него тоже не получалось это сделать. У тебя получается? Правда, это было пробовано еще в версии 4.01 (которая у меня и сейчас стоит).
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Версия тут ни при чем. По идее порядок действий такой:

допустим, вставили аудио клип, длина которого известна, например, 8 тактов. Тут главное точно выверить начало и конец клипа. Если это просто кусок музыки, а не драм луп, надо найти первую долю и подогнать ее к тактовой черте и поставить там якорь. В общем, выяснить тактовую структуру аудио материала. Теперь выделяем в клипе кусок, равный целому числу тактов и смотрим, где заканчивается выделение. Только не в тактовой шкале, а во временнОй. Это время можно просто скопировать. Теперь выделяем 8 тактов в тактовой шкале, Fit To Time и см. выше.
 

Serg196

Без ансамбля. Сам, бля.
Vovchik
Теперь понял. Спасибо.
С меня еще одно виртуальное пиво. :)
:beer:
Замечу, правда, если это касается миди-данных, то так и удобно делать. А вот подгонять темп под аудио... Разве в прежних версиях не наоборот надо было делать (тому, как ты описал) Может быть, я ошибаюсь, но мне кажется, раньше я выделял целое число тактов в муз клипе, а затем в фит ту тайм ставил желаемое количество этих самых тактов.
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Так ты что, аудио растягивал? Или ты говоришь про миди клипы? Чёт торможу я сегодня...
Только что поковырялся в сонаре - твой способ не смог применить. Конечное время в тактах и битах хорошо указывать, если надо миди клип растянуть/сжать под имеющийся темп. Допустим, имеется миди клип, про который известно, что в нем ровно 4 такта, но темп меньше, чем в сонге. Подгоняем начало клипа к первой доле любого такта, например, 5-го. Закончиться он должен на 1-й доле 9-го такта, а он заканчивается не на 1-й доле, а где-то посередине 9-го такта. Выделяем клип, идем в Fit to time, переключаемся на тактовый формат и пишем конечное время 9:01:000. Радиокнопка "Event Times".
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Originally posted by Serg196
Vovchik
Скачал. Спасибо. Будет время - попробую написать.
Вот здесь есть CAL tutorial и несколько очень полезных скриптов. Например, "melody" как раз имеет отношение к теме - выделяет верхний голос из полифонии. К сожалению, эта штука сработала у меня только один раз. Недолго музыка играла...

http://web.archive.org/web/20010202124900/...w.cal.pyar.com/

Некоторые калы скачиваются только в виде текста.
 

Serg196

Без ансамбля. Сам, бля.
Vovchik
Не бери в голову, разобрался уже, в чем была ошибка (это насчет фит ту тайма).
За ссылку пасиба, извини, никак время не могу выделить на написание (хотя там, ваще-то, полчаса достаточно, ежели не слишком сложный алгоритм)...
 

Topan

New Member
2 Июн 2005
4
0
0
Да выдели нужные для обращения аккордов ноты в пианоролле, и скопируй на другой трек. В этом треке поменяй звук на нужный в этой тесситуре.
Да вообще это не такая тема чтобы без пива... . Я вот парюсь Generic Surface, что-то не настраивается с крутилками M-Audio Radium 49.
 

Topan

New Member
2 Июн 2005
4
0
0
1 выделяй с макс. минусовым разрешениемЮ если рамочкой с CTRL.
2 если барабаны то вообще нет проблем, выделяй клавишей копируй на др. трек, меняй ноту и подставляй программный DXI VSTI барабаны. Это вообще удобно, набираешь и GM, XG, GS, а все нравится,и раскидывай таким макаром на софтовые с любой раскладкой.
Удачи! :smile:
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Scale Tempo CAL

Нашел у себя CAL для изменения темпа. Вернее, их четыре, все должны лежать вместе. Когда-то они работали, не помню в какой версии, но в 5-ке - нет. Может, кто-нибудь сможет разобраться, в чем дело? Вещь полезная.

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

Не получается прикрепить zip. Что делать?
 
Последнее редактирование модератором:

ROMiK

New Member
27 Янв 2003
1.316
28
0
Vovchik
выкладывай на рапидшаре, мегааплоаде и прочих подобных сайтах.. думаю и вебфайл подойдёт - там ведь от силы пара килобайт
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Разрезание и склеивание нот

Обращаюсь к знатокам программирования. У меня есть CAL для разрезания нот @ Now time. Привязанный к горячей клавише, он бывает очень удобен. Тыкаешь в ноту там, где надо разделить, и запускаешь CAL. Я назначил его на Y.

(forEachEvent
(if (&& (== Event.Kind NOTE) (< Event.Time Now))
(do
(insert Now Event.Chan NOTE Note.Key Note.Vel (- Note.Dur (- Now Event.Time)))
(= Note.Dur (- Now Event.Time))
)
)
)


Вопрос в том, есть ли обратный CAL для склеивания нот, и если нет, трудно ли его написать? Я имею в виду стоящие рядом ноты одинаковой высоты.
 
Последнее редактирование модератором:

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
CAL, как и любую команду, можно привязать к любой горячей клавише. В этом-то весь смысл. Я использую CALs довольно активно. Вот некоторые из них:

прибавить/убавить velocities выделенных клипов или нот

транспозиция на полтона и октаву вверх/вниз

удвоение в октаву опять же вверх/вниз

квантизация на скорую руку, привязано к цифрам на основной клавиатуре. 1 - целыми, 2 - половинными, 3 - восьмыми триолями, 4 - четвертными и т.д.

управление длительностями нот - сделать все выделенные ноты/клипы нужной длительности. Привязано тоже к цифрам, но с CTRL - CTRL+6 превращает все ноты в 16-е, CTRL+8 - в восьмушки и т.д.

Ну и еще несколько. Все они назначены на шорткаты, кроие тех, что используются редко.
 

SilverEye

Active Member
6 Апр 2004
1.190
17
38
Vovchik, я обязательно с CAL'ом разберусь! Сейчас просто немного некогда, завтра вечерком сяду копаться. :super2:
Так что ворвёмся. :smile:
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Чувствую, что скрипт должен быть несложный, но моей соображалки не хватает, чтобы сделать. Например, имеем две ноты:

___ ____

выделяем первую, запускаем Cal и получаем:

__________

то есть то, что в Кубе делает клей.
 

Vovchik

Well-Known Member
29 Апр 2005
2.290
1.078
113
64
Смоленск
Проблема решена, помогли добрые люди. Я обратился на кейковский форум, посвященный CAL, и получил вот это:


;;------------------------------------------
;; _Notes_Glue.CAL, by Serge Daigneault 2005
;; Combine similar notes

(do
(dword StartTime From)
(dword FromTime 0)
(dword ToTime 0)
(int NoteKey 0) ; Note Key
(int NoteDur 0) ; Note duration
(int Found 0)

(while (!= 5 Found)
(do
(= Found 0)

;; Get the primary Event.Time and Note.Key

(forEachEvent
(do
(if (&& (== Found 0) (&& (== Event.Kind NOTE) (> Event.Time FromTime)))
(do
(= FromTime Event.Time)
(= NoteKey Note.Key)
(= Found 1)
))

;; Find the next note

(if (&& (== Found 1) (&& (== Event.Kind NOTE) (> Event.Time FromTime)))
(do
(= Found 2)

;; Verify the note value, if ok delete that similar note and calculate the duration gap

(if (== Note.Key NoteKey)
(do
(= Found 3)
(= ToTime (+ Event.Time Note.Dur))
(delete)
))
))
))

;; Return to the primary note and resize the note duration

(forEachEvent
(do
(if (&& (== Found 3) (&& (== Event.Kind NOTE) (== Event.Time FromTime)))
(do
(= Note.Dur (- ToTime Event.Time))
(= Found 4)
))
))
(if (== Found 0) (= Found 5)) ;; Ending when last note is reached
))
(= From StartTime)
)
;; The End
;;------------------------------------------



Я посадил этот скрипт на шорткат CTRL+G. (от слова glue)
Выделяем две ноты, жмем CTRL+G.
 

Serg196

Без ансамбля. Сам, бля.
Описанный выше скрипт для разрезания нот имеет один недостаток - для его правильной работы нужно выделять только те ноты, которые находятся на линии разреза. Если его видоизменить до следующего состояния:

;**********************************************
(forEachEvent
(if (&& (&& (== Event.Kind NOTE) (< Event.Time Now)) (> (+ Event.Time Note.Dur) Now))
(do
(insert Now Event.Chan NOTE Note.Key Note.Vel (- Note.Dur (- Now Event.Time)))
(= Note.Dur (- Now Event.Time))
)
)
)
;**********************************************

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

[ADDED=Serg196]1130607746[/ADDED]
Vovchik
Кста, спасибо за скрипт про склейку.
 

corpuscul

Banned
10 Янв 2004
219
0
0
www.corpuscul.4sure.info
Обратите внимание, пользователь заблокирован на форуме.
не понимаю, это топик дерматологов или хирургов ?
с одной стороны калл, а с другой стороны разрезают и склеивают.

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

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