asc2svg

asc2svg was intended to be an ASCII diagrams to SVG, like `ditaa` and Svgbob
Log | Files | Refs

aprog_pynblinc_readme.note (3166B)


      1                                                                                 
      2                                     pynblinc                                    
      3 ================================================================================
      4 
      5 `pynblinc` is the Python implementation of `nblinc` (*n*early *bli*nd
      6 *c*omposition), which is kind of a middle ground between a tracker / step
      7 sequencer and a piano roll. The goal of (py)nblinc is to achieve the following:
      8 
      9 - Keyboard based pattern / melody composition without the need to write text.
     10 - VIM-like keyboard bindings
     11 - TUI instead of GUI based, i.e. using [curses](https://docs.python.org/3/howto/curses.html).
     12 
     13 Although it can be extended to support MIDI or OSC output, pynblinc will first
     14 and foremost be developed with *Csound* in mind. The basic idea is that pynblinc
     15 will be used for composing a score, while nvim is used to define the orchestra
     16 (instruments)
     17 
     18 
     19 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     20 |  1                             Suggested use                                 |
     21 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     22 - Paper plan (high level composition). You can't avoid composition on paper.
     23   Don't try to!
     24 - Jamming (recording and melody composition)
     25 - Putting melodies and samples together.
     26 - Use Csound with separate score (`.sco`) and orchestra (`.orc`) files.
     27 - Use (py)nblinc to compose score files and (n)vim to define the orchestra.
     28 
     29 
     30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     31 |  2                         Programming resources                             |
     32 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     33 This section links to documentation for some of the libraries used in pynblinc.
     34 
     35 == 2.1 ============================== Mido =====================================
     36 For midi support:
     37 - [MIDO General](http://mido.readthedocs.io/en/latest/)
     38 - [MIDI Files](https://github.com/olemb/mido/blob/master/mido/midifiles/midifiles.py)
     39 - [MIDI Tracks](https://github.com/olemb/mido/blob/master/mido/midifiles/tracks.py)
     40 
     41 == 2.2 ============================== TUI ======================================
     42 
     43 - [curses](https://docs.python.org/3/howto/curses.html)
     44 - [more curses](https://docs.python.org/3/library/curses.html)
     45 
     46 
     47 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     48 |  3                          Notes on programming                             |
     49 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     50 - As the score will be edited by pynblinc and the orchestra by vim it makes
     51   sense to use separate files.
     52 - For this to work with the current program, the score must be limited to
     53   *i* statements only. This should be fine for now, because:
     54     1. *f* statements can be moved to the orchestra (using *ftgen* opcode, which
     55        is really the preferred way to load tables anyway)
     56     2. *t* statements aren't supported by ctcsound anyway, it seems.
     57 
     58   To deal with tempos, allow a single t statement as the first line of the score
     59   and parse this manually in pynblinc.