Category Archives: About music4dance

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

Defining dance is hard. On further consideration language is hard, full stop.

I’ve been building music4dance for well over a decade now, and I am still amazed at how passionate people can be about what is right or wrong, not just with respect to dance, but also with many other aspects of the site. Two such instances came up in a recent piece of feedback that I’d like to address, as they are related to ambiguities in language.

Dance

The first is that the site is oriented to a particular local community and is “completely useless” for dancers from other locales. I’ve never heard that specific feedback before. But I do read it as a variation on other feedback that amounts to how I’ve organized the site doesn’t line up with how everyone thinks about dance. I believe that is a good thing. Dance is diverse. A single individual shouldn’t be able to wrap their head around the whole breadth of the dance world, or even something slightly less broad like the partner dance world. Here are some previous posts where I’ve explored this idea in more depth:

I have lived in the Pacific Northwest for most of my adult life and learned to dance here. And while I’ve spent some time social dancing over the years, my primary focus was on competitive ballroom dancing. Indeed, with social dancing, there will be some bias towards what I know, and that is the scene in the area where I dance. With ballroom, not so much, as there are standards and organizations.

But the bottom line is that the more the community gets involved, the less the site will reflect my editorial viewpoint. My focus is on making it easier for anyone with an account to add songs and tag them with dances, which will shift the “editorial center” of the site slightly closer to their viewpoint. Some design limitations make it more difficult than I’d like to add new dance styles. But I’ve been rearchitecting the site to make that easier, so if dance styles are missing from the site that you would like to see represented, please get in touch with me. I’ll be happy to work with you to add them.  I am also working on a feature that I hope will make it easier to filter on variations of dances – more on that in a future post.

Donate

Another aspect of the site that has bugged me for some time, but that I haven’t addressed, is the use of the word “Donate” on the site. I’ve never received any feedback on this subject before now. However, I understand that using the word ‘donate’ can imply that the money spent would be a tax-deductible donation. That is not my intent, as I would use the phrase “charitable donation” and include a tax ID if it were. If someone could give me a better word than donate, I’d be happy to update the site with it. The only other contender I have come up with is “give,” but that has pretty much the same issue. I have not registered music4dance as a non-profit in any jurisdiction. For more details, please visit the subscription page.

The other word that this person objected to was “contribute.” My intention in using that word was to encompass different ways that someone could help improve the site. That does include monetary contributions in the form of subscriptions or (non-tax-deductible) donations. But it also covers voting on dances, adding songs, sharing the site with friends, and any of the other ways I’ve listed on the contribute page. I’m less concerned about the ambiguity of that term. But apparently at least one other person is, so I’d be happy to change that as well if someone has a better term.

While we’re on the subject of contributions, I want to take the time to thank everyone who has financially contributed to the site, including the person who provided the feedback that inspired this post. Ad and referral revenue only covers about 10% of my core operating costs; your (non-tax-deductible) subscriptions cover more than that. So thank you!

Please let me know if you have any thoughts about the subject of this post or the site by commenting below or using other feedback mechanisms listed here. I’ve still got a ways to go to get to the goal of covering the core operating costs of music4dance that I set in 2019 when I first turned on the subscription feature, so if you’re not already subscribing and would like to continue to enjoy the site and the blog, please consider contributing (in a non-tax-deductible sense).

Please help us catalog new music

A Swing Band leader (Glenn Crytzer) reached out to me recently, asking if it would be possible to add his entire catalog to the music4dance.net database. He found a few of his songs already listed, but has a published catalog of well over a hundred songs, most of which should be danceable to partner dances (mostly Swing variations).

Glenn graciously provided me with a spreadsheet of his music, and I was able to upload it to music4dance. This was particularly nice because I could include his data on tempo and genre tags, as well as some other miscellaneous metadata from his comments that I turned into tags. But that led me to the next issue – his data didn’t include anything about which dance or dances would be particularly suitable for each of the songs. Which is entirely reasonable, he’s not actually dancing to them, and most of them would work for a generic swing night – the dancers can choose to dance Lindy, Balboa, East Coast, or something else to any particular song. Although that’s a vast over-simplification, if you’re interested in how a musician thinks about these things, Glenn’s article On Programming an Original Swing Music Album is an illuminating read.

That leaves me in a bit of a bind. I can certainly go through the 100+ songs myself and vote on which dances work for those songs, and I probably will. But I dance East and West Coast Swing and a bit of Lindy and Charleston – oh, and a bit of Slow Foxtrot, as Foxtrot and Swing music overlap – so I’m not familiar enough with some of the other dances to say whether a song would be suitable for Balboa, Jump Swing, Quickstep, etc. And more importantly, even with the dances I do know well, I’m only one opinion. Music4dance works much better when others in the community contribute by voting on dances that they are familiar with for songs in the catalog.

That line of reasoning led me down the path that I’ve considered several times before, of unlocking premium membership for free for members who vote on dances. I’ve thought and rejected several complex mechanisms to enable this. While some of them seem plausible, I don’t want to spend time writing code until I prove that there are enough members of the music4dance community willing to participate to make it worth my while.

Something about the interaction with Glenn and the thought that I’d love to get his songs showing up with associated dances sooner rather than later made me look at the problem a little differently. What if I went the low-tech/high-trust method of giving out premium memberships to anyone who committed to voting on a certain number of songs per month? I wouldn’t have to write any code at all for that, and if enough people take me up on it to make manual management of the “feature” cumbersome, I can always write the code later. That will also let me play with the parameters without building a whole dashboard of knobs and dials.

The Offer:

If you are familiar enough with at least one dance to confidently listen to an arbitrary song and say, “I would dance that dance to the song,” and are willing to spend some time each month doing that on the music4dance website, I’ll extend you a premium membership for each month that you do. Furthermore, I’ll take your word for it and give you the premium membership ahead of time. That will let you look at songs that no one has voted on yet (which is essential for things like the Glenn Crytzer catalog – at least until someone has voted on a song). To make this somewhat measurable on my end, let’s set the number of votes at 50 per month to keep your premium membership going. I’ll reserve the right to change the parameters at any time, including cancelling the program, since this is an experiment. But at minimum, if you contact me to try this out, you’ll get the first month of premium free, and I won’t turn that off before the end of the first month unless I detect you doing something malicious.

Why should you care about a premium account? In this case, it allows you access to more songs, including songs that no one has voted on yet and songs that I’ve pulled in from someone’s list of danceable songs but haven’t matched to a music catalog. With a premium account, ad content is turned off, and you can export results of your searches to Spotify – see details here.

Musicians (a quick aside):

Before I get into the nitty-gritty details of how to take me up on this offer, let me take a moment to reach out to other musicians who would perform music suitable for partner dancers. If you are interested in having me bulk upload your catalog to music4dance, please contact me, and I’d be happy to do that.

Here’s how to go about taking me up on my offer:

  • Create an account on music4dance.net here if you don’t have one already. (Account management help)
  • Email me at info@music4dance.net from the email you used to create your music4dance account and include “I’d like to Help Cataloging Music” in the title. Feel free to include any other details you’d like to share or questions about the offer in the email. I read everything that I get.
  • I expect to be able to upgrade your account and respond to your email within forty-eight hours (but this is an intention, not a commitment – read the notes above about this being an experiment) – if you haven’t heard from me in that timeframe, please try again.
  • Read the information about Dance Tags to understand how to vote.
  • Start voting!

This offer is for voting on dances, not for clicking the like button on songs. The latter is a feature that helps you organize your use of the music4dance catalog, but doesn’t do much for other users, so I’d like to focus on the core music-to-dance relationship of the voting mechanism for this offer.

Useful links:

What if you want to support music4dance but don’t have either the time or the experience to catalog songs by dance? There are plenty of other ways to contribute, as described on our “Contribute” page.

Open Source music4dance

I’ve been considering publishing the music4dance source code as open source for some time now. I finally pulled the trigger!

You can find the source code for music4dance on GitHub, located at music4dance / music4dance; I’ve published the code under the MIT License. Note that this covers the code; I haven’t published the database.

I’ve documented the new ways (and some pre-existing ways) of contributing to music4dance in the contribution guide, and you can get an idea of what I (hopefully soon we) are working on by looking at the issues database. If you’re not a programmer, you can probably stop reading now. But, before you go, I would like to remind you that if you use music4dance there are plenty of ways to contribute to music4dance, including voting on which dance you would dance to a song or upgrading to a paid subscription.

Why Open Source?

My primary motivation for considering open source is that several people have reached out to me over the years, offering to help in general or implement a specific feature that they’re particularly interested in seeing. Making the project Open Source would be much easier than giving them access to a closed-source project.

I’ve also spent the last few years leading college students in contributing to other open-source projects as their capstone projects. While I’m not necessarily going to put music4dance features up for student projects, that experience combined with my contributions to BootstrapVueNext (the front-end framework I use for music4dance) has given me enough background in open-source projects to be more comfortable opening up my own codebase.

Another benefit of creating a GitHub project for music4dance is that I automatically get a reasonably well-designed issues database to manage code bugs, data bugs, and features that is visible to everyone. While you need a GitHub account to add issues, you don’t need an account to view them and get some idea of where I’m going with music4dance. Once more people start entering bugs, you’ll be able to see if others have run into the same issue you’ve discovered.

To top off my list of reasons to move to open source, I’ve been using some of the problems I’ve worked on with music4dance as fodder for technical articles on Medium. Since the source code for music4dance wasn’t publicly available, I built small projects to demonstrate the issues. While having small, isolated projects to demonstrate technical issues is useful – in at least one case, I’m maintaining the sample project as a means of testing updates to the affected systems in isolation – I’d also like to be able to show the solutions in the context of the real-world project that inspired them. Now I can.

What took so long?

I’ve been working on music4dance for over fifteen years. Why haven’t I made this move earlier? One reason is that by the time it occurred to me to move to open source, the codebase was well over a decade old. Much of the code was dated, there were many things I’d rewrite given time, and test coverage was abysmal. My impulse was to clean things up before publishing. I even started doing so with some of the oldest code. But I concluded that it would take approximately forever to get the code into shape, especially if I spent some of my time on new features and contributing to the song database.

I didn’t initially create music4dance as an open-source project because I hoped it would be the seed of a profitable business. I’ve pulled back that expectation to the hope that I can generate enough revenue from referrals, ad revenues, and subscription fees to cover the server fees and other expenses, making this passion project a revenue-neutral proposition.

In conclusion: For better or worse, the code is now out in the wild. Please take a look and let me know your thoughts.

Please let me know if you have any thoughts about the subject of 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.

Playlists for Ballroom DJs?

I recently heard from a member of the music4dance community who hosts a community social ballroom dance for which he builds a playlist. He uses music4dance to find song ideas, then manually builds a spreadsheet and feeds it back into Spotify to create the final playlist.

I have a long-standing interest in making it easier to build playlists. I still have fond memories of my dance coach handing us a CD of custom-cut practice rounds (this was back in the ‘90s). When I started music4dance, I thought that once I had enough data, I’d be able to do some kind of auto-playlist generator where I randomly chose a high-ranked song from each dance type in a competition round and created a playlist that would be suitable to practice to. Unfortunately, the music4dance database isn’t nearly clean enough to do something like that. I’d need to be able to filter down to just songs that are strict-tempo for each dance, which I’m not even close to being able to do.

I’ve communicated with several DJs who use music4dance to build their playlists. It seems pretty common to want to be able to rotate through a pattern of different dances, so maybe there is some there there. The ability to create heterogeneous playlists of songs appropriate for different dances seems like a helpful feature.

But I’m also loathe to define my own playlist format and land myself in a situation where I’m storing everyone’s playlists. I already spend more time maintaining the music4dance code and systems than adding new features, so I want to be careful about creating features that add to that burden. But that’s not a complete blocker; if this is the way to provide the best user experience, I’d be happy to do it. I’d want to take the time to lock down the requirements before implementing a feature like this.

Hence, this blog post. If you use music4dance to build playlists, how do you do it? And what do you want the format of the end result to be? A Spotify Playlist? A spreadsheet? An integration with the DJ software you use? If so, what software? Please let me know.

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.

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.

I 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.