_______________________________________________________________________________________________________________________________| _________________________________________¶¶¶____ | | _____________________________________¶¶¶¶¶¶______ | Description : | ___________________________________¶¶¶¶¶¶¶¶¶_____ | Orchestrator is an open source application giving the | ______________________________¶¶¶¶¶¶¶___¶¶______ | possibility for one player in Lord of the Ring Online™ | ___________________________¶¶¶¶¶¶¶¶______¶¶______ | MMORPG to set up and play his/her own orchestra. | __________________________¶¶¶¶¶¶¶¶¶¶______¶¶______ | | _____________________¶¶¶¶¶¶¶¶___¶¶_______¶¶____ | Licensing : None, you can do whatever you want with this soft | ______________________¶¶¶¶¶_____¶¶___¶¶¶¶¶¶___ | except for following listed APIs Orchestrator is using | _______________________¶¶________¶¶__¶¶¶¶¶¶¶___ | (Sendkey and JNAtive Hook) which are copyrighted, | ______________________¶¶¶_____¶¶¶¶___¶¶¶¶¶____ | please refer to their respective documentation to know more. | ________________________¶¶___¶¶¶¶¶¶_______________ | | ________________________¶¶___¶¶¶¶¶¶_____________ | Source : | _________________________¶¶__¶¶¶¶________________ | included in archive | _____________________¶¶¶¶¶¶___________________ | | ____________________¶¶¶¶¶¶¶____________________ | Credits : no credits, i'm too poor. | ____________________¶¶¶¶¶¶__________________ | | _____________________¶¶¶¶_______________________________|______________________________________________________________________| JNativeHook library is used in this program It is licensed under GNU General Public License v3.0 : For more informations check on : https://github.com/kwhat/jnativehook Sendkeys library is used is this program : Original Sources at : https://www.codeproject.com/Articles/6819/SendKeys-in-C ----------------------------------------------------------------------------- Copyright (c) 2004 lallous All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- The Original SendKeys copyright info ----------------------------------------------------------------------------- SendKeys (sndkeys32.pas) routine for 32-bit Delphi. Written by Ken Henderson Copyright (c) 1995 Ken Henderson ----------------------------------------------------------------------------- ----------------------------------------------------------------------------- Last time up to date : 2017-13-04 ############################################################################# Features ############################################################################# Here is what Orchestrato can do for you : - Orchestrator can launch and login multiples Lord Of The Ring Online™ clients. - can send /music /play sync /follow /raid invite /raid create commands to running LOTR clients on a single computer. - can send a command in game that trigger a custom plugin to retreive the instrument currently equipped on a character. - can read .abc and .txt music files and retreive instrument needed to play each track - It can build the good command knowing equipped instruments on each players and needed instruments to play a music - Orchestrator supports french, german and english clients instruments localizations Orchestrator is not a bot and wont play the game for you, it's a time saver because without it you would have to : - manually select in songbook the music and the good track for each character before syncing - manually target and select follow in game for each character to move the orchestra away - manually select the /music button in songbook - manually launch and login each character you want to play with - manually invite all you characters into the same raid Also, i wont look forward into devellopping features that can give a serious advantage in PvP or PvE in Lord Of The Ring Online™, not only because i want to keep my account, but also because i dont like cheat in multiplayers games ;) Orchestrator is a music tool, and will remain a music tool. Here is a video where i show features and how to use it : Installation : https://www.youtube.com/watch?v=A1TN8SjkaeU How to use it : https://www.youtube.com/watch?v=GvpQn9ORDQo ############################################################################# Requirements ############################################################################# Orchestrator wont run on 32 bits systems, get a 64 bits system. Java 8 64 bits : The file to download will have a name close to this one : jre-8uXXX-windows-x64.exe It can be downloaded there : http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html Operating System : any Windows version capable of running java 8 So, it is ok for windows 7 and over It may work with windows xp, but as xp is not up to date since 2014, there is no guarantee it will work with this platform Orchestrator was tested successfully with windows 10.0 64 bits You will need Lord Of The Ring Online™ game client up to date, and at least 2 accounts Orchestrator also use a slightly customized version of songbook to work, you can either patch it yourself using following code snippet or use the patched version provided in the archive. code snippet : Add this in \The Lord of the Rings Online\Plugins\ChiranBB\SongbookBB\SongbookWindow.lua:1722 after this line : if sPlayerName and sTrackName and songbookWindow.aPlayers then --added code here Turbine.PluginData.Save(Turbine.DataScope.Character, "FILETOPLAY", Strings["cmd_play"] .. " \"" .. SongDB.Songs[selectedSongIndex].Filepath .. selectedSong .. "\" " , function( result, message ) if ( result ) then Turbine.Shell.WriteLine( "Music to play have been written to file, Ready to Sync !"); else Turbine.Shell.WriteLine( "Music to play failed to save : " .. message .. "" ); end end); -- ############################################################################# How to install Orchestrator ############################################################################# unzip its content using your prefere archive tool (7z, winrar, or whatever) in : Documents\The Lord of the Rings Online\Plugins You should now have this directory : C:\Users\root\Documents\The Lord of the Rings Online\Plugins\orchestrator You must have at least these files, or Orchestrator wont start or work properly : Orchestrator.jar Orchestrator64.dll Main.lua orchestrator.plugin Orchestrator_EN.ini Now open Orchestrator_EN.ini file with notepad or notepad++, and fill it with needed data ( examples are provided in the file ) Once you are done, save this file as Orchestrator.ini in the same directory. When saving the .ini file, choose then ANSI charset encoding, otherwise Orchestrator will have troubles reading properly the content of the file. You must have logged in the game on the computer you are using for all accounts you are planning to use at least one time and use the orchestrator plugin before launching Orchestrator, otherwise some directories wont be created and it wont be able to start. to do so, enter following commands in game : /plugins load orchestrator make sure to equip and instrument, doesn't matter which one : /party_instr write Wait for chat to output you "instrument saved" Orchestrator is now ready to run. I strongly advise you to read following section, you may skip it if you think you already have a fast enough computer. ############################################################################# Optimization ############################################################################# Game optimization : Configure options this way, doing it for one account is enought because they all share the same file for user preferences : GRAPHIC tab Go to options->graphics tab, set overall graphics quality to very low set graphics hardware level to directx9 use windowed mode, and 800x600 resolution disable antialiasing, ADV GRAPHIC tab go to adv graphics tab set object draw distance to low set texture details to very low and texture filering to bilinear in performance section uncheck player mesh combining if you have a good graphic card (GPU) and plenty of ram and video memory, you can set texture cache size to 1.0, it will reduce stuterring, if you are not sure, set it to 0.00 set player crowd quality to 0.00 AUDIO tab go to audio tab, set Music Volume to 0.00 (so that you wont hear game music AND your music playing at the same time) set focus loss behaviour to disable sound KEY MAPPING tab go to key mapping tab, disable shortcuts you allocated previously to Orchestrator in orchestrator.ini file to avoid misbehaviour by default F6 to F12 keys are needed, make sure to remove them from lotro and any other hotkey program (Razer synapse, autohotkey, hotkeynet, ...) Also, if you want the /follow feature to work, make sure F2 is still allocated to "select fellow 2" (this is the default shortcut) TROUBLESHOOT tab go to troubleshoot tab, and set maximum frame rate to 60 fps (or 30, if you think 60 is too much) this is needed as lotro game engine always prioritize graphic rendering over sound rendering, so it may help to reduce sound sturrering also, if your CPU load is still too heavy and you have a lot of stuttering, you can gradually reduce engine speed in troubleshoot tab, however, i strongly advise you to do this as a last resort because it may desync your music from others System Optimization : if you have an SSD drive, move LOTRO game directory on it, as it will make loadings much faster also, move you pagefile.sys file to your SSD, so game cached data will be faster to access too You can configure the page file by using System Properties: Run sysdm.cpl (by windows key + R or throught start menu) Go to Advanced Select Settings under Performance Go to Advanced (again) Select Change under Virtual Memory For Max performance Page file size = RAM * 1.5 or RAM * 2, so if you have 8GB of RAM, allocate 16GB to your pagefile.sys Finally, as lotro game client dont always properly clean unused cached data I advise you to run with a RAM cleaner too if you are using a lot of clients at the same time (i'm not doing any pub or whatever, it's just a good way to go for better perfs) There are several tools doing it like RAMrush, or iobit ram cleaner. As a result, the game is ugly, but very smooth and light (600 to 750 MB in RAM), as example, on an i5 with 8GB of RAM using previous optimizations, i'm able to run 11 clients and play music in a smooth way, even high bpm's ones. Optimization still have limits, in my case, loads becomes too heavy if more than 30 peoples are around to listen and spam emotes In this use case, if you still want to enjoy music you are playing, use a playback computer with an other lotro client. ############################################################################# How to use it ############################################################################# In this tuto i assume you are using default keybinds (F6 to F12) configured in Orchestrator.ini You can also refer to my previous video as it might help you to use it : Installation : https://www.youtube.com/watch?v=A1TN8SjkaeU How to use it : https://www.youtube.com/watch?v=GvpQn9ORDQo To start Orchestrator, double click on the Orchestrator.jar file in \Lord of the Rings Online\Plugins\orchestrator You can create a shortcut in this way if you wish: Create a text file, copy paste the full path to the .jar file, and add " at the start and end, typically you should have something like this: "C:\Users\username\Documents\The Lord of the Rings Online\Plugins\orchestrator\Orchestrator.jar" Now save and rename this file with the .bat file extension, move it where you want, and click it to start orchestrator. You can now use the keybinds below. keybind_kill_orchestrator=F12 This is to kill orchestrator process when you are done playing. keybind_launcher=F11 This is to launch every registered accounts in ini file. Note that if some of you clients crash for whatever reason, using this keybind will relaunch only missing clients. However, one push is enough, NO NEED TO SPAM. Also, while Orchestrator is launching clients, he is also renaming them, to do that he needs to know which windows are currently focused by user, so, while he is launching game clients dont click everywhere, just wait for it to finish keybind_sync=F10 After pushing the Sync button of the targeted music in songbook, wait a few seconds. This delay is due to the fact game api wont instantly write data to make automation impossible, but in our case it's not a big problem as you can push songbook sync button without breaking the music you are playing, and push F10 when it has ended. When the window chat tell you "ready to Sync", you can now push F10. This will synchronize musicians based on what instrument they are holding, and what is the targeted song in songbook, same as before, while he is sending commands, dont mess him up. You should be able to see in songbook window free tracks (in white) and those who are already allocated (in green) keybind_write_instr=F9 This will save for all running clients the currently equiped instrument. You'll need to push it again if you change instruments on one of your character. It is done whan game window chat tells you "instrument saved". The file in which instrument name is written is not cleared after the game stops, so if you are using the same party next music, you wont have to use it again while you dont change an instrument on one of your character. These keybinds are optional, but i recommend you to set them as they make your life so much easier : keybind_music=F8 This will send a /music command to running clients, nice to setup every thing in a fast way or interrupt a music keybind_follow=F7 This will send F2 keytroke and /follow command to all your running clients making them target the fellowship leader if you are using it in a raid with more than 6 toons, after you have pushed this key, go to other fellowship leader window in your raid, and manually target and click follow the raid leader keybind_raid_invit=F6 This will send /raid invite to all your characters, As Orchestrator dont send mouseclicks to games clients, he will bring to the front the window of invited character for 3 seconds so that you can manually accept the invite. So, knowing these keybinds and what they do, from desktop to an in-game concert, you'll have to push : F11 : to launch game clients F6 : to raid invite all your toons F7 : to make them follow you where you want to play F9 : to write instruments if you need it F8 : to prepare everyone to play F10 : choose music in songbook, wait few sec and push F10 to sync your toons on the music you selected ############################################################################# TROUBLESHOOTING ############################################################################# If you are having problem at installing/using orchestrator you can send me a private message on lotrointerface.com forums (Vacknishkara). you can also send me orchestrator.log file which is in \The Lord of the Rings Online\Plugins\orchestrator directory. You dont have to worry about personnal information, as in this log file your login/password and all paths to user files and directories are replaced by a random number of '*' characters. Only the server, your toons names, the lang you are using, and some technical informations about your window version, java setup and various Orchestrator internal informations are available to me. I will always assume that you have read this README file before, so, if the answer already lies in there, i wont answer you. Here are some tips : I tryed to make logs not too much technical, and understandable by a common user, if you have a problem, try to see where it stopped depending on the error, it may throw you an error that will tell you directly what's wrong, so if you are using a special system setup on you own, you may be able to match it with the error if not, send it to me. Also, if you are using Orchestrator to play music you created by yourself, you have to know that to match instruments name, he is based on default maestro naming policy for partition names so if you dont comply with it, it may just skip this track, if you have this problem, send me orchestrator log file and the abc file that cause troubles. If it happens you dont have a log file created, please make sure you have java 64 bits intalled on your computer, you can do this and send me informations : open a windows terminal, for this use windows key + R shortcut and type cmd, or search for cmd in window start menu. then enter the following command (your version may not be the same, if so make sure to adapt the command by browsing there and copy/paste the path ) tip : you can copy from windows terminal by highlighting text and rightclicking on it, you can paste to windows terminal by right clicking in its window. "C:\Program Files\Java\jre1.8.0_121\bin\java.exe" -version Then, copy and paste from terminal informations it outputs, you should have something like this : C:\Users\root>"C:\Program Files\Java\jre1.8.0_121\bin\java.exe" -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) if not, please uninstall every java version on your computer and install java 64 bits from this link : The file to download will have a name close to this one : jre-8u121-windows-x64.exe http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html Then, back to your command line, enter this command, just change the username by your own username, and document's name too if you use a different localization : "C:\Program Files\Java\jre1.8.0_121\bin\java.exe" -jar "C:\Users\username\Documents\The Lord of the Rings Online\Plugins\orchestrator\Orchestrator.jar" if this command output nothing, and orchestrator creates a log file, it works as intented, if previous command outputs anything, and no log file is created, then copy its output and send it to me. ############################################################################# Want to contribute ? ############################################################################# If you are interested in making Orchestrator a better tool (you have an idea of feature, or you want to improve code in a better way) just send me a message on the lotrointerface.com forums (Vacknishkara). By the way, if someone could to a german translation of this readme (i did the french one), that would be really great. TODO list (features that MAY be added, no guarantee ): - give the possibility to orchestrator to synchronize with others orchestrators for bigger music raids shared by multiple physical players (24 man) (as lotro api limit a lot communications with external applications like orchestrator, it's possible but will be slow, also doable by using an external server to share informations, but i'm not going to pay for it) - make it work under linux (who is playing lotro on linux by the way ?) - fix trust issues with a proper certs implementation while login - remove API's for handmade code, but seriously, i'm loo lazy for that - make it run for 32 bits potatoes computers, i seriously doubt how orchestrator would be useful on computers with less than 4 GB RAM because windows takes at least 2GB, you would run 2-3 clients of LOTRO game, i dont think it's worth it for so few clients However, if you want to compile a dll for 32 bits systems, go on, take cpp edit it, compile and share. - allow orchestrator to equip an other instrument on a character using keytrokes to gear an instrument on the skillbar (ex: shift+1) ############################################################################# Version history ############################################################################# Date formating : YYYY-MM-DD 2016-03-** - version alpha private release to myself, It used to work by editing/reloading/launching hotkeynet scripts, clumsy to use and install, but i used it for a while before minding about a public release. 2017-13-04 - version 0.10 Initial public Release I know it's far to be the best tool, and technically speaking, there are shortcuts i'm not allowed to use, but i did my best and i hope you'll truly enjoy sharing music in LOTRO thanks to it. - Vacknishkara, Sirannon (FR)