Category Archives: About music4dance

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

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.

New Feature: More ways to see what’s going on at music4dance

One of my goals for music4dance is to build a system that people can use to share their knowledge of partner dance music with others.  I probably spent too much time early on in this project building bots and scrapers to seed the catalog with content and neglected the community aspect of the site.  So I am now trying to focus on more community-building features.  This includes everything from simplifying the system so that it’s easier to add new styles of dance to making it easier for members to add new songs to making it possible for members to see who else likes to dance to a song.

Following on to the feature where I added the ability to see the voting history on a song on the details page, I’ve added a couple of small feature-lets.

Now,  when you filter music on a user you will see a column  with that user’s changes:

If you know a user’s username, you can filter by a user in the advanced search page by typing the username and choosing what you want to filter on (likes, tags, etc.).  Or you can go down the path described in a previous post and click on a username anywhere that one shows up.  That will take you to a page that will let you filter on all the songs that the user has tagged or all the songs that that user has added to favorites among other things. Eventually, I’d like to have that page contain additional user profile information.

The other fun thing you can do is on the new music page.  The song list on that page has a similar column to the one above that shows latest change to each song and who made it.  That’s a way to find users that are actively adding songs and seeing what they’re up to.

And finally, when you’re exploring these features if you find a search that you want to share with others, you can just copy the URL and send it to a friend. That’s what I do with links back to the music4dance site with these blogs – so it’s not a new feature, but it is becoming more useful with the other community features that I’m building.

As always, I welcome feedback on not just the feature, but the site in general.  And if you find the site useful, please consider contributing in any way that you can.

What is the difference between adding a song to Favorites and voting on a  Song’s Danceability?

From discussions with dancers navigating the music4dance site and observing people’s usage of the site I realize that I still haven’t made it easy to understand the nuances of a couple of important features.  I’m trying to default to simplifying the site wherever possible. But enough people are using both of these features that I don’t feel good about getting rid of either of them.  So I made some changes in terminology and behavior and I’m interested to know if this makes more sense.

Here are the two features at issue:

  1. The concept of voting on the danceability of a song to a particular dance style.  For instance – I love dancing Cha Cha to “Let’s Get Loud” by Jennifer Lopez, so I’ll vote on that.
  2. The concept of adding songs to a favorites or blocked list.  Up until this change I labelled the favorites/blocked list as like/dislike, which I now believe is part of the source of confusion.

It’s important to the music4dance community that people vote on the danceability of a song to dance styles – this is what helps build and refine the catalog that is the core of the site and the main reason that people visit it.

It’s also useful to be able to add songs to a favorites list so that you can filter on that for future searches.   And frankly, blocking a song that you are just sick of is kind of nice as well.

The two concepts are almost completely separate in how they would be used.  But they are too easily confused.  I hope that moving from the like/dislike nomenclature to favorites/blocked list will make things less confusing.

Since I feel the voting concept is more useful to the community, I’ve also done some things to make that more discoverable.  The most recent of these is that when you click on the heart (add to favorites) button in the main song lists, rather than just toggling through favorites/blocked/neutral, it will bring up a modal that will let you explicitly choose one of those options as well as quickly vote on any of the dance styles already associated with the song.

I’ve also added a voting button to dance info modal that is available by clicking on the dance voting results button.

As I noted at the beginning, this is something that I’ve been struggling with for some time (check out this post from 2016) and hope I’ve improved it a bit.  But I’m sure there are other things I can do to make this better, so please send me any of your ideas and let me know if you think the latest change works better (or worse) for you.

And, as always, I’m open to feedback about the feature discussed here as well as the site overall.


Music4dance could use your help:  Please take a look the contribute page:  This lists a bunch of ways to contribute from purchasing premium memberships to voting on songs to sharing with your friends and a bunch of things in between.

New Feature: Adding Songs to the music4dance Catalog

I’m excited to announce that I’ve nearly completed a feature that will let you add songs to the music4dance catalog.  I’ve been fortunate enough to have a couple of kind folks test it so far and they’re pretty happy with it.  I’ve documented the feature here and am keeping it under beta for a little while longer – I’d love to have a few more people give it a try before I open this feature up to all music4dance members.  So please reach out to me soon if you’d like to give it a try.