Отладка Python в Ableton Live
Как я могу увидеть ошибки сценариев для моих Python MIDI Remote Scripts в Ableton Live? Я видел в Интернете ссылки на скрытую консоль Python, но нет документации о том, как ее открыть, если она мне даже поможет!
В настоящее время я набираю код, перезагружаю скрипт и вижу, что происходит. Если ничего не происходит, значит что-то не так. Очень утомительно...
Изменить: я должен также отметить, что нет ничего полезного в Log.txt
файл либо, но этот файл обновляется.
6 ответов
Для отладки контрольной поверхности вы можете определить свой собственный метод журнала следующим образом:
def log(self, message):
sys.stderr.write("LOG: " + message.encode("utf-8"))
Пример использования:
year = 1999
self.log("I'm gonna party like it's " + str(year))
Это добавит
21179419 ms. RemoteScriptError: LOG: Tonight I'm gonna party like it's 1999
на ваш Log.txt.
Также, возможно, стоит знать, что (по крайней мере, в Live 9.1) отредактированные файлы панели управления перекомпилируются каждый раз, когда вы загружаете новую песню, нет необходимости перезапускать приложение.
РЕДАКТИРОВАТЬ: изменил метод записи stderr, чтобы он не записывал две строки и дополнительный возврат для каждого журнала
Для полноты картины: в Mac OS X 10.9 файл Log.txt находится в
/ Пользователи /-username-/Library/Preferences/Ableton/Live 9.1/
Папка Live 9.1, конечно, может отличаться для разных версий Live.
Обратите внимание, что папка библиотеки скрыта. Мне потребовалось время, чтобы понять это. Простой способ получить к нему доступ с помощью Finder: щелкните элемент меню "Перейти", затем удерживайте клавишу "Alt", и в меню появится папка "Библиотека".
Я использую log.txt для тонны отладки. Это немного трудно читать, но вот мои советы.
журнал записывает сверху вниз (новая информация находится на следующей строке) и записывает все события, более или менее.
Если вы получите ошибку, вы получите большой гекс, выглядящий как блок - около 20+ строк, выглядящих так:
280 ms. Exception: 0x00495580:0x00000000
Прямо над этим блоком находится ошибка или то, что, возможно, бросило скрипт во время выполнения Ableton.
Когда вы путешествуете из этого исключения, вы увидите нечто вроде следа.
также - вы можете использовать:
self.log_message("STUFF")
записать в журнал (есть другие способы).
Я видел некоторые парсеры лог-файлов (в реальном времени) в моей работе. Еще не пробовал их.
Надеюсь, что немного поможет. У меня была возможность написать PHP-приложение для Python (да, я знаю, греховно). http://modrn.dj/app
Это, безусловно, изменилось за эти годы с различными версиями Ableton Live.
Я запускаю Live 8 и сначала попытался заставить содержимое LiveAPI выдавать отладочную информацию: http://post.monome.org/comments.php?DiscussionID=4607&page=1
Я начал со старой версии, которая не работала с OSX, о которой сообщалось здесь: http://code.google.com/p/liveapi/issues/detail?id=4 Я не думаю, что новая версия включает консоль telnet,
Итак, лучший ответ - найти файл журнала, который содержит отладочную информацию о проблемных скриптах MIDI Remote:
Библиотека / Предпочтения /Ableton/Live 8.2.1/Log.txt
Вы также можете использовать http://julienbayle.net/ableton-live-9-midi-remote-scripts для Ableton Live 9