As use cases go, I agree, nobody should be tagging tracks with exteral programs while performing. On the other hand, changing the tag on mixxx screen when you load the track is quite plausible, like in "Oh the artist tag is wrong I'll fix it straight away!" use case. Some people also might use itunes to look up songs while playing with mixxx, it's search has it's own good points or someone might be more familiar with it. iTunes does not modify tags itself unless you change something, so even this is not a problem as such.
I would even file a bug for easytag to fix the tag writing to use a temporary file which is moved to correct name after updating tags, if they don't already do this. I think they already do this anyway. Myself, I run with the music library owned by root to prevent anyone from messing up the files and only chown them to myself when updating information intentionally, enough issues with commercial programs helpfully writing new tags or even corrupting the file to unreadable when I didn't ask them to change it. When you have finished preparing your library, I can recommend making editing it accidentally hard like this. About in-memory caching: I don't think the code to switch from mmap to in-memory caching would be too hard to write, with configurable buffer size. It might be worth making a branch with this to compare these two usage scenarios just to make sure. I think it should use a fized size buffer for each deck, instead of trying to allocate anything on the fly. Only problem I see with fized size in-memory buffers would be low-end systems with limited memory, unless you calculate the buffer size and allocate a buffer on-the-fly for each track: I would prefer here pre-allocated deck buffers if this is done, but this may not work nicely if the laptop doesn't have the memory available. Then again, 2 decks configured to play with 128MB buffers each can be used to play about 11 minute long songs straight from buffer and if the buffer size is configured in settings, it could be adjusted to the expected maximum song length. The buffer size would normally matter only to people who want to play a prepared full album mix, which of course happens. As I said, I would prefer in-memory buffering over mmap, but then again I'm always running on modern laptops with enough memory to give mixxx 2-3GB without issues, and completely understand other use cases where this is not possible or wanted. *hile* On 2 Apr 2012, at 06:05, Owen Williams wrote: > On Sun, 2012-04-01 at 22:29 -0400, Albert Santoni wrote: > >> This sounds pretty tricky. Would it simplify our lives if we dropped >> mmapped I/O? (sorry Owen!) > > mmapped I/O was integral to preventing audio dropouts. Making that > change resulted in the best improvement in sound performance. If we do > have to drop mmapping, the replacement has to be an in-memory caching of > tracks. > > That said, I still think it's incredibly unrealistic for users to be > playing a track in Mixxx and also writing the tag of that track from > another program. Can anyone imagine a scenario where, realistically, > mixxx would be playing a track and something else would be writing that > track? > > In-app, I think the best solution is delaying writes until shutdown / > startup like RJ suggests. For users silly enough to use easytag or > itunes while mixxx is running, they'll quickly learn not to do that :). > > owen > > > ------------------------------------------------------------------------------ > This SF email is sponsosred by: > Try Windows Azure free for 90 days Click Here > http://p.sf.net/sfu/sfd2d-msazure > _______________________________________________ > Get Mixxx, the #1 Free MP3 DJ Mixing software Today > http://mixxx.org > > > Mixxx-devel mailing list > Mixxx-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mixxx-devel ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ Get Mixxx, the #1 Free MP3 DJ Mixing software Today http://mixxx.org Mixxx-devel mailing list Mixxx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mixxx-devel