Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000197MPfmPlayerpublic2011-12-22 16:182012-04-07 20:57
Reporterycastonguay 
Assigned Toycastonguay 
PrioritylowSeverityfeatureReproducibilityN/A
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version0.6.0.0Fixed in Version0.6.0.0 
Summary0000197: Finish testing and bug fixing the ASIO driver
DescriptionIt is currently available but not working very well. Finish up the driver and make it non EXPERIMENTAL.
TagsNo tags attached.
Attached Files

- Relationships
related to 0000313assignedycastonguay Use a push stream to feed the player stream (using a separate thread) 

-  Notes
(0000412)
ycastonguay (administrator)
2012-02-14 17:22

Great news, I seem to have found the source of the two problems.

First, the sample rate also needs to be set on the ASIO side (including all channels):

BassAsio.BASS_ASIO_ChannelSetRate(false, 0, 44100);
BassAsio.BASS_ASIO_SetRate(44100);

Second, BASSASIO needs to be set to accept floating point:

BassAsio.BASS_ASIO_ChannelSetFormat(false, 0, BASSASIOFormat.BASS_ASIO_FORMAT_FLOAT);
(0000413)
svn (developer)
2012-02-14 21:28

The user admin has checked in files related to this issue (revision 306).

Comment:
MPfm 0.5.2.1
- Player: Fixed two bugs related to ASIO playback. The static has been removed from the audio, but it still has some bugs.
          These bug fixes are also valid for WASAPI playback.

Related to issue 0000197 and issue 0000198.

Files modified:
U MPfm/branches/current/MPfm/Configuration/MPfmConfiguration.cs
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm/frmMain.cs
U MPfm/branches/current/MPfm.Player/Player.cs

(0000438)
svn (developer)
2012-02-22 18:36

The user admin has checked in files related to this issue (revision 328).

Comment:
MPfm 0.5.3.0
- Player: Added BASSMix. A mixing channel will enable getting data for ASIO and WASAPI without stealing decoding data (was the cause for the skipping audio bug).
          The output meter has been renabled for ASIO and WASAPI.
- Player: Fixed bugs for pausing with ASIO and WASAPI. Both of them required different methods for pausing.
- Bass.NET wrapper: Added CreateMixerStream to the Channel class.

Related to issue 0000197 and issue 0000198.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm/Other Screens/frmThemes.Designer.cs
U MPfm/branches/current/MPfm/frmMain.cs
U MPfm/branches/current/MPfm.Player/Player.cs
U MPfm/branches/current/MPfm.Sound/Bass.Net/Channel.cs

(0000445)
svn (developer)
2012-02-26 11:28

The user admin has checked in files related to this issue (revision 332).

Comment:
MPfm 0.5.3.0
- Channel: The GetLength, GetPosition and SetPosition methods do not automatically convert
  the values depending on floating point anymore. This logic has been moved to the Player
  and other classes (such as PeakFile and PlaylistItem).
- Player:
  - Bug fix: The FX channel buffer is now cleared, like the mixer channel buffer.
  - Bug fix: The StreamProc callback was using the m_playlist.CurrentItemIndex to increase the m_currentMixPlaylistIndex. Now using a an increment instead.
             This fixes the transition between the 2nd song and other songs for ASIO and WASAPI devices (crashed the application before!).
  - Fixed volume for ASIO and WASAPI devices.
  - The SetPosition(double percentage) method is now using the SetPosition(long position) method (instead of duplicating code)
  - Set default buffer size to 1000ms.

Related to issue 0000197 and issue 0000198.

Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmSettings.cs
U MPfm/branches/current/MPfm/frmMain.cs
U MPfm/branches/current/MPfm.Player/Player.cs
U MPfm/branches/current/MPfm.Sound/Bass.Net/Channel.cs
U MPfm/branches/current/MPfm.Sound/PeakFile.cs
U MPfm/branches/current/MPfm.Sound/Playlists/PlaylistItem.cs

(0000479)
svn (developer)
2012-03-20 16:56

The user admin has checked in files related to this issue (revision 334).

Comment:
MPfm 0.5.3.0
- Player: Refactored GoTo method. It is now re-using the Play method instead of duplicating code.
          The GoTo method now works on ASIO and WASAPI. However, on WASAPI, the playback does not start again
          after using Play or GoTo several times rapidely (bug).

Related to issue 0000197 and issue 0000198.

Files modified:
U MPfm/branches/current/MPfm.Player/Player.cs

(0000500)
ycastonguay (administrator)
2012-03-27 15:34

I've been testing the ASIO playback in the last 7 days and so far it is very stable even though the buffering isn't done in a different thread (see related issue). The only time I got buffering issues is when running the project in debug mode and zooming in a wave form. The SYNCPROCs are working just as well as the DirectSound/ALSA/CoreAudio drivers. The song transitions are perfectly gapless.

I also tested the "ASIO DirectX" and "ASIO Generic Low Latency" outputs and they work. The next step would be to try to test on other ASIO devices.
(0000522)
svn (developer)
2012-03-31 15:58

The user animal has checked in files related to this issue (revision 360).

Comment:
MPfm 0.6.0.0
- Add/Edit Loop window: Fixed punch in position.
- Add/Edit Marker window: Fixed punch in position.
- Player: Fixed/refactored the StartLoop, StopLoop and LoopSyncProc methods/events.
          The looping now works under ASIO!

Related to issue 0000197.



Files modified:
U MPfm/branches/current/MPfm/Other Screens/frmAddEditLoop.cs
U MPfm/branches/current/MPfm/Other Screens/frmAddEditMarker.cs
U MPfm/branches/current/MPfm.Player/Player.cs

- Issue History
Date Modified Username Field Change
2011-12-22 16:18 ycastonguay New Issue
2011-12-22 16:18 ycastonguay Status new => assigned
2011-12-22 16:18 ycastonguay Assigned To => ycastonguay
2012-01-21 11:53 ycastonguay Target Version 0.7.5.0 => 0.6.0.0
2012-02-14 17:22 ycastonguay Note Added: 0000412
2012-02-14 21:28 svn Checkin
2012-02-14 21:28 svn Note Added: 0000413
2012-02-22 18:36 svn Checkin
2012-02-22 18:36 svn Note Added: 0000438
2012-02-26 11:28 svn Checkin
2012-02-26 11:28 svn Note Added: 0000445
2012-03-11 22:36 ycastonguay Relationship added child of 0000310
2012-03-20 16:56 svn Checkin
2012-03-20 16:56 svn Note Added: 0000479
2012-03-27 15:34 ycastonguay Note Added: 0000500
2012-03-27 15:35 ycastonguay Relationship added related to 0000313
2012-03-31 15:58 svn Checkin
2012-03-31 15:58 svn Note Added: 0000522
2012-04-07 20:57 ycastonguay Status assigned => resolved
2012-04-07 20:57 ycastonguay Fixed in Version => 0.6.0.0
2012-04-07 20:57 ycastonguay Resolution open => fixed


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker