Garrison Jukebox
Garrison Jukebox
This addon lets you select (from the World of Warcraft embedded music files) a list of music that will either play inline or randomly while in one of the zones you selected in your zone list. (by default, Lunarfall and Frostwall are added)
Not all music is entered yet, almost... I'm working on it. If you would like to add music to this addon, you can request it via the wowace ticket system. Because several zones have multiple music files, I suggest anyone creating a ticket to supply the embedded filename.
You can follow me on twitter @Azmaedus for addon updates
Information
Slash Commands (/gjb)
- config: Opens up the configuration dialog.
- next: Plays the next song in your jukebox; if set to 'shuffle', will simply play another random song.
- play: Stops original zone music and starts playback of your jukebox items.
- stop: Stops playback and starts original zone music.
- prev: Plays the previous song in your jukebox; if set to 'shuffle', will simply play another random song.
- showicon: Shows the minimap icon.
- hideicon: Hides the minimap icon.
- showplayer: Shows the music player.
- hideplayer: Hides the music player.
- resetpos: Resets the anchors of the music player to the center of the screen.
JukeBox
- You can cycle through samples of the selected title (music) by clicking the "Play Sample" button.
Music Player
- A graphical UI allows you to control the jukebox. Play, Stop, Previous and Next buttons. To move the UI, ALT+RightMouseButton and drag to desired location.
Available Music
You can view the contents of each expansion by clicking on the links below.
- Classic World of Warcraft
- The Burning Crusade
- Wrath of the Lich King
- Cataclysm
- Mists of Pandaria
- Warlords of Draenor
- Events and miscellaneous
- Blizzard Music Rolls (WoD 6.1)
- Legion (link to come...)
- Battle for Azeroth (link to come...)
Known Issues
- Inter-addon communication may still contain bugs.
- Sometimes when changing from a zone not on the zonelist to a zone that is, GJB will play 2 consecutive songs. Working on a fix.
Before submitting your bug(s), check that you are using the latest version. If not, please update and also check if the bug hasn't already been submitted either as a ticket or in the project's description. Thank you.
v2.x
Warning! If you were using v1.2.1.0 or older, this new version will reset your SavedVariables; the structures of the musictable and zonetable have changed and as a consequence, all of your jukeboxes (Jukebox, Advanced, STM) will be emptied. As a precaution, you can also backup your SavedVariables prior to using this new version (INSTALL_DIR\WTF\Account\ACCOUNT_NAME\SavedVariables\GarrisonJukeBox.lua).
What version do you have installed?
When do you get this LUA error; is it as soon as the game is playable after you select a character?
Edit: After verifying 2.0.1.6, this bug should be fixed in the next version. You cane always download the beta version 2.0.2.3b.
My installed version is 2.1.6 release that is currently uploaded on Curse.
The error pops once I enter the world with any character from my character list.
Will you be updating this current version soon so I can use the Jukebox again? I absolutely LOVE it and miss it now that it isn't working.
Thanks so much! Keep up the awesome work!
EDIT: I installed version 2.0.2.3b as suggested and obtained the following error...Pls advise:
Error occured in: Global
Count: 1
Message: ..\AddOns\GarrisonJukebox\mplayer\config.lua line 458:
GJBP_BG:SetPoint(): Couldn't find region named '(null)'
Debug:
[C]: SetPoint()
GarrisonJukebox\mplayer\config.lua:458: SetPlayerPos()
GarrisonJukebox\mplayer\config.lua:466: UpdateMusicPlayer()
GarrisonJukebox\events\events.lua:279:
GarrisonJukebox\events\events.lua:20
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9:
[string "safecall Dispatcher[1]"]:5
(tail call): ?
After last release a blank History box appears under my player. It never fills up or anything, and I have to X out of it every time I log in.
Also getting this
396x GarrisonJukebox\mplayer\config.lua:501: GJBP_BG:SetPoint(): Couldn't find region named '(null)'
[C]: in function `SetPoint'
GarrisonJukebox\mplayer\config.lua:501: in function `SetPlayerPos'
GarrisonJukebox\mplayer\config.lua:509: in function `UpdateMusicPlayer'
GarrisonJukebox\events\events.lua:97: in function <GarrisonJukebox\events\events.lua:19>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
Ace3\AceAddon-3.0\AceAddon-3.0-12.lua:529: in function `InitializeAddon'
Ace3\AceAddon-3.0\AceAddon-3.0-12.lua:644: in function <Ace3\AceAddon-3.0\AceAddon-3.0.lua:636>
Locals:
nil
I've pushed 2.0.1.6. Tell me if that solves the problem.
Updated to 2.0.1.6 still receiving the error. On a hunch I clicked All Zones, but that didn't help the issue. At least the empty box is gone.
config.lua doesn't have a line 501 as of 2.0.1.6. Are you sure you correctly installed it?
2.0.1.3 had a bug when opening the options menu under Zones. 2.0.1.4 fixes this issue.
How do you use this to access the normal Garrison Music? The Expansion Category List doesn't seem to have anything that even remotely resembles Garrison Music. It's music for everywhere else but ... :(
Also, how do you set it to play JUST on one character? It's only the one character whose Garrison music got busted by the in-game music-box. >.<
EDIT 1: Okay, I think I figured out my questions. Getting the hang of this thing.
Just wanted to point out that when I log onto my Main in her Garrison, the Add-On will start playing its first track, ... and then, jump to its next selection ...
EDIT 2: I tried playing a track that I didn't have on my Playlist, the Gilneas selections, to go with my Worgen Hunter while in Talador today. When the CATA selections ended, the normal Zone music did not resume. I had to log out and log back in to fix it ...
EDIT 3: Wow, ... no new posts since my last edit? Well, anyway, have encountered a weird bug and pretty sure that it's the add-on, as it's started since I started using the add-on. Now, no matter where I am, after a track ends, nothing follows. I got to disable and re-enable the music to make it move on to the next track ...
On the character selection screen, only enable GJB in the Addons options screen.
In GJB options, select Blizzard Music Rolls in the Expansion/Category drop-down.
This is a known issue. Unfortunately, I did not find a suitable fix. It all has to do with the PEW event being triggered multiple times. "Maybe I should use a delta or something..."
*Edit 2: Did you try to click the STOP, PLAY, NEXT or PREV buttons on the Player?
Greetings.
Can someone tell me where is the gentle music you used to listen in Zangar Sea?
Considering there are multiple songs in each area, I would suggest you to go to http://www.wowhead.com/sounds/zone-music and find the song you're looking for. Then, post it here and I'll see if I can help you find it.
Download CASC, which extracts the sound files from WOW. Or, if you don't want to go that far, search Wowhead.
Planning on using this addon to fix the garrison music on a broken (horde) toon. Anyone know what song(s) the default garrison music is supposed to use? I don't know if this is possible or practical, but one thing that would be very nice would be a "fix garrison music" checkbox that will cause it to play the default garrison music if default garrison music is selected on Blizzard's broken jukebox. It's a shame that Blizzard can't keep something as simple as music working in their game and we have to work around their problems with addons.
There should be a "Play Default Garrison Music" option in the Tune-O-Tron 5000 menu.
I have no idea why it's not working... the player works only if I tick "all music" in settings. If it is unchecked, clicking on play/stop/next/previous buttons does nothing :( No idea how to fix it.... I'm going crazy in mi garrison since completing jukebox quest totally messed up my music...
It also works when I configure music for specific zone (frostwall in this case) but not when I want to use it as jukebox for all zones :S
Edit: after today maintenance nothig is working :S
What version are you using? If you enable LUA error display in your WoW Interface Options panel, are you seeing an error?
I'm using most recent version... about errors:
1/3
Message: Interface\AddOns\GarrisonJukebox\mplayer\config.lua:328: GJBP_BG:SetPoint(): Couldn't find region named '(null)'
Time: 05/27/16 21:38:05
Count: 1
Stack: [C]: in function `SetPoint'
Interface\AddOns\GarrisonJukebox\mplayer\config.lua:328: in function `SetPlayerPos'
Interface\AddOns\GarrisonJukebox\mplayer\config.lua:336: in function `UpdateMusicPlayer'
Interface\AddOns\GarrisonJukebox\events\events.lua:93: in function <Interface\AddOns\GarrisonJukebox\events\events.lua:19>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
...s\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:529: in function `InitializeAddon'
...s\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:644: in function <...s\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:636>
Locals: (*temporary) = GJBP_BG {
0 = <userdata>
}
(*temporary) = "CENTER"
(*temporary) = <table> {
variablesLoaded = true
firstTimeLoaded = 1
}
(*temporary) = "CENTER"
(*temporary) = 0
(*temporary) = 0
Then 2/3:
Message: Interface\AddOns\GarrisonJukebox\core.lua:709: attempt to index field '?' (a nil value)
Time: 05/27/16 21:38:16
Count: 1
Stack: Interface\AddOns\GarrisonJukebox\core.lua:709: in function `PlayJukebox'
Interface\AddOns\GarrisonJukebox\core.lua:792: in function `PrepareToPlay'
Interface\AddOns\GarrisonJukebox\core.lua:460: in function `ProcessInfo'
Interface\AddOns\GarrisonJukebox\events\events.lua:251: in function `?'
...s\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:53: in function <...s\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:48>
Locals: self = <table> {
defaults = <table> {
}
zone = 1
About = <table> {
}
zonetable = <table> {
}
EXP_WOD = 7
modules = <table> {
}
CancelTimer = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:145
MT_MUSICID = 1
SetPlayerPos = <function> defined @Interface\AddOns\GarrisonJukebox\mplayer\config.lua:325
UnregisterComm = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
advzone = 1
ZONE_EASTERN = 2
GenerateOptions = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:78
PLAYERROR_INV_TITLE = 2
OnZoneChanged = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:282
loadTimer = <table> {
}
stm_title = 1
IsEnabled = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:482
ScheduleTimer = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:92
gTitleIndex = 1
isVersionOOD = <function> defined @Interface\AddOns\GarrisonJukebox\coms\coms.lua:62
GenerateOptionsInternal = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:88
GetZone = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:238
RegisterMessage = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterMessage = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
getSampleSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:147
BlackList = <table> {
}
GetSTMTitle = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:378
SendCommMessage = <function> defined @Interface\AddOns\GarrisonJukebox\Libs\AceComm-3.0\AceComm-3.0.lua:84
OnZoneChangedNewArea = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:292
samplesound = 1
UnregisterAllComm = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
SetEnabledState = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:455
PlayAllMusic = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:603
gCurZoneID = 976
PrepareToPlay = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:778
moduleOptions = <table> {
}
GetExpansions = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:119
ZONE_PANDA = 6
stmode = false
OnPEWEvent = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:173
advtitle = 1
expac = 1
IsKitMusic = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:37
getExcludedSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:157
SortMusicTable = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:48
UnregisterAllEvents = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
gPetBattleEnabled = false
PlaySTMMusic = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:550
VERSION_TABLE_SIZE = 5
Party = <table> {
}
ZONE_RAIDS = 8
ExtractMP3Filename = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:14
GetAdvExcludedSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:316
SongInAdvExcludeList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:520
Deserialize = <function> defined @Interfa
Then 3/3
Message: Interface\AddOns\GarrisonJukebox\core.lua:709: attempt to index field '?' (a nil value)
Time: 05/27/16 21:38:18
Count: 1
Stack: Interface\AddOns\GarrisonJukebox\core.lua:709: in function `PlayJukebox'
Interface\AddOns\GarrisonJukebox\core.lua:792: in function `PrepareToPlay'
Interface\AddOns\GarrisonJukebox\core.lua:460: in function `ProcessInfo'
Interface\AddOns\GarrisonJukebox\events\events.lua:213: in function `?'
...s\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:53: in function <...s\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:48>
Locals: self = <table> {
defaults = <table> {
}
zone = 1
About = <table> {
}
zonetable = <table> {
}
EXP_WOD = 7
modules = <table> {
}
CancelTimer = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:145
MT_MUSICID = 1
SetPlayerPos = <function> defined @Interface\AddOns\GarrisonJukebox\mplayer\config.lua:325
UnregisterComm = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
advzone = 1
ZONE_EASTERN = 2
GenerateOptions = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:78
PLAYERROR_INV_TITLE = 2
OnZoneChanged = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:282
loadTimer = <table> {
}
stm_title = 1
IsEnabled = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:482
ScheduleTimer = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceTimer-3.0\AceTimer-3.0.lua:92
gTitleIndex = 1
isVersionOOD = <function> defined @Interface\AddOns\GarrisonJukebox\coms\coms.lua:62
GenerateOptionsInternal = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:88
GetZone = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:238
RegisterMessage = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
UnregisterMessage = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
getSampleSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:147
BlackList = <table> {
}
GetSTMTitle = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:378
SendCommMessage = <function> defined @Interface\AddOns\GarrisonJukebox\Libs\AceComm-3.0\AceComm-3.0.lua:84
OnZoneChangedNewArea = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:292
samplesound = 1
UnregisterAllComm = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
SetEnabledState = <function> defined @Interface\AddOns\AckisRecipeList\libs\AceAddon-3.0\AceAddon-3.0.lua:455
PlayAllMusic = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:603
gCurZoneID = 976
PrepareToPlay = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:778
moduleOptions = <table> {
}
GetExpansions = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:119
ZONE_PANDA = 6
stmode = false
OnPEWEvent = <function> defined @Interface\AddOns\GarrisonJukebox\events\events.lua:173
advtitle = 1
expac = 1
IsKitMusic = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:37
getExcludedSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:157
SortMusicTable = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:48
UnregisterAllEvents = <function> defined @Interface\AddOns\TomTom\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
gPetBattleEnabled = false
PlaySTMMusic = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:550
VERSION_TABLE_SIZE = 5
Party = <table> {
}
ZONE_RAIDS = 8
ExtractMP3Filename = <function> defined @Interface\AddOns\GarrisonJukebox\globals\funcs.lua:14
GetAdvExcludedSongList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:316
SongInAdvExcludeList = <function> defined @Interface\AddOns\GarrisonJukebox\core.lua:520
Deserialize = <function> defined @Interfa
Any ideas?
Strange. It seems GJB is having a hard time finding the main frame of the player. I would suggest deleting your saved variables <INSTALL_DIR>\WTF\Account\<ACCOUNT>\SavedVariables\GarrisonJukeBox.lua and see if it resolves the issue.
*Make a backup of the file prior to deletion.
*The game must not be running when you do this.