Ask Your Question

MIDI setup in Atom

asked 2016-07-03 04:33:08 -0500

mitchk gravatar image

Can someone please assist with the proper MIDI setup for Atom? There are instructions for Emac but not Atom. Here are the steps that I've taken as per the HowTo:

import Sound.Tidal.MIDI.Context

displayOutputDevices >>= putStrLn

devices <- midiDevices

m1 <- midiStream devices "Moog Sub 37" 10 synthController

The last instruction results in "* Exception: Failed". I substituted the output from displayOutputDevices by entering the interface number (10) and the controller name (Moog Sub 37). I'd appreciate any support on this.

edit retag flag offensive close merge delete


(see below)

lvm gravatar imagelvm ( 2016-07-03 07:05:48 -0500 )edit

Did you get this working? I'm having the same problem just now. Thanks.

GBR303 gravatar imageGBR303 ( 2016-08-03 11:31:37 -0500 )edit

@GBR303 Not yet. I was looking at your list post and there are more recent instructions on the tidal-midi GitHub site that I will try.

mitchk gravatar imagemitchk ( 2016-08-05 04:31:42 -0500 )edit

3 answers

Sort by ยป oldest newest most voted

answered 2016-08-05 20:39:29 -0500

mitchk gravatar image

The "* Exception: Failed" has been solved through a misconfiguration of my midi setup. In JACK my midi was configured with a MIDI Driver of "raw" which produced the "* Exception: Failed". When I set the MIDI Driver to "seq" the error went away and I was able to generate notes to my midi device. I followed the instructions in the following link:

@kindohm: Could you consider including this MIDI configuration setup in the file?

edit flag offensive delete link more


We could add a comment in the tidal-midi doc to cue users to watch out for this. I don't know how many users use Jack for MIDI though. Perhaps a more general section on troubleshooting the device and driver would be helpful.

kindohm gravatar imagekindohm ( 2016-08-15 09:47:03 -0500 )edit

answered 2016-07-03 07:14:22 -0500

lvm gravatar image

In Atom you have ~/.atom/packages/tidalcycles/lib/BootTidal.hs (you can edit this by clicking on "Open Config Folder"). Here you should add these extra lines (except displayOutputDevices.... that's not really necessary).
Hope this helps.

edit flag offensive delete link more

answered 2016-07-04 10:15:31 -0500

kindohm gravatar image

updated 2016-07-11 10:23:34 -0500

Here is my basic Atom MIDI boot code. I keep this in a separate midi-boot.tidal file and I personally do not modify the BootTidal.hs file that is a part of the Atom package.

import Sound.Tidal.MIDI.Context
import Sound.Tidal.MIDI.Stream
import Sound.Tidal.MIDI.Synth

devs <- midiDevices

mySynth <- midiStream devs "Scarlett 18i8 USB" 1 synthController

You need to eval each of those lines separately. Then, you can eval some MIDi patterns on your device:

mySynth $ note "0 1 2 3"
edit flag offensive delete link more


Thanks for this Mike. The first line should be: import Sound.Tidal.MIDI.Context The `mySynth` definition line above still ends up with a `*** Exception: Failed` error. How can I properly know the device definition? Is it specified by the name (e.g., `Scarlett 18i8 USB` in your example)?

mitchk gravatar imagemitchk ( 2016-07-05 15:00:49 -0500 )edit

@mitchk What operating system are you using? If you are using Linux of MacOS, you should be able to type "displayOutputDevices >>= putStrLn" on a terminal and get a list of devices. If on Windows, I'm not sure...

kindohm gravatar imagekindohm ( 2016-07-11 10:24:57 -0500 )edit

Question Tools



Asked: 2016-07-03 04:33:08 -0500

Seen: 489 times

Last updated: Aug 05 '16