Eine Kliene Eingebettete Musik * (A little embedded music) * - - PowerPoint PPT Presentation

eine kliene eingebettete musik a little embedded music
SMART_READER_LITE
LIVE PREVIEW

Eine Kliene Eingebettete Musik * (A little embedded music) * - - PowerPoint PPT Presentation

Eine Kliene Eingebettete Musik * (A little embedded music) * Replicating 12 th Century Musical Instruments Using Embedded Linux Beth Flanagan Intel Corp Yocto Project ELCE Dublin 2015 My hobbies are not exactly compatible. My hobbies are


slide-1
SLIDE 1

Eine Kliene Eingebettete Musik * (A little embedded music) * Replicating 12th Century Musical Instruments Using Embedded Linux

Beth Flanagan Intel Corp Yocto Project ELCE Dublin 2015

slide-2
SLIDE 2

My hobbies are not exactly compatible.

slide-3
SLIDE 3

My hobbies are not exactly compatible.

slide-4
SLIDE 4

My hobbies are not exactly compatible.

slide-5
SLIDE 5

My hobbies are not exactly compatible.

slide-6
SLIDE 6

The Hurdy Gurdy

slide-7
SLIDE 7

What is a Hurdy Gurdy? Basically, a keyed viol type instrument, that uses a rosined crank wheel to “bow”

  • ne
  • r

more strings.

slide-8
SLIDE 8

How it works

slide-9
SLIDE 9

How it sounds

slide-10
SLIDE 10

Physical/Electrical Design

slide-11
SLIDE 11
  • Crank
  • Problems with using a rotary

encoder

  • What I went with and why.
  • Body
  • Acrylic Laser Cut
  • 6mm/.25 in
  • Keys
  • Lots of bad ideas here!
  • buttons!
  • slide pots!
slide-12
SLIDE 12
  • Crank
  • Problems with using a rotary

encoder

  • What I went with and why.
  • Body
  • Acrylic Laser Cut
  • 6mm/.25 in
  • Keys
  • Lots of bad ideas here!
  • buttons!
  • slide pots!
slide-13
SLIDE 13

Hurdy gurdy design consideration number 1

slide-14
SLIDE 14

I am cheap.

slide-15
SLIDE 15

24 EU on Alibaba!

slide-16
SLIDE 16

Why a motor and not a rotary encoder?

  • Able to have a feel of

strings/resistance

  • Ability to change sense of

resistance

  • Power the device
  • 0-42VDC voltage divided

down to ~3.0VDC

  • Hurdy crank has a 8mmish

Shaft.

slide-17
SLIDE 17

Body

  • Designed in Inkscape
  • Laser cut by SNOW Laser

Studio Dublin

  • Rush job ~400EU
  • Certainly cheaper in hacker

spaces

  • 6mm/.25in
slide-18
SLIDE 18

Keys

  • Spent a lot of time thinking

about this.

  • Lots of REALLY BAD WAYS

to do it!

  • Lots of REALLY expensive

ways to do it

slide-19
SLIDE 19

Keys

  • SoftPots!
  • The GOOD!
  • Cheap! (see design

consideration 1!)

  • Easy to wire up!
  • Uses one analog input!
  • The BAD!
  • Loss of string bending
  • Laser bendt key shafts
slide-20
SLIDE 20

The embedded board

  • Minnow Turbot + Calamari

board.

  • Issues with Ika board support.
  • i2c non-determinent bus.

Ungh.

  • This is being fixed!
  • Calamari has a linear pot....

soooo... lazy crank mode!

slide-21
SLIDE 21

OS/Software Design

slide-22
SLIDE 22

hurdy-image-rt-dev

slide-23
SLIDE 23

hurdy-image-rt-dev

  • based off of core-image-sato

dev

  • pygame, numpy, scikits-

samplerate

  • pyhurdy.py
slide-24
SLIDE 24

pyhurdy.py

  • drone strings are pygame.mixer.Sound
  • bjects
  • melody string is based off a single wav

file

  • resampled on startup based off of

self.tuning

  • this takes time
  • different sample rates are really fast
  • and sound horrible
  • while True: loop
  • reads voltage of crank
  • adjusts volume of drone strings and

melody string

  • reads resistance of pots
  • if I'm lazy and don't want to crank,

there is the onboard calamari pot

slide-25
SLIDE 25

TODO

  • selectable strings
  • ika to calamari killed my digital i/o
  • my lousy hand is lousy at soldering
  • buzzing bridge
  • voltage gate of crank
  • play buzzing sound
  • selectable tuning
  • resample a0-g4 on startup
  • on switch, switch all strings to new

tuning

  • tuning indicator
  • I'm absolutely tone deaf.
  • charge system
  • crank spits out 0-42VDC. would be nice

to charge the battery

  • faking string bending
slide-26
SLIDE 26

meta-hurdy

  • hurdy-image-rt-dev
  • the layer was relatively easy to do....
  • pulling my hair out over SDL->SDL-

mixer->pygame issues

  • crying over the scikits samplerate build

issues

  • probably PEBCAK with PYTHONPATH

issues

  • fix needing X11/HDMI
  • go with a soundcard and directfb
  • Layer took about a 3 days to get *mostly*

working.

  • Still compiled on target to avoid SDL

issue

slide-27
SLIDE 27

What was learned

slide-28
SLIDE 28

Embedded Engineers take *almost* as much time as Luthiers

slide-29
SLIDE 29

In fairness, I only spent about 3 weeks total on this. My luthier spent 5 months.

slide-30
SLIDE 30

Dependency/compile issues

  • Upstream your patches
  • Open Bugs
  • Open your layers
slide-31
SLIDE 31

I *kinda* neglected to learn how to play the hurdy gurdy

slide-32
SLIDE 32

Demo

slide-33
SLIDE 33

Who brought the ear plugs?