OS X Musical Scales Program

Posted:
in Mac Software edited January 2014
I've written a free program that displays musical scales based on starting note and selected scale mode. Clicking the triangle opens a drawer showing all the chords of the selected scale.



Here's the link and a screenshot:









Let me know what you guys think! I'm open to any questions, comments, or feature requests.
«1

Comments

  • Reply 1 of 27
    banchobancho Posts: 1,517member
    Quote:

    Originally posted by PBG4 Dude

    I've written a free program that displays musical scales based on starting note and selected scale mode. Clicking the triangle opens a drawer showing all the chords of the selected scale.



    Here's the link and a screenshot:









    Let me know what you guys think! I'm open to any questions, comments, or feature requests.




    It costs too much and the video card sucks.









    oops, sorry wrong thread...
  • Reply 2 of 27
    onlookeronlooker Posts: 5,252member
    Thanks I'll check it out.
  • Reply 3 of 27
    pbg4 dudepbg4 dude Posts: 1,611member
    Quote:

    Originally posted by onlooker

    Thanks I'll check it out.



    Please do!
  • Reply 4 of 27
    onlookeronlooker Posts: 5,252member
    Is there a sound output?



    You should try an add a timing selector, and a run through (up, and down) with sound so you can hear what each scale sounds like using different time signatures.
  • Reply 5 of 27
    pbg4 dudepbg4 dude Posts: 1,611member
    Quote:

    Originally posted by onlooker

    Is there a sound output?



    You should try an add a timing selector, and a run through (up, and down) with sound so you can hear what each scale sounds like using different time signatures.




    I'm working on MIDI output for a future update. Right now I can call my midimain( note ) method and it will play "note" for one second.



    I don't think different time signatures would affect note durations as much as changing tempo. I do plan on adding tempo altering when I add chord arpeggiation.



    This way the user can sing along to work on their pitch, or play along to familiarize themselves with how to play certain scales/modes/chords on their instrument.



    Now if Apple had something more helpful than "PlaySoftMIDI" in their developer docs I would add instrument playback selection (because I know it's in Quicktime somewhere). I'm hoping that Tiger has more Cocoa MIDI information / help because it took me 2 weeks of pulling my hair out to modify "PlaySoftMIDI" (which isn't even in Obj-C, this example is C code in a C++ file) so that I could call it from my Obj-C program.



    Thanks for your input! It makes me happy to see people working with my program.
  • Reply 6 of 27
    kim kap solkim kap sol Posts: 2,987member
    Is this the Universal Access version of your app?
  • Reply 7 of 27
    pbg4 dudepbg4 dude Posts: 1,611member
    Quote:

    Originally posted by kim kap sol

    Is this the Universal Access version of your app?



    Excuse me? What do you mean? Are you talking about the large letter size?
  • Reply 8 of 27
    pbg4 dudepbg4 dude Posts: 1,611member
    I've just updated to fix a refresh bug. If you downloaded my update from yesterday then you want this update from today. Just grab the latest file dammit!
  • Reply 9 of 27
    this looks pretty cool, this could potentialy be really handy for me. I think the suggestions people have said so far would cover most of what additional I'd want. Having sound, and displaying in musical notation would be nice features to have.
  • Reply 10 of 27
    pbg4 dudepbg4 dude Posts: 1,611member
    Quote:

    Originally posted by tonton

    In version 2.0, I'd like to see the scales output in musical notation, with a choice of octave and clef. Also, in version 3.0, guitar tabs would be nice for chords as well, if you can develop an algorithm to show the best possible fingering for each chord.







    Just in case you haven't noticed, I'm at version 0.3.1



    I'm a bass player so I don't know about doing g****r tab. Something to think about, I guess. If I could figure out how to output different sounds (right now I can output a piano sound) then I'd consider showing the chords on an actual g****r neck, or bass, or a keyboard, or ...



    Thanks for the ideas.
  • Reply 11 of 27
    Put out another update if anyone's interested. I just added some scale mode descriptions (as you can see from the screenshot above).



    Things are pretty hectic for me right now so I haven't been adding as much as I would like to the program. Hopefully that will change relatively soon so I can get some of the above suggestions added.
  • Reply 12 of 27
    Another update is available for your consumption.
  • Reply 13 of 27
    I like the idea and the look.



    I'd love more historical info on the significance of each mode and sound output button would be great....just a piano is fine.



    An easy image to make also might be to show a keyboard with all of the notes highlighted that make up the scale. A visualization of the pattern would be great for piano beginners like me.



    BTW, are triads referred to as "one, two and three" or "first, second, third?"
  • Reply 14 of 27
    The chords (triads) would be the as 1st, 2nd, 3rd, etc. not one, two, three like I have them marked in my program. I'm working on a routine to properly name the chords with Roman Numerals (i.e. I, ii, iii, IV, V, vi, vii in the case of Ionian mode).



    Sound output is also coming.



    The keyboard is a good idea. I'll look into adding one to the program.



    Thanks for the input.
  • Reply 15 of 27
    Chord output has been added!
  • Reply 16 of 27
    Quote:

    Originally posted by PBG4 Dude

    Chord output has been added!



    Just in case my above quote is too ambiguous, I've added sound playback of the chords. The chord notes can be played as the whole chord, or check the Arpeggiate checkbox and hear the chord played one note at a time.



    I'm reworking the GUI, as I'm starting to not like the drawers so much. Probably the program will end up as one larger window.



    There's still plenty more to come!
  • Reply 17 of 27
    Hey nice job on the program.



    Some feature requests : If you're looking for more to do, why not try other scale types? Your current scales and modes are based off the major scale and its modes. Why not include scales outside of traditional major scale harmony, like the blues scale, diminished scales, and the like? You'd also need to include the melodic minor scale and its modes, which are important in jazz music. You'd probably need another pop-up menu to indicate the scale type you're dealing with (major scale and modes, blues scale, diminished, etc.).



    Probably a better way to do it would be to select a chord type - major, minor, dominant 7th, diminished, and then present a series of scale possibilities under each. Under major, you'd have the regular major scale, lydian, major pentatonic, some others. Under dominant you'd have the regular mixolydian, but also the altered scale, lydian dominant, etc. Under minor you'd have dorian, aeolian, phyrgian, etc.



    I'm trying to find a good online source for this stuff - probably the best is this one.



    Have fun!
  • Reply 18 of 27
    Thanks for your input, BRussell. It is much appreciated.



    Right now my program shows basically how much I understand of music theory at the moment, which is why you don't see melodic/harmonic minor scales, bebop scales or even Hungarian minor scales.



    In my last lesson I just started learning how to solidify the resolution of ii - V - I in non-major scales (Can you say V7b9b13? I knew you could) so there is a sense of finality when moving back to the I chord (which is more likely a i chord). Believe me, as I learn more theory I'll figure out how to add all these crazy scales/modes to my program.



    But, first I have to nail proper enharmonic display. My program still doesn't display Cb, Fb, B# & E# so these notes and the logic to display them have to be added. Then I'll have to worry about double enharmonics like C+ or Cbb, etc.



    Then I want to add the ability to pick any of the different instruments offered by Apple's built in synth. I've been picking apart Pete Yandell's code ( http://pete.yandell.com/software ) to figure this out. So close, but yet so far is how I would describe this feature at the moment.



    If you could help me to understand all those scales you mentioned that would get me much closer to understanding how to add them to my program. I'm in agreement with you that I'll need another drop down to pick the scale type, then I can work from there.



    I'm thinking this feature will force me to rethink some of logic in my program. I say this because I use a 2D string array to hold all the notes, and an int array to hold the generic TTsTTTs for spaces and just start at a different array element depending on which mode is selected. I'm thinking I'll need separate arrays for each of the different scale types and just add some logic to determine which array I'll need to use to build the proper scale.



    Hmmm, now you've got me thinking; if I create a 2D array of all the possible Tone / semitone orderings for each scale I could pick which series I want and the chord calculations, etc. would work just the same as before. Hmmm, might not be as difficult as I thought (3 minutes ago) to add all those advanced scale types.



    Again, thanks for the input. It makes me feel like people other than myself are actually using this program!
  • Reply 19 of 27
    brussellbrussell Posts: 9,812member
    Here's exactly what I was talking about. It's a "Scale Syllabus" organized by the basic types of chords and under each one, a whole bunch of different scales that could be used under each type of chord.
  • Reply 20 of 27
    Quote:

    Originally posted by BRussell

    Here's exactly what I was talking about. It's a "Scale Syllabus" organized by the basic types of chords and under each one, a whole bunch of different scales that could be used under each type of chord.



    Thanks for the link, BRussell. I've printed out the file and I'm studying it. I don't want to add these scales to the program until I get a better handle on them, simply because I don't want to try and program something I don't understand myself. New scales will be added as I grok their essence in fullness.
Sign In or Register to comment.