About pj

Now (mostly) retired, I'm pursing electronics and computing just for the fun of it! I'm a computer scientist and engineer who has worked for AMD, Hewlett Packard and Siemens. I also taught hardware and software development at Case Western Reserve University, Tufts University and Princeton. Hopefully, you will find the information on this site to be helpful. Educators and students are particularly welcome!

Yamaha PSS-A50 MIDI notes

To learn more about the Yamaha PSS-A50‘s MIDI implementation, I monitored its MIDI output stream using MIDI Ox and Sonar. Here are my notes. They are quite terse!

After inital start-up, the A50 sends MIDI timing clock and active sensing messages.

The default transmit data and channel settings are:

    Assignment              Ch# 
---------------------- ---
Live keyboard: 1 [If OFF, no data is transmitted]
Live arpeggio sequence: 2
Recorded keyboard: 3
Recorded arpeggio seq: 4

Master volume is local. Pressing the Master Volume buttons does not send volume change messages (neither channel volume or MIDI master volume).

Changing Phrase Volume, however, sends channel volume on channel 3 and 4. Legends above keys show setting-related function: what setting, increment and decrement. This is very handy and avoids manual diving. Phrase Volume is changed using the assigned function keys.

Pressing a front panel voice button sends messages on both channel 1 and 2:

    Bank MSB (CC#0) 
Bank LSB (CC#32)
Program Change (PC)
Channel Volume (CC#7)
Reverb Depth (CC#91)
Chorus Depth (CC#93)

Not all voices have chorus applied and Chorus Depth is not sent for voices without chorus.

The keyboard sends note ON and note OFF messages on channel 1. The mini-keyboard is touch sensitive. it’s difficult to send the full 1-127 velocity range with the default touch response level (level 2).

Pressing the Sustain button has the following behavior:

  • Sends new release time when sustain button is pressed.
  • Release time messages are sent on both channel 1 and channel 2.
  • Turning sustain off resets the release time.

Pressing Portamento (SHIFT+SUSTAIN), has the following behavior:

  • Sends portamento time and portamento ON/OFF when SHIFT+PORTAMENTO buttons are pressed.
  • Portamento time and ON/OFF are sent on both channel 1 and 2.
  • Turning portamento off, sends new portamento status on channels 1 and 2.

Pressing ARP ON doesn’t send MIDI messages! Pressing ARP OFF sends messages on channel 2:

    Bank MSB (CC#0) 
Bank LSB (CC#32)
Program Change (PC)
Portamento
Release Time (channel 1 and 2)

It’s like the A50 software assumes that the arp voice is set-up and ready to go when the arpeggiator is turned ON. Then, the software resets certain parameters when the arpeggiator is turned OFF. The arpeggiator sends note ON/OFF on channel 2 (as determined by the MIDI channel assignments).

Pressing PLAY sends the following messages on channel 1 and 2:

    Start (FA) 
All Sound OFF (CC#120)

Pressing STOP sends the following messages:

    Stop (FC) 
GM Reset (System exclusive)
Messages to reset voice settings for channel 3 and 4

You can expect to see the following System Exclusive messages after song playback:

   F0 7E 7F 09 01 F7           GM Reset 
F0 43 10 4C 08 02 0C 40 F7 MULTI-PART Velocity Sense Depth (channel 3)
F0 43 10 4C 08 02 0D 40 F7 MULTI-PART Velocity Sense Offset (channel 3)
F0 43 10 4C 08 03 0C 40 F7 MULTI-PART Velocity Sense Depth (channel 4)
F0 43 10 4C 08 03 0D 40 F7 MULTI-PART Velocity Sense Offset (channel 4)

I’ve seen these XG MULTI-PART messages on other entry-level arrangers supporting the XG Lite conventions.

For Motion Effect A01 Filter 1, Pressing the Motion Effect button sends
these messages on channel 1 and 2:

    Pitch Bend Sensitivity (RPN 0,0)
Harmonic Content (CC#71)
Pitch Bend
Expression (CC#11)
Modulation (CC#1)
Brightness (CC#74)

Harmonic Content (filter resonance is increased to 100). The Brightness (cutoff) messages sweept the filter. Brightness is slowly modulated, i.e., it repeatedly slowly decreases and then increases.

Releasing the Motion Effect button sends messages on channel 1 and 2:

    Pitch bend 
Harmonic Content (CC#71)
Brightness (CC#74)
Modulation (CC#1)
Expression (CC#11)
Pitch Bend Sensitivity (RPN 0,0)

These messages reset the respective parameters to a default value.

For Motion Effect B01 Pitch Whole-Note Up, pressing the Motion Effect button sends these messages on channel 1 and 2:

    Pitch Bend Sensitivity 
Pitch Bend (center)
Expression
Modulation
Pitch Bend (multiple messages)

The Pitch Bend messages sweept the pitch up then down. Releasing the button resets Modulation, etc. to default values.

Pitch bend sensitivity is sent as an RPN (Registered Parameter Number) message:

    RPN (CC 0x64, CC 0x65) 
0,0 Pitch Bend Sensitivity

The Motion Effect feature is similar to something I built into my two-button Arduino-based MIDI controller. It’s a way to add articulation to live playing. I always wanted a way to play perfect pitch bends. 🙂

I was able to save my recorded MIDI data to Sonar. The A50 insists on sending MIDI clock, START and STOP, so I configured Sonar to receive and respond to external clock. The recorded MIDI data is sent on channels 3 and 4. Thanks to Sonar’s channel selection feature (via event filtering), I could separate the channel 3 and 4 data into two tracks. Another possible solution is to write the data as a MIDI Type 0 SMF and then read the SMF into Sonar. Sonar should separate the channel data into different tracks.

Copyright © 2021 Paul J. Drongowski

Summer NAMM 2021

Even though Summer NAMM 2021 is a live event, the global pandemic still has the business world topsy-turvy. The vaccinated parts of the United States are shaking off cob-webs, but large parts of the world remain in the grasp of COVID-19. Japan — a major source for electronic musical instruments — is in near crisis just as the Summer Olympics are due to start.

Thus, I don’t really expect much from Summer NAMM 2021. In the run-up to the show, vendors are mainly announcing product updates and upgrades. Manufacturers are highlighting previously announced instruments like the Korg Wavestate or Yamaha DGX-670 digital piano.

Truly new, is the Boss EV-1-WL wireless MIDI expression pedal. The price ain’t bad, $149USD, and it offers the chance to eliminate yet another cable in your live rig. Although it seems targeted for guitarists — being promoted through the Boss brand — the EV-1-WL might be a boon for keyboard players, too.

Boss EV-1-WL Wireless expression pedal

The EV-1-WL operates on two AA batteries or PSA-series power adapter. It cooks up MIDI three ways: Bluetooth, USB and 3.5mm TRS. Nice to have both wired and wireless options. According to Boss, all three can be used at the same time and are independently configured.

In addition to the rocking expression pedal, the EV-1-WL has a built-in top switch and two external footswitch inputs (1/4 inch TRS). Boss will provide an app to assign MIDI messages [quoting the Boss web page]:

  • Expression pedal with EXP SW on—CC# 1-31/64-95, value 0-127
  • Expression pedal with EXP SW off—CC# 1-31/64-95, value 0-127
  • Toe switch (EXP SW)—CC# 1-31/64-95, value 0-127
  • External footswitch 1 (CTL1)— CC# 1-31/64-95, value 0-127
  • External footswitch 2 (CTL2)— CC# 1-31/64-95, value 0-127
  • MIDI channel—1-16
  • Expression pedal curve—Normal, Slow1, Slow2, or Fast
  • EXP SW/CTL1/CTL2 mode—latch or momentary

I’m a little nervous about the EV-1-WL’s ability to rendezvous (pair) with any old Bluetooth device or interface adaptor. Boss state compatibility with their WM-1 5-pin adaptor and WM-1D USB-A dongle. However, will it interoperate with Yamaha’s MD-BT01, UD-BT01 or in-built Bluetooth MIDI (e.g., SHS-500 Sonogenic)? A 5-pin DIN MIDI cable is brand-agnostic.

The USB and Bluetooth MIDI world is rife with incompatibilities and the inability to make connection. A 5-pin MIDI cable is symmetric. A USB connection has a HOST end and a DEVICE end. Bluetooth has acceptors and initiators which must dance with each other when pairing. A MIDI cable simply connects an IN to OUT (and vice versa). Done.

Anyway, the EV-1-WL has got my attention and I look forward to the user manual and app. Hoping for the best…

Copyright © 2021 Paul J. Drongowski

Review: Yamaha PSS-A50

Before taking a screwdriver and soldering iron to the A50 (Ahem), I’d better write a short review first. 🙂

The Yamaha PSS series keyboards are inexpensive, entry-level instruments which are super lightweight, battery powered, portable and fun. The PSS line is like a small group of fantasy characters where each character has its own super-powers.

  • PSS-E30: A musical game keyboard for younger kids.
  • PSS-F30: “Honey, I shrunk the arranger” keyboard for people who want to play songs with an accompaniment.
  • PSS-A50: A phrase-based music machine which records and speaks MIDI over USB to your DAW or other computer- or table-based music applications.

Last year, I reviewed the Yamaha PSS-E30 Remie and passed it along to our grandson as a Christmas gift. Remie is suitable for young kids, but even Mom and Dad have fun with the musical games.

Yamaha PSS-A50 keyboard [Click to enlarge]

The PSS-A50 (henceforth “A50”) is aimed at people who want more flexibility than the fixed accompaniment styles in the PSS-F30. The A50 has 138 musical phrases — “arpeggios” in Yamaha-speak — that drive an in-built arpeggiator. Twenty-two arpeggios are drum patterns; the rest of the arpeggios are melodic, covering both instrument-specific riffs (strums, bass lines, chord comps) and general purpose phrases like up/down broken chords, etc.

Experienced Yamaha players have seen these arpeggios before. In fact, the A50 reminds me of the Yamaha Synth Arp & Drum Pad iOS application. Without getting into the details, you select a voice, select an arpeggio (“arp”), enable the arp, hit record, and go. If you check out Yamaha’s YouTube tutorials, you’ll see how easy it is to get started.

At this point, I suggest watching Keen On Keys excellent video. It covers all the basics, a brief teardown, and more. I won’t go into such details here. (This chap did a terrific job!) I learned quite a lot from this video including basic “how to use it” information.

Oh, how I long for such reviews in Electronic Music (once Keyboard mag), once again. Ken Hughes, where are you? After reading one of those old product reviews, you actually knew a little about playing the instrument. Now, pfffft!

The sounds

Let’s get down to brass tacks. Like Remie, you won’t get Yamahas top sounds. Shucks, it’s only $100 USD (street price).

Truth be told, even though I regarded the A50 as a candidate for mod projects, I wasn’t too wild about the sounds that I heard in on-line demos. I was hesitant to buy one. Once I got the A50 under my fingers, however, I warmed up.

Basically, the A50 and Remie samples and synth engine are at the same level. The A50 adds touch sensitivity and that, I suspect, makes the difference. Sure, the piano (for example) is uni-dimensional and you can hear it play the same sample louder or softer depending upon strike velocity. The overall effect is more musical, however. Weird how that works?!

The A50 audio OUT is mono. Reverb seems to be the only system effect. Even Yamaha’s cheapest chip implementations have chorus, so it may take a little MIDI magic to unlock that door. The whole sound can be sweetened by out-board effects like maybe a guitar pedal (e.g., TC Electronic Hall of Fame reverb) or a spatializer. I slung an A50 beat through the Korg Volca Mix stereo width and compression effects and got a rather nice result. The Volca Mix Hi/Lo Cut let me isolate the tops and kick, too. I strongly recommend adding external effects.

The A50 motion effects let you juice up your performances. I’m still exploring the motion effects and I’m glad to have them. The motion effects add a way to vary the sound during performance, avoiding a uni-dimensional sound. You get filter fun, pitch bends, slicing and all sorts of sonic mayhem. A few effect types would be good for Hawaiian pedal steel. 🙂 It would be nice to leave the auto wah ON in order to play two-handed funk — a small quibble.

The A50 size, features and price invite comparison against the Yamaha SHS-300 and SHS-500 Sonogenic. Unless you really want the keytar format, I don’t see the value in the SHS-300 versus the A50. I will bet dollars to donuts that the SHS-300 is based on the same chip and samples as the A50. Personally, phrase recording is more fun and creative than a pretend, low-budget, cheap build keytar. Speaker quality is probably a wash between the two and the A50 puts out 1.5W versus 0.7W.

The A50 against the SHS-500 is another story. The SHS-500 voices are definitely better quality. Although the SHS-500 LINE OUT is mono, you can look to its PHONE OUT for stereo. The SHS-500 has PSR E-series DSP effects, three forms of MIDI (USB, 5-pin, and Bluetooth), a General MIDI sound set (available via MIDI only), and jam mode integration with Chord Tracker. The SHS-500 beats the A50 on sound. On the other hand, I prefer the A50’s speaker versus the SHS-500. Of course, the SHS-500 is mainly for playing and doesn’t have an arpeggiator or recorder.

Build quality

One big factor is build quality. The SHS-500 is a solid instrument. The SHS-300 and A50 are cheap. Even though Yamaha specs call out “37 HQ (High Quality) mini keys” for all three keyboards, only the SHS-500 is up to the same quality as the Yamaha Reface series. Yamaha marketing may claim otherwise, but you can feel the difference. The Reface and SHS-500 will stand up to abuse — the SHS-300 and A50, not so much.

As to A50 build quality, the electronic boards and cabling look up to snuff. EMI shielding is absent. Audio quality on battery power or external USB power adapter is good and is reasonably quiet. Powered by my HP desktop, the A50 is susceptible to digital schmutz and produces loud noise through its audio out. One could put blame on the desktop, but nearly all computer switching power supplies are dreadfully noisy. USB powered instruments need better filtering on USB power rails.

In use

I want to use the A50 as a looper: put down a rhythm line and a bass, then jam. It takes a little bit of practice to make glitch-free loops. I wish the A50 applied “measure quantize” to recordings, that is, trim recordings to a clean measure timing boundary. Right now, you have to turn off recording by feel and hope you get it right.

While horsing around with MIDI (another subject for another day), I noticed that the A50 has four parts, each on its own MIDI channel:

  • Keyboard voice: Live, real time performance (Default: channel 1)
  • Arpeggio sequence: Live, real time arpeggiation (Default: channel 2)
  • Recorded keyboard: Recorded keyboard performance (Default: channel 3)
  • Recorded arpeggio sequence: Recorded arpeggio (Default: channel 4)

Hmmm, this makes me wonder if I can layer up to four parts? So far, I can layer 3 distinct musical parts. The fourth part is still elusive.

The main problem is no overdub. It is possible to record two parts at once: arpeggio plus keyboard performance. Thus, you can lay down a drum pattern (arpeggio) and a bass line (by hand). Then, loop the playback and play over the top. Seems like I should be able to add a live arpeggio to the stack.

Anyhow, I found this video (“Yamaha PSS A50 – Jazz Multi Track”) to be instructive. The trick is to get the arpeggio going, select a different instrument, arm record, and play on the first beat. Here is the procedure:

  1. Select drum voice (e.g., voice 39).
  2. Turn the arpeggiator ON.
  3. Select the arpeggio type (e.g., arpeggio 125).
  4. Hold a key to start the arpeggiator.
  5. Press ARP.HOLD to keep the drum pattern running.
  6. Select a bass voice (e.g., voice 14).
  7. Press REC to arm recording.
  8. Play the bass line over the drum pattern. Start playing in time with the drum pattern.
  9. Press REC to stop recording.
  10. Turn the arpeggiator OFF.
  11. Select a piano voice (e.g., voice 2).
  12. Press SHIFT+PLAY to start a looping playback.
  13. Jam over the playback.
  14. Press STOP to stop playback.

Recording doesn’t start until you begin to play the bass line. That locks the bass to the drum pattern. You need to stop recording just before the next loop iteration begins.

If you need some jazzy chords, try: GM7/E, Fm7/B, FM7/D, Em7/A (also notated as Em9, Bm11, Dm9, Am11).

Doggone it, seems like I should be able to layer live arpeggiator into that mix! I’ll keep trying.

Update: Practice makes perfect. Yes, you can get four lines going. I recorded drum and electric piano following the procedure above. With the recorded parts playing, I started a looping bass arpeggio. Finally, I solo’d over the three running parts. Neat, and as complex as you might want for a little practice jam.

Questions

As I begin to explore the A50 MIDI implementation, there are a number of unanswered questions. First and foremost, can I save and restore recorded MIDI data? Does the A50 respond to SysEx messages for reverb and chorus type? Can I drive the A50 with the old Synth Arp and Drum Pad application and make use of its range of arpeggios? Can I load my own simple backing tracks into the A50’s recorder memory?

The final word

After my initial reluctance, I’m glad that I bought the PSS-A50. Apparently, some folks aren’t so happy as A50s turn up as Open Box items quite frequently. Even though $100 is not much, you can save a few extra bucks if you’re willing to buy an open box item. Given the build quality, you might not want to chance it, tho’.

The A50 does not have a full General MIDI sound set. The sound set is close enough for rock and roll, however. Here is an MP3 of the A50 in action (Traffic’s Feelin’ Alright). Wish I could play that piano solo at the end …

Interested in more PSS-A50 content? Check out these posts:

Copyright © 2021 Paul J. Drongowski

Free DJX-II styles: Version 2

I’m happy to announce version 2 of my DJX-II styles for Yamaha Genos, Tyros and PSR arrangers.

These DJ styles are converted from the original Yamaha DJX-II patterns. If you would like to know more about the conversion process, please see: Mining the Yamaha DJX-II.

These are DJ styles, so they only respond to changes in the root note. The chord progressions are cooked into the patterns (just like intros and endings in regular PSR styles). I tried to find the best mapping from DJX-II patterns to style sections. Therefore, some of the DJXII styles have auto-fill, some do not. Longer “fill” patterns are assigned to the intro and ending sections which can play more than one measure.

Feel free to edit, rearrange and customize the styles in order to make them your own. I recommend Jørgen Sørensen’s excellent tools. Jørgen’s site also has documentation and tutorials about styles and style creation to help you along. Please check it out and support his work!

Click on this link to download the ZIP file.

Version 2 includes all of the files in the first collection. Version 2 adds Drum ‘n’ Bass, Disco, House and Trip Hop styles. The ZIP file includes a README.TXT file which should help you get started with the styles. I have also included PDF notation files for people who read music and want to know about the chord progressions, bass lines, and so forth.

Enjoy! The DJX-II style collection is free.

Copyright © 2021 Paul J. Drongowski

Modal Skulpt SE: Review

True to their word, Modal Electronics are shipping the first Skulpt SE virtual analog modules, and I’ve got one. Initial impressions…

Arrival

The Modal Skulpt SE arrives in a neat brown box, well-protected from the strains of travel through the package delivery system. With the pandemic all about, most of us are buying on-line and good packing is important!

Modal electronics Skulpt SE synthesizer

Inside are the Modal Skulpt SE (henceforth, the “SE”), a “UI combinations” card for a quick start, and a moderately short micro USB cable. If you intend to run on battery power, be prepared with six AA cells. A small rear panel slide switch selects USB or battery power. The switch is good enough, but probably won’t stand up to much abuse.

The bad stuff

The bad stuff isn’t so bad, but the SE and I got off to a slightly rocky start.

The SE has a white cover over the front panel. It took a little bit of doing to remove the white cover. I was afraid of bunging the controls… The white cover is a welcome feature, though, as it will protect the front panel going to and from gigs.

The SE’s keyboard and the edge of the side and rear panels are protected with that quasi-adhesive plastic which is meant to be removed before flight. The plastic protects surfaces during manufacturing and is common practice. The (mostly) clear plastic on the keyboard was obviously meant to be removed.

The thin strip of white protective plastic around the edge of the side/back panel had me fooled. I didn’t realize that it was intended to be removed! Thus, when plugging in, “What the?” I didn’t see any legends above the rear panel connectors. “How do they expect us to know where to plug in?” Well, remove the white protective plastic and it’s good to go. Also, the white plastic strip made for the cover’s tight fit. [Redux: minor cover removal issue above.]

The SE puts on a little light show when power is applied. After first boot, I couldn’t get the SE to produce sounds. I removed power and started again — success!

The build

There are plenty of in-depth reviews on-line and in print, so I’m not going to repeat gory details about 32 oscillators, blah, blah. The MusicRadar and Electronic Musician reviews are the best of the lot. (Oddly, Sound On Sound hasn’t reviewed the Skulpt, even the mark one?)

Every review cites the build as “plastic-ky,” etc. Yes, the chassis is made of plastic, but it feels just as robust as the Yamaha MODX. For $199 USD, this is as good as it gets. Build quality is on par with the Korg Volca series. The controls feel a tad light and wobble a little bit. The knobs (endless encoders) and buttons offer enough resistance and tactile feedback for a $199 price.

The keyboard

Reviews also cast shade of the keyboard. Yes, the keyboard stinks for playing chords and seems to play at a fixed velocity level. However, one needs to set expectations appropriately.

It’s not really a keyboard, in my opinion. It’s a group of sixteen function buttons for the sequencer and tone generator. As far as playing is concerned, it’s a “courtesy keyboard” for testing patches and such. (Thanks to Stephen Fortner for that term of trade.) Other low-cost modules provide a courtesy keyboard, but don’t get slagged by reviewers in the same way. Intended usage and criticism don’t rise to mini-key levels (e.g., microKorg, Reface, Keystep, and a plethora of others).

The sound

Well, with these concerns out of the way, Let’s get to the sound!

Electronic Musician ran a mini-synth shoot-out review last Winter. They pegged the mark one Skulpt as a staid, well-behaved sonic pallette — nothing too aggressive. Out of the box, I agree with their assessment and that’s why I bought the SE! I’m not interested in shredding anyone’s ears. I’m looking for temperate pads and leads. If you want aggressive tone, the SE is not the droid you’re looking for.

However the SE does mete out beautiful pads for chill and other modern styles needing laid-back tone. Some of the factory presets have stunning motion and twinkle — truly wonderful. So, sonically, I’m pleased and feel that $199 is money well-spent.

I connected the SE to MODX via MIDI in order to audition the factory presets and I recommend you doing the same. The courtesy keyboard seems to send a fixed MAX velocity level (something I need to verify) and you cannot bring out the nuance of the built-in presets or the full capability of the hardware. Given the usual vagarities of key touch and velocity curves, I had trouble socking the MODX keys and teasing the same sound as produced through the courtesy keyboard. You might want to keep this in mind if you find and test an SE in a brick and mortar store.

Grabbing notes, you will hear note robbing. Oh, yeah, 4 note polyphony. If you want more, buy a second SE and chain it. Note robbing isn’t a big deal, but one must be aware of limitations when playing live. It is what it is.

None of the reviews had much to say about the Spread control which configures and tunes the oscillators. Spread in the range 0 to 64 sets detune. Above 64, the oscillators are spread by interval: major, minor, major 6th, sus 4th, 5th, 5th oct, oct-+5, oct+-, oct–. The ‘+’ and ‘-‘ seem to apply to wave 1 and wave 2 respectively — something which isn’t documented.

The Skulpt SE examples on Modal’s Soundcloud site portray the SE accurately. These sounds may calm your nerves and help you make up your mind when shopping on-line.

The software

Modal provide a software-based Skulpt SE editor for Windows, MacOS and iOS. They even supply a version that executes as a VST3 plug-in so you can modify SE voices while working within a DAW. Modal Electronics distribute six sets of patches: SE Factory bank, Old Factory bank, Stranger Things, Made by Kyle, Skulpt MPE and Skulpt The Mix. You will find the User Manual PDF on the download page, too.

Current firmware is version 2.1. The MODALapp, AKA “the editor,” handles updates. My unit shipped with 2.1 and is up-to-date. [Hint: Check the firmware version on the MODALapp Settings page.]

MODALapp installed easily and immediately recognized the SE. It’s a very convenient way to audition patches, which I am merrily doing as I write this. 🙂 It will be difficult to decide what to keep and what to toss! Patch changes are snappy and holding a note or chord across a patch change produces interesting results, kinda like turning the power off on your Farfisa, only better.

One small niggle — and I do mean small — is the tiny, unreadable size of a few button legends like ‘+’ and ‘-‘. Modal should make these legends bigger.

MODALapp Skulpt SE patch management

A tip or two. If you click on the patch name, MODALapp opens the patch management page. Everything is reasonably intuitive and drag ‘n’ drop. However, I didn’t immediately suss the meaning of the “Local,” “Skulpt Synthesizer” and “Toolbox” sections of the UI. The manual lays it out clearly:

  • Local are patches stored on your PC.
  • Skulpt Synthesizer are patches stored in the SE.
  • Toolbox are scratch patches — a temporary local holding pen for your favorites.

The Toolbox is a convenient and useful idea. It’s a place to put favorites while you cherry pick the factory patches. I wish more tools had a scratchpad like this one. BTW, the Local patch section is preloaded with the old mark 1 Skulpt patches — no need to import them when getting started.

MODALapp Skulpt SE editor

One gets the true measure of the SE’s depth through MODALapp. The modulation matrix is quite large:

  • 8 sources: LFO1, LFO2, MOD-EG, NOTE, VELO, MODW, EXPR, AFTT
  • 34 destinations: CUTOFF, RESO, MORPH, … DIST, DELAY, TIME

The eight virtual knobs in the lower left corner of the editing screen make connect modulation sources and destinations. All major parameters are available, accessible, and easy to find.

How will I use Skulpt SE?

I want to use Skulpt SE as a portable, complementary sound source for Yamaha MODX, Reface and SHS-500 synths. The SE is bigger than I anticipated and is a little too large for a MODX topper. It may have to ride on a soft pad over a few of the rightmost front panel buttons.

Battery operation will help me complete my portable mobile rig. The SHS-500 is a good mate and connects up via 5-pin MIDI. No issues encountered with SHS-500 and Reface YC although I wish the Reface YC transmits MIDI program change messages.

I hope to give the SE’s MPE capabilities a workout. Right now, my only MPE-capable controller is an Artiphon Orba. The Orba does USB and Bluetooth MIDI, so I need to find a way to get the Orba and Skuplt to talk. (A software bridge?) I wish the major players like Yamaha, Korg, Roland, etc. would make Bluetooth MIDI and USB MIDI as easy to connect as 5-pin.

OK, I’m sold and I’m happily rooting for Modal. Based on my experience with Skulpt SE, I would definitely give one of Modal’s full-size offerings a try such as Cobalt or Argon. Modal Electronics are real.

Copyright © 2021 Paul J. Drongowski

littleBits for audio mods?

Here are a few experiments testing littleBits audio post-processing. In the first few cases, audio is produced by a Yamaha SHS-500 synthesizer fed into the LINE IN of a littleBits Microphone module. Outgoing audio is sent through a littleBits Speaker module connected to an external amplified speaker.

I did not draw the littleBits Power module into every example circuit. If you’re experimenting at home, hey, “One, Two, you know what to do…”

The first circuit filters incoming audio:

          PowerSnap 
|
V
Envelope <-- Button <-- PowerSnap
|
V
Mic --> Filter --> Speaker

The Filter modulation input is driven by a littleBits Envelope module. The (audio) input of the Envelope is connected to a littleBits PowerSnap which supplies a constant +5 Volts to the input of the Envelope. A littleBits Button module is connected to the Envelope’s trigger input. (The second PowerSnap assures a full 5 Volt ON signal through the Button.) The Envelope sweeps from 0 to 5 Volts when the Button is pressed. Of course, the Envelope is shaped by its attack and release settings.

The first circuit operates successfully. The audio is filtered according to the Filter’s cut-off and resonance settings. The Filter quacks (a very scientific term!) when the Button is pushed.

The second circuit replaces the Button with a littleBits Pulse module:

          PowerSnap 
|
V
Envelope <-- Pulse <-- PowerSnap
|
V
Mic --> Filter --> Speaker

The Pulse module repeatedly sends a trigger signal to the Envelope module. The triggers cause the Filter to quack correctly. However, there is an audible click when the Pulse module fires — even if no audio is playing. This noise is unacceptible and I don’t know why it is occurring. Power glitches perhaps?

At this point, I began experimenting with the littleBits Threshold module. The (third) simple test circuit below:

    Power --> Dimmer --> Threshold --> Number

demonstrated that my intuition about the Threshold behavior is correct: when the voltage into the Threshold exceeds the threshold setting, the Threshold turns ON and outputs +5 Volts. When the input voltage falls below the threshold setting, the Threshold output turns OFF (0 Volts).

Testing tip: The Number module has a “Voltage” setting in which Number displays the incoming input voltage. You can use a Number module as an in-circuit volt meter.

Given that, I couldn’t determine why the Threshold was not acting like a gate generator when driven by a littleBits audio signal, i.e., driven by the Microphone module in its “Sound” setting. Turns out, the littleBits Microphone module converts the incoming LINE IN signal into its own notion of audio — a signal centered around 2.5 Volts. I connected a Bargraph (or Number) module to the output of Microphone, and indeed, the Microphone sends 2.5 Volts when the audio is silent.

Arg! Once again bitten by the lack of signal documentation! When the Microphone is in its “Other” setting, it converts the input signal to swing from 0 to 5 Volts. Bad news, however. The Speaker module expects audio in the 2.5 Volt centered, littlebits convention and it distorts like a bandit when driven with the “Other” setting.

The 2.5 Volt convention also explains why some folks have observed only a 2.5 Volt sweep in the Envelope output. All of this has serious implications when mixing audio and control signals in littleBits. I need to think about this for a while…

The fourth test circuit demonstrates filtering of regular line level audio:

                              Powered Speaker 
LINE IN
|
Power --> Proto --> Filter --> Proto
|
Synthesizer
LINE OUT

This circuit filters incoming audio. Fortunately, the 2.5 Volt convention does not preclude a simplified signal chain, that is, a chain omitting the littleBits Microphone and Speaker modules. A filter is a filter is a filter, I guess.

Although the Filter module operates on a “regular” audio signal, the Delay module does not. Substituting the Delay module into the fourth test circuit produces nasty noise and a whine. It will process the audio (you can hear repeats, etc.), but the noise/whine is horrible. Screams like a banshee. Bummer.

Bottomline, the littleBits Filter module has potential as an add-in for a PSS-A50 mod (or any other mod) without Microphone and Speaker modules. The littleBits Delay is simply too noisy by itself; one needs the Microphone and Speaker to perform signal conversion. As to the Filter, I need to explore alternatives for modulation. Experiments with using the Oscillator module as an LFO were underwhelming. So far, I haven’t successfully cobbled together an envelope following or audio-trigger envelope. Stay tuned.

Interested in littleBits synth control signals?

Copyright © 2021 Paul J. Drongowski

PSS modding: A few ideas

I’m still thinking about Yamaha PSS mods, most notably, the PSS-A50. Open box A50s are coming on the market and I get the itch to modify an A50. I don’t want to buy a brand new unit since I will immediately tear into it with a screwdriver, drill, and worse! 🙂 Here’s a few more thoughts.

After looking at the PSS-E30 Remie teardown, that speaker has got to go. Even without the speaker, I don’t think there is enough room for the Korg NTS-1 as I first planned.

littleBits filter module

Second-besties, I’m considering a littleBits solution. Lots of folks mod the Korg Monotron to get access to its filter, but oddly, they don’t consider the littleBits filter module. I did a few preliminary experiments with the filter and delay modules using the Yamaha SHS-500 Sonogenic as a stand-in for the PSS-A50 sound generator. The filter and delay sound great although I need to add an envelope generator to make the filter quack and bark.

My main concerns at this point are:

  • Driving littleBits audio without the Microphone module and the Speaker module. Both modules would take up unnecessary space. I’m just don’t know (yet) if regular headphone levels are strong enough for the littleBits 0 to +5 Volt signaling convention.
  • Physically and electrically securing the littleBits modules to themselves and the A50 chassis.
  • Finding 5 volt power in the A50 in order to supply the litleBits modules.

Of course, there’s the problem of mounting the littleBits modules so that the controls (potentiometers) poke through the A50 speaker grill.

I investigated the PSR-F50 audio and digital electronics. The PSS audio amp is mostly likely different than the F50. So, I need to get the A50 service manual. The service manual should help me find the +5 Volt rail, too.

I took another look at the Yamaha YMW830-V processor pin-out. The YMW830-V is also known as the “SWLL” processor. It is a system-on-a-chip (SOC) containing the CPU, memory, and tone generator. The SWLL has five pins (TRST, TDI, TMS, TMS, TCK, and TDO) for serial input/output — most likely USB. This doesn’t bode well for people who want to add 5-pin MIDI to the A50 (or other SWLL-based keyboards).

Reface YC key scan matrix

The PSS series, the Reface series and the SHS-500 share the same 37-key keybed. The key switch matrices are similar. They all break the key range into groups of six keys. Each keybed is a 6 group by 6 key matrix with a dedicated group to scan the fourth C key. The PSS and Reface/SHS differ in the number of key contacts as the Reface/SHS are velocity sensitive and the PSS is not. The Reface/SHS have two contacts per key and the PSS has one contact per key. The Reface/SHS have a total of twelve sense lines (2 lines per key) while the PSS has only six sense lines.

6×6 must minimize ribbon cable width or something because Yamaha will subdivide 61 keys into upper and lower banks in order to deploy six keys per group with 6 groups per bank maximum. You’ll see this practice in the synth product line, too. Just sayin’.

The Yamaha SHS-500 and Reface series use the same MIDI I/O dongle. I came across this rather nice diagram (below) of the SHS’s MIDI port. It should help you to whip up a custom cable or two. [Click image to enlarge.]

Yamaha SHS-500 MIDI circuit and connector pin-out

Hope these observations help someone out.

Copyright © 2021 Paul J. Drongowski

Combo organ: Top octave emulation

Given the scarcity of combo organ top octave generator ICs, what’s a hack supposed to do? Emulate!

I posed a “bar bet” against myself — can I emulate a top octave generator chip with an Arduino? The Arduino is a bit slow and I wasn’t sure if it would be fast enough for the task. Good thing I didn’t best against it…

If you browse the Web, you’ll find other solutions. I chose Arduino UNO out of laziness — the IDE is already set-up on my PC and the hardware and software are easy to use. Plus, I have UNOs to spare. Ultimately, one can always cobble together a barebones solution consisting of an ATMEGA328P, a 16MHz crystal and a few discrete components, if small size is an issue.

A simple passive volume control

There’s not much ancilliary hardware required. A few jumper wires bring out ground and audio signals from the UNO. I passed the audio through a trim pot volume circuit in order to knock the 5 Volt signal down to something more acceptable for a line level input. The trim pot feeds a Sparkfun 3.5mm phone break-out board which is connected to the LINE IN of a powered speaker.

That’s it for the test rig. The rest is software.

I assigned a “root” pitch to Arduino digital pins D2 to D13:

#define CnatPin 13 
#define BnatPin 12
#define AshpPin 11
#define AnatPin 10
#define GshpPin 9
#define GnatPin 8
#define FshpPin 7
#define FnatPin 6
#define EnatPin 5
#define DshpPin 4
#define DnatPin 3
#define CshpPin 2

Thankfully, the Arduino has just enough available pins to do the job while avoiding pins D1 and D0. D1 (TX) and D0 (RX) carry the serial port signals and it’s best to let them do that job alone.

My basic thought algorithm-wise was to implement 12 divide-down counters (one per root pitch) that decrement during each trip through a non-terminating loop. Each counter is (pre-)loaded with the unique divisor which produces its assigned root pitch. Whenever a counter hits zero, the code flips the corresponding digital output pin. If the loop is fast enough, we should hear an audio frequency square wave at the corresponding digital output. This approach is (probably) similar to the actual guts of the Mostek MK50240 top octave generator chip, except that the MK50240 counters operate in parallel.

Each root pitch needs:

  • A digital output pin
  • A note count variable
  • A divisor
  • A state variable to remember if the output is currently 0 or 1

For the highest pitch, C natural, we need declarations:

    #define CnatPin 13 

byte CnatCount ;

#define CNAT (123)

byte CnatState ;

and count down code to be placed within the loop body:

    if (--CnatCount == 0) { 
digitalWrite(CnatPin, (CnatState ^= 0x01)) ;
CnatCount = CNAT ;
}

These are the basic elements of the solution. The rest of the pitches follow the same pattern.

Now, for the fun — making the loop fast enough to be practical. This was a bit of a journey!

First off, I tried the MK50240 divisor values which require at least 9 bits for representation. Using INT (16-bit) counter variables, everything worked, but the final note frequencies were too low — not much “top” in top octave. I cut the divisor values in two, switched to BYTE (8-bit) counter variables, and doubled the output frequencies. Yes, AVR (Arduino) BYTE arithmetic is roughly twice as fast as INT arithmetic. That was the first lesson learned.

The next lesson had to do with how the counters were stored (register vs. memory). If I were writing the code in assembler language, I would have stored all of the counters in AVR CPU registers. (AVR has 32 CPU registers, after all.) Register storage would provide the fastest counter access and arithmetic. However, this is where C language and the Arduino setup()/loop() structure fight us.

Ultimately, I put all code into setup() and ditched loop(). I declared all twelve counters as register BYTE variables in setup():

    register byte CnatCount ; 
register byte BnatCount ;
register byte AshpCount ;
register byte AnatCount ;
register byte GshpCount ;
register byte GnatCount ;
register byte FshpCount ;
register byte FnatCount ;
register byte EnatCount ;
register byte DshpCount ;
register byte DnatCount ;
register byte CshpCount ;

The compiler allocated the counter variables to AVR CPU registers. This enhancement doubled the output frequencies, again. Now we’re into top octave territory!

The third and final lesson was tuning. The Mostek MK50240 is driven by a crystal-controlled 2000.240 kHz master clock. The emulated “master clock” is determined by the speed of the non-terminating loop (cycling at the so-called “loop frequency”):

    for (;;) { 
if (--CnatCount == 0) {
digitalWrite(CnatPin, (CnatState ^= 0x01)) ;
CnatCount = CNAT ;
}

...

delaySum = delaySum + 1 ;
}

My original plan was to tune all twelve pitches by changing the speed of the non-terminating loop. I discovered that such timing was too sensitive to code generation to be controllable and reliable. The biggest delay that I could add to the non-terminating loop was “delaySum = delaySum + 1 ;“. In the end, I manually tuned the individual note divisors.

A fine point: I chose the divisors to achieve a wide resolution in 8 bits. Eight bits is “close enough for rock and roll,” but not really enough for accurate tuning.

As usual, the path to the solution was zig-zaggy and not straight. Here is a ZIP file with all of the code and my working notes. I included source code for the intermediate experiments so you can re-trace my steps. Have fun!

Copyright © 2021 Paul J. Drongowski

Review: zplane deCoda

A recent thread on the Keyboard Forum (“What was the first song you figured out by ear?”) brought up memories of high school and combo organs. One of the most popular tunes of the time was “Space Rock Part 2” by The Baskerville Hounds. Air play on Ghoulardi was a big boost to its popularity and it really brought people onto the dancefloor. “Space Rock” is pretty much a rip of The Stones’ “2120 South Michigan Avenue,” albeit way up-tempo than the Stones’ version. Sly Stone knocked out his own titled “Buttermilk.” If you’re wanting a modern update, listen to the 2015 Jerry Cortez cover.

The “Space Rock” organ solo was the solo to know as a teen. At the time, I was paying off my Farfisa and didn’t have any money for records, so the old “drop the needle until you got it” method wasn’t for me. My bandmates were always on my back about it and they didn’t accept my “Guys, they’re just jammin'” excuse. I tried to cover the head and then improvise. Oh, well.

I’m pulling together a backing track for “Space Rock/2120” and it seemed like the time to transcribe the solo. Enter zPlane deCoda. In a nutshell, zplace have deployed their time/pitch stretching and DSP expertise to the problem of picking out tunes from audio. (See the Sound On Sound review for more information.) It’s not an audio-to-MIDI converter, so you still need to use your ears and eyes.

First, ya drag (or open) an audio file in deCoda. deCoda gives you two views: a standard (amplitude) waveform view of the audio and a spectrographic plot. The spectrographic plot is like a DAW piano roll. Instead of notes, however, it displays the sonic energy present at each pitch. You can (kind of) see the notes in the song — pitch and duration. I spent most of my time in the spectrographic display.

zplane deCoda in action

Optionally, you can turn on an XY panel (at right in the image above) that lets you focus playback and analysis on a particular “region” of the stereo field and audio frequency spectrum. Thanks to the XY panel, you can eliminate the bass and high-end sibilance. Blobs light up in the XY panel during playback as notes come and go.

deCoda offers a number of playback controls. You can playback at 1/4, 1/2, 3/4 and full speed. You can transpose up and down. You can change the tempo. My recommendation is to get the best mix of key, tempo and XY region before deep diving transcription.

Like Yamaha’s Chord Tracker, deCoda discovers key, tempo, chords and song sections. As mentioned, you can modify deCoda’s decisions. Compared against Chord Tracker, I would give Chord Tracker the edge. (Yamaha have invested a pile ‘o’ cash into music analysis.) Both tools handle simple chords OK, but forget jazz chords (no 11th and 13th chords) or gospel voicings.

After quickly munching “Space Rock”, deCoda had the key right, but half the actual tempo. The Hounds played “Space Rock” at a blistering 156 BPM. deCoda says 78 BPM. That’s OK, but…

One of the coolest deCoda features is the ability to draw notes on top of the spectrographic display. The notes play back through a simple synthesizer (think Casiotone). A mixer controls the relative level of song audio and synthesized tones. Once I got a little more skilled with deCoda, I found myself changing the relative levels quite often in order to A/B the original audio and the drawn notes. I wish deCoda offered a few different synth voices as the simple tones blended with the organ notes making it difficult to sort out the sounds by ear.

With a little practice, you can begin to pick out the notes by sight as well as ear. 1/4 playback is good for checking note start and duration. “Space Rock” is a mono mix and a mess of frequencies with that danged 60’s ring-y reverb. Thus, there are many false positives — places where you think there is an organ note, but it’s actually the frapping guitar. I wish deCoda could color notes according to timbre. Man, that would be quite the time-saver.

To compensate, I found myself playing the notes on keyboard, mainly to check fingering. “Space Rock” is one of those lazy blues tunes where the keyboardist just rocks his or her fingers around in one basic hand position. It’s difficult to read piano roll notes in real-time; I’d love to have even a simple staff viewer.

Now for the “but…”. deCoda can export the notes as a Standard MIDI File (SMF). Very good. deCoda produces MIDI notes that follow the identified tempo. When the SMF is imported into a DAW or notation tool, it arrives with the identified (or tweaked) tempo. Note play back sounds right, but if you change to the correct tempo in the tool, note starts and note durations are off (i.e., half of what they should be). I had to fix the note starts and durations in Sonar, save another SMF and import the modified SMF into Sibelius. Bummer.

I discovered the tempo and note export gotcha downstream. I also found that I wanted to work and play in G Major, not F# Major, AKA “that frapping guitar key.” I had already started a draft in Sibelius and it became a question of how much work I wanted to throw away. It’s better to get these considerations right from the start before export and downstream work.

Speaking of Sibelius, I really longed to have the identified notes in notation form, not piano roll. Under Windows 10, I couldn’t work in Sibelius and deCoda simultaneously. They did not work together — some kind of MIDI or audio system conflict. One or the other tool wouldn’t play when they were both open at the same time. In a few cases, I had to resort to notation paper and pencil to transfer identified notes into Sibelius, exit Sibelius, then re-start deCoda. Painful.

After all is done, I arrived at a decent transcription in Sibelius. (See image below; click to enlarge.) After seeing and playing the solo against a rough backing track, I think deCoda is about an eighth to a quarter note ahead of the beat. I’m not sweating it too much as playing “Space Rock” comes down to feel. However, it might be a factor when an accurate score is needed for chart-driven players.

Space Rock Part 2 (solo)

zplane deCoda is a worthwhile tool. It won’t automatically transcribe, but it is a decent assistant. The note editor and MIDI export are a real boon as I a keep a book of charts for reference. The XY plot is also a worthy mix visualization tool and has been repurposed in zplane peel. I hope that deCoda continues to invest in deCoda as I would love to have timbre coloring. That’s a tough technical problem, but cracking that nut would put zplane way out in front competetively.

Copyright © 2021 Paul J. Drongowski

Combo organ: Top octave generator

So far, we’re taken a short trip through combo organ technology from early days in the 1960s to modern day workstation voices:

I hope you enjoyed those articles! This post fills in the middle bits — how large scale integration changed combo organ design.

Farfisa tone generation circuit

During the 60s, Vox, Farfisa and other manufacturers employed a similar approach to tone generation. Each organ contained twelve tone generation boards one for each semi-tone in the Western well-tempered scale. Each board implemented:

  • An oscillator to produce the a base root tone, and
  • Several (digital) dividers to derive the ancilliary tones one or more octaves below the root tone.

Vox, Farfisa, and so on used discrete components (transistors, resistors, capacitors, etc.) to implement the oscillator and dividers. These boards were dense and busy with many hand-soldered joints. The Farfisa board, for example, contained 12 transistors, 40 resistors, 25 capacitors and a tunable inductor coil. Assembling, testing and debugging a board like that is quite expensive and labor intensive.

Having lived through the transition from discrete semiconductor circuits to small scale integration (SSI) and then large scale integeration (LSI), I can attest to the revolution initiated in the LSI era. (Not to mention the transition to very large scale integration!) LSI and mixed signal components enabled sound generators like the Texas Instruments SN76477 Complex Sound Generator, General Instruments AY-3-8910/8912, and other ICs — and sounds — favored by chip-tune enthusiasts.

LSI revolutionized combo organ design, too. Mostek (and others) introduced top octave tone generator chips. The well-known Mostek MK50240 (PDF datasheet) has inputs for power, ground and master clock:

    Pin#  Name  Purpose 
---- ---- --------------
1 VSS Supply voltage 15V (typical) 11V (min) 16V (max)
2 Clock Clock 2000.240kHz (typical), 2500kHz (max)
3 VDD Ground

The MK50240 generates each of the high frequency root tones:

    Pin#  Note  Divisor 
---- ---- -------
16 CLow 478
4 C# 451
5 D 426
6 D# 402
7 E 379
8 F 358
9 F# 338
10 G 319
11 G# 301
12 A 284
13 A# 268
14 B 253
15 CHigh 239

The MK50240 has twelve dividers which divide the master clock frequency into the root tone frequencies.

Advantages of the MK50240 should be readily apparent! A single MK50240 replaces all twelve oscillators. Even better, the master clock can be generated from a 2000.240 kHz crystal resulting in superior temperature (pitch) stability. Old discrete circuits are notoriously temperature sensitive.

But, wait, there’s more. Thanks to digital LSI, each divider chain can be replaced by an MOS ripple counter. Consider the CMOS CD4024. (Please see the CD4024B functional diagram below.) The CD4024 is a 7-stage ripple counter that divides the incoming clock signal into seven auxilliary tones at each octave below the input frequency.

The nightmare of discrete oscillators and dividers can be replaced by a single MK50240 and 12 CD4024 ripple counters: 13 dual in-line packages (DIPs) and a handful of coupling capacitors for good measure.

Of course, one must still confront the rat’s nest of wires and signal diodes needed for key switching… To get a sense of wiring complexity, I suggest looking at the design of the vintage PAiA Stringz ‘n’ Thingz digital keyboard or PAiA Oz portable mini-organ. Yes, I assembled a Stringz ‘n’ Thingz — without too many bad solder joints, thank goodness. Organ wiring was a nightmare before microcomputer-based key switch scanning and digital control.

With LSI and micro-computers, organ builders collectively breathed a sigh of relief. Unfortunately, ease of design and manufacture came with a penalty — lack of sonic charm. Each of those old-tyme discrete oscillators were slightly out-of-tune with one another. Thus, there’s a subtle richness in the old discrete designs that is missing in full-on digital implementations.

Before leaving the MK50240 behind, I want to mention the PAiA EK-1 top octave experimenter’s kit.

PAiA EK-1 board (component side)
PAiA EK-1 board (trace side)

PAiA was (and is) a terrific resource for experimenters. I built several PAiA kits including the Stringz ‘n’ Thingz and the Gnome synthesizer. I also played with the PAiA EK-1 top octave experimenter’s kit. If you would like to learn more about the Mostek MK50240, check out the PAiA EK-1 instruction booklet. Shame you can’t find many MK50240s today…

Copyright © 2021 Paul J. Drongowski