By torsig1967
Fri Nov 07, 2008 11:25 pm
The "something about pad pair number" is an advanced discussion but also an extremely important one.
http://www7a.biglobe.ne.jp/~mpc1000/os2/pad_note.htm
I believe JJ should abandon this concept and implement JJ OS1 like functionality in JJ OS2XL as far as midi/pad-mappings are concerned. Here follows an in depth discussion why...
Since JJ OS2XL is on it's way this is a great opportunity to discuss this and maybe convince JJ. Anyone who takes a deeper look at this might come to the same conclusion as me. I'm not saying I'm right and I'm definitely not saying JJ is making a bad OS. However I believe JJ made a mistake with the current concept and I'm really interested in hearing anyone thinking I'm wrong explaining why.
--
Anyone who has had problems when trying to re-map programs to conform with en externally loaded midifile will be affected by this.
Anyone who has experienced programs (with identical but remapped pad layouts) responding differently to a sequence depending on if they are from JJ OS2 or JJ OS1 (Pad 187 and AkaiOS) should be interested.
It also has a huge impact on how MPC works with external midi keyboards.
--
Here are the biggest problems with the current midi-to-pad/pad-to-midi mapping concept:
=======================================================
1. When loading an external midi file (not a SEQ file) there's no way to adjust an MPC-program to correspond to the midi file. Example: midi file plays kick on C3. I want my Kick on pad A01 (or it's there already) - remapping makes no difference (it did on OS1). The only solution is to process the midi file with third party software on a computer, converting C3 to C#1, which is the default for pad A01.
2. When loading (remapped) OS1 programs and sequences (SEQ) on OS2 the results will differ depending on which is loaded first. Results varying depending on in which order files are loaded is very bad functionality and big cause for confusion.
3. When playing a remapped program (created on OS2) from an external keyboard, the mappings will not have any effect on the sounding result, pads will not change from default mapping. At midi out the original keyboard value is shown. At the same time the midi numbers presented in Step edit will indeed be the remapped values. When playing the pads on the MPC the remapped values are also presented both in step edit and midi out. This is very confusing and irregular.
4. The JJ OS2 concept contradicts the fundamental philosophy behind the MPC note mappings as described on page 78 in the Akai MPC 1000 user's manual. Although generally Akai OS is not as good as JJ OS2 this particular concept is really well designed, easy to use and to understand. The JJ OS2 version is confusing. The main reason why is that there is no bidirectional 1:1 correspondence between notes and pads anymore. In OS" a note 37 will always correspond to pad A01 while A01 at the same time can be mapped to another note; say 60 (C3). The result being a sequencefile containing 37 will be presented as 60 in step edit, A01 will sound although 37 (the data in the sequence) is mapped to another pad in the program map.
Here is an example which anyone who is interested could try:
===============================================
(external keyboard and midi monitoring needed)
Create a JJ OS2 DRM program and use in a sequence with track set to DRM mode. Let pad A01 be remapped to note 60 and pad C05 be remapped to 37 to avoid duplicates. Assign samples to the pads to make it easier to investigate.
(i). Hit PadA01 on MPC, pad A01 will sound midi note 60 will be sent on midi out during recording and playback. OK!
(ii). Hit C3(60) on keyboard, pad A01 will NOT sound but still note 60 is sent to midi out during record. Playing the recorded sequence will send 37 instead. Step edit shows 37 as well. NOT OK!
(iii). Hit C#1(37) on keyboard, pad A01 will sound but midi note 37 is sent to mid out. Note that in (i) pad A01 sent midi note 60. In playback and step edit 60 is presented. NOT OK!
With more complicated re-mappings and also when working with external midi files, these anomalies gets much worse. One could argue I shouldn't use DRM track mode for playing external midi but using MIDI track mode doesn't solve all these problems. Especially the mapping (or rather lack of) from external keyboard to pads is identical in both modes. There's still no way to use mappings with external midifiles. 50% of the functionality of mappings is lost in JJ OS2!
Discussion
========
My conclusion is that all these problems originates from a fundamental design mistake in JJ OS2. The general problem is that the pads have been given the mixed function of representing both sound data AND performance data. It's a much better idea to let the Pad represent sound data (like a S1000 keygroup) and let midi note number (ond such) represent performance data. A bidirectional mapping binds events to pads through the note-pad mapping.
The concept of mapping notes from the sequencer to pads in the sampler in JJ OS1 and Akai OS is much better. There the mapping is always 1:1 and bidirectional. If pad A01 is note 60 then playing 60 (on midi in, external midi file or internal sequencer) will trig A01 and note 60 is recorded. Playing pad A01 will produce 60 on midi out and on recorded sequence. This makes sense. If a program with another mapping (lets say where pad C09 is mapped to 60) is loaded then C09 is heard when note 60 is played on a sequence. This also makes sense.
In Akai OS and JJ OS1 a midi note and pad pair works both ways and you know that the pad will trigger the note number and the note number will trigger the pad. There's no magic, it's pure and simple. 60 is A01, A01 is 60 - everywhere.
This also makes it extremely easy to re-map a program to conform with external sequences, like grooves loaded from standard midi files. In JJ OS2 you can't re-map.
Duplicated representation = bad design
==============================
Theoretically speaking; in the JJ OS2 implementation; data representing an event (a note or a pad is hit) is written twice to the sequencer, both as midi number and pad number. Generally it's a very bad concept to represent and write data representing the same entity duplicated. It's usually a big cause for confusion and data corruption. It's also a waste of space.
I believe JJ invented this duplicated concept to solve what he refers to as the "Pad pair note problem". Maybe I don't fully understand this problem but I'm pretty sure he introduces a bigger problem with the duplicated pad-number/note-number concept.
Finally
=====
JJ OS and JJ are great. This discussion is not about whether his project is good or bad. This discussion is about trying to make JJ OS2XL even better by pointing out what I believe is a design error. A design error made with the best of intentions but maybe worth reviewing and correcting.
http://www7a.biglobe.ne.jp/~mpc1000/os2/pad_note.htm
I believe JJ should abandon this concept and implement JJ OS1 like functionality in JJ OS2XL as far as midi/pad-mappings are concerned. Here follows an in depth discussion why...
Since JJ OS2XL is on it's way this is a great opportunity to discuss this and maybe convince JJ. Anyone who takes a deeper look at this might come to the same conclusion as me. I'm not saying I'm right and I'm definitely not saying JJ is making a bad OS. However I believe JJ made a mistake with the current concept and I'm really interested in hearing anyone thinking I'm wrong explaining why.
--
Anyone who has had problems when trying to re-map programs to conform with en externally loaded midifile will be affected by this.
Anyone who has experienced programs (with identical but remapped pad layouts) responding differently to a sequence depending on if they are from JJ OS2 or JJ OS1 (Pad 187 and AkaiOS) should be interested.
It also has a huge impact on how MPC works with external midi keyboards.
--
Here are the biggest problems with the current midi-to-pad/pad-to-midi mapping concept:
=======================================================
1. When loading an external midi file (not a SEQ file) there's no way to adjust an MPC-program to correspond to the midi file. Example: midi file plays kick on C3. I want my Kick on pad A01 (or it's there already) - remapping makes no difference (it did on OS1). The only solution is to process the midi file with third party software on a computer, converting C3 to C#1, which is the default for pad A01.
2. When loading (remapped) OS1 programs and sequences (SEQ) on OS2 the results will differ depending on which is loaded first. Results varying depending on in which order files are loaded is very bad functionality and big cause for confusion.
3. When playing a remapped program (created on OS2) from an external keyboard, the mappings will not have any effect on the sounding result, pads will not change from default mapping. At midi out the original keyboard value is shown. At the same time the midi numbers presented in Step edit will indeed be the remapped values. When playing the pads on the MPC the remapped values are also presented both in step edit and midi out. This is very confusing and irregular.
4. The JJ OS2 concept contradicts the fundamental philosophy behind the MPC note mappings as described on page 78 in the Akai MPC 1000 user's manual. Although generally Akai OS is not as good as JJ OS2 this particular concept is really well designed, easy to use and to understand. The JJ OS2 version is confusing. The main reason why is that there is no bidirectional 1:1 correspondence between notes and pads anymore. In OS" a note 37 will always correspond to pad A01 while A01 at the same time can be mapped to another note; say 60 (C3). The result being a sequencefile containing 37 will be presented as 60 in step edit, A01 will sound although 37 (the data in the sequence) is mapped to another pad in the program map.
Here is an example which anyone who is interested could try:
===============================================
(external keyboard and midi monitoring needed)
Create a JJ OS2 DRM program and use in a sequence with track set to DRM mode. Let pad A01 be remapped to note 60 and pad C05 be remapped to 37 to avoid duplicates. Assign samples to the pads to make it easier to investigate.
(i). Hit PadA01 on MPC, pad A01 will sound midi note 60 will be sent on midi out during recording and playback. OK!
(ii). Hit C3(60) on keyboard, pad A01 will NOT sound but still note 60 is sent to midi out during record. Playing the recorded sequence will send 37 instead. Step edit shows 37 as well. NOT OK!
(iii). Hit C#1(37) on keyboard, pad A01 will sound but midi note 37 is sent to mid out. Note that in (i) pad A01 sent midi note 60. In playback and step edit 60 is presented. NOT OK!
With more complicated re-mappings and also when working with external midi files, these anomalies gets much worse. One could argue I shouldn't use DRM track mode for playing external midi but using MIDI track mode doesn't solve all these problems. Especially the mapping (or rather lack of) from external keyboard to pads is identical in both modes. There's still no way to use mappings with external midifiles. 50% of the functionality of mappings is lost in JJ OS2!
Discussion
========
My conclusion is that all these problems originates from a fundamental design mistake in JJ OS2. The general problem is that the pads have been given the mixed function of representing both sound data AND performance data. It's a much better idea to let the Pad represent sound data (like a S1000 keygroup) and let midi note number (ond such) represent performance data. A bidirectional mapping binds events to pads through the note-pad mapping.
The concept of mapping notes from the sequencer to pads in the sampler in JJ OS1 and Akai OS is much better. There the mapping is always 1:1 and bidirectional. If pad A01 is note 60 then playing 60 (on midi in, external midi file or internal sequencer) will trig A01 and note 60 is recorded. Playing pad A01 will produce 60 on midi out and on recorded sequence. This makes sense. If a program with another mapping (lets say where pad C09 is mapped to 60) is loaded then C09 is heard when note 60 is played on a sequence. This also makes sense.
In Akai OS and JJ OS1 a midi note and pad pair works both ways and you know that the pad will trigger the note number and the note number will trigger the pad. There's no magic, it's pure and simple. 60 is A01, A01 is 60 - everywhere.
This also makes it extremely easy to re-map a program to conform with external sequences, like grooves loaded from standard midi files. In JJ OS2 you can't re-map.
Duplicated representation = bad design
==============================
Theoretically speaking; in the JJ OS2 implementation; data representing an event (a note or a pad is hit) is written twice to the sequencer, both as midi number and pad number. Generally it's a very bad concept to represent and write data representing the same entity duplicated. It's usually a big cause for confusion and data corruption. It's also a waste of space.
I believe JJ invented this duplicated concept to solve what he refers to as the "Pad pair note problem". Maybe I don't fully understand this problem but I'm pretty sure he introduces a bigger problem with the duplicated pad-number/note-number concept.
Finally
=====
JJ OS and JJ are great. This discussion is not about whether his project is good or bad. This discussion is about trying to make JJ OS2XL even better by pointing out what I believe is a design error. A design error made with the best of intentions but maybe worth reviewing and correcting.




