User input question

Hey everyone

First time post, long time lurker.

My question is as follows:

I have a project, a midi controller with presets and banks, that I want to add the ability to set a user definable name and then assign it to the current preset. In other words a custom name for each preset in the controller.

I however cannot seem to wrap my head around how to do this.

My setup is a Nano with a 16x2 LCD and rotary encoder for navigation.

Any help would be gladly appreciated!

Forget about the Arduino for a moment

What needs to happen to give the preset a name ?
Is it a midi message and if so, what is the message ?

The preset name would need to be set via a settings menu, utilizing the rotary encoder. Does this make sense?

Does this make sense?

OK, but exactly what message do you need to send and how ?
Can you give an example

So you need some kind of menu system, using the encoder?

It won't be sending the name, the name will only be displayed on the device. It's more for myself to give the preset with it's settings a custom name, eg the name on a song the the settings are relevant to. I also already have a menu system for the settings. Was thinking of maybe doing a function that gets called from the settings menu...

micahvdm:
It won't be sending the name, the name will only be displayed on the device. It's more for myself to give the preset with it's settings a custom name, eg the name on a song the the settings are relevant to. I also already have a menu system for the settings. Was thinking of maybe doing a function that gets called from the settings menu...

Do you mean that the Arduino program will have a list of names and you want to use the rotary encoder to select one of them?

If so, put the names into an array and use the encoder to increment a variable that acts as an index into the array.

char nameList[3][] = {"NameA", "NameB", "NameC"}; // hope I have the syntax correct

// encoder updates value in nameNdx

selectedName = nameList[nameNdx];

...R

This is like getting blood out of a stone

Please provide more details of what you are currently doing, how you are doing it and what you want to do

Sorry, let me try to elaborate more. The controller has 20 presets.
Each preset has 5 midi cc and PC commands that it sends. These are set via menu that then stores the settings to the eeprom.

What I would like to achieve is to be able to assign a 16 character name to each of the presets, but it must be editable on the controller, eg with the rotary encoder. This would then need to be stored in eeprom too.

Does this make sense?

micahvdm:
Does this make sense?

Does what I wrote in Reply #6 make sense to you?

If I have got it wrong (which is very possible) it will help if you describe how I have it wrong. The way I have described matters will be understood by other readers here.

...R

I'm thinking maybe the OP wants to build a name a character at a time using the rotary encoder to select a letter from A-Z then move to the next letter. and so on. If was going to do anything like that I'd want a couple of buttons one to say "That's the letter I want, move to the next letter" and another to say "That's the end of this name, save it". Not impossible but sounds like a bit of a pain to code.

OTOH I could be completely wrong. And if I'm honest I don't really care. Why do people find it so difficult to say what they really want?

Steve

So, the Arduino is the controller, it controls 16 preset values and you wish to give each preset a name on the display but that information is not transmitted anywhere. Is that correct ?

Well, it sounds possible, but the 16 names will be tedious to enter using the rotary encoder and you will need one or more buttons to navigate between the presets and/or commit the name to EEPROM. I suggest that you limit yourself to uppercase letters and a space only as otherwise name entry will become even more tedious.

Do not try to incorporate this into your current project to start with. Get the entry and name saving/display working in a separate sketch first then incorporate it into your project. If you are not likely to change the names very often then I would go as far as to suggest that you write a standalone sketch to save the labels to EEPROM using the keyboard for entry then just use the values previously stored in your main program

Exactly what Steve said. Essentially naming the preset one character at a time.

micahvdm:
Exactly what Steve said. Essentially naming the preset one character at a time.

No only a pain to code but an even bigger PITA for the poor user.

...R

See post #11

I will try this out on a separate sketch as suggested and report back