Category Archives: About music4dance

Posts that are about the music4dance.net site features, excluding features that are specifically about searching for music.

New Feature: More Spotify Exports

One of the more active members of the music4dance.net community filed a bug report recently, noting that he tried to create a Spotify Playlist, but it came up empty. The playlist was All West Coast Swing (with at least 3 votes) songs having tempo between 100 and 120 beats per minute including songs edited by sabrinaskandy sorted by Dance Rating from most popular to least popular. Staring on page 4. It never occurred to me that someone would want to export a playlist starting from a page other than one. There was a very good reason in this case. He was interested in trying new music, and the top songs in this search were those with which he was generally already familiar.

On a separate track, I’ve been contemplating ways to distinguish the different tiers of the premium subscription. While I want to keep the core functionality of music4dance open to everyone, and I contend that the main reason to pay for a premium subscription is to support the project, I’d like to start building a few things that are nice bonuses for people who provide more financial support.

So, I’ve fixed the bug and now allow folks with a Silver subscription to export from pages other than the first one. While I was at it, I’ve increased the number of songs you can export to a thousand for anyone with a Bronze subscription. Details are available on the subscriptions page.

While I’m here, please let me know if you want to download song and dance information to a file. I have a beta-level feature in place, but I haven’t seen enough interest in the feature to clean it up and get it fully in projection. It’s not a giant lift, so even a few people expressing interest will tip the scales.

In case you’re wondering, the bug turned out to be that I was paging by 100 rather than 25 during export, so the query in question, which only returned 101 songs, produced nothing when starting from the (4-1)*100 = 300th song.

One other nice side effect of the combination of having the total number of dance votes per song indexed and the ability to export larger playlists is that I can now produce a playlist with the Top 1000 songs, based on the total number of dance votes. I don’t know how practical that playlist is, but I find it fun.

In addition to the specific asks above, I’m always happy to hear ideas about this post or the site by commenting below or using other feedback mechanisms listed here. And if you enjoy the site or the blog (or both), please consider contributing in whatever way makes sense for you.

What Happens When a Song is Danced at Different Tempos?

Sometimes, a song can be a perfectly good Bolero when heard one way but a Salsa when counting the music differently. Another example is Slow Dance (Castle Foxtrot) vs. Lindy Hop.

Generally, this phenomenon is because, with some music, it’s easy to count what the musicians see as either a half note or a quarter note as a beat. Quarter note vs. eight note is another common variation. At one point, I tried to tag dances as half-time or double-time when I saw songs with this property. But honestly, I can tie my head up in knots when I look back at this. Am I dancing double-time to the music (e.g., stepping twice as fast), or is the music half-time to my dance? And, that ‘solution’ also has the limitation that there is no way to sort or filter on tempo and include those songs correctly without doing two searches (maybe 3) and then weaving the results together ‘manually.’

And that doesn’t even take into account Waltzes, where you can get into other fun variations that I talked about in my fake waltz post.

A more robust solution to this problem is to have a separate tempo field for each dance. This would only be filled in if the dance had a positive number of votes. Then, if you search on Foxtrot and sort by tempo, the Foxtrot tempo field will be used. If you search on multiple dances or didn’t include a dance in a search and sort on tempo, I’d have to default to some master tempo field. If I went down this path, I’d have to populate the ‘dance’ tempo fields off of the master tempo fields by default and do some manual searching for the exceptions (and depend on others to update them as they see them).

What do you think? Would this be a significant improvement in how you use music4dance? Or is it a corner-enough case that you’ve never noticed and would prefer I spend my time on improvements in other areas?

Please share any thoughts and ideas about this post or the site by commenting below or using other feedback mechanisms listed here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way makes sense for you.

What is Your Favorite music4dance Feature? (2024 Edition)

I am in the middle of another substantial rewrite of parts of music4dance.net. This is why you haven’t seen much blogging or new features recently. Sorry!

In any case, I should ask this question at least once a year: What do you like about music4dance, and how do you use the site?

As I rework the code, I don’t always keep everything exactly the same, and as a solo project owner, I feel that I have license to cut features if it’s not apparent that customers heavily use them. I am able to get an idea of how folks use the site through analytics, but these tools often lose essential nuances. So, please let me know what is most important to you about the site so that I don’t accidentally cut it!

On a similar note, what are features that almost but don’t quite do what you want them to do? Or features that work but take more effort than they should? These ideas are easiest for me to incorporate as I’m doing a major rewrite, but feel free to let me know about them at any time.

Unlike my previous rewrite, this project involves “just” upgrading to new versions of front-end libraries rather than changing to a new framework, so there should be less of an impact on the site. It would also be faster, except that one of the libraries I depend on requires some help, so I’m diving into the next level of infrastructure, which is fun but time-consuming.

I value your thoughts and ideas. Please share them by commenting below or using other feedback mechanisms listed here. If you want to explore more ways to participate in the musci4dance community, please check out this page. Your contributions are highly appreciated, and your engagement is what makes this community thrive. Thank you.  

Introducing the music4dance technical blog

When I started the music4dance blog nearly a decade ago, I considered including a technical component by writing about the challenges of building and maintaining the site. A good friend talked me out of doing that, and I still think it’s the right decision. I’m assuming most of the audience for this blog isn’t particularly interested in what I’ve done to build the site. You’re interested in what you can do with the site, learning more about the relationship between music and partner dancing, and how to find music to dance to. If I’m wrong about you, please let me know; if I get more than a few direct responses, I’ll set up a poll and consider a pivot based on the results.

am disappointed I never got around to spinning up a technical blog. I’ve learned much over the years while building and maintaining this site. And I generally feel the need to share when solving technical problems. Now that I’m not leading a team of engineers, I’ve given up my primary outlet. So, it finally tipped the balance, and I’ve started some technical writing.

I decided to use medium.com to host my technical writing. That removed the barrier to entry of setting up another site and spinning on what technology to use, and I’ve been happy with the platform. The first series of posts is only tangentially music4dance related but is still motivated by this project. I use a simplified version of the tempo counter applet from the website to compare the experience of writing that app on several multi-platform frameworks. In addition, I took the opportunity to write about my experience in helping build the foundation for Microsoft’s version of that solution. So, if you have a technical bent, please take a look – the first post is “Which Multi-platform framework should I use to write my app?” And if you like it, please do the things that help spread the word. With medium, those things are to clap, follow, and share the link with friends.

As always, I’m very interested in your feedback and read every comment and email. So please share any thoughts and ideas about this post or about the site by commenting below or using other feedback mechanisms listed here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way makes sense for you.

Post #100: Music4Dance Turns Ten

My first blog post was in July 2014. I had early versions of the website up and running for about a year before starting the blog, so the site is just about ten years old.

It’s been an adventure building music4dance over the years. I’ve been thrilled when others have piped up and expressed opinions about how the site works. So for those of you that have done that, thanks! And for those that haven’t yet, feel free to get in touch. The more feedback I get, the better the site will become. 

My motivation for building and expanding music4dance has changed over the years. Initially, it was to retrain as a full-stack developer and take an (admittedly pretty weak) stab at seeing if this idea that had been floating in my head for years could become a business. I succeeded in the former, landing a job as a full-stack developer (or at least a hands-on manager of full-stack developers). Of course, the business never really turned profitable, as I’ve mentioned before.

Once I was working full time, I had to pull back on how much time I was spending on music4dance. I kept at it partly because this is a labor of love. But also because it gave me some coding time outside of work. And I could move the music4dance technology stack ahead of the codebase I was responsible for at work, which was incredibly useful at the time.

I’m sure there will be other transitions and focus changes over the years coming years.

The site itself has been through some significant reworks over that time. I moved the core database engine from Microsoft SQL Server to Azure Cognitive Search and changed the core client-side rendering from the asp.net framework with a sprinkling of knockout.js to vue.js backed by a thin layer of asp.net core.

This blog has gone through several iterations under the hood, but it’s been a pretty plain vanilla WordPress site for the whole time. The (mostly) invisible changes have been around how I have hosted the site, the most recent being that I gave up on self-hosting and now just run the site on WordPress.com. Over the last nine years, I’ve written 100 posts (this post is coincidently an approximate 10th anniversary and an exact 100th post). Some posts hold up pretty well, some could use a facelift, and a few are stale or just plain misleading. Given the vagaries of search engines, I dislike taking down posts. But it’s well past time to impose some order on the chaos, update some of the most outdated posts, and make it easier to find what you’re looking for in the mass of words.

So, I went through all the old posts and categorized them. I think I’ve managed a reasonable taxonomy of posts, although kind of like dance styles, not everything fits as neatly as I’d like:

About music4dance: Posts about the music4dance.net site features, excluding features specifically about searching for music.

Searching for Music: Posts that are about searching for songs, excluding those about special occasions

Special Occasions: Searching for music related to special occasions (Holidays, Weddings, etc.)

Music and Dance: Posts about music as it relates to dance and dance as it relates to music.

Reviews: Reviews of books, podcasts, websites, etc.

Archive: Posts that are no longer relevant

I also intend to go through and produce fresh versions of some essential content when it’s gone stale, like I did recently with the wedding music posts (part 1 & part 2).

As always, I’m very interested in your feedback and read every comment and email. So please share any thoughts and ideas about this post or about the site by commenting below or using other feedback mechanisms listed here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way makes sense for you.

P.S. As I started re-organizing the blog, I didn’t realize that an update as minor as adding a category would re-publish a post to my linked-in and Facebook feeds, so all of you who follow me on those platforms; sorry for the spam; I’ll try to do better in the future.

Would you like more content on music4dance.net? If so, what kind?

Brad’s comment on my Single Swing post made me realize that I’ve done a bunch of research on dancing and dance music that I haven’t effectively conveyed on the site or the blog. He pointed me to a site that listed tempo values for Single Swing that I already had in my notes and used when doing some of my earlier set-up of dances. But I didn’t credit that site or put a reference to it anywhere on music4dance.

So I started down the path of sorting out my notes with the intent of adding a whole bunch of new references to source material throughout the music4dance site. Since much of my initial research is over a decade old, can you guess what I discovered? I won’t keep you in suspense. A working majority, more than 75%, of the links that I used to research music4dance were dead. Most of those were sites that completely disappeared, a few were reworked and dropped the pages I was interested in, and a very few still had the content but at a different location.

Now, that lead me down the path of how many dead links I have on the site. As a programmer, I took a few hours off my content investigation to write a link checker. I was relieved to see that of the external content links I have on the site, less than a dozen were stale. On the other hand, the total number of those links is less than a hundred, so it was still about a ten percent failure rate. (I’m excluding links to songs, I know there is a significant amazon link issue that I need to deal with at some point).

The conclusion: I’m less excited about spending a bunch of time beefing out reference sections for dances and other content. But now that I’ve got the link checker in place, I could do that in a reasonably maintainable way.

This brings me to the main point of this post. I’ve been neglecting content again while spending time keeping code updated and adding features. So, I want to ask you what you’d like to see on the site. To start the conversation off, here are a few things that I’ve heard:

  • More references to information about dances
  • More detailed descriptions of dances
  • Additional dances (Kizomba and Country dances have been the biggest asks other than Single Swing, which is what kicked this all off)
  • More information about dance tempos, where they come from, what they mean, etc.

I’m sure you have many other ideas, so please let me know. I will kick this off by asking folks to add to the comments section of this post (or, if you prefer, you can message me privately). If I get enough interest, I’ll also set up a survey.

And while you’re at it, please let me know if there are other sites relevant enough to music4dance that it would make sense to add links.

As always, if you enjoy the site or the blog (or both), please consider helping by contributing in whatever other way makes sense for you.

Beta Feature: Export to a file

A number of the most active members of the music4dance.net community have requested the ability to download all or part of the song database. My sense is that this has generally been with the intent to tag songs in one’s local catalog with the dance style and other metadata from music4dance. I’ve been stuck trying to implement this for two reasons: First, I’ve put a significant amount of work into the music4dance catalog and don’t necessarily want to let someone download the whole catalog and stand up a competing site. Second, I’m not entirely sure I want to write a desktop application or other tool to tag songs in a personal catalog.

I’m less and less inclined to be worried about the first reason, as I continue to struggle to even cover server costs with subscription and advertising revenue. So if someone has the marketing ability to turn the music4dance catalog into a money-making proposition, I think that would be a good thing. In fact, I’m considering moving to an open-source or non-profit model once I get past a couple of issues with the source that prevent me from making it widely available.

As for the second reason, I realized that providing the information in a reasonably consumable format would allow anyone with a bit of scripting skills and sufficient motivation to do their own tagging. So I don’t have to write a tagging application for this to be useful.

I’ve cobbled together a quick beta feature to let folks play around with exported song lists. I’d love to know if anyone is interested in giving it a whirl before I invest in cleaning up the code to make it a more generally consumable feature. Just contact me, and I’ll set you up.

There are two entry points for this feature. First, in your profile, there is a new link to “export your votes and tags.” This link will generate and download a comma-separated value (CSV) file of all of the songs that you have edited in any way. This file is a denormalized list containing one line per song/dance combination. Each line will have a music4dance song id, title, artist, dance name, Spotify and iTunes links, as well as both your tags and votes and global tags and votes.

The second entry point allows you to download the same information for the first 100 songs of any search you create. This is similar to the ability to create a Spotify playlist I implemented a while back.

Some of the things that I’m interested in feedback on are:

  • Is this denormalized CSV format reasonable, or would another format be more useful (e.g., a normalized JSON format)?
  • Are title/artist or the Spotify/iTunes id sufficient to match your catalog? I’ve looked a bit at using musicbrainz.org ids. But by my reading of their licensing agreement, they want $100 a month donation for commercial use of their catalog, which is a bit steep for the music4dance budget.
  • Is downloading just the top search results or songs you’ve edited sufficient, or are there reasons you would want access to the entire catalog?
  • Is this a feature that would be worth the current annual Premium subscription level of $15? Or more?
  • Are there other ways you would like to use this information?

As always, if you have comments or suggestions, especially if you’d like to try the beta feature discussed above, please feel free to reply to this post or contact me here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way that makes sense for you.

New Feature: Saving and Sharing Searches

Searching for music to dance to is what music4dance is all about. 

I’ve been adding features such as Filter by Song Length, General Search, and Searching for a song from Spotify or iTunes to improve your ability to do just that. 

Another thing that I hope music4dance will be used for is to share those songs with other dancers.

There are two features that I haven’t blogged about recently that have suffered from some bit rot over the years. Since I’ve got them up and running again I want to increase awareness about them and get your feedback as to how useful these features are to you.

The first is Saving Searches. Whenever you do a search that is nontrivial, we save the search in a list that you can access through your account menu. See the help for more details.

The other is the magic of URLs. You can copy the link from the address bar and share it with other dancers. This is true of everything from the simplest searches you do from the top menu bar to the most complex searches you create using the advanced search tool. Or you can embed the link in a blog post, which is what I do regularly here. It’s one of those wonderful web features that should always just work, but often is not correctly implemented. It’s a bit of a pet peeve of mine when this doesn’t work for websites, so I try to make it work for music4dance.

And there is a third feature, which I’ve implemented more recently. With a premium subscription, you can create a Spotify playlist from a search and share the results.

I’m very interested in feedback, about this set of features. I can think of several ways I might want to improve the saving and sharing of searches, but I hesitate to invest much more into this until I hear from you. For instance, would you like to be able to show your favorite searches on your profile page? Or would you like to refine searches even more? Or would you be interested in seeing what others are searching for?

Besides the specific feedback request above, I’m always interested in your more general feedback, so please share any thoughts and ideas you have about this post or the site by commenting below or using other feedback mechanisms listed here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way that makes sense for you.

Ask music4dance: Should you add a Single Swing Dance category?

Arne had another great question (paraphrased): I see Single Swing being danced a lot these days.  Should music4dance add another swing category? Is Single Swing a local thing, national, really new? Do people still dance triple-step Swing?

Here is a slightly cleaned-up version of my response:

East Coast Swing (the triple step variety) is a competition dance, so it’s still being danced regularly in ballroom environments. But the Lindy revival of the ’90s seems to have dominated the social swing scene from what I can tell.

In the ballroom community that I learned to dance in during the ’90s, they used the term East Coast Swing to refer to the competition dance, which was definitely a triple-swing. But if one was dancing socially to music too fast to comfortable dance triple swing, you would revert to something they were calling Single Swing or East Coast Single Swing or some variation on that.

I fell down a rabbit hole, trying to see if my recollection had anything to do with current thinking on this. This video shows a “Single Swing” basic that is exactly what I think of as Single Swing. Duet Dance and DanceTime both have descriptions of various kinds of swings. They seem to agree that what I think of as Single Swing could also be reasonably called “The Jitterbug” (which I had thought was just a different name for Lindy Hop). As with any of this stuff, the history is so twisted up that there probably isn’t a correct answer, or if there is, it would require a historian to dig up.

Even without adding a new dance, you should be able to find some good ideas for Single Swings by searching for generic Swing in the tempo range between 140 and 184 MPM. When I first responded to Arne, I had broken that feature, but it’s now up and running again. So you can go to the Advanced Search Page, choose Swing in the dances section, and type in the tempo range you’d like to filter on. 

I am interested in incorporating Single Swing into the music4dance catalog. Should I do this as Jitterbug or Single Swing or by adding single and triple tags to East Coast Swing? I’d love to get others’ thoughts on this so please feel free to send feedback.

Asking to add a new dance style to the catalog is certainly in the top ten questions I’ve been getting. So I’ve been working on streamlining how I manage dance information to make that easier. Most of this work has been under the hood (although the bug mentioned above was one side effect). One of the more visible aspects of this is a small redesign of the Dance Styles page to simplify it a bit and hopefully make it a little more usable.

As always, I’m very interested in your feedback, so please share any thoughts and ideas you have about this post or the site by commenting below or using other feedback mechanisms listed here. In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way that makes sense for you.

Ask music4dance: Why am I listed as Anonymous?

A few months ago I started working on a set of features with the goal of making music4dance more personalized.  This includes the ability to add new songs to the catalog, to see who else likes to dance specific styles to a song, and more. As I was working on this I realized that almost all members of the music4dance community have chosen the privacy setting to not share their profile. This was the default setting, so it shouldn’t have come as a surprise.  While the features that I’ve written so far don’t even give one the ability to write a profile, I want to be as respectful as possible with everyone’s privacy and not show user names anywhere for members who had opted for privacy.  This is especially true because many members have chosen to use what appears to be their full name as their user name.

So I did some work to make sure that anyone who had chosen that setting is protected by not showing their name, and instead I use the single “Anonymous” moniker.  I’m still tracking who those users are by means of a randomly generated number, but other visitors to the site will only see the user as “Anonymous”.  That is even the case if you send a link to your songs to a friend.  For instance, I’ve marked my test user “Charlie” as not wanting to share his profile, so if I’m logged on as Charlie and look at a list of Charlie’s songs then the list and changes to the songs are attributed to Charlie.  But if I send that link to you, you’ll just see his changes attributed to Anonymous.

A search of all the songs “Charlie” has edited as Charlie sees it
The same list that is shown above as seen by anyone but Charlie

This isn’t the best user experience in my opinion.  I had some thought of having permanent anonymous names so that Charlie might be anonymous1 and you might be anonymous2, but that was a considerable amount of extra work for a pretty marginal improvement. 

What does that mean to you? If you’ve spent time voting on songs in the music4dance catalog, please consider turning the privacy feature off to allow sharing.  You can do that from the My Profile page. All changing that setting will currently do is show your user name in searches and attribute changes that you’ve made to a song to your user name.  If you happened to use your real name as your user name and would like to change it to something else, just contact me and I can make that change (if enough people want to do that, I’ll add a self-service feature).

I’m very interested in making this site a useful place to share ideas for songs to dance to and I believe part of that experience is being able to attribute changes to specific users. But it doesn’t matter too much right now if those users are connected to the real person that’s making those changes (more on that later). So please take the time to make it easier for other dancers to follow your work by changing that setting.

As always, I’m very interested in your feedback so please share any thoughts and ideas you have about this post or the site by commenting below or using other feedback mechanisms listed here.  In addition, if you enjoy the site or the blog (or both), please consider contributing in whatever way that makes sense for you.