Start a new topic

I wrote a program to allow most common chords to be played on the Instrument with just 1 to 2 fingers

After many months of works (on and off), I finally made it to a point that I can show people my progress.


First of all, I should point out that my guitar playing skills is at a level that I can only play the most basic chords. But I want to play accompaniment when I sing. 


When I first found out that the Instrument has a Smart Strum mode, I wanted to give it a try. I got to say that, I was quite disappointed. I only got to play 12 pre-selected chords. On top of that, as easy as it sounds, going from chord 1 to chord 12 would require someone to travel all the way across the entire fretboard. 


Some people might give up at that point. But fortunately, I can program. So, I started writing a program to remap the Instrument's grid mode so that most common chords can be played with just 1 to 2 fingers, with no pre-selection required like the Smart Strum mode. 

image


As seen from above, the first row of "strings" are assigned the C, D, E, F#, G#, and A# major chord. The second row of strings are assigned the C#, D#, F, G, A and B major. To play a minor chord, technically, I will need to hold the root's note and the note directly under it. For example, to play the C# min, I need to hold (refer to the image above) the C and the C#. But I found a shortcut -- by holding the "cross section" between the 2 notes, Instrument 1 will recognize that both notes are being played. Therefore, with just 1 finger, I can play both major and minor from C to B. 

Just the major and minor chord alone will be enough for most pop songs ever written. However, I also want to add in additional flexibility, so I added the 7th chords to my program.


image


The 7th is a bit more complicated. Using the D chord as an example. If I want to play the D7, I will hold the D note with one finger, then hold the note to left of the note directly under the D note (which is a C#, if you refer to image 1). To play the Dmin7, I will start with the Dmin (holding the crosssection b/w D and D# using one finger), and hold the same "7" note. D Major7 is similar to Dmin7, starting with the crosssection M7 above, and the same "7" note. All other 7th chords will follow the same pattern, except for C and C#, because that's the end of the left edge. So, for C and C#, I simply reverse the direction and use the right side as the "7" note.

Right now, I've programmed it to a point that all major, minor, and 7th chords root position can be played. I am planning to add support of suspended and diminished chord to it, but in my use case, those are not necessary. 

You can see how it's working in action from this video (please bear with my singing): 

https://www.youtube.com/watch?v=Fq_lfk7S0BU 

Frankly, I am hoping Artiphon could officially release a feature similar to what I am doing. Even better, if they make an Instrument 2, they should consider adding this and built-in sound to the device. 


1 person likes this idea

I'll play around with it some more during the week and let you know my thoughts. Thank you so much for helping me.

BTW, you probably noice it already, but just in case ... you don't need to hold the chord. If you do hold the chord, adding a finger will trigger a chord change (ex, from C to C7). The downside is, if you want to change from C7 back to C, you do need to raise your fingers. If you just raise the finger that makes the 7th chord, it will take too long for the change to register.


 

>> Yes. I sing and play in a band so having the portability of using it with an iPhone and not having to carry around a laptop or a bigger computer is very convenient.


I didn't know the iOS browser doesn't support Web MIDI -- but even if it does, the built-in sound is nothing more than a quick way to get it working. It just doesn't sound too good.


I have a tiny laptop that is just slightly bigger than a Nintendo Switch when the lid is closed. It's usually used by server administrators who often needs to diagnose servers in tight space, but the size is perfect for my purpose. 


Yes. I sing and play in a band so having the portability of using it with an iPhone and not having to carry around a laptop or a bigger computer is very convenient.

I think it's great so far. I can't wait to see what you do next!

Great. So, you always use the iOS app to play with the Instrument 1? Since the official desktop app has no built-in sound, and there's not an Android version of the official app, I always use the Instrument with third party apps.


I don't know the quality of Garage Band's guitar sound, but I would suggest you to try the NI Kontakt Player and NI Kontakt Factory Selection sound library. While the free version doesn't have an acoustic guitar sound, the Jazz guitar sound is quite good. Artiphon has a semi-official preset for the Kontakt player, and the instruction to install it can be found at: 


https://community.artiphon.com/t/an-easy-way-to-get-started-on-windows-or-mac-ni-kontakt-player/445


Let me know how you feel about my app. 

OK. We have sound!!! I had never used the Instrument 1 with a computer and didn't realize that I had to have Garage Band open in order for the sound to come out. I'm so sorry that I didn't know that and hope that I have not wasted your time.

Ah ha. I think I know why it isn't working. Your note grid is not the same as mine. Check out the following screenshot: 


image


You need to configure the grid exactly like the picture shown. At the very minimal, set the C-2 (minus 2) note on the left side and the C8 to F8 on the right side (the bridge). This way, you can play the C major chord. If it works, then you can go ahead and do the other notes.

Let me know if it works.

I'd love to tell you my story, but don't want to put all the gory details online here! If you're interested you can send me an email at suemusik@mac.com

image





Unfortunately, my son doesn't have a Mac. From what I can find from the web, the only web browser that supports Web MIDI on iOS is a small app called "Web MIDI Browser". The problem is, if it's such a niche browser, it may not support other web standards. 


Let me give it some more thoughts, and see if I could figure out what went wrong.


If possible, take a screenshot or picture of your Instrument 1 configuration (the full screen with the grid), and post it here. I would love to get it working for you. The thing is, when I wrote the app, I was only thinking about taking a shortcut so that I don't need to relearn everything I've learnt 30+ years ago. I never thought that it could help people who have problems playing due to health issues.

I added some logging codes to the web app, when you get a chance, reload the page and try the built-in instrument again. Open the DevTools by pressing F12, and just do a C major chord and strum. See if the DevTools console show something like the following:


image


Still nothing. Tried the Output suggestion also. If I had an Android or a Windows computer I'll bet everything would work fine. It will be interesting to see what happens on your son's iPhone, Does he also have a Mac by any chance? You are amazing, even if I can't get it to work for my situation. Can't figure out why Artiphon won't support these kind of Features. 

This part is ok, the most important part is the grid. You need to configure it to send out different notes than the standard preset. I used notes from C-2 (minus 2) to F3. The bridge uses C8 to F8. Those are notes that are at the two extreme edges of the MIDI standard.

When you press the C Major chord (as shown below), does it say "Cmaj" on the screen? Also, keep in mind that only the top 6 rows are mapped (I did do some experimental mapping below the top 6 rows, but they won't work reliably at this time).


image


>> What do you mean by "make sure the instruments mode has been switched"?


Sorry for not being clear. I was referring to the preset knob. Make sure you turn it to the preset that you newly configured for my web app. Even I sometimes forget to do that.

My gut feeling is that it has something to do with the Built-in Instrument because my experience is that if chord changes are showing up properly, MIDI signals are being sent out. Also, the built-in instrument does take a little while to be fully downloaded.

You may give MIDI Output a try by setting up a virtual MIDI port ( Instruction: https://dialogaudio.com/modulationprocessor/guides/virtual_midi/virtual_midi_setup.php ). After that, uncheck "Use Built-in Instrument", set MIDI Output to the virtual MIDI port, press "Initialize" again, then set your MIDI in of your VST (or whatever virtual instrument you are using) to the virtual MIDI port.


image

Is this correct?


Login or Signup to post a comment