Hi guys ;D
Sooo, I do not post very often, lol, I do not post at all due to constant lack of time, you know, daily job, family and stuff, anyways, here is the thing and I need your professional advice.
I've got a brilliant idea to make an app for a Windows Phone 8, basically, there is no application which syncs music using wireless, right? Yeah, so that will be an app like that, you know, easy sync, you can view music library from the phone, one click to transfer you songs to a phone, browse playlists, made by different music players, syncs them as well (I am aware of that there is no way to actually sync playlist object though).
Now, what I'm concerned about, is that a good idea for an app? Or maybe that's a stupid idea and no single person on planet earth will ever use it?
I am not really sure, because I do not want to invest a huge amount of a time to find out that. Can you help with making a right decision and give some advice maybe?
Thanks
I believe XBox music does this. Install it on your computer and it will scan your files and add them to your 'collection'. Which, in essence is your cloud collection. You can then retrieve anything you download through your xbox music pass on your phone / pc that is in your collection.
sukanaher said:
Hi guys ;D
Sooo, I do not post very often, lol, I do not post at all due to constant lack of time, you know, daily job, family and stuff, anyways, here is the thing and I need your professional advice.
I've got a brilliant idea to make an app for a Windows Phone 8, basically, there is no application which syncs music using wireless, right? Yeah, so that will be an app like that, you know, easy sync, you can view music library from the phone, one click to transfer you songs to a phone, browse playlists, made by different music players, syncs them as well (I am aware of that there is no way to actually sync playlist object though).
Now, what I'm concerned about, is that a good idea for an app? Or maybe that's a stupid idea and no single person on planet earth will ever use it?
I am not really sure, because I do not want to invest a huge amount of a time to find out that. Can you help with making a right decision and give some advice maybe?
Thanks
Click to expand...
Click to collapse
My app already does that. Sort of.
@Plazma1
I was basically thinking about completely offline software, - all this cloud stuff does not appeal to me. I am the guy who prefers to have my stuff 100% private, you know So do a lot of people I think
@mcosmin222
Can you post a link to your app or is it in your signature?
sukanaher said:
@Plazma1
I was basically thinking about completely offline software, - all this cloud stuff does not appeal to me. I am the guy who prefers to have my stuff 100% private, you know So do a lot of people I think
@mcosmin222
Can you post a link to your app or is it in your signature?
Click to expand...
Click to collapse
Signature.
@mcosmin222
Yeah, I've seen your app some long time ago, when it was pretty much "young"
But your solution differs quite a lot But I was just curious - are you using default WP8 music player mechanisms? Or maybe xaudio2 for example? With last, you can do more stuff - equalizer, lets say, nice controls for audio playing - you know, track bars and stuff. The only drawback is that you really do not have any access to WP audio library and that limitation sucks big time
I was thinking about such player but that is just too much hassle with storing music in isolated storage
sukanaher said:
@mcosmin222
Yeah, I've seen your app some long time ago, when it was pretty much "young"
But your solution differs quite a lot But I was just curious - are you using default WP8 music player mechanisms? Or maybe xaudio2 for example? With last, you can do more stuff - equalizer, lets say, nice controls for audio playing - you know, track bars and stuff. The only drawback is that you really do not have any access to WP audio library and that limitation sucks big time
I was thinking about such player but that is just too much hassle with storing music in isolated storage
Click to expand...
Click to collapse
By default the app uses the built-in player but you can switch modes to make it use a different player with more features. Go to Help+Settings, last tab.
I found ways of getting music in isostore faster for the user, one of them involves downloading from skydrive, the other involves direct file transfers between the phone and a desktop companion.
For WP7, what you propose is pretty difficult. But I can do this on Windows 8 + Windows Phone 8 app (I am building a companion app which runs on Metro). Once I can get myself a windows phone 8, this will get sped up considerably
I'm not sure third party apps can change things in the music library. Still, even if it would require its own player, I say go for it, because the native WP8 player makes me sad.
SilverHedgehog said:
I'm not sure third party apps can change things in the music library. Still, even if it would require its own player, I say go for it, because the native WP8 player makes me sad.
Click to expand...
Click to collapse
The app is almost ready for public release. I am just waitting to finish the 8.1 version and make them both public at the same time.
You can download the phone version from the link in my signature.
@mcosmin222
Yes, I was talking about WP8, - I didn't realize that your app is for WP7 actually ;P Dunno how things looks like on WP7 regarding xaudio2, on WP8 you got C++ support for it, and I have tested playing some random music with it and in fact, it works. Equalizer works - not the best EQ I've seen in my life but its something.
@SilverHedgehog
Nope, there is no write access to the music library on WP8 device, you can only read songs names and that's it. Not a big deal. But anyways, with a custom player there are following issues:
1. Player has to have its own music library within app isolated storage, so now you have 2 places where you have your music stored and that is inconvenient.
2. Player must be put in a background, and yet there are no "legal" ways to use proper multitasking. And even if we put this app in a background as geolocation app (so it need to use GPS time to time as well), - there will be no integration with a system itself - so no quick controls and stuff.
I was talking about completely custom 3rd party audio player, without any single standard mechanism used.
sukanaher said:
@mcosmin222
Yes, I was talking about WP8, - I didn't realize that your app is for WP7 actually ;P Dunno how things looks like on WP7 regarding xaudio2, on WP8 you got C++ support for it, and I have tested playing some random music with it and in fact, it works. Equalizer works - not the best EQ I've seen in my life but its something.
@SilverHedgehog
Nope, there is no write access to the music library on WP8 device, you can only read songs names and that's it. Not a big deal. But anyways, with a custom player there are following issues:
1. Player has to have its own music library within app isolated storage, so now you have 2 places where you have your music stored and that is inconvenient.
2. Player must be put in a background, and yet there are no "legal" ways to use proper multitasking. And even if we put this app in a background as geolocation app (so it need to use GPS time to time as well), - there will be no integration with a system itself - so no quick controls and stuff.
I was talking about completely custom 3rd party audio player, without any single standard mechanism used.
Click to expand...
Click to collapse
C++ for WP8 only works for native games. You can not build a player app that will run in the background using C++. So your library is useless, unfortunately.
My app fully supports WP8 as well.
As I said, there are ways to legal ways to go around the problems you just mentioned, and my player does that already. But you can not use C++ to do it. My decoders are written in pure C#.
You can not avoid "standard" mechanisms when working on an operating system. Even if you wrote all with ANSI C++, you would still depend on the system.
if you want, we could collaborate and use your library for winRT.
@mcosmin222: You can create native "component" (a C++/CX DLL) which is usable by non-game apps just fine. It *should* even work with background agents (there's no technical reason it wouldn't; is there a policy against it?) so I don't think that would be a problem. Marshaling data across the ABI does impose a small performance penalty but it shouldn't be significant for audio data.
Yes, that is what I was saying, C++ component, which implement all audio functionality using xaudio2, it completely manages all buffers and offsets and just plays audio All the rest is C# code, which calls component in a separate thread - there is no such requirement when calling xaudio2 engine from games, but from regular app it has to be in a separate thread. I am not really sure right now because I was doing this research almost a year ago, just when got my ATIV S; from what I can recall, C# CG impacts in some way audio buffers processing by the system, basically that is what GoodDayToDie said. So this rest of the code is also responsible for working in a background by implementing pseudo geolocation functionality. And thats it! We got a background app which plays music
I've done this - I know it works
But, there is always some but, there is always something that just not play nice.
1. Music must be stored in app iso storage.
2. No integration with quick controls for music playback
3. Additional desktop app, that will transfer music to WP8 app iso storage
I really don't think that a regular users will ever go after such solution, which requires additional app to be installed. Another thing is that is requires user to learn new way of playing his/her music, - such app will never succeed. By success I mean attraction of at least half of a million users.
@mcosmin222
I am not saying that your solution will never succeed, if you are using standard methods and do not require user to change his/her habits - there is a good chance
GoodDayToDie said:
@mcosmin222: You can create native "component" (a C++/CX DLL) which is usable by non-game apps just fine. It *should* even work with background agents (there's no technical reason it wouldn't; is there a policy against it?) so I don't think that would be a problem. Marshaling data across the ABI does impose a small performance penalty but it shouldn't be significant for audio data.
Click to expand...
Click to collapse
Oh well...it is worth the try...
But I don't think it will work(just a guts feeling xD).
But I expect some stupid policy to stop it, especially those related to p/invoke.
EDIT: Hmm...this might actually work. I tried adding a reference to a C++ runtime lib project from a C# background audio agent and surprise surprise, it worked.
I stand corrected then
not sure how this all relates to dll's written using ANSI C++ though.
I do not believe the marshaling overhead would be too great. It probably would be small enough to work even with apps requiring better performance.
@sukanaher,
Do you have the component already ported to WP8? If so, can you share it please? It would speed things up considerably.
@mcosmin222
I haven't understood correctly - you were talking about using background agents, I was talking about multitasking by imitating geolocation tracking app, - well, I am not sure if this will work with background agents due to the fact, from what I remember, there are 2 types of background agents on WP8 - I got no idea how things look like on WP7. So, there is a local music playing agent and music streaming agent - in both cases you do not have access to a raw audio data, to raw bytes, you just specify network source or local source and thats it.
If you are planning to use xaudio2 and all its benefits - you will need to extract audio PCM data from file and audio stream as well, so you will need your algorithms working with a raw bytes (an actual file) - it is not possible in case of background agents on WP8 - they just load your file or stream and thats it - you cannot access its data.
For proper music player, you will have to implement everything from scratch, no background agents, proper, android like multitasking, access to a music library, access to a system, system integration, basically you need everything that is not available on Windows Phone 8 and from what I observe will not be available in 9 - MS just holds this functionality for them selfs, thats it, we are limited to the minimum.- that is why I am thinking more about dumping my WP device.
Yeah, I have an xaudio2 wrapper lib written a year ago somewhere on my PC - it is a mess, it depends on my other libs and it is just a static linking lib, it is not a component. If I would ever share this, I will have to prepare a proper static library or component, but at this moment, besides daily job, I'm involved into other projects.
sukanaher said:
@mcosmin222
I haven't understood correctly - you were talking about using background agents, I was talking about multitasking by imitating geolocation tracking app, - well, I am not sure if this will work with background agents due to the fact, from what I remember, there are 2 types of background agents on WP8 - I got no idea how things look like on WP7. So, there is a local music playing agent and music streaming agent - in both cases you do not have access to a raw audio data, to raw bytes, you just specify network source or local source and thats it.
If you are planning to use xaudio2 and all its benefits - you will need to extract audio PCM data from file and audio stream as well, so you will need your algorithms working with a raw bytes (an actual file) - it is not possible in case of background agents on WP8 - they just load your file or stream and thats it - you cannot access its data.
For proper music player, you will have to implement everything from scratch, no background agents, proper, android like multitasking, access to a music library, access to a system, system integration, basically you need everything that is not available on Windows Phone 8 and from what I observe will not be available in 9 - MS just holds this functionality for them selfs, thats it, we are limited to the minimum.- that is why I am thinking more about dumping my WP device.
Yeah, I have an xaudio2 wrapper lib written a year ago somewhere on my PC - it is a mess, it depends on my other libs and it is just a static linking lib, it is not a component. If I would ever share this, I will have to prepare a proper static library or component, but at this moment, besides daily job, I'm involved into other projects.
Click to expand...
Click to collapse
Ok, long story short:
Yes, you can access the stream of raw bytes from local storage. You may or may not do the same with online sources.
No, MS does not use a different kind of multitasking system. The difference is the MS player can actually access to user library.
Maybe, we can implement an equalizer filter which can be applied before the raw bytes get to the player. This can be done with C# too, so it is not required to use C++ at all (the difference in performance is minimal anyway) However, in order to do such a thing, one must implement media stream sources for the file formats which usually do not require streaming (like mp3, mp4, wav etc), so we can have access to the raw bytes sent to the player. This is very time consuming, and the reward isn't really all that big. Sure, if you have codecs in CX that are usable in WP apps, we can do this...
The only thing MS does to impair a proper music player is access to the user library.
double post failure
Anyways, we have strayed off topic a little bit, but from what I can see - there is no interest in such application, that will sync music to PC using wireless