Inheritance: JsApiBase
        public WorkerScoreRenderer(JsWorkerApi workerApi, dynamic rawSettings)
        {
            _workerApi = workerApi;
            string atRoot = rawSettings.atRoot;

            if (atRoot != "" && !atRoot.EndsWith("/"))
            {
                atRoot += "/";
            }
            _atRoot = atRoot;
            _worker = new Worker(atRoot + "AlphaTab.worker.js");

            var root = new StringBuilder();

            root.Append(window.location.protocol);
            root.Append("//");
            root.Append(window.location.hostname);
            if (window.location.port.As <bool>())
            {
                root.Append(":");
                root.Append(window.location.port);
            }
            root.Append(_atRoot);
            _worker.postMessage(new { cmd = "initialize", root = root.ToString(), settings = rawSettings });
            _worker.addEventListener("message", HandleWorkerMessage, false);
        }
        public WorkerScoreRenderer(JsWorkerApi workerApi, dynamic rawSettings)
        {
            _workerApi = workerApi;
            string atRoot = rawSettings.atRoot;
            if (atRoot != "" && !atRoot.EndsWith("/"))
            {
                atRoot += "/";
            }
            _atRoot = atRoot;
            _worker = new Worker(atRoot + "AlphaTab.worker.js");

            var root = new StringBuilder();
            root.Append(window.location.protocol);
            root.Append("//");
            root.Append(window.location.hostname);
            if (window.location.port.As<bool>())
            {
                root.Append(":");
                root.Append(window.location.port);
            }
            root.Append(_atRoot);
            _worker.postMessage(new { cmd = "initialize", root = root.ToString(), settings = rawSettings });
            _worker.addEventListener("message", HandleWorkerMessage, false);
        }