FreePlay style deconstructed

Yamaha FreePlay styles for PSR and Tyros are terrific for music without rhythm instruments and strong rubato (variation in tempo to achieve a musical or emotional effect).

I’m customizing a few FreePlay styles with the intention of using them for liturgical music. In the first pass, I’m changing the OTS voice settings and I’m making a registration that calls up my go-to voices for traditional and contemporary church music.

Of course, my curiosity took over and I had to take a look inside of a FreePlay style or two using a DAW and Michael B’s StyleDump program. I have attached a text file with my working notes. The notes may be too much detail for most readers, so here is a quick summary of what I found. I’ve looked at only two styles so far: EtherealHymn (taken from the CVP-609) and OrganPlay1 (taken from the Church Organ expansion pack).

First off, how does it sound and feel to play a FreePlay style? The accompaniment is triggered and guided by the left hand as usual. (I haven’t tried FreePlay with AI fingering, etc. yet.) The accompaniment plays a gentle pad-like chord and a simple bass. The simplicity provides a blank canvas on which you can embellish to your heart’s content.

You might guess that the MAIN and FILL IN sections are quite simple and you would be right. The MAIN sections in the OrganPlay1 and EtherealHymn styles hold notes for 8 and 32 measures, respectively. The chord source in each case is CMaj7. The BASS track holds a single note (e.g., C2) through the entire section. The chord or pad tracks hold the rest of the notes that make up the CMaj7 chord: E, G and B. Harmony-wise, that’s it!

The FILL IN sections are similar and hold notes for just one measure because FILL IN sections are only one MIDI bar long.

Without a rhythm track, those looooooooong notes have a timeless quality. A musician would rarily — if ever — hold a chord that long. Thus, MAIN sections typically do not re-trigger.

Yamaha’s genuine contribution lies in the INTRO/ENDING sections and the fun MIDI stuff that happens during the MAIN sections. The INTRO and ENDING sections have more “orchestration” and consist of style appropriate introductory and ending phrases. For my own purposes, I will probably stick to the simple INTRO A and ENDING A sections as it’s generally hard to match up more complicated musical phrases with the main theme itself.

The “MIDI stuff” must have been fun to program. The EtherealHymn style has string and choir tracks. The string track has MIDI expression data (Control Change 11 or “CC11”) that repeatedly ramps up for two measures and down for two measures. The ramp pattern creates alternating string swells up and swells down. Other control change patterns are rather unusual and I’ll leave that for you to explore with a DAW! (All you need to do is to change the “.STY” or “.FPS” extension to “.MID” and import the renamed file into a DAW.)

One could create a basic FreePlay style from scratch. The MIDI notes in the MAIN and FILL IN sections are dirt simple. The fun part would be selecting instrument voices and effects with dynamic elements that give life to the accompaniment. Then there is the creative aspect of driving the voices and effects with MIDI controller data. For INTRO and ENDING sections, a little Bach or Mozart would do.

Hmmm, sounds like a fun wintertime project!

Review: MIDIPLUS miniEngine USB

First, I must apologize to the folks who drop in regularly to see what’s up. Between the holidays, new music, and final preparations for winter, there hasn’t been a a heck of a lot of time to blog.

That doesn’t mean that there aren’t new toys around the house!

One of these little gems is the MIDIPLUS miniEngine USB. The miniEngine is a General MIDI engine in a small blue box (approximately 3″ by 4″ by 1″). It has a bright blue three digit LED display, three buttons and a data wheel. Connectivity includes:

  • 3.5mm headphone jack
  • 3.5mm MIDI IN
  • USB Host (type A) port for MIDI-over-USB communications
  • USB mini-B connector for charging and power

The miniEngine comes with a short 5-pin DIN to 3.5mm adapter, allowing you to connect the miniEngine to a standard 5-pin MIDI OUT jack. The miniEngine has a built-in rechargeable battery (2500 mAh capacity).

miniengine

The USB Host jack should have raised your eyebrows. Most MIDI modules are USB “devices” with a type-B jack, which is intended to facilitate communication with a USB host computer.

The midiEngine is a USB HOST. That means you can connect a typical MIDI controller (with a USB type-B port) to the miniEngine and jam away. The midiEngine provides power to the MIDI controller, too! For testing, I tried the miniEngine with an M-Audio Keystation mini 32 and everything worked like a charm. I also drove the miniEngine using a Nord Electro 2 with success.

I didn’t have much success driving the miniEngine from a personal computer running Sonar. In this case, I connected the miniEngine to the PC over 5-pin MIDI. The miniEngine received MIDI data (i.e., its MIDI indicator flashes), but I wasn’t able to play back a standard MIDI file (SMF). Somewhere down the line — during the doldrums of February — I’ll try again.

So, how does it sound? Not bad! The audio output is relatively clean (no hums, pops or crackles). Some of the sounds like electric pianos, strings, and horns are quite usable. Don’t throw away your copy of Hans Zimmer Piano (211GBytes), however. As usual, a few of the voices are naff.

The three buttons choose the kind of data to be set by the wheel: VOLUME level, PROGRAM change, REVERB level. The miniEngine responds to the cooresponding MIDI messages when sent by the controller. Thus,

    miniEngine + controller = General MIDI synthesizer

The data wheel is the only downer; it feels and is pretty cheap. Otherwise, everything works as advertised.

But, wait! There’s more. While researching the miniEngine, I came across a customer comment stating that the miniEngine is based on the DREAM 2553. I pulled out a screwdriver and opened the case. Unfortunately, I’m not able to confirm that claim as I chickened out and didn’t remove the circuit board within. The data wheel is just so cheap that I didn’t want to screw up the miniEngine. (At least not yet.)

I did download the data sheet for the DREAM SAM2695 chip and tried many of the MIDI messages supported by the SAM2695. The miniEngine responded to the DREAM-specific CC80 and CC81 messages that change the REVERB and CHORUS type. So, the miniEngine is almost certainly DREAM-based. I verfied the following MIDI continuous controller (CC) messages:

    CC01 Modulation wheel
    CC07 Volume
    CC10 Pan
    CC11 Expression
    CC80 REVERB program (DREAM)
    CC81 CHORUS program (DREAM)
    CC91 Reverb send level
    CC93 Chorus send level

There are also a bunch of DREAM SysEx and NRPN messages. The NRPNs can control synthy parameters like vibrato, filter cutoff/resonance and envelope times. If you get a miniEngine, be sure to download the data sheet and try these messages!

So, hey, who are these DREAM guys? Check out the DREAM web site. DREAM design and sell DSP chips for synthesis and audio processing. They’ve been doing that since 1987. If you’re not a big hitter like Yamaha or Roland, you might turn to DREAM for a synth engine.

I got my miniEngine on an ebay close-out for $40. Prices seem to have risen to about $80 or $90. For a stand-alone MIDI expander, it’s still worth the money.

Rainy day ramblings

A rainy New England day and the leaves and pine needles are piling up. Can’t do much of anything outdoors today, so off to GC. (Not that I really want to do yard work.)

No real agenda. I’ve been thinking about Yamaha Montage vs. Tyros 5++ vs. Nord Stage 2 ex vs. Electro 5d. That’s all “long term” as I’m having a lot of fun and staying busy with the S950 and MOX.

I really could use a “lap piano” for rehearsals. (A distant relative of “floor melodica?”) My body ached so much last Wednesday before rehearsal that even an eight pound Korg Triton Taktile was too much to schlep. So, I sang with the group, hoping to internalize the melodies of the new music for the week. This isn’t such a bad idea in any case, since it’s good form to sing along in one’s head while playing — improvisationally or not. A good reminder that, yes, hymns actually have words.

So, the issue of mini-keys rises from the grave like Joan Crawford. About one month ago, I sought and found a Yamaha Reface to try again. As it seems for most interesting music tech, one needs to drive a zillion miles or take two or more trains to find and play Reface, Montage, Korg Arp Odyssey and so forth. And thus it was to play a Reface DX. I had a fair chance to plink away and the DX provided a wide range of solid sounds. But, still, no love for the Reface mini-keys. I simply cannot imagine playing a Reface at rehearsals and even remotely enjoying the experience.

Today’s journey was inspired by a favorable review of the new Korg MicroKorg S in Sound On Sound magazine. What a pretty picture it is; Korg’s industrial design may ape Arturia, but they took the best! The review mentioned the larger mini-keys (what an oxymoron!) of the Microkorg XL+ and I decided to find a comparably equipped Korg.

Happily, today’s trial was the Minilogue, which proved to be a fun time indeed. It’s got a pretty sweet sound for an inexpensive polyphonic analog synth. With the right programming, I could even warp the Minilogue into a “lap piano” good enough for rehearsals. A built-in speaker a la the new Microkorg S would be nice. However, I could easily run it into the JBL Charge 2 that serves as the battery-powered amplifier for the Triton Taktile 49 (my usual rehearsal ax). It’s a shame that the Minilogue isn’t battery powered, too, as it would make a terrific portable instrument.

The Minilogue’s oscilloscope is a real treat and is totally entertaining. It’s also a reminder that I need to add a mini-/micro-oscilloscope to the dining room lab one of these days. The oscilloscope display is a small OLED screen much like the screen in the Triton Taktile.

The Minilogue’s keys are far more playable than the Reface. The keys are longer than typical mini-keys and the black keys (sharps and flats) are narrow. This combination makes for a surprisingly effective keyboard design. I wouldn’t want to play a gig with these, but they are suitable for plinking out melodies and such at rehearsal. (See this article at Synthtopia for a good analysis of the Minilogue’s key size.) Several other Korgs have the same key design: the Korg Arp Odyssey and the “Natural Touch” microKEY, to name two.

I’ll say this for Korg. They may miss the mark sometimes, but these folks are actively innovating at a fast pace!

After messing with the Minilogue, I revisited the Nord Stage 2 ex. This is a fine instrument and is in the same premium range as the Yamaha Montage. Having also revisited the Montage in recent weeks, the Nord’s string and woodwind voices just don’t come up to the same level as Montage. The Montage voices live and breath. Although the Nord is quite good, these voices sound like “sample playback.” Kudos to Yamaha.

I will have more to say about Montage in a forthcoming post. In short, is it time to spring for Montage or wait for the successor to the Tyros 5 (“Tyros++”)?

Time for a cuppa…

Dr. Synth and the SC-33: An appreciation

Every now and again, we poke around in the closet and rediscover a lost gem.

So it is with the Boss DS-330 Dr. Synth. The DS-330 dates back to 1994 (!) and is an almost (maybe) GS-compatible Sound Canvas. It is the smaller brother to the Roland SC-33 Sound Canvas which is GS-compatible. The SC-33 has the same sound set as the SC-55mkII (226 tones) while the DS-330 has a subset (156 tones depending on who is counting.)

I fell so hard for the DS-330, again, that I bought a second hand SC-33. The SC-33 is little bit beat, but I intend to use it with my Nord Electro 2. I won’t have any qualms about dropping it into my gig bag.

roland_sc33_e2

Neither the DS-330 or SC-33 will win any awards for sound quality based on modern standards. The sample format is 16-bit 32KHz and the wave ROM size is 2MBytes. That’s right, 2MBytes. However, both machines are good General MIDI playback devices and quite a few of the preset voices are decent enough to play live, especially when they are layered and tweaked.

With old gear, there are always a few compatibility issues. When I drive the modules from a Triton Taktile 49, I get the occasional “MIDI Off Line” error. From the circumstances, I think this is due to incorrect handling of MIDI running status. No problems with Cubase, a Roland SK88Pro or the Nord, however.

The DS-330 and SC-33 share a common physical package and user interface design. And therein are the jewels.

Both units are about 8.5 inches wide and 6.5 inches deep. They sit flat with the display, buttons and volume control on the top, unlike the half-rack form factor and mounting style of virtually all other tone modules. This means that you can set the DS-330 or SC-33 on an open spot on a keyboard (controller) and easily hit the buttons while performing. (Please click on images to get higher resolution.)

roland_ds330

Good Golly, how I wish that manufacturers would adopt this form factor again! I’d love to see a Reface in this physical package. I would also love to see a decent ROMpler in this format, too, as an expansion module for digital pianos and B-3 clones.

Software-wise, the user interface has two major modes: single play mode and multi mode. Multi mode is for sequencing and since I’m pitching the module for live performance, I’ll concentrate on single play mode.

Once you’re in single play mode, navigation is a breeze. Menus are triggered by dedicated buttons and the menus are not super deep or long. Roland also thoughtfully provided a BWD button to move backwards within a menu. Ever skip over the menu item you wanted and had to do a “go round?”

The best part of the overall UI design is the sixteen buttons/pads that select tones. A button selects a tone category and a favorite tone within the category which the user has “registered.” That may sound complicated, but it is very natural. All you need to do to register a tone is to hit the catgeory button after selecting the tone. There isn’t any explicit WRITE or STORE operation; the software automatically captures any changes and updates the internal parameter memory. (Like many devices from that era, parameter memory is battery powered, not flash.) The closest thing to WRITE or STORE is the simple act of leaving a menu by way of the EXIT button. That’s it.

Tones can be layered (DUAL) or split (SPLIT). Splits and layers are insanely easy to create and edit. All editable parameters, split status/level, dual status/level and more are saved with each of the tones. You never have to think about the separate concept of a user performance memory or whatever. The parameters are just part of the tone and selecting a tone recalls the last saved edit.

Single play mode has a DRUM submode. When in this mode, the 16 buttons are now pads that play drum sounds from the selected kit. Sorry, no velocity sensitivity since this is 1994!

These little boxes were thought out very well. If you’re a manufacturer and looking to build and sell a piano-top (clone-top, whatever) module, here’s your exemplar!

Motif styles for your arranger!

I’m pleased to announce my collection of Motif performance styles for the Yamaha PSR-S950 arranger and its close cousins: Tyros 5, PSR-S770 and PSR-S970.

Motif and MOX are great song-writing machines with thousands of built-in musical phrases. In Motif-speak, these phrases are called “arpeggios.” Motif/MOX also have built-in “Performances” which combine these musical phrases into jam-along song starters. Although Motif-series workstations are not arranger keyboards, the Performances are fun for live jams, covering many modern genres (contemporary jazz, funk and R&B) which are underserved by arranger workstations.

To fill this gap, I translated 23 Motif performances to PSR/Tyros styles. In keeping with the original source material, these styles are stripped down and lean. No orchestration to get in the way! Some styles use only bass and drum. INTROs and ENDINGs are short and basic. Depending upon the source performance, a translated style may have only three MAIN sections. However, all styles bring the groove.

Many of the styles use Megavoice bass and guitar. Plus, I’ve added appropriate OTS voices. Of course, you’re welcome to ditch the OTS voices and replace them with your own.

Here is the link to the ZIP file: perf_for_s950.zip. The file unzips into a directory named “PERF_for_S950”. The ZIP file includes a short READ ME file with more information.

If you would like to know how I translate a Motif/MOX performance to a PSR/Tyros style, please read the following articles:

Montage: The hardware platform

The Yamaha Montage is one heck of a fine keyboard! Let’s take a quick look inside.

The Montage hardware is a new platform. Sure, there are a few things borrowed from older products, but that’s like blaming Apple for reusing a USB controller. The digital and analog electronics are all new.

There are several printed circuit boards and I will only cover the main PCBs.

  • PNL/PNR: Handles the front panel buttons, knobs, sliders, master volume and gain.
  • LCD: Bridge between the LCD controller in the main CPU and the 7inch TFT WVGA LCD touch panel.
  • DJK: Digital jacks (foot controllers, foot switch, sustain, MIDI)
  • AJK: Analog electronics and jacks (DACs, ADC, balanced/unbalanced outputs, analog input, phones).
  • DM: Digital electronics (main CPU, tone generators, external USB and Ethernet interfaces).

A few ports and connections are “Debug only” and are not populated or used in normal operation. The Ethernet port to the main CPU is debug only, for example.

The separation of the digital and analog electronics and jacks is significant. When the Montage was first introduced, I mentioned that “Pure Analog Circuit (PAC)” appeared to be an exercise in old school engineering that pays careful attention to board layout, component selection and clean power. The AJK board bears this out. The AJK board contains the stereo DAC and ADC components:

  • Audio ADC: Asahi Kasei AK5381VT-E2 24-bit ADC (96KHz max)
  • Audio DAC assignable output: Asahi Kasei AK4393VM-E2 24-bit DAC (96KHz max)
  • Audio DAC main output and phones: Asahi Kasei AK4393VM-E2 24-bit DAC

The ADC and DACs communicate with the DM board over an audio backbone. Physical separation keeps digital circuits (with fast rise/fall times) away from analog signal paths. The AJK board also has its own voltage regulators. They ain’t kiddin’ about PAC!

Yamaha adopted ARM architecture processors for the first time in the Reface series. (See my article about the Reface CS and Reface DX internals). Montage continues this trend.

  • The PNL board contains an MB9AF141NA ARM microcontroller with a 40MHz internal clock. The ARM microcontroller is assisted by a Toshiba TMP89FW24AFG microcontroller (SOC) operating at 10MHz. In Yamaha’s terminology, this ARM is a “sub CPU.”
  • The main CPU is an AM3352BZCZ80 ARM microprocessor with an 800MHz CPU clock. It is a Texas Instruments Sitara ARM Cortex-A8 single core MPU.

The ARM Cortex-A8 is a major departure from the Motif line which employed MIPS architecture microprocessors (such as the Toshiba TX4939C) as the main CPU.

We first saw the new SWP70 tone generator in the Yamaha PSR-S970 arranger workstation. The SWP70 replaces the SWP51L which has been the mainstay in mid- to upper-tier Yamaha products for several years. Top-tier products (e.g., Motif XF and Tyros 5) have two SWP51L tone generator chips which together share a common wave memory. The two SWP51Ls split AWM2 voice and DSP duties.

So, it isn’t any surprise to see two SWP70s in the Montage. What is suprising, however, is how the Montage’s two SWP70s are deployed. The two SWP70s are not connected in the “classic” structure. Instead, the microarchitecture is assymetric.

  • TG Master: The TG Master is connected to wave ROM (flash), wave RAM (SDRAM), and DSP RAM (SDRAM).
  • TG Slave: The TG Slave is connected to DSP RAM (SDRAM) and an SSP2 processor (through an ASIC gate array bridge).

I’ll have more to say about the SSP2 in a moment. The bridge connects the TG Slave’s serial audio interface to the SSP2 and the bridge carries several channels of digital audio (I2S format) to/from the TG Slave and the SSP2.

Of course, one’s first thought is to presume that the TG Master handles AWM2 voices and the TG Slave handles FM-X voices. There’s a lot of generation and DSP resources within an SWP70, so I doubt if they are left idle in the TG Slave even though the TG Slave does not have memory memory! There is a sixteen bit wide bus between the TG Master and Slave — not really sufficient to carry the sample bandwidth needed for AWM2 tone generation, however.

Each SWP70 has 16MBytes of SDRAM for DSP working memory. The TG Master has 32MB of Wave RAM. The Wave RAM is a cache for samples that are read from wave flash. (See my earlier article about the SWP70 and U.S. Patent 9,040,800.) Commodity NAND flash (as one would find in an SSD) favors sequential access; random access is horribly slow. The Wave RAM caches samples that are read from NAND flash.

Now, the big question: How much wave memory? The Montage wave memory consists of four Spansion (Cypress) S34ML08G101TFI000 8Gbit, ONFI-compliant devices with a total physical capacity of 4GBytes. In classic fashion, the memory is separated into upper and lower bytes. The Yamaha specifications state wave size as, “Preset: 5.67 GB (when converted to 16 bit linear format), User: 1.75 GB.” Assuming a 2.52 aggregate compression factor, the arithmetic works out in the following way:

    4GB physical = (5.67GB / 2.52) preset + 1.75GB user

The Motif series has an aggregate compression factor in this ballpark.

The Montage has a common multi-channel serial audio bus (I2S format) that interconnects the main CPU, TG Master, TG Slave, SSP2, ADC and audio DACs. This is the digital audio backbone. The bus conveys digital audio from the generators and effects on the DM board to (from) the converters on the AJK board.

The SSP2 is a Yamaha proprietary processor which is used in many products: Reface CS, Reface DX, PSR-S950 workstation, etc. The SSP2 integrates signal processing, USB, serial audio, and more. It is the “designated hitter” for Yamaha designs. When Yamaha needs a flexible chip with DSP and interfacing skills, it calls on the SSP2. (Roland have a similar jack of all trades called the “ESC2.”)

The Montage’s SSP2 has only 2MBytes of NOR flash memory on its CPU bus. That’s not a lot of program space! The SSP2’s USB port is connected to the external “USB TO HOST” interface. The SSP’s other interfaces convey digital audio to/from the digital audio backbone and the TG Slave. Thus, the SSP2’s main role is to route digital audio. The Montage can send 16 channels and receive 3 channels of stereo 24 bit/44.1 kHz digital audio to/from an external computer or iOS device

Commentary and opinion

I hope you find this quick overview to be informative and helpful. I try to present the system structure objectively without too much speculation.

Please discuss the Montage responsibly! Yamaha have a definite design style which exploits their expertise in very large scale integration (VLSI) as a strategic advantage. When Yamaha specify maximum polyphony as “128 AWM2 and 128 FM-X”, that’s 128 each all day long without any dependencies on the number of effects in use, etc. Some people lament this approach and wish that Yamaha would base their systems on x86 even though x86 is not always the best choice for embedded systems. Yamaha are no strangers to x86 having obtained many patents covering x86-based tone generation back in the 1990s and early 2000s.

Before anyone carries on about SSDs and SATA, please study the design of the SWP70. The SWP70 memory interface has all of the power, flexibility and Open NAND Flash Interface (ONFI) compatibility as an SSD without the need for SATA bus protocol.

Users may rightfully be disappointed at the lack of user-installable expansion memory. Yamaha are not evil; they simply do not have a convenient way to provide user-installable memory at the chip level. I think users should lobby for more built-in expansion memory, but they shouldn’t delve into conspiracy theories about Yamaha’s engineering or managerial practice.

Some wag will undoubtably complain about “memory parts cost only $10,” “my jump drive is 32GBytes,” “the need to stream 100s of gigabytes,” etc. Fine. But, an instrument design is a just one design. It is what it is is. One should listen to the Montage with their ears, then question whether gobs of samples would improve the playability, sound or expression of the Montage. Also, if you really believe that you can build a better instrument at the same price point, by all means, line up the VCs and engineers, go to work, and compete.

The final result is what we hear with our ears. The hardware is important, but it is simply a platform for the “soft content” — the algorithms, code, waveforms and sound design. In the long run, the soft content is the biggest development expense and is the most important element in a successful digital musical instrument product.

Perspective. Chill. Peace.

Here are links to related articles on this site:

All site content is Copyright © Paul J. Drongowski

Beat Box at littleBits!

Apologies in advance as I spend more time remembering to be a musician, not a technology blogger. I bought a few MIDI files during the last Yamaha Musicsoft sale and I’m massaging them into PJ-approved backing tracks. Plus, I’m learning about the joys of the key of D-flat!

I posted the Beat Box drum machine project to the littleBits invention site. The littleBits project format is more “step-by-step” than the document that I post on this site. The step-by-step directions should help anyone interested in building the Beat Box without diving into the details of the design. Of course, you can still check out the Beat Box design at this site, too. (MP3 Demo)

Just so you don’t think I’ve been totally idle, I tried adapting the code to sing “Do-Re-Mi” solfege. This involved recording and editing my voice. I used my old trick of singing through the Yamaha PSR-S950 vocoder in order to pitch correct my rocky intonation. I had to lower the sample rate to 11,025Hz in order fit all eight syllables into the very small Arduino program memory (PROGMEM). Unfortunately, I cannot get clear audio at 11,025Hz. There is this raucous buzz which cannot be eliminated through filtering. I suspect that the problem is in the PWM generation itself. The waveforms play back fine at 22,050Hz, sounding like chipmunk solfege.

After hitting that brick wall, I’ve decided to take a different approach which has better long term possibilities. I’ve ordered a handful of MCP4921 12-bit SPI DAC ICs and intend to try them with the littleBits Arduino module. The littleBits Arduino is a Leonardo where the SPI interface is the (unpopulated) ICSP pads. The new approach requires soldering, but it should be worth the effort. Stay tuned.

Still tempted by the Reface CP and YC. But, $400USD street? C’mon, Yamaha!

Inside Reface DX and Reface CS

With so much to do and learn, it’s been a long while since I’ve taken a peek below the hood of an electronic musical instrument.

Yamaha caught the world by surprise with its Reface series of portable keyboards. So far, there are four models in the series: Reface YC (organ), Reface CP (electric piano), Reface CS (analog modeling synthesizer), and Reface DX (4-op FM synthesizer).

Before I get to the DX and CS, here’s a few thoughts about the YC and CP. According to Yamaha specifications, the Reface YC tone generation engine is “AWM (Organ Flutes)”. This suggests to me that the YC uses a standard AWM tone generation integrated circuit (IC) like the SWP70. Hammond-like “Organ Flutes” have been part of the mid- and upper-tier arranger workstations like Tyros for a very long time. Thus, I suspect that the YC implementation is an updated implementation of the arranger technology.

The Reface CP tone generation engine is specified as “SCM + AWM2”. SCM or “Spectral Component Modeling” is the modeling technique first employed in the flagship CP-1 stage piano. SCM and AWM2 are also used in the CP-4 and CP-40 models. The CP-1 uses three tried-and-true SWP51L tone generation ICs: master, slave and effects. The master and slave generate the base piano tones and the two ICs share the same WAVE ROM. Total WAVE ROM size is 1024Mbits or 128MBytes (organized as 16-bit words) which is a ridiculously small amount of memory for a top quality piano. Such is the power of SCM!

The CP-1’s samples are stored in two Lapis Semiconductor MR26V51252R devices (32M by 16-bit words each). The processor is a Yamaha SWX02 (SH-2A CPU core operating at 135.4752MHz). There’s not much to the CP-1 user interface, so a relatively light-weight, low-cost processor is enough for the job. The SWP51Ls handle all of the heavy computation.

Thus, the Reface YC and Reface CP are relatively uninteresting from a technologist’s point of view. The YC and CP use proven technology from other Yamaha products. That leaves the Reface CS and Reface DX.

Although the CS and DX implement two different tone generation techniques — analog physical modeling vs. frequency modulation (FM) — they are fraternal twins at the hardware level. They share much of the same base hardware design with a few variations to handle their unique user interface requirements.

The CS and DX both use a Fujitsu MB9AF141LAPMC1 processor to handle key and panel scanning. Here’s a quick summary of its characteristics:

    CPU                 Cortex-M3
    CPU Frequency       40MHz

    On-chip flash memory   Main area   64KBytes
    On-chip flash memory   Work area   32KBytes
    On-chip SRAM           SRAM0        8KBytes
    On-chip SRAM           SRAM1        8KBytes

    Peripheral interfaces:
        DMAC            8 channel
        Serial I/F      8 channel
        Base timer      8 channel
        Dual timer      1
        Realtime clock  1
        Watch counter   1
        12-bit A/D      12 channel

This processor is a good choice for embedded control applications where low power and low cost are important. To my knowledge, this is the first product line using an ARM embedded microcontroller.

The Reface CS and Reface DX both use the proprietary Yamaha SSP2 (uPD800500F1-011-KN9-A) for tone generation. The SSP2 is Yamaha’s designated hitter for DSP tasks and is incorporated into many products. The SSP2 has an SH-2A CPU core operating at an internal clock speed of 135.4752MHz. The SSP2 has its own ADC, GPIO, UART, USB and serial audio interfaces. The SSP2 UART handles 5-pin MIDI communications. The SSP2 USB interface handles external USB communications.

The SSP2 has two memory interfaces:

  • DSP RAM: Connecting to 8MBytes of DSP SDRAM.
  • CPU bus: Connecting to 8MBytes of program ROM and 16MBytes of SDRAM.

Memory sizes and devices are the same in both products.

The AUX IN and audio out hardware design is also the same across the two products:

  • PCM1803ADBR ADC: AUX IN analog-to-digital converstion
  • AK4396: Digital-to-analog conversion for OUTPUT L/R and PHONES OUT
  • YDA176 D-Amp: DAC and amplification for internal speakers

This shouldn’t be any surprise. All of the Reface series products ahare the same external jack, power and key switch boards.

Digital audio is transfered serially between the SSP2, the ADC, the DAC and the digital amplifier. The SSP2 generates the master clock (MCLK) and bit clock (BCLK) to synchronize data transfers. MCLK and BCLK are derived from the SSP2 clock, in case you’re wondering about those odd-looking CPU clock frequencies. MCLK is 256*fs and BCLK is 64*fs, where fs is the sampling frequency, 44.1KHz. MCLK operates the AK4396’s digital interpolation filter and delta signal modulator. Data format is I2S and is probably 24-bit as it is in workstation products.

Aside from the other front panel controls, the Reface DX has two major additions: Capacitive sensors for the front panel touch strips and the LCD panel display. The printed circuit board positions for the LCD interface are not populated (i.e., no mount) in the Reface CS as it has no LCD display.

There you have it — two more examples of solid and conservative Yamaha hardware design.

Now, you may find the SSP2 to be incredibly boring. It is, however, a good choice for a low-cost, compact product. The Reface CS and DX need a metal shield over the SSP2, perhaps to control RF emissions, perhaps to radiate heat, or maybe both purposes together. Low power is a vital concern throughout the Reface series due to battery power concerns.

I’m a little hesitant to draw any inferences about future products. The Yamaha Montage supports 128 note, 8 operator FM polyphony. The Reface DX provides a relatively meager 8 note, 4 operator FM polyphony. Thus, there must be considerable hardware resources at work in the Montage. Well-worth the price, one hopes! And speaking of hopes, many people would like an analog modeling extension to the Montage. That would depend, of course, on the availability of spare computational horsepower.

Copyright © 2016 Paul J. Drongowski

Arduino lo-fi beat box

Here’s another Arduino-based music project for ya — the Beat Box — a lo-fi, TR-808 drum machine. If you ever wanted to try your hand at DIY electronics, this one is a good starting point. Here is a short list of features:

  • 16 grungy, TR808-like rhythm instruments
  • Up to eight instruments per pattern
  • Up to five selectable patterns
  • Adjustable tempo (60 BPM to 188 BPM)
  • Full source code available including waveforms (samples)
  • Write and compile your own patterns, drum kits and waveforms
  • Built-in PWM signal generation into an external low pass filter
  • 22,050Hz, 8-bit signed, mono waveforms for true lo-fi grunge

The Beat Box uses the Arduino’s internal high resolution timer (TIMER1) to produce audio. The timer converts samples to a pulse-width modulated (PWM) bit stream which is sent into a simple low pass filter. The filter converts the PWM bit stream into an audio signal to be sent to a powered speaker, LINE IN, or what have you. This is absolutely the cheapest way to generate digital audio with an Arduino and it only requires four simple components, a solderless breadboard and a few jumper wires.

If you want to make assembly even easier, start with the littleBits Arduino Coding Kit, a Proto module and a Synth Speaker Module. I built the Beat Box using the littleBits Arduino Coding Hit and assembly was, literally, a snap.

The Beat Box source code includes drum waveforms and several classic drum patterns. With a 22,050Hz sampling rate and 8-bit samples, you get genuine lo-fi, bit-crunched TR-808 grunge. Purely optional, I added a littleBits synth Filter module and Delay module to the audio signal chain. Listen to the MP3 demo. In the demo, I sweep the filter frequency from low to open. At about 10 seconds in, you hear what is essentially the unfiltered sound of the Beat Box. Then, I increase the delay feedback level which adds echoes in time with the original pattern.

This pattern forever reminds me of riding the RTA #48 bus to work in Cleveland circa 1982.

Per standard operating procedure, I have provided the full design and source code.

Get your beat on! Build it now!

Add a filter and envelope to the tone sequencer

The tones produced by my littleBits tone sequencer are too basic. So, I decided to add a littleBits filter module and envelope module to spice things up. I built the Arduino part of the project on one mounting board and built the synthy part of the project on a separate board. Three wire modules connect the two subsystems together as shown in the picture below.

gatemodseq

Of course, since the whole thing is Arduino-based, it makes sense to drive filter modulation and envelope trigger (gate) from the Arduino. The trigger signal is turned on at the beginning of a note and is turned off at the end of a note. Nothing could be simpler.

The filter modulation signal is more fun. The dimmers connected to the Arduino control the attack and release time and the sustain level. Here is a simple diagram showing the shape of the filter modulation signal.

filter_mod_signal

One dimmer controls both the attack time and the release time. Close enough for rock and roll. I suppose that I could have added a third dimmer and controlled these times separately. A project for you perhaps?

Per standard operating procedure, I posted the design and code. The code is explained in detail. I also posted this project to the littleBits project site. The littleBits page has the source code, too, and has simple directions for building the project.

Have fun and keep on experimenting!