Featured Post

Applying Email Validation to a JavaFX TextField Using Binding

This example uses the same controller as in a previous post but adds a use case to support email validation.  A Commons Validator object is ...

Saturday, March 16, 2013

A SysML BDD of Bass Guitar Effects

SysML Block Definition Diagrams do a great job of showing "has-a" relationships in a system which helps to define system boundaries and important parts within a system.  This post shows a SysML 1.3 BDD for an arrangement of bass guitar effects.  The diagram was created using Sparx Systems EA 10.


I received some great feedback that turned this post into a series.  I put too many internal details on the BDD and broke the diagram out in this post.  I'm keeping the old content up so that everyone can follow along.  Diagrams marked "obsolete" are revised in later posts.


In most rock and jazz performances, electronic instruments like electric bass guitars are enhanced using digital or analog effects.  Effects make electric guitars buzz, shimmer, warble, or echo.  Often, these effects are packaged as pedals so that they can be turned on an off during a performance without requiring the musician to take his or her hands off the instruments.

What's Being Modeled

This picture shows the bass guitar effects pedals that I use during performances.  There is also a tuner that is a pedal so that I can check my tuning between songs.

Bass Guitar Effects Plus a Tuner and Direct Box
Each effects pedal requires power.  There is a standard power configuration -- low current, 9V -- for many pedals.  However, some pedals like the tube-based MarkBass Compressore need a lot of current (600ma) and a different voltage (12V).  Additionally, there are cabling requirements to make sure that the correct polarity is used.

If there is an incorrect voltage, the pedal won't work.  If there is an incorrect current, the pedal (like the digital tuner) will work intermittently.  If you use a cable of the wrong polarity, you'll damage the pedal.  In the following picture, plugging the red-tipped cable instead of the black one destroyed this bass distortion pedal.

A Ruined MXR Blowtorch
This diagram lists each of the pedals in the "Bass Guitar Effects" photo except for the direct box.  Additionally, there is a Pedal Power device hidden in the picture that provides power to three of the pedals: Bass Micro Synth, Tube Screamer, Boost Chorus.  The stage tuner and compressor each came with their own power supplies and these are in turn plugged into a generic power strip.  The Pedal Power (hidden device) is also plugged into a power strip.

SysML BDD of Bass Guitar Effects (Too Many Internals Details)


At the top of the diagram, there is a block "Carl's Bass Effects" which is the item that we're modeling.  All other blocks on this diagram are linked to "Carl's Bass Effects" by a composition connector (black diamond).  These relationships define the system boundary by telling the viewer what is in "Carl's Bass Effects".  Anything not in this BDD can be considered outside of the power system boundary.

EA's Project Brower also supports composition by making each related block a property of the parent block.  In this case, a "Boss TU-1000 Stage Tuner" is a part of "Carl's Bass Effects".

Project Explorer Showing Properties of Carl's Bass Effects
On the diagram, I have the property display turned off since I'm already showing the composition arrangement.  This is done by selecting the "Carl's Bass Effects" block, pressing Ctrl-Shift-Y, and deselecting in Show Element Compartments the Properties checkbox.

Properties Aren't Needed Since BDD Shows Composition

There can be other BDDs involving these blocks.  For example, a signal processing BDD would leave off the power details and focus on the inter-pedal connection.  For that diagram, I'd use the same core blocks (the effects pedals), leave off those devoted solely to power like the Power Strip, and add in the direct box which is not powered by an external source.


Ports are the small squares drawn over the edge of a block (ex "Isolated 18V" on the "Voodo Labls Pedal Power" block).  This particular diagram is using SysML 1.2 standard ports which are still supported; they could be changed to full ports.  The purpose this power system BDD is to prevent accidents like the one that happened to my Blowtorch.  So, each block has one or more ports indicating the connection and power interface.

Ports hook up to other ports using connectors.  I'm using the name of the connector to describe a cable.

Reading the Diagram

Here are a few statements that you can make based on the diagram.

The Pedal Power is plugged into one of the outlets on the Power Strip.  Three of the effects are in turn plugged into the three Pedal Power's isolated 9V port using center negative cables.  All of the effects require 9V.  Their current requirements vary, but none needs a lot (>=300ma) of current.

In this electronics application, a SysML Block Definition Diagram was used to define the power requirements and to describe connections between collaborating parts.


From Stephan's suggestion...This version uses aggregation since the parts of Carl's Bass Effects are easily transfered.  (They're velcro-ed on to a metal frame so they're not totally loosely coupled. Hopefully.)

Effects and Part References BDD


  1. Hi Carl,

    I'm a little irritated why the ports appear in the bdd and are connected with connectors in this kind of diagram. In SysML, the bdd represents the product tree. It shows how your system is decomposed in a hierarchical matter. Ports and connectors are usually displayed in an internal block diagram (ibd): This diagram shows the internal structure of a system and its interfaces.

    Furthermore I'm irritated why you're using the stringent composition relationship to show that every effect device is a part of your system. From my point of view, your system is a very loosely coupled one, so I think that aggregation might be a better choice.

    1. Hi Stephan,

      Thanks for the comment. I posted an update the leaves off the internals. Look for an IBD soon.

    2. There's an IBD here: http://bekwam.blogspot.com/2013/03/a-sysml-ibd-of-bass-guitar-effects.html.