Virtual DJ Studio Home | NGWave Home | Official Facebook Page | Unofficial VDJ Users Group

Author Topic: 7.6 Update Addresses Singer List Issues - HOPEFULLY  (Read 13106 times)

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #15 on: January 29, 2017, 08:59:14 AM »
Quote
Can't you just make the database at our end compatible with the server so when it receives a new copy, it just replaces it at the server end?  Specially since our laptops already spent CPU time creating our local database.  This would speed up the server and you may not have to impose the ONE upload for day --I'm assuming this is the reason for the ONE upload limit...or is it because bandwidth?

On the server side I'm using a MySQL database, which is far superior since the database engine is always running on the server and handles things like caching and all of that. Aside from that, the MySQL database server engine may or may not be actually hosted on the same physical machine (I honestly don't know... in the Unix/Linux world that really doesn't matter), and in any case I don't have access to those files directly. It is also bad form to directly manipulate the database storage files, especially since they are cross-linked to the licensing system (it has to be associated with your VDJ license account as well as your "DJ account" (subscription). Directly allowing the data file to be manipulated by an "outside" submission is a serious security risk in a lot of ways... using the correct channels, with validation of each entry before it is submitted to the database using a MySQL query, is the only safe, secure way to do this.

Looping through each song simply adds a a new "record" to the table for each song. On VDJ's end, it already has all of the fields in the correct order, the server just slips them into the database. It's not *horribly* CPU intensive, but when you get a handful of DJs pushing an update every time they add one song to their database could get out of hand.

And before you ask - no, it wouldn't be any easier to "only update the new/changed files"... as it would still have to iterate and compare each file to see if it's new or not. In fact this would be even more overhead with more room for errors...

So it's partly a bandwidth issue (using ZIP helps) but mostly just that recreating 100,000 records takes time. A few seconds usually, but if it gets abused by updating every time you add one new song to your collection, it would become too much.

Even if you have new songs in your local index, it won't affect the server database - just that those new songs won't show up in a search. Only if you made major changes (like moved songs around or changed drive letter) would it be actually necessary to update. Think of it like having printed Karaoke books. They might be slightly outdated but only by the few new songs that were added.

Once per day seems like it should be more than enough. How often do you reindex your collection anyway?

Quote
Can you include some information from the customers such as IP, browser, perhaps OS type?

That is already part of the plan :)  It will pop up an info window on request (so to speak) showing the browser string and IP address. I may include an option to ban by IP address or range, but that will be later on if it becomes a widespread problem.

Quote
Also, when submitting names it should ask (though not required) for First name and initial.

So perhaps request/suggestion that they add a last initial, for the purposes of (better chances of) a unique name? Then yes, simple enough. If you're referring to the fact that it doesn't ask for a name at all, that's just a part I hadn't completed yet :)  When I do, I'll ask for First Name & Initial, or "stage name" (I always had a lot of singers that use "Sunshine", "Delicia", and of course "J-Man" - usually unique enough to not need to require an initial).

Quote
bunch of stuff about not needing the full path for missing song files...

The main reason I do this is because I suspect the biggest problem might be that the file was *moved* to another drive (or the letter changed). When you "search" you can always edit the search, but maybe I'll just drop the path and use the filename portion only...

The "Copy to Clipboard" was just something I added with little thought as to its usefulness. However, if it were just the filename, it might be useful for google searching/youtube searching... so again I'll drop the path on the next update. I should also have it change the "search type" to Music or Karaoke to suit the original song (I realize they should always be "karaoke" but down the line they may be "video"... so I want that option open to search whatever type of file it was originally; and of course you can just change it to search further).

Now, the singer list thing... I am rewriting that entire piece of code soon (as part of integrating with the app), so hopefully those issues will "work themselves out" as a result.
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Fabio

  • Administrator
  • Hero Member
  • *****
  • Posts: 755
  • Karma: 11
    • View Profile
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #16 on: January 29, 2017, 01:05:08 PM »
Quote
I don't have access to those files directly. It is also bad form to directly manipulate the database storage files, especially since they are cross-linked to the licensing system (it has to be associated with your VDJ license account as well as your "DJ account" (subscription). Directly allowing the data file to be manipulated by an "outside" submission is a serious security risk in a lot of ways... using the correct channels, with validation of each entry before it is submitted to the database using a MySQL query, is the only safe, secure way to do this.

Ok, that sounds like a good good reason  :)

I don't usually reindex everyday, unless I've made several changes to it such as renaming files that are incorrectly names where the artist name is set as last (after the title) or if the name is not listed as "last, First" or more recently, I've been adding "(Duet)" to the end of songs that are duets (or mutitle singer songs). In my webapp I use a "duets" link at the top of the screen which is basically just a saved search with "duet" as the searched word.  The one that gets re-indexed everyday is my "downloads" which is checked and does it everytime I start VDJ.  I buy songs frequently sometimes even in the middle of a show. So this is the one that gets updated all the time. The nice thing about it is that even if I renamed the file, the submission still comes through, I just can't add it to the queue.  the first time it happened I had no idea what was going on, but now I know that if there is a problem adding it to the queue it's because it was renamed.  Perhaps have VDJ attempt to match it (at our end) with the existing path and file and make it turn red if it doesn't match?

Quote
I may include an option to ban by IP address or range, but that will be later on if it becomes a widespread problem.
  I thought about asking this initially when you first added the web app, but it hasn't been a problem, so it's probably a good idea to hold off on it and only add it if it becomes a problem.  Besides, once the KJ/DJ sees it as a problem it's easy to just ignore those submissions. May you can just make the the "i" (or whatever icon you're using) turn a different color if the submitted song's source IP matches an exiting song and IP and then let us make the descision.  This in itself is not a problem as usually a guy might add his girlfriend on the same phone (or vice versa).

Quote
I should also have it change the "search type" to Music or Karaoke to suit the original song (I realize they should always be "karaoke" but down the line they may be "video"... so I want that option open to search whatever type of file it was originally; and of course you can just change it to search further).

May you just need to drop the extension too, so it's just the filename without the extension.  In my case if I just added "(Duet)" to the end it would just find it, whereas with the extension, it won't.

"Copy to Clipboard" to clipboard is useful though, so don't remove that...specially in those case where you're trying to find a song elsewhere,  as you mentioned, Youtube for example.

Quote
Now, the singer list thing... I am rewriting that entire piece of code soon (as part of integrating with the app), so hopefully those issues will "work themselves out" as a result.

Hopefully it will, because the issue I was talking about when adding a song to the queue was worst for me last night...I think it only worked once the whole night and it wasn't even that busy last night.  I kept it on the whole night just to see how many times it worked and how many times it didn't...and again, it only worked correctly once at the beginning of the night.



Fabio Q.
Shooting Star Karaoke

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #17 on: January 30, 2017, 12:20:42 PM »
Quote
Perhaps have VDJ attempt to match it (at our end) with the existing path and file and make it turn red if it doesn't match?

Yes, I'll handle "requests" the same was as the "saved songs", eg, highlight in red if the file doesn't exist and give the same options to locate the song.

As for the IP block issue - things may be different with a public URL. I've got a robots.txt file that specifically says not to allow bots to index any part of MyDJSongbook.com (or its subdomains) with the exception of Google's ad bot (it uses the content of the page to help determine what ad to show). But "nasty" bots don't follow rules...

Note that if the users are on the WiFi, the server will see their IP as the external router IP, not their local 192.168 or whatever IP address. So if everyone is on the same WiFi, the IP will show the same for everyone. The "browser string" will help identify individuals, but if 10 people all have a Galaxy C4 - I mean S7 - and are using the default browser, the string will most likely show identical as well. Most people keep defaults and auto-updates so there would be literally no way to determine one phone from another...

There are bits of information that could be used to uniquely identify each device, but the browser would have to ask the user permission and we don't want that...

Quote
In my webapp I use a "duets" link at the top of the screen which is basically just a saved search with "duet" as the searched word

I will definitely integrate, on the DJ's main page, options to have pre-defined searches as links for the customer to click on. Great idea :)  So "Duet" could be one of them, or any other highly-specific search you may want.

I often search for "/downloads/" (with the slashes AND quotes) or "/billboard/" or "/bar favorites/" or "/new unsorted/" myself -- as these are folders specifically for those types of songs.

The slash thing is a shortcut that I added some time ago to let you actually use path separation to look in specific folders... the quotes simply treat them as one word, so actually "/billboard/" could just be /billboard/ - since there are no spaces anyway.

So point being, if you have certain folders for certain specialized files (/halloween/, /xmas/, just naming some of mine) you could easily create links on the "home page" (with a text description).

Note that the main reason I did the path thing - I was searching for a song by the band Live and couldn't remember which album or the name of the song, I just knew I would know it if I saw it. We all knows what happens if you just search "live" - so now I can do artist/live (as in, "Z:\Music\Music By Artist\Live - Throwing Copper\..." bold part matching the search term).

I guess I should document how the search works a little better. When I rewrite the help documentation I'll include a whole section on that... knowing how it works can really help narrow down a song you're trying to find.

Also notice that because I do so much Linux and web programming, I'm used to the forward slash, so in VDJ's search they are *supposed to be* interchangeable but unfortunately it seems it doesn't work with a backslash, even though on Windows that would be the expected path separator... I'll make them interchangeable in the next update :)

OK... where was I...

It *might* be possible to do something on VDJ's end to create a list of new/deleted/modified entries since the last index, that could be pushed to the server to update only those entries. I say *might* because if you reindexed more than once between uploads, it gets more difficult to figure out what to do, what changes the server knows about already and so on... so the easiest way is to just upload the entire database as-is and let the server wipe and recreate it.

I may change the limit; in fact I'll probably make it more like a 12 hour window, or at *least* reduce it to like 20. Otherwise, you'd be pushing your daily upload by a few minutes each day, and if you do it on a schedule (like, right before leaving for a gig), that could become problematic.

One final note on this: The new database does things a bit differently. First it indexes all the filenames ONLY. That takes much, much less time than the current implementation. Then a background process goes through and checks for ID3 tags, validates ZIP files (makes sure a ZIP contains an MP3 and a CDG), and that takes longer. You would not be able to upload your index until *both* actions are complete.

BUT

I'm planning to let it keep ID3 tags and such for files that already were indexed. So the process would be:

1- Index all filenames (relatively fast)
2- Compare each file to PREVIOUS index and if no change in modified time, copy ID3 tag/validity of ZIP to new index
3- Do full ID3 indexing on any new/modified files
4- Create special file for server upload (a flat text file, zipped up)

So after your very first index, reindexing won't take nearly as long. Once all three steps are complete (step 2 should be just a few seconds, 3 depends on how many new/changed files, 4 just a few seconds) your index would be ready for upload with the push of a button.

*whew*

I know that's a lot to take in but sometimes I post my thought process here while I'm in the code... it helps me to think it through, as well as showing a little transparency on my process :)

One more note on the app: Even though there is only one visible ad, there are some other hidden items. When you do a music search, at the end of the results list are two links: "Search 'Foo Fighters' on Amazon or Google" -- those of course link to my ad account. Same with the "Now Playing" song title - that is linked to a Google search.

Paying for the "ad-free" subscription will remove those links as well. I doubt I'd make a TON of money from any of that, but every little fraction of a cent helps... :)  And for just $2 more/month you can rid that from the app...

Only mentioning that in case you guys have any comments about that... this could potentially represent a lot of "screen time" that I can take advantage of... but in the least intrusive way possible.
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #18 on: January 30, 2017, 01:23:07 PM »
I should note something: When I talk about the little tricks as to how the search works, those only apply to VDJ's built-in search. The web app (on the server) is a completely different type of code, and is a bit more simplified. HOWEVER - some of those tricks will still work, as I intentionally implemented them to try and match the way search works in the program. For example (using the example that gave me inspiration to include path separators):

http://j-man.mydjsongbook.com/search?q=%2Flive%2F&lid=1&cid=1&page=0&t=3&rpp=25
(/live/)

http://j-man.mydjsongbook.com/search?q=%2Fxmas%2F&lid=1&cid=1&page=0&t=3&rpp=25
(/xmas/)

...and so on :)

Now try "live" without the slashes.. note that my "artist/live" example isn't as effective, as I have a "live music" folder also in "music by artist" but the principal is the same (and it still does as advertised, I just didn't recall my music collection from memory in my previous post as well as I had thought...)

For playing with the search (and for diagnostic purposes) I added a (temporary) "Show Filenames Only" option so you can see exactly what matches what. I may include this feature in the DJ section for creating custom searches as mentioned (duets and so on)... this mode is not clickable or anything, just raw search results.

Note:

http://j-man.mydjsongbook.com/search?q=%2Fmetallica%2F&lid=1&cid=1&page=0&t=3&exact=on&show_filenames=on&rpp=25
(/metallica/)

Only shows albums I've put in the /Metallica/ folder, while:

http://j-man.mydjsongbook.com/search?q=%2Fmetallica&lid=1&cid=1&page=0&t=3&exact=on&show_filenames=on&rpp=25
(/metallica) <-- no trailing slash

...also shows the ones under "New Unsorted" as long as the filename begins with "Metallica".

Again, I'll put up some good online documentation when all is said and done... the search itself needs its own manual...

<EDIT>One *last* thing I don't like... when you click on a search result, and it disappears the other results, and you click your phone or browser's "BACK" button (instead of the "back go search results" link), it goes back to the initial search page. That's because you never actually left the results PAGE, the page itself just changed appearance... I'll have to think on that.
« Last Edit: January 30, 2017, 01:30:54 PM by Justin »
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Fabio

  • Administrator
  • Hero Member
  • *****
  • Posts: 755
  • Karma: 11
    • View Profile
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #19 on: January 31, 2017, 01:52:06 AM »
Quote
Note that if the users are on the WiFi, the server will see their IP as the external router IP, not their local 192.168 or whatever IP address. So if everyone is on the same WiFi, the IP will show the same for everyone. The "browser string" will help identify individuals, but if 10 people all have a Galaxy C4 - I mean S7 - and are using the default browser, the string will most likely show identical as well.

I do know that this is a possibility but I think this become less of an issue now that most companies offer unlimited data, except for Verizon, that is...I know that at least on one of the bars where I host, they stopped allowing people to connect to their free wifi.  I think we deal with it on a case by case basis...as I said I don't think you have to implement the IP ban, just yet.  Just giving us whatever info you can grab would be helpful.

Quote
So point being, if you have certain folders for certain specialized files (/halloween/, /xmas/, just naming some of mine) you could easily create links on the "home page" (with a text description).

This is great! I had no idea I could do that!  I had to rename the duet songs and during Christmas I had to rename a bunch of songs that did not Christmas as part of the title so I could implement Christmas as saved search next to duets.

Can you implement a way to save these types of "shortcuts" the drop down list of the music database, so you can have them in addition to "Karaoke" and "Music"? 

Since we're talking whole folder here, is it possible to have the exclusion list take a whole folder instead of one song at a time?

Currently I avoid adding those folder to the ones VDJ indexes so people can find the songs in those folders, but it also keeps me from finding them so I have to use another search tool if I want to find them.  Adding one song at a time to the exclusion list is a very long process.

Quote
It *might* be possible to do something on VDJ's end to create a list of new/deleted/modified entries since the last index, that could be pushed to the server to update only those entries.


I think you should only implement this if the updating frequently becomes an issue.  I actually Like your idea of allowing one update every 12 hours.  I've been thinking about it and really once every 24 hours is not too bad...but for those emergency situations having the ability to do it every 12 hours would add an extra level of backup. Besides, if you're handling the requests the same way you're handling the "saved songs" in red, as you mentioned, it will be less of an issue.

Quote
One *last* thing I don't like... when you click on a search result, and it disappears the other results, and you click your phone or browser's "BACK" button (instead of the "back go search results" link), it goes back to the initial search page.

I don't think this is big issue, normally people will just pick a song and submit it, I'd be surprised if a lot of people actually use the back button.  However, if you wanted to do it, why not save the search temporarily just place it on the search box so all they have to do is hit the search button to search it again....again, I don't think this happens very often.

Quote
That takes much, much less time than the current implementation. Then a background process goes through and checks for ID3 tags, validates ZIP files (makes sure a ZIP contains an MP3 and a CDG), and that takes longer.

Is there a way that the ability to validate zip files and ID3 tags be made an option?  I suspect 95% of my karaoke files don't have ID3 tags anyway, so it would be a waste of time to search for them and since you're not planning to unzip files to add ID3 tags anyway, I don't forsee me going through all my karaoke files and adding them and I can't see anybody doing that.  I've tried to find a standalone utility out there to do it and so far I have not found anything....

☝☝Hey there's an idea for you to create a stand alone app to do that...so it's no something you do through  VDJ  ;)🤑


Fabio Q.
Shooting Star Karaoke

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #20 on: January 31, 2017, 09:44:58 AM »
Quote
☝☝Hey there's an idea for you to create a stand alone app to do that...so it's no something you do through  VDJ  ;)🤑

Now there's an idea... but do note that if you are trying to modify a file that is currently open in another application (such as VDJ) it wouldn't be able to do so... but I imagine this is something you would do "at home" so to speak, eg, while you're working on your music collection or when you download new stuff. So, I may just do that. While I'm at it, the stand-alone app would also re-zip the "correct" way as I described in a previous post, where the MP3 file does not get (re)compressed for no reason.

And I think you're right about the WiFi - these days I rarely see people connect to the bar WiFi or ask for the password. Heck, I have limited (but plenty of) data, but a nice thing about having Comcast XFinity is that there are hotspots almost everywhere (every person or business with an XFinity router is also a "hotspot" for other XFinity customers - my own router is basically two routers in one, one for my private service and one to serve as a public hotspot).

As for exclusion list - that (in its current implementation) excludes files/folders from YOUR search (in VDJ). It was intended as a way to prevent a file from coming up in a search that you know is bad, before you had a chance to rename/delete it. I am going to get RID of that feature all together as it adds an extra step in the search process, and VDJ now allows you to rename or delete files from within the search results list anyway...

However, I will add an "exclusion" list feature on the SERVER side, allowing you to prevent users from seeing:

a) Individual files
b) Entire folders/subfolders
c) Files matching a certain search pattern...

With an unlimited number of "blocked" entries. They would still show in YOUR search, just not the customer experience.

NOTE that *none* of this stuff will apply to the built-in server -- I am making no changes to that at all, and will be phasing it out completely in favor of the hosted app soon... there are many reasons but the main one being to avoid confusion as to which app is being used, as well as security issues with allowing customers (somewhat) direct access to VDJ's internals or your PC in general...

I'm going for security here, which is why I may have to do away with the nifty little "page designer" feature for the DJ. You can still customize your page, but the little cell-phone preview has to show a non-secure page, so the "designer" would also have to be non-secure (browser rules). I don't like this, because your username and password would be sent unencrypted and could easily be "sniffed". I want to keep all aspects of the DJ logged-in pages over the SSL secure connection.

I know it's a little overly-paranoid but unfortunately it is what it is... I can show a non-working preview (eg, just a dummy page using your "style") in its place, but you'd have to open another browser window/tab to preview the actual your-username.mydjsongbook.com page. In a way this might be better, as you could preview your style before saving it and making it "live"...

I will be allowing some HTML to be added to the styles, but with a few limits (only certain tags will be allowed). Mainly this is to prevent someone from attempting to hide the ad on the page, which would be against my "terms of service" if you are paying for the cheaper ad-supported version.

I'm not 100% about the prices just yet, but I think where it is now ($3 for ads, $5 no ads, save $10 if purchased yearly) will be the introductory offer... we'll see how many people jump on board and how successful it is, and what my operating costs end up being, before I decide on a final pricing scheme.

As for the database upload I had a couple of ideas. First is the easiest: 12 hours between uploads, with one "mulligan" if you do upload and say "oh crap I forgot to index that one folder!", perhaps one per week where it counts as a "do-over".

The other idea is to simply allow 7 uploads. Each upload will be logged for 7 days, after which it becomes "free" again... so if you upload 4 times in one day, you only have 3 more uploads before you have to wait for those first 4 to "expire" so to speak. Like a rolling 7-day window where you can upload 7 a week, averaging to one a day of course. Or maybe 10/week just to be on the safe side. It all depends on the end result and how the server is impacted once people start signing up. I can always change the frequency if it gets to be too much stress, or too restrictive on you guys...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #21 on: January 31, 2017, 09:54:45 AM »
As I re-read my post...

Quote
However, I will add an "exclusion" list feature on the SERVER side, allowing you to prevent users from seeing...

Now that I think about it, if you want to exclude items from the search for users, those items simply shouldn't be uploaded to the server in the first place. So instead, here's what I'll do:

Within VDJ:

- You complete your index
- You click "Upload"  <-- At this point the server-side database ZIP file hasn't been created yet
- You choose options of what to include and exclude (still within VDJ)
- Now it creates the server-side ZIP file and proceeds to upload

This is yet another one of those times where I can reduce stress on the server by letting your computer do some of the work ahead of time, rather than filtering results as they are being searched.

Regarding shortcuts, maybe I'll do some kind of "saved searches" on the VDJ side. Like a drop-down menu in the search box, and you can click a "+" or "-" to add or remove a "saved search". I think that would be the simplest way to handle that (you could save "/xmas/" as a search, or more complex searches that you repeat often).

Another one I do a lot, when DJing the dreaded graduation parties (and all their millennial "music"), since I get the billboard collections and keep them organized (somewhat) is simply type "Billboard 2016" (without the quotes this time) and glean ideas from the results. Maybe preview a few on the headphones to see if it "fits" (given that I don't really know much of the new "music" these days...)
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #22 on: January 31, 2017, 11:16:26 AM »
Quote
[regarding the built-in server]  and will be phasing it out completely in favor of the hosted app soon...

Correction here: I will still offer a built-in server *solely for the purpose of DJ control*. This will allow you to use the DJ control portion of (what will be) a separate, integrated app. For this, you (the DJ) would need to be on the same WiFi etc. I do not want to get rid of that feature as I personally love it.

Many times at parties and such, I like to walk out among the crowd with a wireless mic, make announcements, and can wrap it up by clicking "Play" and turning off my mic, without having to run over to the computer.

So there will be a link on the "app" for "DJ Control" that simply links to http://your-ip-address:8080/ with the usual username/password requirement. Then there would be a link back to the server app as well. This way you can still search and submit your own requests (as I do when walking around talking people into singing) and still quickly get to the "control" portion. You would search and request just as your customers do, with the server app. Just put something in the "notes" section perhaps so you don't forget why that request was put in... (like a b-day dedication or whatever).

I can't (easily) replicate the DJ control part on the server - there would be far too much lag, and VDJ would require a constant connection to the server or continuously refresh to see if any "actions" are pending... it's much easier (and faster/more reliable) for that component to be done by the app talking directly to VDJ.

When VDJ signs in to the server, it will tell the server the LOCAL IP of your VDJ laptop for the purpose of putting a link for you to get to it quickly (ideally you'd just have two tabs/windows open on your phone and switch back and forth but not sure how savvy other DJs may be with their phone browser)

Anyway this also opens it up where I can potentially add more control over the program from the built-in server. For now it'll probably be about the same, which is mostly playlist controls, but down the road I may try to mimic player lines (one, with a "<< PREV | NEXT >>" to select which line you're controlling)... but that's down the road :)
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #23 on: January 31, 2017, 01:18:25 PM »
So I quickly implemented the "replace words" feature for swear words. My previous search that turned up some quite alarming results now shows:

http://j-man.mydjsongbook.com/search?q=ksu&lid=1&cid=1&page=0&t=3&rpp=25

Something I discovered though... certain words, like the F word, would likely never appear as a legitimate part of another word. But then there are words like:

Quote
Nora En Pure - Saltwater (2015 Rework)
Joe Cocker
American Honky Tonk Bar Association

Just to name a few real songs I have containing those words (look closely at "saltwater")

So, I'm offering a checkbox "whole word only" or "partial match". So unfortunately to allow Joe Cocker or Cocktail to show up, you'd have to explicitely block <blank>sucker as well as <blank> as a "stand alone whole word".

This is hard to explain when I'm trying to be PG lol... but once you log in to your subscription account, I will have a (English based) default censor list that you can just "turn on". If you want to edit it, and see all of the filth, you can, but if you don't want to see the words at all yourself you can just go with the defaults :)

Everybody's happy, and I get to search cusswords for fun to see what variations are legit and which are not :)  Unfortunately there are some words that are only dirty in context... like "Great Balls of Fire" should be fine, but ... there are some questionable uses of the word "balls" in my collection, and both cases (good and bad) are used as a solitary whole word.

Maybe I'm putting too much thought into this... I'll just throw in some sane defaults and let you customize as you see fit later on. I'll err on the side of not being too picky, but keeping the big ones (ha!) from showing up at all.

(I think I need a break for a bit, getting slap happy here)
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #24 on: January 31, 2017, 02:48:32 PM »
Quote
I'd be surprised if a lot of people actually use the back button.

Initially clicking on the song was a way to expand the entry to show a bit more info (the duration and the full filename, as well as the keywords associated with the song). Now that it "disappears" the other entries, I find MYSELF hitting the back button to see if another entry is more appropriate. Android phones have that simple back button that users are used to using to go back - and instead it feels like it's going back two steps.

It has annoyed me enough that I'm just going to get rid of that part. Clicking a result will take you to the submission page, where it will in fact list the extra info, and let you submit the request at the same time. It actually saves a step, and reduces the amount of code on the search results page... no more "expanding" and "disappearing" elements...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Fabio

  • Administrator
  • Hero Member
  • *****
  • Posts: 755
  • Karma: 11
    • View Profile
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #25 on: February 01, 2017, 01:07:01 AM »
Quote
but I imagine this is something you would do "at home" so to speak, eg, while you're working on your music collection or when you download new stuff.

Yeah, it's how I figure this utility would work. I wouldn't expect it to be done while hosting a show.

Quote
Regarding shortcuts, maybe I'll do some kind of "saved searches" on the VDJ side. Like a drop-down menu in the search box, and you can click a "+" or "-" to add or remove a "saved search".

Whatever way you can think of adding this, I'm all for it!  :D

Quote
"Billboard 2016"
  I have folder named exactly that !! ;D

Quote
It has annoyed me enough that I'm just going to get rid of that part. Clicking a result will take you to the submission page, where it will in fact list the extra info, and let you submit the request at the same time. It actually saves a step, and reduces the amount of code on the search results page... no more "expanding" and "disappearing" elements...

I actually have no complaint on this...also getting rid of the cell phone preview is not a big deal. I usually like to preview changes on a real phone anyway.

Quote
but down the road I may try to mimic player lines (one, with a "<< PREV | NEXT >>" to select which line you're controlling)

I Like this idea...I don''t currently use this part of the app because it's not very useful for Karaoke.




Fabio Q.
Shooting Star Karaoke

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #26 on: February 01, 2017, 10:16:08 AM »
Quote
getting rid of the cell phone preview is not a big deal. I usually like to preview changes on a real phone anyway.

I'm going to keep that there but just to show a "dummy" template with dummy information, for layout purposes. I think I will allow multiple "saved" layouts, so you can customize for different gigs (specifically I imagine this could be useful if you have one in English and another in Spanish, or want a background including the bar logo, or whatever).

Quote
I Like this idea...I don''t currently use this part of the app because it's not very useful for Karaoke.

Yes, that's the idea, you'd be able to CUE up a few player lines, then maybe swipe left or right to get to each line... it's still in the "thinking" phase right now though :)

I use the Playlist quite a lot when I DJ, so for me the control app is extremely useful...

I've done the new search page already late last night. Now it simply shows results, and clicking takes you to a submit page which shows the path, in a friendly manner:

http://j-man.mydjsongbook.com/request?cid=1&sid=42278&lid=1

Just in case folder names might be a clue as to what album the song is from, etc. If it's not the right one you can click the Back button or hit the Cancel button. Simple enough :)

Notice I omit the drive letter, and the path separators, and instead show a friendly breakdown of the folders.

One other thing I came across that *might* be a better option for the "tip jar" - PayPal.me. You set up a paypal.me/yourname that links to your account, and you can add a dollar amount such as paypal.me/djjman/5 to get a friendly page to send $5 my way :)  I think the idea is for a simple, no-fee exchange of money to split a bill at a restaurant or whatever, but I can see it being useful here. The only real difference is in the "checkout" process. I haven't done any test transactions for either case just yet but I will use PayPal's "sandbox" (for developers to mimic making a purchase) and see how different they are. I did notice that the recipient still pays a fee - but that may be only because mine is a "business" account...

I'll add the option to either use your email address as a normal paypal "purchase" (they way it currently works) or use a paypal.me link. As I find other quick payment options I'll try to integrate those as optional alternative tip jars as well, but it seems to me more people would have a paypal account than anything else, and if they have a debit/credit card they don't have to have a PayPal account (but the process takes longer of course).

I know there are other services that can accept small credit card payments, like Square, so down the road I may add other options or even a "custom" option. In those cases you would have to replace the button graphic I designed, since I used the "PayPal Support Small Business" logo in the current button...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Fabio

  • Administrator
  • Hero Member
  • *****
  • Posts: 755
  • Karma: 11
    • View Profile
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #27 on: February 01, 2017, 03:57:41 PM »
Quote
I'm going to keep that there but just to show a "dummy" template with dummy information, for layout purposes. I think I will allow multiple "saved" layouts, so you can customize for different gigs (specifically I imagine this could be useful if you have one in English and another in Spanish, or want a background including the bar logo, or whatever).

Ok, it sounds good.  It sounded like you were planning to get rid of it.

Quote
I've done the new search page already late last night. Now it simply shows results, and clicking takes you to a submit page which shows the path, in a friendly manner:

It looks good but I''m not sure why the customer would need in karaoke mode.  As they won't likely be organized in albums.   I can see where it makes sense in DJ mode, though.

As far as PAYPAL.ME....unfortunately it still has the same restrictions as regular paypal of 20K or 200 payments.  By the way looking at the webapp on the site, perhaps you can move the TIP JAR a bit higher, on the phone it shows it off screen.


Also, will we be able respond to those messages they put on the note?  I suppose only if they create an account?

Fabio Q.
Shooting Star Karaoke

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #28 on: February 02, 2017, 09:29:54 AM »
Quote
It looks good but I''m not sure why the customer would need in karaoke mode.  As they won't likely be organized in albums.

It's just there for informational purposes. It doesn't care if it's a song or karaoke or even video (I need to get rid of that option for now lol - almost forgot my database has videos in it). It's not really "in the way", and you never know how a DJ may organize their files. Sometimes that extra bit of info could be just as helpful for the customer as the DJ... either way unless there's a reason to hide that info, I don't see the harm in showing it... I suppose I could make that another "option"...

Quote
By the way looking at the webapp on the site, perhaps you can move the TIP JAR a bit higher, on the phone it shows it off screen.

On my Galaxy with both the default browser and with Chrome, I don't see that. Also checked Safari on my old iPhone. Because iPhones don't have a back button, you do have to swipe to hide/unhide the navigation buttons that pop up on the bottom of the screen... Unless you mean that sometimes you might have to scroll?

I could make it "sticky" (eg, always stay in the same spot, perhaps just on one side in the lower-left corner)... I'll play around with it. Unfortunately if you mean it's "off screen" as in always covered/obscured in some way, show me a screenshot and let me know what browser/phone you're using. If scrolling doesn't fix it, then making it "sticky" would not help unless I put it up higher.

If it is a matter where scrolling does NOT fully show the bottom of the page, I could just add some blank space to the bottom - some "scrolling buffer" so to speak. That would pretty much resolve the issue if that's what it is.

I will await a screenshot before I decide which way to go, as on my end as long as you scroll (swipe up) the tip jars are fully within view at the very bottom of the page. In fact they are just a tiny bit higher than the bottom links (MyDJSongbook Home | DJ Login).

Quote
Also, will we be able respond to those messages they put on the note?  I suppose only if they create an account?

I did away with the "customer account" idea all together, but may add it back in as an option later for "power users", so they could save photos, favorite songs, favorite DJs, etc... in which case I suppose a "reply" option could be done. But I never really intended that to be a two-way street - I don't want to wind up turning it into a full-on chat/social media thing lol...

The DJ should be busy enough without the customer expecting a reply and asking questions. However I could see where you might want to clarify a request or something...

When I decide to add back in the "customer account" optional feature, I'll consider adding a "reply" option for the DJ to respond back.

In fact, once I roll out the customer account thing, the DJ would have the option of REQUIRING an account (eg, not allowing "anonymous" requests). But that's none of that will be in this first variation.

I could simply store their requests as a cookie, so I could have a page show a list of their "favorite" requests, or most recent requests - as long as they are using the same device/browser and haven't cleared the cookies... just to help personalize the experience for the customer a little bit without the need for an account necessarily.

At the moment I only use cookies to remember the customer's "name", results per page, and search type. Cookies aren't *required* for the customer. They are however for the DJ side of things, and there it's just username and password and only stored over a secure connection (those cookies are not sent to the server unless you're on an HTTPS connection).

In any case I hope these days people aren't scared of cookies like they used to be. A cookie is just a tiny bit of information the server asks the browser to hold on to, and to send that back to the server (and only that server) when needed. They have never been harmful in any way, people are just afraid of what they don't understand...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/

Offline Justin

  • Site Administrator
  • Administrator
  • Hero Member
  • *****
  • Posts: 949
  • Karma: 11
    • View Profile
    • Virtual DJ Studio
Re: 7.6 Update Addresses Singer List Issues - HOPEFULLY
« Reply #29 on: February 02, 2017, 09:37:49 AM »
Quote
Also, will we be able respond to those messages they put on the note?  I suppose only if they create an account?

I know I answered that already but I just thought of something involving a cookie... each customer could be assigned a session ID - one that is set as a cookie and stays with them as long as they are on the same device and browser. A reply could be entered on the server, and the customer would see a "New Message" type icon on their next page load. It would not be a push notification or anything - it would just check if any "replies" are marked with their session ID. Once the customer sees it, on the DJ side it would show as "read".

But again to avoid a two-way chat type of situation, I will include a notation under the "Message" box to not expect a reply. So if there is no reply, there will never be a "new message" indicator and the customer will never know the feature even exists.

Also note that once they clear their browser history or change browsers/devices, or otherwise lose their cookies, any replies will just go unread and will self-destruct after (say) a week, or when the DJ clicks "cleanup" (clearing out pending requests/messages/etc) which will also happen in an automated way after a time period or when you close VDJ for the night (it will prompt first in that case - in case you are just restarting the program/computer, and don't want to clear requests yet).

A lot to think about...
-- Justin Nelson, CEO
   Next Generation Software, Inc.
   http://www.vdj.net/