135 posts / 0 new
Last post
mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
[Ann] 0.0.2 - Caustic Player Android App - 05-28-2015

Hey all,

Update 05-28-2015

Hey, Rej got me the new OSC commands, can some people that had crashes post a couple fo the files that were crashing your devices on this thread? If I can check to see if the crashes are gone I can add to this app and release it with play lists down the road.

Update 03-27-2015

Download :: http://www.teotigraphix.com/caustk/apps/CausticPlayerDevice-0.0.2.apk

Test Files :: http://eipso.com/content/CPA Test Songs.causticpack

Released 0.0.2

IMPORTANT, delete the CausticPlayer (install root) directory before you install, I changed the project serialization and there is a file in there that needs to be wiped.

Changes;

0.0.2 (03-27-2015)
* Added: Preference screen and FPS global adjustment.
* Added: Library; displays songs sorted by Artist, Title, Creation and Modified.
* Added: Enable function for FileList directories when adding a source root.
* Added: Preset table html detail.
* Added: Effects table html detail.
* Added: Player header details toggle button with state
* Added: Disable non sequenced song items.
* Added: RootList displays how many .caustic files are contained in each source root.
* Added: Folder icon in RootSource list
* Added: caustic icon on directories that contain .caustic files.
* Added: Logo doubleTap saves project state.
* Added: PlayerList sort alpha numerically.
* Fix: Rewrote complete Project/Rack state serialization, supports backward compatibility.
* Added: linkurl meta data text.
* Added: description meta data text.

Update 03-26-2015

I have created a page on my website that shows the changes and has the latest version of APK to download. If you are interested in the app's evolution, you can book mark it and check occasionally. I plan to release updates a couple times a week or so.

I'm also working on Caustic Live and a couple other projects at the same time. I will have Caustic Live in alpha for some testing in the next month. Thankfully for those that are testing this app, you are helping me work out the bugs for my others, thanks for that. smiley

Site page : http://www.teotigraphix.com/causticplayer

Introduction

This thread is about the Android Caustic Player app I have been working on. My applications for the Caustic Core are finally coming to fruition and this is the first free app to be rolled out. As a community, you could help me out by giving this thing a test run on your device and report back on this thread.

I have spent a long while working on caustic stuff, for some it would seem I am full of hot air, I have talked about these apps for so long. I have finally had the time to really nail everything I am doing and start to get things finished.

The real reason this app is first is to test the app framework that is used with Caustic Live. So, if you want to use Caustic Live sooner than later, helping me get the bugs out of this app will speed things up because it uses the same code base for project serialization, startup loading and graphics.

The apps do use Adobe AIR, but I have packages them as a captive runtime which means it's basically a native Android app, you do not need AIR to run it.

Downloads

Jason was kind enough to put together a .causticpack so anybody trying this can test these 4 files against their device, all these files work in the player, so if they don't work on your device, I know I have a problem with that specific device. Please try these songs first if you really want to help and report if they work as expected.

Test Files :: http://eipso.com/content/CPA Test Songs.causticpack

The app is simple in it's initial state;

  1. Install on device.
  2. Run on device
  3. Select the Settings icon to the top left.
  4. Select "Library"
  5. Tap "Add" to add a source root. Note, this for now is a recursive operation, IT WILL ADD ALL .caustic files under the directory! Please, please, please start off with a small selection of .caustic files, there may be crashes due to incompatible .caustic version from your device.
  6. Once a source directory is added, you can now tap the "Settings" button in the top left and navigate back to the "Player".
  7. Once in the "Player", you can double tap a list item to start playing, or use the transport controls below as you would with a normal media player.

Player Actions

Stop - Stops the sequencer and resets the play head to 0.

Rewind - Rewinds the playhead 1 bar (4 beats).

Previous - Selects the previous song in the playlist, will loop to the end if at index 0.

Play/Pause - Play and pause the playhead keeping the current play position in beats, unlike stop, it doesn't reset the playhead.

Next - Selects the next song in the playlist, will loop to index 0 if at the end of the playlist.

Repeat - Toggles on/off track repeat, will play the track indefinitely if left on.

Random - Uses math random numbers to play a random track after the current track has finished playing.

Gestures

Double tap list item plays the track.

Tap the arrow pointing right will let you preview the song detail text without changing the playing track. The song detail text will change when a track changes though.

Other

  • The player will load .caustic meta data if the file has been saved with it using Rej's windows metadata app OR my Caustic Meta Android app. I am going to integrate that app into this player, so you will be able to tag your files right from this app and save them.
  • The text at the bottom right shows the current time minutes/seconds and current bar/total bars in the current track.
  • Using the "Remove" button in the Library pane, you can remove source roots from your playlist.
  • Currently, there is one master playlist, "All" which the player is playing. Eventually after bugs get worked out, I will expose playlist creation that you can save onto your device and load up.

I put a lot of time into this app hoping that it would get used by massive users since it's such an easy way to play .caustic files and manage them. PLEASE test the hell out of it and report back here. smiley

There are a plethora of features that can be added to this, but only after the foundation is thoroughly tested.

As I update and fix bugs, I will add new information under this part, between the images, so check in. I wanted to do this on my site, but i am not sure how many people will help out, so for now, it's on this thread.

Mike

 

 

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Grabbing it now, Mike. This

28th March, 2015 Update: CPA Test Songs.causticpack has been fixed and now properly Imports on all devices including Windows.

Grabbing it now, Mike. This is awesome, you have now opened the door to a new world that will take all of this here with Caustic projects and music sharing to a whole new level of productivity.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
BTW, I did not test this

BTW, I did not test this layout on a phone. Only my Xoom and Nexus 7. I have a feeling I am going to have to have another dedicated layout for the phones but I can't worry about that right now.

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Mike, I noticed no specific

Mike, I noticed no specific 72x72 app icon..... Had to find it....

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Yep, didn't assign one yet,

Yep, didn't assign one yet, call me lazy. :) It will be in the next build.

I wanted people to get that TRUE alpha feel, hahaha.

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
It crashes when attempting to

It crashes when attempting to load a small handful of songs from my root folder... Perhaps the MachineInput links in some of the SongFiles are causing this?

Going into my Caustic 3 Essentials Demo Songs folder, loads up fine with no problems. There was a burst of white noise like thing as the files were loaded into the library (GNex phone) but no hiccups playing my demo tracks

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
This is very cool.....

This is very cool......scanning through the song.. Nice touch, works perfectly at the moment.....

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
When I get home tonight, I'll

When I get home tonight, I'll offer a package of small demo songs than can be used to download here, to test out your app here, if you like, Mike. It works for me here

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
> Perhaps the MachineInput

> Perhaps the MachineInput links in some of the SongFiles are causing this?

Nope, this is not like Caustic Live, I am just loading songs into the native core and parsing them. So theoretically anything that Caustic can load, this app can.

What might be happening is my parsing logic is failing, BUT if it's actually making the app exit, that is the C++ layer crashing, not my app. I need to talk to Rej about this, pres-can OSC command and maybe he can see if it will cause an error before I load it.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
That's a good idea, nice

That's a good idea, nice little test case so everybody is just testing the app right now, not song loading/compatibility.

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
I'll meta tag them and pack

I'll meta tag them and pack them in a CaustocPack format and can download from my server.....

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Yes.... To clarify, it exits.

Yes.... To clarify, it exits.

lord_bondslave
lord_bondslave's picture
Offline
Joined: 08/30/2013 - 13:35
I downloaded and installed

I downloaded and installed the app.  Ran it.  Made a folder with 5 songs in it.  App crashed parsing them.  Took out some of the files.  App crashed with only three.  Left only one file that I knew was made with 3.1.2, and it loaded.  Plays the song fine.

I did try to add files back into the folder, to see if I could narrow down which song was giving it trouble, but it won't let me try to add songs from the same folder. 

Glad to see this up and running. :)

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
I need to dig into this to

I need to dig into this to find out what is causing the exit to HomeScreen......   I had family issues tonight, so was not able to compile my list of demo songs just yet, I also need to meta-tag them , to test that in this app as well....  I'll have prepared soon.

pablo64
Offline
Joined: 09/20/2012 - 07:17
Great work Mike!

Great work Mike!

Bear in mind that I'm new to Android so even getting the .APK to install on my new Huawei phone has been an achievement!

Here's my experience with the app after an initial test. I installed two folders containing a total of 5 song files including the Caustic demo songs. (No problems loading the song folders.)

1) Visuals - As suspected the app's not displaying quite right on my 4" phone screen. The GUI falls off the right side of the screen so one button to the right of the loop button is missing. This also applies to the Refresh icon at top right when I'm browsing for songs, it's not there.

2) Playback issues - The demos, Welcome to Caustic and Half Life stuttered, dropped out all over the place and slowed right down to almost half tempo when there was a lot going on. I played the same songs back in Caustic without any of those symptoms and Caustic's latency was set to low. I then tried playing the same songs with latency set to lowest and had some of the same problems I experienced with your app but again not quite as bad.Have you fixed the latency in Caustic Player to super low or something?

3) One last thing. One of the tracks in my playlist doesn't display the circular progress bar icon when I play it. All the others are fine.

I hope this helps Mike. Once the bugs are resolved  I'll start hitting you with some simple feature requests to make this more useful for live musicians using backing tracks.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Yeah, the next thing on my

Yeah, the next thing on my list was a rescan, for now, you have to remove the folder and re add it. Rescanning gets messy if you want it to auto rescan, I can do it but I just found out I have a flaw in my serialization of the project file, so I have a couple days fixing this.

If you could zip the 5 songs up to me and send them to teotigraphixllc at gmail.com, that would be cool.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
> 1 Yeah, I will see getting

> 1 Yeah, I will see getting the layout to re adjust for this size (4+"), it's not that hard, just more important things to do.

> 2 Hmm, interesting, never had these problems but then again I use tablets. I just looked at the core code and it's using a 256 sized buffer, that has to be super low and probably your problem. I need to ask Rej what the original value was, I think I lowered this. If my memory serves me, it was 1024.

I am pretty sure this is why its barfing on your phone, to small of buffer.

> 3 This means the song isn't sequenced, if you know the song IS sequenced in the song sequencer, then I need to look at the .caustic file.

Obviously the player cant play songs that have no patterns assigned in the song sequencer. :)

In the proto version I had the text Red, to show an invalid song. I plan on adding a visual to show the player has nothing to play.

AlMagnifico
AlMagnifico's picture
Offline
Joined: 12/12/2012 - 07:24
I cannot even install it, I

I cannot even install it, I get an error: (translated to English) "An Error occurred parsing the package"

I' running a MotoG 2014 with Lollipop 5.02

lord_bondslave
lord_bondslave's picture
Offline
Joined: 08/30/2013 - 13:35
Sent.

Sent.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
You may get this Error Due to

You may get this Error Due to following Reasons:

  1. The Downloaded .apk file is Corrupted or not fully downloaded
  2. You might have turned off “Allow installation of apps from Unknown Sources
  3. If the App is not Compatible with the Hardware or the Version of OS you are using.

I am compiling with Lollipop, so I am guessing you are running into #2, I have a signed cert but it's not "release for Play" valid, since this is alpha.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Update: Info on most Crashes

Update: Info on most Crashes

I think I have figured out why some seemingly innocent songs are crashing. The songs the LBS sent me load fine in the core but, the crashing is occurring when I am querying the song sequenced patterns, the buffer is too small and the C layer is puking because it's over filling a string array.

I need to talk to Rej about this, I probably could just make the buffer larger but that isn't the correct solution.

So you may notice that these crashes are happening on large sequenced songs.

edgey
edgey's picture
Offline
Joined: 01/02/2014 - 10:19
Cool.  Cool cool cool.  

Cool.  Cool cool cool.  

I had trouble loading my main folder.  Hard to tell which files caused it because the app crashed.  It seemed to crash after a certain number of files had been loaded, or after a certain size.  It would be good if we could select individual files to be added to the app, as well as folders.  

I get stuttering on playback of most of my songs where I get no stuttering using caustic natively (I'm running one of these http://www.gsmarena.com/alcatel_idol_mini-5669.php ).  I notice that the counter at the bottom is showing 40fps.  You only need to update the screen once a second or once every bar (whichever is smaller).  This may cut down the stuttering along with setting the latency to highest.  

The gui is slightly cut off to the right.  

When I tried to repeat the last song on my playlist it went back to the first song and repeated that.  

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
> I had trouble loading my

> I had trouble loading my main folder. ... It would be good if we could select individual files

Yes, this is a feature for down the road, requires more UI and model work.

It won't crash after a certain size, read my comment above about the app crashing, it's due to large sequenced songs, a bug on my loading end. You could load as many songs as your memory can handle, it's not "actually" loading all songs in memory either, it loads one, parses, loads another. Saves a little bit of info as it goes through. So 1000 songs is not going to be a lot of memory.

>  I notice that the counter at the bottom is showing 40fps.  You only need to update the screen once a second or once every bar (whichever is smaller).  This may cut down the stuttering along with setting the latency to highest.  

Nope, the UI is totally independent of the audio layer, no correlation to stuttering, I know this for sure. The stuttering is a buffer size that I have set low for testing reasons, months ago.

40fps actually means the UI is running really fast on your device.

> The gui is slightly cut off to the right.  

What is your device?

> When I tried to repeat the last song on my playlist it went back to the first song and repeated that.  

I noticed this as well and it seems that the first "change" of the repeat is not getting registered correctly, try it a couple times and see if it works.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Crash Update

Crash Update

Well I have pretty much figured out the main crashes, and it has to do with large sequenced files. So, this version is pretty useless until I can get a new command from Rej that returns the sequencer pattern list in chunks.

So the moral of the story is, the app loads decent sized songs but not medium to epic songs. This has nothing to do with file size or sample presets, only "how many patterns" you have in the song sequencer.

To reiterate, the app has no problem loading the actual song, but my song length, number of bars etc calculations depend on my getting the song sequencer information. There would be no problem right now if I just loaded a song and played it without showing you the various stats on the loaded song.

edgey
edgey's picture
Offline
Joined: 01/02/2014 - 10:19
My device is an alcatel idol

My device is an alcatel idol mini http://www.gsmarena.com/alcatel_idol_mini-5669.php

The screen is 480 x 854 pixels which makes the buttons enormous and the play list tiny.  Not a show stopper, but it is a bit cumbersome.  

I mention the frame rate only because if I adjust the frame rate on caustic (using the numpad code) then I can play most tracks without stuttering.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Edgey; This is not a problem.

Edgey; This is not a problem. :) Only right now, I haven't made a layout for phones that scale correctly. All the buttons are scaling on DPI, so I have to completely rework the UI for phones to a more list/back/forward stack experience.

This will take 2-3 days or more and design on my part so I am trying to just focus on the actual app logic at the moment.

I will see if I can in the next couple days get a simple a layout for phones since more than half will be using a 4" screen.

Framerate, when I get an options screen in, I will add that adjustment for users so they can slow it down on less powerful devices. But... I still think your crackling has to do with the buffer I am sending the core audio stream. The app is using the GPU and I really can't see the UI slowing down to native C layer, there are only 5-20 draw calls that are being batched per frame.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
@edgey Can you take a screen

@edgey Can you take a screen shot of the Player view for me?

paulovski
paulovski's picture
Online
Joined: 09/19/2012 - 06:13
I can't get any songs in on

I can't get any songs in on my N7 (1st gen, 5.0.2). The progress bar gets somewhere, then hangs. The same files are up and running on my Moto G (1st gen, 4.4.4). I have a 42 minute track here that neither device will have anything to do with, but I'm not that surprised. I'm getting quite a few stuck long notes (pads and what have you), jumping around in play mode. So far, it's all playing back fine. This is way cool :)

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
@paulovski

@paulovski

> The progress bar gets somewhere, then hangs.

Please read the multiple posts above, the crashes have to do with a string buffer being overflowed, it will be fixed when I get a hold of Rej.

> I'm getting quite a few stuck long notes (pads and what have you), jumping around in play mode.

To be expected, I can't do anything about this, just think about what you are doing to the song sequencer! haha It's not playing an mp3 so I added the ability to scrub as a nice little feature but, I cannot ever do anything with stuck notes, Caustic couldn't handle it either.

The only way to remedy is just pause or stop the sequencer. Still remember that if you pause, and start back up, you can get odd behvior because you have missed the start of some note/automation events.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
@pauloviski

@pauloviski

Can you try and just load the "demo" folder with the 3 songs on your N7, if those songs don't work, I don't have any idea what is going on.

paulovski
paulovski's picture
Online
Joined: 09/19/2012 - 06:13
Ha ha. Is no deal breaker.

Ha ha. Is no deal breaker. Just thought you might want to know.

paulovski
paulovski's picture
Online
Joined: 09/19/2012 - 06:13
Original content? Are you

Original content? Are you having a laugh? Oh go then. Just for you. Hang on there.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
No, I was serious and also

No, I was serious and also why Jason was getting together a test folder/package so we have a standard. If we don't start testing from the same files soon, I can't fix bugs because I don't know if it's related to the song file or the device.

paulovski
paulovski's picture
Online
Joined: 09/19/2012 - 06:13
Hmm. Nope. Same thing with

Hmm. Nope. Same thing with the demos.

pablo64
Offline
Joined: 09/20/2012 - 07:17
Hi again Mike. It's good to

Hi again Mike. It's good to see you're working out the issues.

In my first post I mentioned that one of the songs wasn't showing the moving cursor icon and you attributed this to the song not having any pattern data in the sequencer. You are right! This particular song is an imported midi file and as such only has note data in the piano roll but no sequenced patterns because it isn't constructed of (Caustic) patterns. It's length therefore displays as 0.0.although it does play back normally.

Interestingly the 5th song in my test folder was also an imported midi file but I had added a single Beatbox pattern to it in Caustic and added that to the song sequencer. The song progress cursor shows up on this one but the song length is presumably determined by the longest pattern chain in the sequencer so the cursor stops when it reaches the end of the Beatbox pattern even though the other parts remain playing until the end of the song.

Perhaps song length can be determined from note data in the piano roll as well as pattern data in the sequencer. In the short term I'm guessing a work around could be to simply add a blank pattern the full length of the (midi) song to the sequencer.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Yeah, this is one thing that

Yeah, this is one thing that I need to talk to Rej about. I have no current way to query the song sequencer's piano roll. So you are correct in thinking that I calculate song length based off of the last pattern of the longest track.

Thanks for bringing this to my attention. But for now there is nothing I can do because I can't get the notes of the piano roll.

I might be able to ask Rej for some specific query commands from the core directly, thendo I don't even need to load up the song's patterns in an application like this, just un-needed processing if I can get a a straight off query.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Wow, so this is an N7 first

Wow, so this is an N7 first gen, I don't have one, so I can't even begin to understand what is going on, until someone else with this same device confirms, I can only think it might have something to do with the actual device setup.

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
I wll attempt to again prep

I wll attempt to again prep that package today.... Short tracks of a few various types, that work on my devices, will meta-tag them to test that functionality as well.... It will be packegd up in CausticPack format

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
I'll added the link in the

I'll add the link in the main post when you get it up.

edgey
edgey's picture
Offline
Joined: 01/02/2014 - 10:19
(No subject)

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
@edgey, thanks a lot, you

@edgey, thanks a lot, you verified that my Windows emulator is basically showing me the same setup as you when I have your devices specs dialed in;

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Couple quick questions....

Couple quick questions....

1. To put together a usable demo test package, is there a maximim recommended song length? Or was it an aggregate amount of data from all loaded song?

2. Will Caustic 3.2 features and updates fujction on this app? I ask this because I have alpt of things tonrelease when Rej releases the update.....

3. Are tyere any functions or features that you don't want me to include in such a demo test package?

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
1. The song length doesn't

1. The song length doesn't matter, but for now, the number of patterns in the song sequencer matters. I pretty much figured this out, Rej is busy right now, so I can't get a hold of him but, I am querying all tracks with one huge Blob of string bytes, if I can just do one track at a time 14 times, I don't think I am going to hit this buffer overflow.

2. Rej should be giving me updated core libraries as we move through the beta, so Yes, everything will work as expected WHEN 3.2 goes into beta.

3. Song sequencer piano roll, since I can't measure the notes right now. Other than that, and the above buffer error, everything should work as expected.

edgey
edgey's picture
Offline
Joined: 01/02/2014 - 10:19
Almost the same.  

Almost the same.  

The font in my device is a bit larger, so there is less info in the playlist, and the far right button with 2 arrows (repeat all?) gets chopped off slightly.  

I'd say the bitmaps are about 10% too large to fit on my device.  

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Yeah I noticed the

Yeah I noticed the differences you say, but I wasn't being exact. :) Creating an app like this UI wise to support all Android sizes is a pain in the ass. I changed UI frameworks, so this is not getting scaled the same way the other crappy apps I was making look like.

So I traded better graphics and fonts for a harder flow layout, but still will be possible to support phones.

My point was, it's close enough for me to design a phone specific layout. smiley

> the far right button with 2 arrows (repeat all?) gets chopped off slightly.  

Random

AlMagnifico
AlMagnifico's picture
Offline
Joined: 12/12/2012 - 07:24
I'm afraid reasons #1 & #2

I'm afraid reasons #1 & #2 don't apply. I downloaded the .apk twice and even renamed it to .zip so I could look inside the package, it is intact. And the Unknown Sources option is also active.

mike
mike's picture
Offline
Joined: 12/18/2011 - 15:53
Well so far you are the only

Well so far you are the only one with this issue. I have researched a bit and it's really a crap shoot what it could be.

I will make sure I am compiling with the latest SDK in the next build. (I might be .1 behind, unless there is a bug they fixed, it's probably not this)

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Ok I have a four sizeable

Ok I have a four sizeable song set loaded up and seemingly working well, so I will meta tag these up and send them your way later tonight Mike.

There seem to be some browser navigation issues, but will big you about that later.... I have some things going on right now, but I'll hit you up later tonight after 9:00 pm (or at least send the content over)

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
Sorry for the delay, Mike,

Sorry for the delay, Mike, but it's ready: 

CAUSTIC PLAYER ALPHA (CPA) DEMO TEST SONGS

-   -  - -- Get it HERE -- -  -    -

lord_bondslave
lord_bondslave's picture
Offline
Joined: 08/30/2013 - 13:35
Demo songs load on my N7 1st

Demo songs load on my N7 1st gen.

Jason
Jason's picture
Offline
Joined: 03/23/2012 - 21:32
One thing I did notice with

One thing I did notice with my song list.....   CPA doesn't seem to recognize an empty pattern block.  

 I and many others use this trick to extend the end of a Caustic Song to allow for long tail decays of Reverb and Delay or longer samples playback on the piece.....  in CPA, it ignores it and immediately jumps to the next song abruptly.

An idea for a solution is to either recognize empty pattern blocks, or add two measures of nothing at the end of each loaded song in the playlist, to allow for such audio tails....

Fun Times:

Pages