A digital guitar neck, customizable by me…
May 23, 2010 2:41 PM   Subscribe

I'm not a programmer and don't really want to try to become one, but I'd like to build a little graphic app/utility and am wondering if it might be possible using something like Flash or HyperCard or some other similar no-coding program. Details within…

This is for learning and playing about with the guitar neck. I want to have a grid representing strings and frets on which I can click to have a dot appear, indicating a fretted note. I'd like to have the option of having dots also appear at all octaves and unisons of the clicked note within the grid, maybe with some ability to color code the dots. Something similar may exist already, which I'd be glad to hear about, but if I can build my own, I'd want to start tweaking up variations, like with non-standard-tuned and more than 6-string necks, etc. Anybody have an idea how this could be doable by a determined non-programmer?

I don't really want to hear about all the reasons I should learn some simple programming language instead because I've taken a glance at some, even spent some time with a LISP-based app, and they basically all look like exquisite torture to me, reason enough to abandon the whole project. I'd be doing this for pleasure, not practicality… I do understand that a tool like Flash, for example, might be just the thing only if I were to undertake some ActionScript study, which I might be open to, as I own Flash… But I hope there's some other options.

Or maybe some simple sort of existing building-block bits of code or scripts in an approachable language that could be used to make one dot become many in very specific locations within a field…

(On a Mac, if that matters.)

Thanks!
posted by dpcoffin to Computers & Internet (12 answers total)
 
Flash is probably a good bet, because you can draw and lay out your assets before getting into coding. Even then, you have the option to go all-code, or make use of the timeline to render different states. You can get a free trial of Flash and try it out.

JavaScript/HTML is also a good bet.
posted by klanawa at 3:09 PM on May 23, 2010


I used the phrase, "good bet" twice. I must be getting old.
posted by klanawa at 3:09 PM on May 23, 2010


This would be a lifetime of exquisite torture to do without programming.

If you did it in Flash or hypercard or something, with no coding, you'll need to manually define all possible combinations of frets and tuning. You'd make a blank fingerboard, then one for 1st fret low G, then another for 1st fret low G plus 1st fret E, then another for 1st G and 1st A. I'm pretty sure this comes out to several thousand hand-made fingerbaords for just one tuning.

On the other hand, I can solve it in about fifty lines of code that would take about one afternoon of work. To do it graphically would probably take another afternoon of work.
posted by Netzapper at 3:17 PM on May 23, 2010


Response by poster: OK, Netzapper, but then I'd have to pay you! Not against that in principal of course…

But what does it mean "do it graphically", please? And how many years would I need to get to be able to do this myself, your way, even if not as quickly? What is your way, btw?

I might be able to pay for an afternoon or two, but the interesting part is elaborating on it as a tool while trying it out over the long haul, not just building the first working model.

And I'd considered the build-every-possibility-by-hand thing and agree that'd be hell, plus much more hell no doubt just to keep track of them while linking them together. Is that the only way Flash or JavaScript could do it?
posted by dpcoffin at 3:36 PM on May 23, 2010


I know it's a programming language, but since doing it manually would be torturous (as previous posters have mentioned), you might be interested in Processing. You'd only need to follow the first two or three tutorials, I'd imagine, as it appears you essentially just want to draw shapes in response to mouse clicks.

From their website:

Processing is a simple programming environment that was created to make it easier to develop visually oriented applications with an emphasis on animation and providing users with instant feedback through interaction.

Originally ... targeted towards artists and designers.

posted by caaaaaam at 4:00 PM on May 23, 2010


Hypercard is (was) not non-programming. It was pretty easy programming with a lot of constraints, but it was coding, and not necessarily ideal for your requirements.

While it's not inconceivable that someone has already put together the building blocks for what you want, it's likely that if they've gotten close enough to make it easy for you to piece those blocks together, they've already done it themselves. Programming languages are general by design (generally), and what you want is very specific.

The thing is, what you want is algorithmic, and computer programs are excellent at spewing out all the outcomes of an algorithm.

I know almost nothing about Actionscript, but from what little I do know, it'd be a good tool for this.
posted by adamrice at 4:13 PM on May 23, 2010


But what does it mean "do it graphically", please?

"do it graphically" means that I could solve the actual problem (finding all fingerings of a given note or notes on a given tuning of a six-stringed instrument with chromatic frets) in an afternoon, but that graphically representing those solutions would take me another afternoon's work. [Note: "me" in this case mostly means a competent programmer, not me specifically.]

And how many years would I need to get to be able to do this myself, your way, even if not as quickly? What is your way, btw?

Eh, the problem itself is Intro to Computer Programming sort of work. Only real tough part for a neophyte programmer is doing the graphical interface. It's not hard programming, mind you, but it does require a lot of knowledge about the particular graphical toolkit you're using. And that means reading a lot of documentation that most non-programmers consider arcane and cryptic. Starting totally from scratch, it'd take a bright, interested person about two or three months to get to the point where they could build a simple graphical interface for this thing.

I might be able to pay for an afternoon or two, but the interesting part is elaborating on it as a tool while trying it out over the long haul, not just building the first working model.

Well, then you'd need to learn how to modify the tool by programming. However, modifying well-written code is a far less daunting task than building a GUI program from whole cloth. In classes I've TA'd, we've often given first-year compsci students graphical frameworks in which to work--all of the boilerplate's been taken care of by myself or the professor, leaving the students with only the meat to do. By and large, they do fine with that.

And I'd considered the build-every-possibility-by-hand thing and agree that'd be hell, plus much more hell no doubt just to keep track of them while linking them together. Is that the only way Flash or JavaScript could do it?

Well, JavaScript is a programming language. There's no way to do anything in JavaScript without programming. The person above who said "JavaScript/HTML is also a good bet" is leading you astray. It's one of the least suitable platform choices I can think of for this project, in that it's both heavily programmatic and not well-suited to freeform graphics.

As for Flash... Well, I'm not a Flash guy. But you'll note that my do-it-by-hand discussion above was predicated on the idea that there'd be no programming whatsoever. Without programming to automatically generate the fingerings, you're forced to manually generate them. Those are pretty much the only options on any platform. There's no button in the toolbar of Flash for "generate fingering widget".

However, in Flash, you can definitely get away from having to do much graphical programming. You can draw the fingerboard out using the Flash tools, and then concentrate mostly on solving the problem itself using ActionScript. You'll still need to tie the problem solution into the graphics programatically, but you'll save yourself a few lines of graphics code.

As a programmer, I think the labor savings for using Flash are quite minimal here. The code to draw an abstract fingerboard and some blue dots for stopped frets is relatively trivial. And since the graphics aren't animated, the only tricky part is associating fret numbers with their graphical location on the screen. Like I said, an afternoon's work.
posted by Netzapper at 4:17 PM on May 23, 2010


If you happen to have an iPhone or iPod touch, the GuitarToolkit App from Agile Partners does just about everything you described, up to 6 strings. Custom tunings, scales all up & down the fretboard, chord inversions all the way up the neck. An amazing piece of software for $9.99. (And even if you throw in another $199 for the cost of an 8 gig ipod touch, you're still coming out ahead of what you'd pay a good programmer for a day's work. (And for another $9.99 you'd have a four track recorder too.)

You might check out some of the web-based stuff at Gootar.com. I've never played with the scale tools, but the chord finders come in handy.

If you do find yourself tinkering with code, Scale & Chord Generator might be a good place to start. I ported the chords component to PHP and used it to build a Drupal module which is admittedly rough around the edges.
posted by usonian at 4:43 PM on May 23, 2010


OP, take usonian's advice.

I charge about $500 a day (and I'm on the cheap side). You're absolutely coming out ahead with an iPod and off-the-shelf software.
posted by Netzapper at 4:47 PM on May 23, 2010


Response by poster: Much thanks, all, for the thoughtful and detailed answers, and the links. I'd asked some folks the same thing over a decade ago; discouraging that the answer's still basically the same.

I'll certainly check out the iPad app, but my interest is in having my hands on the graphics, not relying on fixed existing ones, in hopes that adjusting them would be a help in making unseen-before patterns emerge from well-known ones. It's worked before with paper, and with some vector versions I made.

Back to the drawing board…
posted by dpcoffin at 5:26 PM on May 23, 2010


Response by poster: Back to the drawing board…

Well, hey, maybe…

Maybe just creating a big, deep Illustrator or Photoshop file with 12 identical offset note groupings on separate layers and with a dozen or more layer styles that could be assigned to them, including hidden, and with perhaps each string and its dots shiftable in parallel to create different tunings, and maybe a bunch of layer masks, might be the way to do this. Not an app, but workable perhaps, and adaptable…hmmm.

Thanks again.
posted by dpcoffin at 6:33 PM on May 23, 2010


Response by poster: Not an app

Well, with a little help from Flash Catalyst, my big, deep Illustrator file might be able to become an app. Maybe things have progressed a bit in a decade after all…

I'll go see.
posted by dpcoffin at 11:01 PM on May 26, 2010


« Older Word art   |   How do I find my dead father? Newer »
This thread is closed to new comments.