I can only hear short bursts of 'hiss' and no music at all, and why do I have 'output_wasap2_playback::on_playback_stop - stop_reason_user' within the ASIO
I am using Realtek ASIO
sorry for the regression. clicking bug is fixed. For the change in volume, it should be ok too, but it is hard to be sure as I hear only white noise with my asio driver.
May be the skip problem is fixed too but I can't say because I still cannot reproduce the skip problem, even when trying with a cuesheet like the one below and starting different tracks.
If skip are always there, may you look at the chunk size in the foobar log and see if it changes according when it skips or not ? i.e this line:
"Renderer::InitAudioClient - chunk size not aligned on endpoint buffer size - chunk size =...."
REM GENRE Jazz
REM DATE 2017
PERFORMER "monkey44"
TITLE "monkey44"
FILE "08 Epistrophy-monkey44fast.ape" WAVE
TRACK 01 AUDIO
TITLE "fast"
INDEX 01 00:00:00
FILE "08 Epistrophy-monkey44Insane.ape" WAVE
TRACK 02 AUDIO
TITLE "insane"
INDEX 01 00:00:00
TRACK 03 AUDIO
TITLE "insane 2"
INDEX 01 03:00:00
FILE "08 Free monkey44normal.ape" WAVE
TRACK 04 AUDIO
TITLE "normal"
INDEX 01 00:00:00
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
sorry for the regression. clicking bug is fixed. For the change in volume, it should be ok too, but it is hard to be sure as I hear only white noise with my asio driver.
May be the skip problem is fixed too but I can't say because I still cannot reproduce the skip problem, even when trying with a cuesheet like the one below and starting different tracks.
If skip are always there, may you look at the chunk size in the foobar log and see if it changes according when it skips or not ? i.e this line:
"Renderer::InitAudioClient - chunk size not aligned on endpoint buffer size - chunk size =...."
REM GENRE Jazz
REM DATE 2017
PERFORMER "monkey44"
TITLE "monkey44"
FILE "08 Epistrophy-monkey44fast.ape" WAVE
TRACK 01 AUDIO
TITLE "fast"
INDEX 01 00:00:00
FILE "08 Epistrophy-monkey44Insane.ape" WAVE
TRACK 02 AUDIO
TITLE "insane"
INDEX 01 00:00:00
TRACK 03 AUDIO
TITLE "insane 2"
INDEX 01 03:00:00
FILE "08 Free monkey44normal.ape" WAVE
TRACK 04 AUDIO
TITLE "normal"
INDEX 01 00:00:00
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
With the new Asio2 file, the monkey audio stopped skipping.
Every track starts with a louder click than in the previous Asio2...there was a click but not as loud as in the new Asio2.
When changing tracks, some start then there is a pause in sound, then it continues. This happened with few Flac tracks. "Renderer::Renderer sends incomplete block of samples - total incomplete blocks sent since..... " always accompanies in console
Sometimes there is also a click when changing the volume. there is also a delay although shorter than in the previous.
Foobar sometimes freezes sometimes when changing tracks
With the previous Asio2, the Monkey Audio tracks that skipped all had "Renderer::InitAudioClient - chunk size not aligned on endpoint buffer size - chunk size =...." changing.
In both the new and previous Asio2 , I have found few Wavpack that have the 1st track skipping. the rest play without skipping. Whiles the "rest" of the track have same chunk size, the 1st is different
With the .ape cuesheet, you could try 1 .ape file with 1 .cue file. The one you posted has 3 .ape files. I dont know if it will make any difference
Something like the following
REM GENRE Jazz
REM DATE 1956
REM DISCID 5009ED05
REM COMMENT ExactAudioCopy v0.99pb4
PERFORMER "Lester Young"
TITLE "The Jazz Giants"
FILE "Lester Young - The Jazz Giants.ape" WAVE
TRACK 01 AUDIO
TITLE "I Guess I'll Have To Change My Plan"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "I Didn't Know What Time It Was"
INDEX 01 09:33:13
TRACK 03 AUDIO
TITLE "Gigantic Blues"
INDEX 01 19:37:15
TRACK 04 AUDIO
TITLE "This Year's Kisses"
INDEX 01 26:29:30
TRACK 05 AUDIO
TITLE "You Can Depend On Me"
INDEX 01 33:16:60
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
my answers/questions about your items:
2. --> you mean only for the monkey audio codec or also for the others ?
3. --> when you have this message in the log, it means that the size of the sample cache factor configured in the advanced option is too low (e.g. 0 --> minimal sample factor). try with a larger value, e.g the maximum one: 16384
4. --> I'm not sure that I can do something against this. the small delay is due to the time necessary to change volume in the sample cache. may be for the click I could do something, like pausing on the fly while changing volume. I need to test it.
5. --> Do you the same behaviour with the default foobar asio plugin ? I have this problem too with asio2 and asio plugins when monkey-audio tracks have been compressed with insane mode.
6. --> yes. track skipping bug is related to the alignment or not between chunk size and buffer size. The structure of the sample cache in the published version of the asio2 plugin makes it more complex to use when chunk size is not a multiple of the asio buffer size (I am working on a new version of asio2 where sample cache management is much simpler).
May you send me the log for the wavpack track which skips and another one which doesn't skip ? I have tried the cuesheet with 1 single Ape file and many tracks. I cannot reproduce skipping.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Its in every codec but I have to listen carefully to hear it, and its also in the "default: Speakers(Realtek(R) Audio). so it may be in my system.
increasing the sample cache to 16384 didnt make any difference. Setting it between 256 and 512 seem to have reduced it. All this happen ONLY if Idont stop before changing the tracks. This is related to 5. below
There is no click. The delay happens in both direction. I notice it better from low volume to high. When I move the slider from eg. mid to high, there is a small delay before I hear the increase in volume.
What I should have said was "changing from one codec to another OR within the same codec, changing sample rate" without stopping causes foobar to crash. It did happen in the previous versions also but it seems to be more with the new version.
Is Asio2 suppose to work with "Fadding" in foobar>Pref>Output? because if i tick it, foobar stops playing. I have to close it and open to work. it doesnt happen with the default Asio.
Monkey audio is not presenting any other issues apart from those above.
The crashing has completely stopped. I switched to an older Realtek Asio driver.
The only issues I have now are the "hiccup" at the begining of tracks when I switch tracks WITHOUT STOPPING( I am yet to get a "hiccup" at the begining of a Monkey audio track) and the few Wavpack skipping.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Finally I can reproduce the bug with skipping tracks, by using a cuesheet with a single wavpack file and a very short first track (1s), which gives me a smaller chunk size for the first track. It should be fixed in the attached version.
I don't have hiccup when switching tracks without stopping. Do you have the same behaviour with other foobar outputs or with asio2/asio4all ?
Asio2 doesn't work with fading. I develop it with the 1.3 SDK and fading did'nt exist at that time.
After a short test. I found out that :
Monkey audio 16/44 now crashes
Monkey audio 24/96 OK
Wavpack 1st tracks that were skipping in the previous version now crash.
About the hiccups, Would it have anything to do with "volume_set - time(ms) = ...." at the end of the console log?
The hiccups only happen with Asio2. It was absent before you fixed the Monkey audio issue.
Ok. l think I understand better what is the matter with the skips (problem with chunk control flow). try the attached patch. I hope it will be better this time.
I don't know for the hiccups. It is not related to volume ( the trace in the console log appears when you change the volume). I have something anyway: now I force silence on asio output before
stopping/restarting the driver for the track change.
Skipping has completely stopped in all codecs.
Have changed the way cache size (samples) is auto calculated? Its always 6-figure about 26xxxx and does the bigger number affect sound quality?
Aboout the hiccups, maybe I am not expressing myself well. it only happens when when I change tracks without first stopping only at the begining, between 0s and 1s
* the track starts playing, then pauses.and then continues.
I cannot reproduce it, but I have a doubt on something, so I have added a debug trace in the attached asio2. May you try it and send me the log when you I have the hiccup ?
About the cache size, yes I have changed the way it is calculated. The main cause of skipping was that the cache is a circular cache, and there was a defect in flow control between the foobar engine and asio2: asio2 use a threshold for this in order to avoid cache congestion. this threshold need to change dynamically to take into account that chunk size may increase for a same track. In addition, the cache need to be large enough whatever the chunk size is. that is why the minimum size calculation is now based on a arbitrary maximum chunk size (32738), and not on the track initial chunk size, which sometimes is not the largest one for the track. If ever there was some codec with chunks greater than 32768, cache size (sample cache factor) would have to be set manually in the advanced options.
Increasing cache size doesn't affect sound quality. In this version, the cache is mainly use to prepare audio samples as expected bu the asio driver, in order to have just to copy them in the asio buffer when the asio callback asks for them.
Yes, it is the trace I have added for hiccup debug, but it is normal to see it at the end of the playlist. It might have been a problem I you had it just at the beginning when changing the track. So this is not the cause of the hiccup. I have removed the trace now.
I didn't notice although you mentioned it before, but hiccup might have something to do with volume control: there is traces in your log that I don't have myself when I change the track (see attached png) :
change volumeRatio =...
volumeRatio changed=...
it means that foobar try to adjust the volume when changing the track. I don't understand why , maybe something specific in your foobar config (DSP, ...)
So I have patched the volume fonction in order to do nothing if the volume is at the same level than before. Let me know.
I have tested Asio2:Realtek and Asio2:Asio4All>Realtek with the following codecs:
AAC
ALAC
DSD64, DSD128, DSD256
DST64(6 channel ), DST64(2channel)
MP3(cbr,vbr)
PCM_BLURAY(m2ts)
PCM(wav)
FLAC(16/44.1, 24/96, 24/192)
MONKEY AUDIO(16/44, 24/96,24/192)
WAVEPACK(16/44, 24/96,24/192,32/96,32/192)
in stereo, 2channel mono, 1channel mono
The "Renderer sends incomplete block of samples -" at the end of the console log has also disappeared.
There is no skipping, no crashing. There is also no hiccups anywhere.
I think all the issues we started with have been resolved
Thanks for everything. If there is anything else you do want me to test. please......
Great ! Thank you for your help. I will release this new version soon. On the other hand, I am working on a new version which I think is better regarding sound quality. If you are interested in that or simply curious, I will be happy to have your feedback once it will be ready (I need to apply all the recent patches before), in order to decide whether it worth releasing it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have found few tracks that deserve your attention:
1. Use chunk alignment checked
* Track freezes at 0s when play starts with "Chunk size aligned on endpoint buffer size - chunk size ="
* Double click on track again without stopping, the track continues to plays normally with " chunk size not aligned on endpoint buffer size - chunk size ="
* If I change the buffer size before starting to play so that "chunk size not aligned on endpoint buffer size - chunk size =" , the track plays normally from the start.
* There is also a crash if when the track freezes, I STOPPED the track and try to play another track
2. Use chunk alignment NOT checked
* Track plays normally
I have something new for you. 2 albums with Single Channel Mono skipping. With chunk alignment, 1st track plays normally and the following tracks freeze at 0s with 3ms buffer or skips with buffer > 3ms. Without chunk alignment 1st track plays normally and the following tracks skip.
How is the new Asio2 proceeding?
sorry for the regression. clicking bug is fixed. For the change in volume, it should be ok too, but it is hard to be sure as I hear only white noise with my asio driver.
May be the skip problem is fixed too but I can't say because I still cannot reproduce the skip problem, even when trying with a cuesheet like the one below and starting different tracks.
If skip are always there, may you look at the chunk size in the foobar log and see if it changes according when it skips or not ? i.e this line:
"Renderer::InitAudioClient - chunk size not aligned on endpoint buffer size - chunk size =...."
REM GENRE Jazz
REM DATE 2017
PERFORMER "monkey44"
TITLE "monkey44"
FILE "08 Epistrophy-monkey44fast.ape" WAVE
TRACK 01 AUDIO
TITLE "fast"
INDEX 01 00:00:00
FILE "08 Epistrophy-monkey44Insane.ape" WAVE
TRACK 02 AUDIO
TITLE "insane"
INDEX 01 00:00:00
TRACK 03 AUDIO
TITLE "insane 2"
INDEX 01 03:00:00
FILE "08 Free monkey44normal.ape" WAVE
TRACK 04 AUDIO
TITLE "normal"
INDEX 01 00:00:00
sorry for the regression. clicking bug is fixed. For the change in volume, it should be ok too, but it is hard to be sure as I hear only white noise with my asio driver.
May be the skip problem is fixed too but I can't say because I still cannot reproduce the skip problem, even when trying with a cuesheet like the one below and starting different tracks.
If skip are always there, may you look at the chunk size in the foobar log and see if it changes according when it skips or not ? i.e this line:
"Renderer::InitAudioClient - chunk size not aligned on endpoint buffer size - chunk size =...."
REM GENRE Jazz
REM DATE 2017
PERFORMER "monkey44"
TITLE "monkey44"
FILE "08 Epistrophy-monkey44fast.ape" WAVE
TRACK 01 AUDIO
TITLE "fast"
INDEX 01 00:00:00
FILE "08 Epistrophy-monkey44Insane.ape" WAVE
TRACK 02 AUDIO
TITLE "insane"
INDEX 01 00:00:00
TRACK 03 AUDIO
TITLE "insane 2"
INDEX 01 03:00:00
FILE "08 Free monkey44normal.ape" WAVE
TRACK 04 AUDIO
TITLE "normal"
INDEX 01 00:00:00
with attachment
In both the new and previous Asio2 , I have found few Wavpack that have the 1st track skipping. the rest play without skipping. Whiles the "rest" of the track have same chunk size, the 1st is different
With the .ape cuesheet, you could try 1 .ape file with 1 .cue file. The one you posted has 3 .ape files. I dont know if it will make any difference
Something like the following
REM GENRE Jazz
REM DATE 1956
REM DISCID 5009ED05
REM COMMENT ExactAudioCopy v0.99pb4
PERFORMER "Lester Young"
TITLE "The Jazz Giants"
FILE "Lester Young - The Jazz Giants.ape" WAVE
TRACK 01 AUDIO
TITLE "I Guess I'll Have To Change My Plan"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "I Didn't Know What Time It Was"
INDEX 01 09:33:13
TRACK 03 AUDIO
TITLE "Gigantic Blues"
INDEX 01 19:37:15
TRACK 04 AUDIO
TITLE "This Year's Kisses"
INDEX 01 26:29:30
TRACK 05 AUDIO
TITLE "You Can Depend On Me"
INDEX 01 33:16:60
my answers/questions about your items:
2. --> you mean only for the monkey audio codec or also for the others ?
3. --> when you have this message in the log, it means that the size of the sample cache factor configured in the advanced option is too low (e.g. 0 --> minimal sample factor). try with a larger value, e.g the maximum one: 16384
4. --> I'm not sure that I can do something against this. the small delay is due to the time necessary to change volume in the sample cache. may be for the click I could do something, like pausing on the fly while changing volume. I need to test it.
5. --> Do you the same behaviour with the default foobar asio plugin ? I have this problem too with asio2 and asio plugins when monkey-audio tracks have been compressed with insane mode.
6. --> yes. track skipping bug is related to the alignment or not between chunk size and buffer size. The structure of the sample cache in the published version of the asio2 plugin makes it more complex to use when chunk size is not a multiple of the asio buffer size (I am working on a new version of asio2 where sample cache management is much simpler).
May you send me the log for the wavpack track which skips and another one which doesn't skip ? I have tried the cuesheet with 1 single Ape file and many tracks. I cannot reproduce skipping.
Is Asio2 suppose to work with "Fadding" in foobar>Pref>Output? because if i tick it, foobar stops playing. I have to close it and open to work. it doesnt happen with the default Asio.
Monkey audio is not presenting any other issues apart from those above.
Last edit: mo phillips 2021-03-29
I just realize that I don't use the same foobar version as you (no fading checkbox in foobar 1.3 for example). I need to check with 1.6.
The crashing has completely stopped. I switched to an older Realtek Asio driver.
The only issues I have now are the "hiccup" at the begining of tracks when I switch tracks WITHOUT STOPPING( I am yet to get a "hiccup" at the begining of a Monkey audio track) and the few Wavpack skipping.
Hi mo philips,
did you switch from 1.0.0.8 to 1.0.0.7?
Which Reatek ASIO version works for you?
thanks a lot
Finally I can reproduce the bug with skipping tracks, by using a cuesheet with a single wavpack file and a very short first track (1s), which gives me a smaller chunk size for the first track. It should be fixed in the attached version.
I don't have hiccup when switching tracks without stopping. Do you have the same behaviour with other foobar outputs or with asio2/asio4all ?
Asio2 doesn't work with fading. I develop it with the 1.3 SDK and fading did'nt exist at that time.
After a short test. I found out that :
Monkey audio 16/44 now crashes
Monkey audio 24/96 OK
Wavpack 1st tracks that were skipping in the previous version now crash.
About the hiccups, Would it have anything to do with "volume_set - time(ms) = ...." at the end of the console log?
The hiccups only happen with Asio2. It was absent before you fixed the Monkey audio issue.
Last edit: mo phillips 2021-04-01
Ok. l think I understand better what is the matter with the skips (problem with chunk control flow). try the attached patch. I hope it will be better this time.
I don't know for the hiccups. It is not related to volume ( the trace in the console log appears when you change the volume). I have something anyway: now I force silence on asio output before
stopping/restarting the driver for the track change.
Skipping has completely stopped in all codecs.
Have changed the way cache size (samples) is auto calculated? Its always 6-figure about 26xxxx and does the bigger number affect sound quality?
Aboout the hiccups, maybe I am not expressing myself well. it only happens when
when I change tracks without first stopping
only at the begining, between 0s and 1s
* the track starts playing, then pauses.and then continues.
I cannot reproduce it, but I have a doubt on something, so I have added a debug trace in the attached asio2. May you try it and send me the log when you I have the hiccup ?
About the cache size, yes I have changed the way it is calculated. The main cause of skipping was that the cache is a circular cache, and there was a defect in flow control between the foobar engine and asio2: asio2 use a threshold for this in order to avoid cache congestion. this threshold need to change dynamically to take into account that chunk size may increase for a same track. In addition, the cache need to be large enough whatever the chunk size is. that is why the minimum size calculation is now based on a arbitrary maximum chunk size (32738), and not on the track initial chunk size, which sometimes is not the largest one for the track. If ever there was some codec with chunks greater than 32768, cache size (sample cache factor) would have to be set manually in the advanced options.
Increasing cache size doesn't affect sound quality. In this version, the cache is mainly use to prepare audio samples as expected bu the asio driver, in order to have just to copy them in the asio buffer when the asio callback asks for them.
I am getting hiccups with some few tracks. Everything else is fine. I have attached some logs
Something else I have just noticed with the latest Asoi2, in the console log. It only happens after the LAST track in the album. A very long list.
Yes, it is the trace I have added for hiccup debug, but it is normal to see it at the end of the playlist. It might have been a problem I you had it just at the beginning when changing the track. So this is not the cause of the hiccup. I have removed the trace now.
I didn't notice although you mentioned it before, but hiccup might have something to do with volume control: there is traces in your log that I don't have myself when I change the track (see attached png) :
change volumeRatio =...
volumeRatio changed=...
it means that foobar try to adjust the volume when changing the track. I don't understand why , maybe something specific in your foobar config (DSP, ...)
So I have patched the volume fonction in order to do nothing if the volume is at the same level than before. Let me know.
I have tested Asio2:Realtek and Asio2:Asio4All>Realtek with the following codecs:
AAC
ALAC
DSD64, DSD128, DSD256
DST64(6 channel ), DST64(2channel)
MP3(cbr,vbr)
PCM_BLURAY(m2ts)
PCM(wav)
FLAC(16/44.1, 24/96, 24/192)
MONKEY AUDIO(16/44, 24/96,24/192)
WAVEPACK(16/44, 24/96,24/192,32/96,32/192)
in stereo, 2channel mono, 1channel mono
The "Renderer sends incomplete block of samples -" at the end of the console log has also disappeared.
There is no skipping, no crashing. There is also no hiccups anywhere.
I think all the issues we started with have been resolved
Thanks for everything. If there is anything else you do want me to test. please......
Great ! Thank you for your help. I will release this new version soon. On the other hand, I am working on a new version which I think is better regarding sound quality. If you are interested in that or simply curious, I will be happy to have your feedback once it will be ready (I need to apply all the recent patches before), in order to decide whether it worth releasing it.
Yes I will definitely be interested. Could you let me know when its ready
I have found few tracks that deserve your attention:
1. Use chunk alignment checked
* Track freezes at 0s when play starts with "Chunk size aligned on endpoint buffer size - chunk size ="
* Double click on track again without stopping, the track continues to plays normally with " chunk size not aligned on endpoint buffer size - chunk size ="
* If I change the buffer size before starting to play so that "chunk size not aligned on endpoint buffer size - chunk size =" , the track plays normally from the start.
* There is also a crash if when the track freezes, I STOPPED the track and try to play another track
2. Use chunk alignment NOT checked
* Track plays normally
Just wondering why?
Last edit: mo phillips 2021-04-07
another bug yet. Chunk/buffer alignment is an optimisation which avoid some copy, but make the code more complex :-(.
I think it is fixed now.
Yes, I think its fixed now. Thanks
I have something new for you. 2 albums with Single Channel Mono skipping. With chunk alignment, 1st track plays normally and the following tracks freeze at 0s with 3ms buffer or skips with buffer > 3ms. Without chunk alignment 1st track plays normally and the following tracks skip.
How is the new Asio2 proceeding?