How to import new MIDI phrases into MMS

The Yamaha Mobile Music Sequencer (MMS) app for iPad is a fun tool, but it cannot import MIDI files or new musical phrases. This limits its real-world usefulness. One way to import MIDI is to slave MMS to another sequencer and play MIDI track by track into MMS. If your goal is new phrases for remixing or composition, you then face the laborious task of cutting, pasting and editing new phrases. Overall, this process involves a lot of manual work!

I just finished experimenting with a backdoor method for importing new MIDI-based musical phrases into MMS. See this page for all of the gory details.

MMS phrases are stored in Apple binary property list files (plist) with the “yms2” extension. The Apple plutil tool prints plist file contents and converts a plist file between XML and binary form. The XML provides a way into the guts of a phrase file and lets you change phrase properties or, ta da!, replace the MIDI data with your own MIDI data. The MIDI data in the binary yms2 file is a Standard MIDI File (SMF). The MIDI data must be encoded in base64 text format when working with XML. Fortunately, there are plenty of base64 conversion tools available on the web.

Once you have a new yms2 file in hand, use Apple iCloud or iTunes file sharing to transfer the yms2 file to your iPad and MMS. Be patient, though. Sync’ing is not instantaneous and it may take several minutes for the phrase file to make its way into MMS.

As a test, I converted the main and fill sections of the PSR-S950 “Jazz Funk” style to 60 (!) new MMS phrases in yms2 format. As Lou would say, here’s your sweet taste. The ZIP file decompresses into 60 phrase files with the “yms2” extension. Through iCloud, you’ll need to transfer these files to the mobile documents folder belonging to MMS. When you launch MMS, it will import the new files and update its internal catalog of phrases.

Giving DetroitBeat “Soul”

I decided to have another go at Yamaha audio style conversion. This time I converted the PSR-S950 “DetroitBeat” audio style to an all-MIDI style called “DetroitSoul”. The name “DetroitSoul” seemed appropriate since most of the MIDI rhythm parts are taken from the Yamaha preset style “Soul”.

The conversion process was a little different.

  • Load DetroitBeat to set up the mixing console and the DSP effects.
  • Enter Style Creator and create a new style. Turn off the audio part.
  • Copy all non-rhythm parts from the MAIN and FILL IN sections of DetroitBeat into the new style.
  • Identify candidate donor styles for the MIDI rhythm parts. The “Soul” and “MotorCity” styles sounded the best (e.g., similar groove, no conflicting beats, etc.)
  • Audition the candidate MAIN and FILL IN sections. “Soul” was the best fit.
  • Copy the RHY1 and RHY2 parts from “Soul” into the new style (DetroitSoul).
  • Build a table of possible donor styles for the INTRO and ENDING sections.
  • Audition donor INTRO and ENDING sections which have the same length as the INTRO and ENDING sections in DetroitBeat.
  • Copy the donor INTRO and ENDING sections into the new style.
  • Double check and fix up the variation effect (DSP1).
  • Copy the OTS settings for DetroitBeat into the new style.

The process was smooth, but still required a lot of button pressing!

Here is a table with INTRO and ENDING section lengths. This table could come in handy when converting other audio styles to MIDI.

Section   DetroitBeat  Soul  MotorCity  FranklySoul  70sChartSoul
-------   -----------  ----  ---------  -----------  ------------
INTRO 1        1        (1)      1           1            1
INTRO 2        4        (4)     (4)          5            4
INTRO 3        8         4      (8)          8            8
INTRO 4        1         1       1           1            1

ENDING 1       2         1      (2)          2            2
ENDING 2       5         3       3           2            3
ENDING 3       5         4      (5)          4            4
ENDING 4       1        (1)      1           1            1

The parenthesized items in the table indicate the source rhythm sections that were copied to the new style. Please note that nothing was copied into ENDING 2. I couldn’t find an appropriate replacement and the ending sounded good enough by itself. Sometimes the right thing to do as a musician is lay out!

ENDING 3 ran on a little too long and the extraneous beats sounded like the drummer made a mistake. I shortened the section length to 4 bars.

DSP1 is configured as a SYSTEM variation effect. Here are the effect settings and parameters:

Category: REAL DIST
Effect: ST AMP VT

COMP SW          ON
COMP SUSTAIN     0.4
COMP LEVEL       6.0
DIST TYPE        Crunch
DIST DRIVE       7.8
DIST EQ          Mid Boost
DIST TONE        7.0 
DIST PRESENCE    6.0
DIST OUTPUT      24

Overall, the end result is musical. The Soul beat is not quite the classic Motown groove. (Think “I Can’t Help Myself (Sugar Pie Honey Bunch” by the Four Tops.) I have a few phrases from the old Yamaha QY70 that might fit and someday I’ll look into it. In the meantime, enjoy the new style DetroitSoul.

Way back in ’97…

Way back in the 1990s, Yamaha developed and sold the QY series of ultra-portable MIDI sequencers. The penultimate model in the QY series is my pal the QY-70 (purchased in 1997). I still occasionally use the QY today and this post is my mini-shrine.

The QY-70 combines a MIDI sequencer, a tone module, a Chiclet keyboard, and arranger-like chord recognition, styles and controls. The QY is about the size of a chunky video game controller and that’s a lot of functionality for a small box of that size! The tone module is a complete XG-compatible sound generator which still interoperates with XG-compatible software and hardware (like the Yamaha Mobile Music Sequencer iPad app). The QY can be attached to a standard MIDI keyboard (or computer) through 5-pin DIN plugs. This makes it easier to enter notes and controller data. You can also split the keyboard and play the QY like an arranger with chord recognition in the left hand.

The QY-70 has a lot of content: 128 styles based upon an internal library of 4,167 phrases. A musician can create new phrases from MIDI data and can create new styles from the built-in phrases and user phrases. The QY-70 can import and export Standard MIDI Files (SMF) through the PC-/Mac-based QY Filer program.

Of course, in many ways, the QY-70 shows its age. The XG sounds suffer from short loops and the effects are not up to the quality of modern day algorithms. Chord recognition is a little bit rocky although one can split the keyboard into three zones such that “On Bass” (slash chords) can be played. The QY lacks a true auto-fill, auto-start and auto-stop which are essential for live performance. The QY styles also sound dated. Certain styles (rock and pop) were pretty lame back in 1997 and probably did a lot to give arranger keyboards a bad name.

However, the QY does a great job integrating the sequencer, tone module, arranger functions and content. Workflow is smooth. If necessary, the musician can drill down and edit MIDI event and controller data in scrollable “event list” format. In fact, the QY’s editing support was comparable to computer-based sequencing programs of its day such as Opcode Musicshop or MOTU Freestyle. The editing facilities exceed those of some contemporary, high-end arranger keyboards such as the Yamaha Tyros.

I still use the QY-70 from time to time because its workflow is compatible with my musical process. I don’t really write original tunes, but quite often, I have the lead sheet for a new song that I need to learn. This is where the QY’s pattern and chord tracks come into play. I first annotate the lead sheet with measure numbers, main sections (A or B) and fills. Then I enter the chords, choice of style and style sections (main A, fill-AB, etc.) into the QY. The editor is simple and easy to use although it forces one to scroll linearly through the song. In literally ten minutes, I have a basic accompaniment and then can play (and possibly record) the melody against the backing track.

This is the kind of process that I wish I could use on the Yamaha MOX. The MOX is not an arranger keyboard and does not have the same notion of pattern and chord tracks. The QY’s pattern and chord tracks are independent such that I can easily change the choice of style or style section. This capability is great for trying out a tune with a whole different style/attitude. The style and chords are cooked into a MOX pattern section when the section is recorded and experimenting with style means re-recording entire sections.

You can see QY-like technology at work in modern arranger keyboards and the Yamaha Mobile Music Sequencer. The Motif, MOX, PSRs, and Tyros all have a built-in library of musical phrases although they use these phrases quite differently. The Motif/MOX expose the phrases as playable arpeggios while the PSR/Tyros keyboards embed the phrases into styles. It’s fun to MIDI the QY to the MOX and play the QY styles through the MOX sound engine. It’s amazing how much better some of those old styles sound when played through a decent sound engine! Unfortunately, you lose the power of an integrated tone module and sequencer.

The Yamaha Mobile Music Sequencer (MMS) strips away the concept of a style and is 100% phrase-oriented. Songs are broken into sections where each section is a group of phrases that play concurrently. MMS follows the chord progression that is programmed into a song section and harmonizes the phrases in the section. The musician arranges the sections into a full song arrangement. Sounds are produced through software virtual instruments that are better than the QY, but not as good as the MOX.

MMS comes with a library of rock and pop phrases. Yamaha sells the QYPACK that, holy smokes, is a subset of the old QY-70 phrases! Thus, a small part of the QY-70 lives on. The QY phrases get a sonic bump from the virtual instruments. The MOX phrases (arpeggios) are vastly superior since they are derived from later, better-played arranger styles (circa 2007) and the superb MOX sound engine.

All in all, the QY-70 is still a fun, useful tool for song writing and arranging. If there’s a computer science lesson in all of this, it’s the power of good standards like 5-pin MIDI, XG and General MIDI. 5-pin MIDI lets musicians mix and match hardware and software — something which is lost with MIDI-over-USB.

I’ll have more to say about MMS and arranger keyboards in future posts.

Science!

And shout that word like Thomas Dolby!

I’m in the process of transitioning the site to its new domain name, sandsoftwaresound.net. So, here’s just a few philosophical thoughts in the meantime.

I’ve been reading “Weird Life” by David Toomey. His book is very well written — one of the best bits of science writing that I’ve read. He teaches nonfiction writing at UMass and deserves a tip o’ the hat for bringing this aspect of biology to a mass audience.

In one paragraph, he summarizes the essential elements of an experimental science. A science is a body of theory which is testable and verifiable through experimentation. Robust theory allows us to make predictions and to design new experiments. BTW, if the theory is valid, then experiments should be reproducible, too.

I like program profiling and performance analysis as a field because it is one of the few areas in computer science that exemplify experimental science. Performance events and counters give us the means to observe and measure the behavior of our programs in interesting ways.

I especially love it when I can predict an outcome such as the number of operations performed by a program. On the flip side, I especially hate it when I cannot make predictions. This is the main reason that I dislike performance events with ill-defined behavior or hardware that doesn’t provide a stable time reference. This situation is like giving an astronomer a rusty telescope with a crummy warped lens. How can an experimental scientist make observations and take measurements with a broken instrument?

These limitations aside, I would still encourage teachers and students to study performance measurement and analysis. These activities are a fun and different way to think about programs and the underlying computational engines. If enough of us band together, we even may be able to convince computer manufacturers about the need for well-defined, reliable performance monitoring and measurement!

If you’re looking for another good read, please consider Lance Fortnow’s “The Golden Ticket.” It’s an introduction to the P-NP problem and is also geared toward a broad audience. If a high school student (or anyone else!) thinks that computer science is “just programming,” please point them toward this book.

What’s this all about?

Electronics and computing are great hobbies. You can even make a career out of them!

I’m a computer scientist and engineer who is exploring Raspberry Pi, Arduino, Papilio and other terrific, low-cost toys. I’m hoping to share my knowledge and discoveries as I go along so that you can benefit from my experience, too. Students and educators are especially welcome! In addition to new information and activities, I will eventually post classroom material about data structures, computer architecture, and computer design which I used when teaching these subjects.

Thanks for visiting this site and I hope that you will check back often for updates. For the moment, comments are closed. Once I gain a little more expertise with WordPress, I will open the site for comments. Thanks, again.