View on GitHub

eBaghet

open source electronic baghet (italian bagpipe) project for Arduino

download .ZIPdownload .TGZ

eBaghet

Open source electronic pipes project for Arduino-compatible boards.

Currently includes:

Largely based on eChanter by Tim Malcolm (2010-2015, CC BY-NC-SA).
Audio synthesis is based on the Mozzi sound library.

Sound for the Baghet is provided by Valter Biella.

Hardware build

A step-by-step hardware build guide with photos is included in this repository:

That guide rewrites and updates the most useful ideas from the archived eChanter build notes, adapted to this project and to the documented Nano-based PVC build.

Archived historical reference:

Software requirements

Current build status

The project is currently known to compile on:

Support for other platforms is being modernized.

Notes about Teensy 4.x

Teensy 4 support is a work in progress.

Mozzi 2 includes Teensy 4 support, but eBaghet still needs platform-specific adaptation for:

So Teensy 4 should currently be considered experimental.

Important migration note

Older versions of this project used a personal fork of Mozzi and required manual edits to mozzi_config.h.

This is no longer the recommended setup.

Configuration is now done directly in the sketch with #defines before including Mozzi.h.

Configuration

Open eBaghet.ino and eBaghet_config.h.

Audio configuration

Mozzi settings are now defined in the sketch, for example:

Typical legacy equivalent values are:

Depending on the board, different audio output modes may be required.

Sample quality

You can enable high resolution samples by defining:

	  #define USE_16BIT_SAMPLES true

Instrument startup order

You can define the order in which instruments are presented:

	  #define STARTING_INSTRUMENT	GHB
	  #define FIRST_INSTRUMENT	BGT
	  #define SECOND_INSTRUMENT	BRD
	  #define THIRD_INSTRUMENT	SML
	  #define FOURTH_INSTRUMENT	UIL

Where:

Drone startup mode

You can define whether the chanter starts with drone sound enabled:

	  #define STARTING_DRONES	DRONE_ON

or disabled:

	  #define STARTING_DRONES	DRONE_OFF

For the Baghet you can also define the initial drone intonation:

	  #define STARTING_DRONE_INT	DRONE_INT_STANDARD

Available options:

Finger sensor type

You can select the fingering sensor type with:

	  #define TOUCHMODE TOUCH_CAP

Available options are:

Important note about TOUCH_CAP

TOUCH_CAP is the legacy direct capacitive sensing mode.

It works on supported platforms, but it is hardware-dependent and may require board-specific adaptation.
For new ports, TOUCH_SWITCH or TOUCH_MPR121 are often easier starting points.

Capacitive trigger threshold

If you use TOUCH_CAP, you may want to adjust:

      #define CAPTOUCH_TRIGGER 4

Higher or lower values may work better depending on wiring, pads and environment.

Volumes

You can define relative chanter/drone volumes for each instrument, for example:

	  #define GHB_CHANTER_VOLUME	8
	  #define GHB_DRONES_VOLUME	4
      
	  #define BGT_CHANTER_VOLUME	8
	  #define BGT_DRONES_VOLUME	4
      
	  #define BRD_CHANTER_VOLUME	8
	  #define BRD_DRONES_VOLUME	8
      
	  #define SML_CHANTER_VOLUME	8
	  #define SML_DRONES_VOLUME	8
      
	  #define UIL_CHANTER_VOLUME	8
	  #define UIL_DRONES_VOLUME	8

	  #define GAL_CHANTER_VOLUME	8
	  #define GAL_DRONES_VOLUME	8
	  
	  #define AST_CHANTER_VOLUME	8
	  #define AST_DRONES_VOLUME	8

Values go from 1 (minimum) to 8 (maximum).

Sensor pins

Finger sensor pins are defined in eBaghet_config.h.

Board-specific pin mappings may differ, so check that file and adjust according to your target platform.

Uploading the sketch

  1. Connect the board
  2. Select the correct board from the IDE
  3. Select the correct processor/options if required
  4. Select the serial port
  5. Upload the sketch

Startup options

The eBaghet has several startup modes depending on which keys are closed when the chanter is powered on:

Fingering charts

Great Highland Bagpipes, Border Pipes and Small Pipes:

GHB

Uilleann Pipes:

UIL

Baghet
(according to the Manuale del Baghet by Valter Biella):

Baghet

Dashed keys can be open or closed depending on comfort and position.

Roadmap

Planned future work includes: