Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[Script] Roll20 Audio Master -- Hear the dice, Hear the action!

The stop command does not seem to work anymore, am I the only one? !roll20AM --audio,stop|
I am unable to get the stop command to work either, nor am I able to switch playlists without them both playing at the same time
1550704941
Victor B.
Pro
Sheet Author
API Scripter
You have to fade out one playlist if starting another.  It won't automatically stop one for the other.  One of the points of Roll20AM is to allow multiple playlists to go at the same time, which Jukebox doesn't do.  Ability to create a soundscape.   Stop works just fine for me.  Is this a track launched by a page load or something outside of Roll20AM?  Roll20AM doesn't touch anything launched outside of it.  That would cause problems with special effects etc launched from character sheets, etc.  
Anyone else having an issue where roll20 AM is crashing the API Sandbox?
  TypeError: Cannot read property 'set' of undefined TypeError: Cannot read property 'set' of undefined at playTrack (apiscript.js:32346:16) at trackHandler (apiscript.js:31880:17) at _.each (apiscript.js:31644:25) at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:186:9) at Timeout._onTimeout (apiscript.js:31643:23) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)
Hmm removing all my tracks and playlist and re importing fixed in case anyone else runs into this issue.
1551190253
Victor B.
Pro
Sheet Author
API Scripter
Yep, that can happen if large changes are made to Jukebox.  RollAM20 gets confused as it thinks a track is there and it's actually been removed/moved to another playlist.  
Just added the script and the commands don't seem to be working I enter ' !roll20AM --play|[track name]' and receive the message ' Invalid Roll20AM Command. Valid commands are --audio, --edit, --config' I double checked that I have the latest version. Anyone else getting this error? Have the commands changed from what's listed?
1551738112

Edited 1551738163
I think you need to start with --audio,  Here is a short example from one of my games to play a sound effect, then stop it a short time later.  !roll20AM  --audio,nomenu,play|horns !roll20AM  --audio,nomenu,delay:5,stop|horns Where ' horns ' is the name of the track.  Hope that helps. 
1551761247

Edited 1551761813
Luke H. said: I think you need to start with --audio,  Here is a short example from one of my games to play a sound effect, then stop it a short time later.  !roll20AM  --audio,nomenu,play|horns !roll20AM  --audio,nomenu,delay:5,stop|horns Where ' horns ' is the name of the track.  Hope that helps.  Thanks for clarifying! I didn't catch on that any commands were required before '--play' I'm not getting the error message anymore, but it still doesn't seem to register any track titles I enter. Is it not compatible with My Audio files yet?
1551763611
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Seph said: Luke H. said: I think you need to start with --audio,  Here is a short example from one of my games to play a sound effect, then stop it a short time later.  !roll20AM  --audio,nomenu,play|horns !roll20AM  --audio,nomenu,delay:5,stop|horns Where ' horns ' is the name of the track.  Hope that helps.  Thanks for clarifying! I didn't catch on that any commands were required before '--play' I'm not getting the error message anymore, but it still doesn't seem to register any track titles I enter. Is it not compatible with My Audio files yet? Whenever you make changes to your tracks, it's a good idea to re-import the Jukebox. !roll20AM --config The menu that appears after that contains the commands you need. Click "Remove All", and then "Import Jukebox". Don't worry, Remove All doesn't actually touch your jukebox files, it just clears Roll20AM's index.
That did the trick! Thanks keith! ^.^
1551795782
Victor B.
Pro
Sheet Author
API Scripter
Yep KeithCurtis is correct.  If you simply add tracks to existing playlists, you can do an import, but if you move tracks around, you need to remove tracks/import because Roll20AM thinks there's a track in a playlist that isn't there anymore.  
I'm trying to re-import my tracks, but every time I click "Import Jukebox" the API crashes and shows the following error message: SyntaxError: Unexpected end of JSON input SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at importJukebox (apiscript.js:10948:33) at configHandler (apiscript.js:10240:13) at Timeout._onTimeout (apiscript.js:10000:17) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)
1552885085
Victor B.
Pro
Sheet Author
API Scripter
Remove Tracks first.  If you've made lots of changes, moving tracks between playlists, you need to reset.  Remove tracks and reload
Victor B. said: Remove Tracks first.  If you've made lots of changes, moving tracks between playlists, you need to reset.  Remove tracks and reload I'm having the same issue as Seph above, with the same error message.  This is on a game that only has one track.  It crashed the very first time I tried to import the tracks.  I've tried "Remove All", then refreshing the game page, then "Import Jukebox" but it's still a no-go.  It crashes the API with For reference, the error message generated was:   SyntaxError: Unexpected end of JSON input SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at importJukebox (apiscript.js:4175:33) at configHandler (apiscript.js:3467:13) at Timeout._onTimeout (apiscript.js:3227:17) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)
1553039114

Edited 1553039194
Victor B.
Pro
Sheet Author
API Scripter
End of JSON input seems like a corrupted jukebox.  I'd suggest deleting the tracks and re-importing from My Audio.  Import a couple of tracks (only) from My Audio, do a remove all/import with Roll20AM and see if that fixes this.   Also make sure your tracks are playing from Jukebox.   I've never seen this error before.  
Victor B.   said: End of JSON input seems like a corrupted jukebox.  I'd suggest deleting the tracks and re-importing from My Audio.  Import a couple of tracks (only) from My Audio, do a remove all/import with Roll20AM and see if that fixes this.   Also make sure your tracks are playing from Jukebox.   I've never seen this error before.   It fails on importing the very first track, of which there is only one. I removed the script, deleted the track from Jukebox, re-added it to the Jukebox, re-added the script, Remove All then Import Jukebox and it fails, stopping all APIs. I also tried:      delete track > Remove All > add track > Import Jukebox and it failed. It's crashing on Import, any which way I work it.  I even had the API Setting page open while I tested.  It fails immediately, not as if it's actually timing out.  Perhaps it's not communicating properly with "My Audio", as in it can't connect to the Roll20 DB at the requested location for the tracks?  The track will play from Jukebox directly. ***EDIT*** So, I thought I would try another thing. Jukebox > Add Playlist > Drag Track into Playlist Roll20AM > Remove All > Import Jukebox <Profit> Apparently Roll20AM doesn't like talking to the Jukebox if said box has no playlists of its own.  A lonely track crashes AudioMaster.  Testing to see if it will now import other tracks that have no Jb Playlst associated with them. ***EDIT 2*** This likewise worked.  It seems there must be at least one Playlist in Jukebox before Roll20AM will properly Import.  Might want to try and import with several tracks but no playlist. ^Tested^ This also worked.  Also deleted the playlist then: Remove > Import.  Still worked.  Roll20AM just doesn't like that first single track by itself with no playlist.  More likely, it will not properly initialize if Jukebox has not *had any playlists yet.
1553219342
Victor B.
Pro
Sheet Author
API Scripter
You are correct.  You need at least one playlist or it will bomb out.  I didn't account for no playlists at all.  
So, I thought I would try another thing. Jukebox > Add Playlist > Drag Track into Playlist Roll20AM > Remove All > Import Jukebox <Profit> Apparently Roll20AM doesn't like talking to the Jukebox if said box has no playlists of its own.  A lonely track crashes AudioMaster.  Testing to see if it will now import other tracks that have no Jb Playlst associated with them. ***EDIT 2*** This likewise worked.  It seems there must be at least one Playlist in Jukebox before Roll20AM will properly Import.  Might want to try and import with several tracks but no playlist. ^Tested^ This also worked.  Also deleted the playlist then: Remove > Import.  Still worked.  Roll20AM just doesn't like that first single track by itself with no playlist.  More likely, it will not properly initialize if Jukebox has not *had any playlists yet. Thanks for testing that out, I'll give it a try myself!
Hi, I'm using your AWESOME script along with the Custom Roll Listener to play audio during player and GM attacks and spells etc. All working except the audio doesn't play every time, I have imported the playlists and set the listeners up correctly I'm sure as it works on certain listeners. Yet when the attack gets called it doesn't always play the sound which is frustrating. Any ideas? 
1553879740
Victor B.
Pro
Sheet Author
API Scripter
I've seen that also.  I'd suggest removing the track from Roll20AM and Jukebox and My Audio.  Re-import it into My Audio, then assign track to playlist in Jukebox and import into Roll20AM.  I haven't reported it yet, but I believe there's an intermittent error either in My Audio Upload or assigning track into game.  
How about this one?  It plays them all *most of the time* but sometimes it doesn't play the third track in the list: %{selected|repeating_npcatk-special_$0_attack} !roll20AM --audio,play,nomenu|TrapTrigger !roll20AM --audio,play,delay:0.5,nomenu|Arrows !roll20AM --audio,play,delay:1.5,nomenu|Arrows
1553978619
Victor B.
Pro
Sheet Author
API Scripter
Yes, when you do the play of arrows, it will stop arrows when done.  Since you are playing it twice and depending on Roll20 performance and lag it's possible the second track is stopping the third.  Try copying arrows again and renaming it.  So you're playing arrows and arrows1 and I'm betting that problem will go away.  
Hello everyone, I cannot launch a playlist in a random selection with:! Roll20AM --audio, stop | --audio, nomenu, play, loop | Tavern Obligate to used:! Roll20AM --audio, stop | --audio, nomenu, play | Bar [[1d10]] But this code it's just for randomised song of my playlist Tavern whose name Bar 1, Bar 2, Bar 3... and when the song is finished, the after one doesn't launch. It's a little bit annoying. If anyone have a solution for me that would be great. Thank you to all.
1554993482
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Have you tried deleting and reimporting the jukebox list from Roll20AM?
1555019986

Edited 1555019998
Victor B.
Pro
Sheet Author
API Scripter
Remove the spaces in between your commands, so --audio,stop| --audio,nomenu,play,loop|Tavern
Keithcurtis : Yes i've already done deleting and reimporting my jukebox list, I used to doing that after each song i add, but for being sure, I redone once time but nothing change.. Victor B. In fact, I don't why the copy add space but I check the command and have no space under word. In any case, thank's for answering so quickly.
1555159428
Victor B.
Pro
Sheet Author
API Scripter
Where are your calling this from?  A macro?  A character sheet?  Copy and paste your code into here.  
For Being sure, i prefer explain all. What i want to use, is a macro who can launch a playlist in random selection for my playlist called "Tavern". In this playlist, each song is called Bar 1, Bar 2, ... Bar 10. The problem is when i use :                                  !roll20AM --audio,stop| --audio,nomenu,play,loop| Tavern The playlist starts at Bar 1 until Bar 10 in the order. So I currently use this command (In a macro) :                  !roll20AM --audio,stop| --audio,nomenu,play| Bar [[1d10]] This command is good because the song is randomised but it's not a playlist.
1555338737
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Hi David M., Have you tried adding --edit mode|random to your "Tavern" playlist command instead of using a random number? The wiki has detail on this.
1555340585
Victor B.
Pro
Sheet Author
API Scripter
Yes, Keith's got the right idea.  Change the playlist mode to random via the command he specified or via the menus.  Then use the playlist name instead of bar[[1d10]]
Hi, I tried to change the playlist mode to random via the command:            !roll20AM --edit mode|random but nothing change, did I make a mistake ? And i tried to change via menu of configuration and selected "Playlist" but nothing happens, is it a bug ?
1555357228
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Did you include the edit command within the rest of the macro? All by itself I don't think it does anything. !roll20AM --audio,stop| --edit mode|random --audio,nomenu,play,loop|Tavern
Yes, I did and nothing change, the first track is played at every try. Maybe a bug, need to reupload the API ?
1555382974
Victor B.
Pro
Sheet Author
API Scripter
Use the menus !roll20AM --config Click through the playlist control icon until you get to random.  
Hi Everyone,  In first, thanks to Keithcurtis and Victor B for your help, I just understood why I couldn't using the menu of config. Because the menu Display was off (stupid i know ^^) So that's works perfectly now.
Is there a way to prompt Roll20AM to trigger commands when a page loads?  For example, play two playlists (ambient noise and music) when a page loads.  I have macros I use now for it but it would be great to have on page loads and especially when players first arrive to the game.
1556025224
Victor B.
Pro
Sheet Author
API Scripter
No, the music starting at page load is completely outside of Roll20AM.  I have no control that.  You could create a macro to do that.  
1556025261
Victor B.
Pro
Sheet Author
API Scripter
or a small API that detects page load and launches Roll20AM.  
Hey folks - does the new audio jukebox software that launched today (yesterday?) change any of they syntax for AM?   After losing ALOT of audio files when the "fourth tab" went away, I've spent today finding replacement Mp3 files and uploading them. They play great from the jukebox, but our group REALLY would like go back to having player-activated token actions that play certain SFX (like swords clanging or blasters firing) that the PLAYERS can control without pausing for the GM to find / trigger the SFX. BUT... the macros are no longer working.  Did the syntax change, or is Roll20 AM out of sync with the new jukebox? Thx!
1556919353
Victor B.
Pro
Sheet Author
API Scripter
Roll20AM didn't change AT ALL.  I think you should try re-importing your tracks into Roll20AM and I believe your macros will work again.  
1556925675
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
And be sure to clear out any orphaned music files. This is a macro I use to quickly update the Roll20AM track list: !roll20AM --config,remove !roll20AM --config,import
Its working partially... then stops.    Getting this API error when I go back to API menu: Your scripts are currently disabled due to an error that was detected. Please make appropriate changes to your scripts and click the "Save Script" button and we'll attempt to start running them again.  More info... For reference, the error message generated was:  TypeError: Cannot read property 'set' of undefined TypeError: Cannot read property 'set' of undefined at playTrack (apiscript.js:1261:16) at trackHandler (apiscript.js:795:17) at _.each (apiscript.js:559:25) at Function._.each._.forEach (/home/node/d20-api-server/node_modules/underscore/underscore.js:186:9) at Timeout._onTimeout (apiscript.js:558:23) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:21
And BTW - I did the config,remove + config,import
1557000044

Edited 1557000058
Victor B.
Pro
Sheet Author
API Scripter
Check the name of the track.  If there's commas or the like Roll20AM can't handle it though it is escaping many of those characters.  Simplify the name in Jukebox, remove all/import all and see if the problem goes away.  
Anyone have any idea why !roll20am --config can stop working suddenly?  I can issue direct commands just fine, but the --config command seems very touchy.  I have to literally delete the script and readd it to get it to work sometimes.
1557955602
Victor B.
Pro
Sheet Author
API Scripter
You need to check to see if your sandbox has bombed out for some reason.  Some APIs step on others.  What I'm encountering is songs that start and then suddenly stop.  It's a known issue after the last Roll20 Jukebox upgrade.  
No sandbox has not crashed, Roll20AM actually does work for direct commands.  I found this out because my players didn't have permissions set, so it was spitting the error every time their sfx went off.  However, I couldn't get into --config to change anything.  The command just did nothing.
However, when I logged in, I did get a message that the API was shutdown due to campaign activity.  Last night I was using chatattrset and torches without a problem.