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

When you post a message and then don’t come back for a month, people forget what the questions was and you lose momentum… :wink:

All systems are built upon data. Period.

A “Data Model” describe said data and its relationships to other data.

Processes then can manipulate that data and turn it into useful “information”.

A simpified example of where I wanted you to start a month ago…

A BAND can have one or more MUSICIANS

A MUSICIAN can play one or more INSTRUMENTS

And INSTRUMENT can be played by one r more MUSICIANS

A BAND has one of more ALBUMS

An ALBUM has one or more SONGS

** Guessing here since I only listen to music **

A SONG can have one or more CHORDS

A SONG can be composed with one or more INSTRUMENTS

An INSTRUMENT can be used on one or more SONGS

A SONG can have one or more GENRES

A GENRE can have one or more SONGS

A SONG can be played in one or more KEYS

A SONG can have one or more EMOTIONS

A SONG can have one or more SONG_VERSIONS

Dig?

Start answering the questions above then come back and post at least some of them here.

More powerful to the point where it makes it much less useful.

1 Like

Depends on your point of view…though for novices, it’s more than most need…

1 Like

Thanks. I know! It seems I only had notifications on for mentions and forgot that this is one of the forums I was asking on. (The only platform that I have received response on as well) haha

The only ones that would really apply would be:
Songs can be in the following keys:
A
Bb
B
C
C#
D
Eb
F
F#
G
G#

Songs can have tempo of any bpm, but most often anywhere between: 50 and 150 bpm in the genre I’m focusing on.

All chords in a song can be converted to roman numerals to represent their position on a scale depending on the key you are in.

And progressions usually follow these general rules:

  • The I chord can go to any chord, but commonly goes to the IV or V chord.
  • The ii chord leads to the IV, V, V7, or I chord.
  • The iii chord leads to the IV chord.
  • The IV chord leads to V7, I, or V chord.
  • The V chord leads to the I, IV, or vi chord.
  • The vi chord leads to IV, ii or V chord.
  • The vii° chord leads to I, or iii chord.

Go buy a notebook and get some pens and start writing out your “Data Entities”

Song
Key
Chord
Tempo
Progression
and so on…

Now what is the relationship between each Entity? One-to-one relationship? One-to-many? Many-to-many?

Write these out in English statements as I did above.

Once you have that, come back here, type in what you wrote out by hand in your notebook, and let’s talk.

I mean, it’s only helpful if you’re using C# or if you need some sort of visual programming tools to help you (which is a novice thing).

Otherwise, for things like JavaScript, Go, Python, Ruby, and PHP, it’s not helpful one bit. Anything it can do that is helpful can be done in VSC, including debugging breakpoints. The only thing it gives you is 10x the memory footprint and 10x the boot time. And if you feel like you need a full IDE for Java, Go, or Node, Jetbrains still is king.

VS also still doesn’t run very well on a Mac, our .NET Core developers all run it through Parallels.

The primary advantage of Visual Studio Code is that it is cross-platform. It is available for Linux. Many developers do not consider Visual Studio Code to be an IDE; it can do many IDE things using plug-ins but it does not have many of the IDE features built-in that Visual Studio has.

This doesn’t really seem to me a like problem that be solved with only relational databases. I think this is more a machine learning problem and should follow suite with technology used to solve those types of problems. Relating similar music seems like something that is more machine learning than anything else.

So I’m currently using GNU Wget to download a site that provides all of the music that would need to be scraped. Then I’ll probably use Scrapy to scrape the information that I need from the specific directory locally and output as a CSV.

That’ll be a start to have Artist, Song, Key, and Chords involved in the order they come in each song. Hopefully that’s a good direction to get the overall song data.

Everything after that, I’m not sure about yet. Key conversion to the Roman numerals like the graph i posted yesterday or something to change all song keys to be the same which would transpose the chord order, ect.

So maybe learning the ins and outs of something like tensorflow? Or is there another recommendation for the type of data that I’m trying to analyze?

I don’t necessarily want to analyze similarities in audio tracks as songs can be played in many different keys. Songs can have the same “chord” progression (I V vi iii IV) but be recorded or played in completely different keys.

I pretty much want to do something a lot like Hooktheory has done here: https://www.hooktheory.com/theorytab/common-chord-progressions
and here

They show the common progressions with songs that share the same ones.
They have an open API as far as I can see, but I want to use a specific genre of songs.
Their database is very limited and involves more Popular music.

That’s just not true. There are plenty of options in each OS, many of them are cross platform. Atom and Sublime are both fully cross platform, as is VS now and all Jetbrains IDEs always have been. Basically, Notepad++ is the only one I can think of that isn’t cross platform and that hasn’t been a market leader in over a decade and lacks a lot of features that have become standard.

The primary advantage of VSC is that it’s an insanely good piece of software that does a lot of things better than the competition. It even has features that don’t exist outside of it. Such as Typescript-like hints in Vanilla JS.

1 Like

I am sorry but I guess I did not make it clear that I was comparing Visual Studio and Visual Studio Code. I had replied to a comment from robrhapsody90 indicating that they were not sure which one they were using and not sure which one to use.

As for as is VS now, note that I was not referring to development of cross-platform applications, I was referring to development by a cross-platform IDE. The following are the requirements for the Windows and the Mac systems but if you are aware of Visual Studio being available for use in Linux then that is very significant news; please share.

Well even still, that’s still not really accurate. they don’t really compete for the same market. If you’re doing some sort of .NET then you’ll need VS, but I’ve never heard of anyone using VS for anything other than .NET related development. Have you?

Nothing OP has said has lead me to think they are doing .NET development, so I don’t understand why it’s even being brought up. All I see is some elitism trying to say that “real developers use Visual Studio”, which is bonkers.

On the other hand most developers who work in stacks that don’t see big benefits from IDEs have switched over to VSC.


Sorry, it bothers me when people start throwing usless tech suggestions out to people trying to learn, especially when it’s ripe with misinformation. It’s not helpful and all it does is cause confusion.

To be completely honest - I don’t know. It just sounds like a machine learning problem. I’ve heard of Tensor flow but have never used it. ML is much different than general web development. ML and AI is a completely separate industry.

I wouldn’t worry too much about what tools to use until you figure out what the job is.

I usually start working up a project on scratch paper. I make a list of “musts” and “nice to haves”. I focus on the “musts” but keep the “nice to haves” in mind. Then I make a list of all the data that will be needed and try to figure out a good database architecture.

At this point I now need two things. A way to run code and a way to save code so I won’t need to repeatedly rewrite it. I most often prefer to use a simple notepad text file as a “clipboard” to write to and copy from, and the database CLI to paste into and run queries.

If you have an IDE that you like and already know then by all means use it if you prefer. The point I’m trying to make is you don’t need to use one. True, the bare minimum tools may not be as polished looking and the work flow may be less organized and slower, but they work.

1 Like

Very definitely. Visual Studio existed before .Net and C#. You seem to be unaware of MFC and ATL. And Visual Studio supported native Windows development without MFC and ATL. I have used Visual Studio since the first version plus the Micirsoft IDEs for C and C/C++ before Visual Studio.

I don’t know much about Xamarin but it was purchased by Microsoft and merged into Visual Studio at the same time that Visual Studio became free for most. I assume there was a licensing agreement involved. Xamarin is for development of portable applications, originally without .Net.

Visual Studio is also used for Windows device driver support (that does not use .Net).

Then there is Linux development with C++ in Visual Studio | C++ Team Blog. Do you see any .Net in that?

Visual Studio also supports Python but I don’t know much about that.

You suggested Visual Studio Code then the discussion of Visual Studio and Visual Studio Code got started because robrhapsody90 said they had it installed but they were not sure which one.

But yes, it is a problem that it is not clear what language and such is being used. When a question is vague like that it typically erupts into long discussions.

I agree. That is why it is important that I clarify the things said here.

Yea it mostly seemed to lead into a discussion that would have been better suited for a separate thread. :slight_smile:
I have both Visual Studio Code and the free version of Visual Studio downloaded, but would probably just utilize VSC as a starting place.
So far I have been trying to just complete the beginning steps with Github repos already available. Found a few started projects to assist with transposing all the songs to the same key. Wget finished downloading all of the pages from the site that provides the chord/song sheets I need. Once their all transposed, I’ll be starting a project to help analyze them. Not sure if the direction with be database or machine learning, but I’m continually finding information and datasets that will help once im there.

That is why it helps to ask clear and precise questions. Very general questions require long discussions that are more likely to drift far.

1 Like

Yea. Definitely. I just have a very general knowledge of the terms or direction I need to go.

Hi! I’d agree with hasan.raza and recommend you to have a deep look into the existing IDEs, as that’s very important to understand from the very beginning what you’re working with, what you can do with this very IDE, etc. Hope this helps :slightly_smiling_face: