Loopy Pro: Create music, your way.
What is Loopy Pro? — Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.
Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.
Download on the App StoreLoopy Pro is your all-in-one musical toolkit. Try it for free today.
MIDI Drum …..are there Standards…..is there a mapping Shortcut
Hi,
SooOOOoooOOooo.. I use Cubase for home recording on a windows PC (yeah, I know).
I have a few different drum VSTs. One is Groove Agent, which comes with Cubase, another is EZ Drummer (because hey, it’s says EZ right on the package)
SOooOOoooo…..wait, I already said that. My game plan (Plan 6B-432) is to use the VST drums on my PC to creat grooves because it’s very easy. THEN……. export the MIDI files over to my iPad, because MIDI is s’pposed to be MIDI anywhere. THEN….. import them into Atom Roll, and use that to ‘play’ a drum part on a drum synth.
I tried doing this with EG Pulse. UUuuuhhhh the problem is the mapping. Ahhhh the mapping, it always comes down to a compass and a map.
Yeah….so it sounds NOTHING like what it did on the PC because, for example - the MIDI note that triggers the kick and the MIDI note that triggers the snare on the PC- - - - do not trigger a kick or snare in EG Pluse.
SooooOOOoooooOOoo…. man I keep sayin’ that.
Is there any way to export/import a MIDI mapping like (this MIDI note is a kick, this MIDI note is a snare, this MIDI note is a ride, the MIDI note is a crash)
Cuz right now….my night rock backbeat sounds like a broken popcorn machine on my iPad; know what I mean?
T H A N K S!!
Comments
The "standard" is the General MIDI Percussion map, but not many apps follow it. So it's a bit of a wild west trying to go between apps, and platforms.
To achieve a little bit of generality, you could create 2 arrays in StreamByter, one mapping your PC VST into GM, then another mapping GM into your target iPad app. Put the script between the MIDI stream and the target. You could do it with one array, mapping the VST notes direct to the target. I suggest using two because it separates the two problems, interpreting the VST notes and mapping the target. Makes it more maintainable down the road, in case one or the other changes in future. Of course, you might be lucky and one or the other might already be using GM.
There was a standard but for some reason many developers just decided to use their
own mappings. Probably because hardware vendors implemented their own to control
users and avoid any other company from leveraging their hardware user base with optional products that used the same mappings. Behind stupid "standards" decisions there's usually a financial benefit for someone to make life difficult for users to switch away from a product or vendor. Yamaha has a MIDi "standard" that probably has a different drum map... not sure.
This is a serious issue for many of us and yet one a developer could fix and sell
maybe 100 copies for $5. Hmm... maybe that's why no one made one. It might need to sell for $30 and then sell 20 copies.
There is a General MIDI Standard map for drum set sounds:
35 Acoustic Bass Drum
36 Electric Bass Drum
37 Side Stick
38 Acoustic Snare
39 Hand Clap
40 Electric Snare
41 Low Floor Tom
42 Closed Hi-hat
43 High Floor Tom
44 Pedal Hi-hat
45 Low Tom
46 Open Hi-hat
47 Low-Mid Tom
48 Hi-Mid Tom
49 Crash Cymbal 1
50 High Tom
51 Ride Cymbal 1
52 Chinese Cymbal
53 Ride Bell
54 Tambourine
55 Splash Cymbal
56 Cowbell
57 Crash Cymbal 2
58 Vibraslap
59 Ride Cymbal 2
60 High Bongo
61 Low Bongo
62 Mute High Conga
63 Open High Conga
64 Low Conga
65 High Timbale
66 Low Timbale
67 High Agogô
68 Low Agogô
69 Cabasa
70 Maracas
71 Short Whistle
72 Long Whistle
73 Short Guiro
74 Long Guiro
75 Claves
76 High Woodblock
77 Low Woodblock
78 Mute Cuica
79 Open Cuica
80 Mute Triangle
81 Open Triangle
An app should have input tables for the most popular drum maps (or the ability to create an "input" mapping to this table) and output tables for the same apps. General MIDI would be a conversion format as well as an optional input and output mapping.
Since we are mostly "users" here the tools that come to mind to solve this problem elegantly are Mozaic and Streambyter and it's possible someone has already created a solution that would work well in AUM and potentially other DAWs (many DAWs did not implement MIDI FX capability expecting it to be a "converter" and not just a MIDI generator).
The hard part of doing this in Mosaic is the research on all the popular drum maps... maybe the problem could be simplified with a really tight drum kit list of 11 or less. Then the Moziac GUI with 22 knobs could let the user dial in the input to output Note values from 1-127. With "shifted" pages of 22 knobs a larger range of mappings could be possible.
Ships that pass in the night. Good answer.
Heh! I've built and tested a scheme which simplifies this as much as possible. You need to create separate StreamByter Include files for each app. Each initializes array L00 to L7F with the target note values for the GM index at that position. For example, put the target Bass note in position 35, Snare in 38, etc. The script loads the Include for the intended source (VST in the OP's case), and inverts it into the upper half of the L array. Then it loads the Include for the target app, resetting the lower half of L. As notes arrive, you use them to index the upper array, giving the corresponding GM note. Use that to index the lower array, giving the target note. Easy. Some one-time effort creating these mappings from GM to each app. Then you can map anything to anything.
@Vmusic . This prolly sounds like a lot of gibberish to you, but it's actually a complete design. If you tell me the note:instrument pairings for your VST and target drum app, I could write it in a day. The prototype is already running; the real work is in building the specific maps.
(Folks with real computer experience might think this would not work. Initialize the same array twice? But SB actually works completely sequentially, so the Load block can initialize an array, run a function using those values, then initialize the array again. I doubted so I had to try it, and it works!)
An inconvenient situation is created by the Bram Bos apps, which use 8 black keys for 8 instruments. Trouble is each kit changes the instrument assignments, so you'd need maps for each family of similar kits. There are probably similar annoyances all over the map.
I was curious about costs and I noticed StreamByter is now free. Moziac is $5.
As a possible source of maps, Xequence AU Pads ships with over 40 drum maps built in, many of these are user contributed.
Even the drum modules within a single app like Gadget use distinct maps. Vatanator has a different map for AU and IAA.
However, a lot of drum apps have customizable maps, so there is still hope for sharing assignments.
https://patchstorage.com/remap-multi-channel-midi-drums/
I haven't tried it, but @_ki always does great stuff.
I prefer mfxConvert. I set up the translation once for each use-case, and save it as a preset.
@Vmusic - you're always, always, going to run into this problem because almost nothing uses the GM midi mapping. And even if it did, you have way more possibilities for notes in a GM mapped drum groove than you'll probably have in whatever target app you have. Add to that the fact that most drum apps are flexible as to what sounds are on what pads.
There's no silver bullet for this problem.
General midi standards are horrible that’s why they were abandoned.
Good call... mfxConvert for $3 and "save to AUM" for each re-mapping.
It's worth noting that mfxConvert was developed by Nick of @audeonic , the coder of StreamByter and MIDIFire.
I don't use Save to AUM myself. I use the plugin's own save mechanism so that the presets are portable between hosts. Yes, mfxConvert is just a minimal UI frontend that builds Streambyter code in the background.
I always save my drum tracks according to the standard general midi map. I then send the midi to Nurack Midi Remap, where I have made mappings from standard midi mapping to all my drum apps. And then I send the remapped midi from Nurack to the specific drum app.
By doing it that way, it is easy to switch from one drum app to another 😊
Example:
LK -> Nurack Midi Remap (EGLM1 map) -> EGLM1
If I should want to use another drum app all I have do do is select the remap in Nurack and send the midi to the app selected in Nurack.
Example:
LK -> Nurack Midi Remap (MV08) -> MV08
It's been free for a good while now (years). That's partly why I suggest it as a drop-in solution for MIDI tangles like this. It's not fancy, but it is powerful when used wisely.
I have played around with StreamByter and Mozaic. Mozaic - I can write scripts for. StreamByter - seems rather complicated, and I don’t know there’s great tutorials and/or documentation.
@White - I didn’t Nurack Midi Remap in the app store. I see the general Nurack app, but none of the apps/pictures show the remap app that you show.
Do this to select Midi Remap in Nurack:
You find some good links in AB’s wiki page for StreamByter
It is interesting, sort of like a combination of Basic (really simple) and Assembler (pretty arcane). I offered to build one for you, if you can provide the data for the two maps (from GM to the source and target). That would give you a working example. The way I suggested, mapping source to GM, then GM to target, means you can map anything to anything, and you only need to create the data for each component once.
Does this mean you can only remap 12 input note events? If so, what if the next octave mapping is completely different?
If you are asking about Nurack, then you can add as many octaves as you want:
In the example below, I have mapped values from 35 to 46 in the right Midi Remap module and from 47 to 58 in the left.