Chord TX Mode gemerate or other solutions

Yes, that makes sense to me, and I understand. However, the buttons on the accordion do not only send one channel with a note but two channels, each with the same note. It would be better if each button sent only one channel with a single note.

I’m not seeing the link here:
Midihub’s Dispatcher doesn’t care about the incoming channel of a chord.

The ā€œIndikationstonā€ produced, however, is deliberately channel specific as explained.

I think I recall you saying (it’s a while back now) that the ch2 Riehe 3-6 were the ones you were interested in.
Do you now want to do something additional with Ch1 Riehe 1-2?

To ensure only Ch2 enters the Dispatcher, just place a Channel Range Filter before it.




Now going to take a closer look at your preset…
SORRY! just realised you uploaded the pdf again. Please upload the preset that you screenshots show.

I’m not currently at the place where the Midihub is. I still only want to work with rows 3-6. Sorry, the labels on the images are incorrect—Row 1 is actually Row 3.

What matters to me is that in Row 3, Button 1 and Button 2 are outputting two indication tones:

  • Button 1: Ch4 G3 & Ch7 G3
  • Button 2: Ch3 C2 & Ch2 C2

For Button 3, it’s correct, as I’m only getting one indication tone:

  • Button 3: Ch1 D0

I think I’ll wait to see the actual preset, if you don’t mind! :wink:

kleini_triad_identifier_Klein.mhp (1.1 KB)

Thanks.

I don’t have any quick answer for you and am puzzled by

because Ch7 G3 and Ch2 C2 are not in the table of Indikationston!

Neither is it possible (AFAIcansee) for one chord to output two notes.:asterisk:
Which chords are Button 1&2 producing?

by the way

I went through the Transforms so far and put the settings in the Description
here it is for reference

#ch1

B0⇒C3, C#0⇒C4, D1⇒C5, C0⇒C6

#ch2

B0⇒C#6, C1⇒C#4, A#1⇒C#3, C#2⇒C#5,

#ch3

A#1⇒D6, B1⇒D4, A2⇒D3, C3⇒C5

#ch4

A2⇒D#6, A#2⇒D#4, G3⇒D#3, F4⇒D#5,

#ch5

G3⇒E6, G#3⇒E4, F#4⇒E3,

#ch6

F#4⇒F6, G4⇒F4, F5⇒F3,

#ch7

F5⇒F#6

:asterisk: If a Indikationston is not picked up by the banks of Transforms it will proceed with it’s channel 1-7 until it reaches the Virtual C → Channel Remap → MIDI A line when it is removed

Yes, I thought so too, but it regularly happens with different notes. In this case, it would be Bb major and Eb major.

See extra notes just added to prev post.

Now I note that you’ve got two stray lines at the bottom.
I don’t know what these are for.
They might be interfering with your output.

Which Bb/Eb Major chords? I need to be sure so I can try to replicate?
Lemme check the table…


UPDATE:
AFAIK, Bm/A# Maj chord is not in the table and hence not covered by the preset.

I asked this

awhile back.

Now, D4 F4 A#4 → ch3.C2 is in the table but that’s an inversion of Bm/A# Maj

SOooo, I think we might have two issues here:

  1. I need to know the precise notes values (preferably as Note Numbers so there’s no ambiguity) entering MH MIDI A which seem to give these ā€œdoubleā€ notes. Then I can track that down and if I can replicate. I cannot see how there can be an issue but it’s now bugging me! :asterisk:

  2. I will need to see a list of all the precise note triplets you will need. It’s starting to look like the assumed set of notes is too small (at present the root notes run from C4 → G#4 (just)) and I need to redesign. This may not be a big deal but I won’t be sure until I see the full range


:asterisk: This might be best to send as a MIDI monitor csv
(MIDI monitor: Settings… → Export as CSV once you have set View → Note Value Display → Note Number)
This way, I can replicate exactly, including timings.
Do the same for the full triad list, please; it’s easier to transfer than reading screenshots!

PS. My next available time to look at this will be Sunday…

The top button is Bb major, and the second one is Eb major. I can also check which three notes are sent from the chords when I’m back on-site, if that helps. The bottom two rows usually have no meaning. I can already display the indication tone before the transformation, and two of them are already showing up there.

Update:
Then I will write you a table with the following content: the required chord, and the notes that are output on each respective button. Is that enough? After that, I could read out the indication tone, set the transformation, and input the target tone. Do you need any other information? I’ll need some time until I have all the data, as I have to press all the buttons and then enter them into the table.

See extra notes in previous post!

All clear. I will select the input, press all the buttons one after the other, and send you a CSV file for each row. That will be a total of 4 CSV files. I’ll be away all weekend, but I’ll take care of it as soon as possible.

"Attached are the four CSV files.
Row 4 contains the major chords, row 5 the minor chords, row 6 the dominant seventh chords, and row 7 the diminished chords.
The order is always the same (from top to bottom):

Bb
D#
G#
C#
F#
H
E
A
D
G
C
F
Bb
Eb
Ab
Db
Gb
Cb
Fb
A

Each chord type is structured in this order for major, minor, dominant seventh, and diminished chords.
I left a 3-4 second pause between each note so you can see in the timeline when I pressed the next key.

I hope this works for you. If anything is missing, let me know!"
CSV.zip (6.6 KB)

OK @kleini, give me a little while to parse that.

By the way…
Having suspected my original approach wasn’t going to cut it for your full range,

I’ve developed a better approach that will cover everything and doesn’t need a table to work out what the Indikationston will be for each triad:

I’m just documenting this now, but will take a pause and check your chords will work :slightly_smiling_face:

Okay, I can mostly follow you. Can I rely on the indicator tones in column G of the Excel sheet being correct, or should I double-check the calculations? If you send me the preset, I can also test it myself.

In the Excel sheet, there seems to be an error in column H. The purple chords should be minor, right? Blue would be dominant seventh, and orange would be diminished.

I programmed everything; the patch is attached. I believe everything is working, but I still need to do a final check to ensure the chords are musically correct. I’m not entirely sure whether the correct notes are being triggered for the diminished chords.
Could you please take another look at my patch?
On channel 3, a bass is being played, and I want to transpose the notes A2 to B2 down one octave (to A1–B1) on channel 3. Where is the flaw in my logic chain below?

2025-04-09 Gitarre Midihub mit Bariton tiefer.mhp (2.0 KB)

2025-04-09 Gitarre Midihub mit Bariton tiefer.mhp (2.0 KB)

This is the solution. Thanks a lot

1 Like

For readers coming to this later, Kleini’s preset now takes any octave of root notes and calculates a unique ā€œid noteā€ for each tri-chord based on based on the note.

it works as in this hint:

where..

  • ..the lowest note dictates the Channel of the ā€œid noteā€
  • ..the 2nd note decides its octave
  • ..and the third note tells us what Note Name the ā€œid noteā€ uses

This means that the same chord shape will give the same ā€œid noteā€, only the channel changes eg:

chord gives id note name
Em → Ch1 D#1
Fm → Ch2 D#1
F#m → Ch3 D#1

The preset is quite intricate and it’s probably not obvious how it works.

As it has some crazy potential for generative music, I may find the time to document it properly and put it up on Patchstorage.


In the meantime here’s the briefest of breakdowns.

The preset is in four sections


This is the main section…


…where a tri-chord is turned into an id note.
The four mapped Transposes are the key here

This is the output section…

…where @Kleini took the id notes coming from his chords and transformed them to the actual notes he wanted.
Note how each line deals with just one Note Number/Name with each Transform handling just one channel.
(We used Poly AfterTouch as a safety measure so no note got re-Transformed)


the third section is just for MIDI monitoring purposes…

…to be able to check the incoming chord vs intermediary messages vs id note produced
This can be deleted


The final section is independent, allowing @Kleini to play bass notes direct from another bank of keys:


I will add a shaded version of the main section to point out pipes that can be safely modified

1 Like

for those who want to adapt the preset

Apart from the entry Channel filter, the purple shaded pipes here…

..are the only ones that might need changing.

  • Change the (unmapped) Transpose so that your lowest possible root note is adjusted up to middle E = 64.
    (The whole system pivots around 64 as a reference point so incoming notes are shifted to align with this)

  • Change the two shaded Rescales only if your use-case needs different ranges for note 2 or note 3 of the tri-chord

    The preset is set so that each Note 2 has a range of 10 notes (on from the root)..
    ..and each Note 3 has a range of 12 notes (on from the 2nd)..
    …this gives 12channels x 10octaves of notes = 1440 tri-chords


Other adopters may prefer different combinations.
(With a little more work, a 4-chord version would be possible with say, 15 x 5 x 5 x 5 combinations)


for those who want to decode the preset

The mapped Transposes are the key:

The two Transposes on separate lines modify note 2 & note 3, respectively; preparing the final ā€œoctave + noteā€ Transposes toward the end of the main block.

Further, see that Note 2 is Transposed according to a mapping derived from Note 1 :asterisk: …

..and similarly..

.. that Note 3 is Transposed according to a mapping derived from Note 2.

It is this technique that gives us the ā€œrelativeā€ ranges that make this new version work


:asterisk: mapped Transposes are also the reason why 64 is important as a reference point in this system!

1 Like