Skip to content

javier-sy/MusaLCEClientForAtom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MusaLCEClientForAtom (aka musa-dsl-atom-repl)

⚠️ Discontinued. Atom itself was sunset in December 2022. Use MusaLCEClientForVSCode instead.

An Atom package to allow a Read-Eval-Print-Loop connected to a Musa-DSL REPL server.

Musa-DSL is a Ruby Domain Specific Language for algorithmic musical composition.

The Musa-DSL server should be implemented creating a new REPL instance inside the binding context of the sequencer DSL. A simple instantiation scenario is the following:

require 'musa-dsl'
require 'unimidi'

clock_input = UniMIDI::Input.all.select { |x| x.name == 'Apple Inc. Driver IAC' }[1]
output = UniMIDI::Output.all.select { |x| x.name == 'Apple Inc. Driver IAC' }[1]

clock = Musa::InputMidiClock.new clock_input

voices = Musa::MIDIVoices.new sequencer: transport.sequencer, output: output, channels: [0]

transport = Musa::Transport.new clock, 1, 24

transport.sequencer.with do
  Musa::REPL.new binding
end

transport.start

This opens a REPL socket in localhost:1327. musa-dsl-atom-repl package automatically connects to this default server.

Keystrokes inside Atom:

  • Ctrl-Alt-M: opens the Musa-DSL REPL Status panel. This panel shows the responses from the server when it evals the commands sent from the Atom client. The response includes the inmediate response and the future responses for the commands that develop in time.

  • Ctrl-Alt-Return: sends current selection or current line (if nothing is selected) as a command to Musa-DSL REPL server. The response is shown in Musa-DSL REPL Status panel.

Author

License

MusaLCEClientForAtom Copyright (c) 2018-2022 Javier Sánchez Yeste, licensed under GPL 3.0 License

About

Atom package for the client of Musa-DSL Live Coding Environment

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors