Web UI to push songs to BB

Current discussion on this topic is here: BeatBuddy Companion: A No-Touch (pedal) song search/select application

So I purchased the Complete Collection, and my list of songs grew quite large. I’d been looking for ways to pick songs without touching the pedal which I put on the floor (where pedals go).

So, I was browsing around the collection and noticed the data structure was actually not all that complex and I had some ideas about making a data driven webpage using the CC as the source data.

I pair programmed with ChatGPT on this as I’m not an ace web developer, but I’m fairly technical and am code literate.

I used the python library midio to push the songs once selected into the beat buddy.

Img 1. = the page when you enter. It has the numbered list of folders as you’d see if you were browsing via the pedal.

Img 2. = I picked the folder “Prince” and then the songs populate on the right. I pick “Seven” because that song is amazing.

Img 3. = after I pushed the “Send to BeatBuddy” button (the pedal receives the song) and the page resets to Img 1.



I have some ideas on how the next iteration will go. I’d like to write have an image of the pedal on the screen and when I select the next song, it populates onto my pic of the beatbuddy so I don’t have to look at the pedal on the floor to see what was pushed last.

– LMK if you have ideas, or just wanna say, “hey cool”

((The requirements on it at the moment: PC (need to test mac) with audio interface, python, bb + midi cable, LAN (for access from smart phone or other devices)))

6 Likes

Hey, cool!

1 Like

Bluetex, you may be on to something here…finding a way to harness the power of AI to help sort through the thousands of beats in the CC to find one(s) that fit best with a particular song. One of the things I found frustrating about the song matching tool is that, for obvious reasons, has most of it’s recommendations from the basic library that ships with BB. There are “better” beats I’ve found in the CC, but alas no way to find them except by searching for the needle in the haystack.

Thanks for pushing the envelope for the product!

1 Like

My first objective was to sift the pile of beats, but then push the one I want to the device via the web UI. This way I can update the beat from any device on my network with a browser.

Granted, you wouldn’t want that to be so open at a gig or in a hostile environment.

My next objective was to control the tempo from the same web UI. That’s done - wasn’t too tricky.

Next up is to open search the entire library of beats from the web UI. I’ll update on that soon. This would be easy except that I want the tool to be dynamic and to actively scan the library it’s pointed at.

The use of AI just speeds me along.

To me the song matching site is useful only when I don’t have an exact match. Perhaps I could integrate the AI to help there. Off to ponder.

2 Likes

Today’s progress, we have Tempo and Search, and exposing the site to any computer on my network accessing by iPad and computer now.

image
image
Tempo… type a tempo or use up/down key to increment

1 Like

Hey Cool

1 Like

Moving thru this pretty quickly… I’ve refined my search feature and I’ve added the ability to Stop / Start / Fill / Pause (unpause) with buttons on the Web Screen (mappable to keyboard as well).

I’ve done a little testing whereby I’m running the “app”/web server on my PC with the BeatBuddy hanging off the Audio Interface via Midi with the Web UI being on 1. web browser on another pc, 2. an ipad browser, 3. an iPhone browser. They all 3 can do full functionality, search, tempo adjust in real time, play controls etc.

I’m frankly VERY surprised something like this doesn’t already exist considering the age and maturity of the BB product.

I’m actually very curious if this app seems “useful” to everyone else or if they just have some other way of doing this which is sufficient and productive.

FWIW, I have invested a minimal amount of time in this – maybe 10-12 hours over the course of about a week.

2 Likes

Today’s enhancement is to search…

It will now search first through your BB Collection locally for the “searched song”, if it finds nothing, it searches the BeatBuddy song matching site.

Then you can push the result to the pedal, and it now persists the song pushed on the page.
collection search “hit”
image


collection search “miss served by songmatch”

Click the match from the list and it’s a local search for the suggested match

WOW… I’m only 5 days into this project!

2 Likes

Could Siri or Alexa control this app? Just a thought. I’m intrigued with your work so far.

I’d have to figure out what make Siri/Alexa access web pages or if they can. I’ve never played with that stuff. I’m curious what you were thinking to make Siri/Alexa do and when? I like the idea.

I was thinking that you could tell them what song or artist that you wanted. You can tell Siri songs in your recordings that you want to hear so why not have her search your BeatBuddy library?

I’ve not yet gotten to research any of the “assisted” options.

I got busy on UI enhancements

Also, now when you search for a song and match with the song match option, I take the BPM suggestion and the song, and now apply both to beatbuddy.

I’m going on vacation for a week. I’ll pick this up when I return.

Cheers, bluetex

2 Likes

@bluetex this is amazing. Really cool. I would like to use this tool that you’ve created. How can I hop on?

I need to do some work still on the controls and then figure out a solid/easy packaging. Stay tuned as I’m going to need a coupling of testers once I get those things settled. I’m on vacation this week, so nothing new until next.

2 Likes

enjoy the vay-kay!

Back to work as we’re back from vacation. Today I tweaked some usability items. Mostly it was “Sync the BPM” in all scenarios including if the local library has the song. I wanted the tempo adjustments to use the real song values which meant figuring out how to read from the BB with the Python library “mido”.

The controls now work for all song controls too.

I think I’ll be ready to have some test users soon. Couple of days.

1 Like

The only addition you may need to add to this @bluetex is to create a setlist. That would be so cool, you can control it off, fully from your device than stooping down to the BB everytime.

1 Like

I can look into that… TBH it should be pretty simple to search then add to list. I’ll just have to make a way to store the list and remove from it once things are played.

I’m in the difficult phase of preparing for others to use it and remembering all the esoteric things I did to make my dev instance work (and not wanting everyone else to go thru that)

I’ll take a break from that and fiddle with a setlist

great idea

2 Likes

I’ve spent a couple of days on bugs, issues with mido’s default backend python-rtmidi, and got back on track yesterday. I also wrote a little parameter setting / checking code and boot sequence. I tried to make the whole thing an .exe for windows and failed. This may just have to be a little python app.

This is where it takes you if your parameters in the saved file don’t seem to work.
image

I’m going to take on the setlist idea ASAP. Then I’ll pop it up to GitHub for some people to try it out.

bluetex

1 Like

BIG updates. Let me see if I can remember them all.

  1. Added Setlist
    – setup a toggle between the genre list and the setlist.
    – gave you the ability to import a saved one (json file)
    – save the existing one (as json file)
    – make one on the fly by clicking and searching
    – as you submit the setlist to the beatbuddy (in whatever order, it removes the song from the setlist) – more reason to save them if you like them.

Select a Drumset:
you can change the drumset after the song has been pushed to beatbuddy.

This thing is ready for some of you to try it. So far I’ve only tested it on Windows 10 with python3.

Set list togged on… picked the first song from the list


You can remove songs just by clicking the red remove button.

the selected song (or in this case metronome 9/8 workout) is removed automatically from the setlist.

Reply with “I’m in” … and I’ll take the first 5 responses as my beta babies.

bluetex