New to programming, but have an idea. What's next?

Im very new to coding and programming language. Ive been learning, but want to make sure im headed in the right direction and see if there is an easy method for something.

I’m the band leader at my church, and I’ve had an idea the last few months to create an app, web app, or program that is pretty much a database of the songs that we play with the ability to find songs that have similar chord progressions or tempo.

It doesn’t really need to show the chord charts like ultimate guitar, but a list of the songs that can be filtered by the musical properties. I have PDFs of most of the songs and don’t know if that would be easier to collect the data from than compiling a list of every URL from Ultimate Guitar and figuring out how to scrape the information.

Any ideas on what I should focus on learning first or beginning steps to get something going with this? Its much appreciated.

1 Like

All systems are build upon data.

You need to understand Data Modeling to have a useful system.

Master that and everything else is cake.

I think you should start with the most important step of choosing the right IDE (i.e integrated development environment), I believe this step is as important as Harry Potter choosing the magical wand and than proceed with the magic of web development.

You could use something like the Database application in Open Office to begin creating a database locally. That could help you explore what data you need.

I sure don’t understand what you are trying to say. If you want to explore the possibility of scraping the data then you could write a program that does that that is independent of the other programs. If you are successful at scraping the data then it should be easy to use the code in a larger program. The question is whether you want to do the scraping online. My guess is no. My guess is that you will want to have a program read each PDF and save the data in a table or some tables but you would likely do that in a desktop type of program, not online. The data could then be put online. If you do a desktop program then the question is what computer language. I think it is possible to use PHP but I do not know what you are capable of so I can’t help any further.

Have you identified the suitable approach to develop the app?

You’ll have to be careful of copyright. You very likely don’t own the songs and you could be liable for copyright infringement if it gets out to the public.

If you can spell out in text what the chord progression of each song is, put that text in the record’s row in the ‘chord’ column.

Make a script that displays all of the database ‘chord’ column fields in a dropdown, but each chord shown only once.

Let the dropdown option selected run a script that will display every song from the database that matches that chord.

These are actionable steps. You can ask for help on each one if your research hits a blank wall.

This could be a very interesting thread, but people should be aware that @robrhapsody90 has not been back to the site since he created this a month ago.

Thank you everyone for your feedback. I realized that I wasn’t receiving email notifications of the replies to my post and things got busy!

I’m mainly hoping to make this a database of songs that can be filtered by the characteristics. I won’t be including the lyrics or chord charts within the program. This should help to stay safe of any copywrite infringement as far as I know.
That’s definitely a good idea. The harder part is that songs may be played in one key when a male sings it and another key when a female does. So I have to find some way to convert the chords into the number they land on the scale. Ex: Chord chart is in G. G=1 Am=2 Bm=3 C=4 D=5 Em=6 and repeat that for every key the songs could be shown as on the chord charts.

1 Like

Disagree. In my opinion systems (or at least the interesting ones) are about capturing and enforcing behaviour of systems. Things like “C may only happen if A and B have already happened, unless D also happened, because then C may not happen at all”.

If all your system does is pump data around without any interesting behaviour and/or rules around that you could -and should- just use Excel.

Also see (one of my all-time favourite talks)


I’m not really familiar with IDE’s at all, so I’ll have to look into how they work and which would assist me the most with the project. Thanks.

What I meant by that is that I’m not sure how to make sure that I’m not scraping online way more information online than I really need for this project as I am currently focusing in on one genre of music at this time.
If I were able to use the documents that I already have, or convert them to HTML, it would keep it more manageable.
I did find a site that only has the resources for the specific genre I’m looking for, and the terms of the site leave it open to use the resources however I need to. I did begin to scrape all of the data, but one thing I ran into was that I couldn’t figure out how to only scrape pages under a specific directory of the site. It would only let me scrape the whole site. Also when opening the scraped files on my PC, they were not able to be opened with anything. On a Mac they opened as HTML.

I’ll have to look into the Open Office databases for sure!

I agree. There would definitely be some type of formula to approach the data unless every song that is analyzed is put in the same key.

I’ll definitely check out the video you mentioned.

And what is A, B, C and D?

They are data so thanks for proving my point. :wink:

You are twisting my words…

Processes manipulate data, so my assertion is still correct.

Do you perfrom “interesting” processes on thin air? :rolleyes:

I don’t think you should worry about that. It’s absolutely not important when you’re beginning and when you understand what you’re doing it comes down to personal preference. Most beginners courses will recommend you something, if they don’t then Visual Studio Code is a solid choice for a lot of stacks.

Also, I’m glad my ping brought you back!

So the system analyzes a data model to make an output, or does the system create a data model?

If I have the different possible chord progressions and a type of theory for probability, what format should that be put in that a system could analyze?

There are documents found online that would help me as a foundation of concepts and rules, but I’m not sure what type of model would need to be created for the system to be useful.

Here’s an example: Chord Progressions

Yes! i’m glad as well! I received a browser notification on my mobile device when you did. It’s a good thing, because I forgot the URL for this forum since I didn’t receive any emails.

I do have Visual Studio installed already and noticed it seems to have a lot of addons/packages that could be helpful.

Visual Studio and Visual Studio Code are 2 very different things. Microsoft has a long history of really terrible names.

1 Like

Oh my! Okay, I’ll definitely take a look then.

edit: It does look like it is Visual Studio Code that I downloaded a while back.

One is much more powerful (VS is more powerful)