Re: [LAU] A text-only environment for composing electronic music?

From: Florian Paul Schmidt <mista.tapas@email-addr-hidden>
Date: Sat Jan 25 2014 - 18:04:43 EET

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 25.01.2014 15:31, raf wrote:

>> This composition compiler should ideally support JACK, with stuff
>> like transport control. It should be able to support optional
>> hardware synths, which will be controlled via MIDI messages and
>> mixed back into the full result via an input JACK port.
>>
>> I am aware of the KISS principle and actually love it very much.
>> So if anyone has suggestions on how to implement such a
>> workflow/tool with existing tools and plumbing code, I am very
>> open to ideas and suggestions. However, I get a feeling that
>> what I want is only convenient if relatively tightly integrated,
>> so that I do not have to tinker with too many individual tools
>> while trying to be productive.
>>

I don't see the original message on this list, so I'll just reply to
this one. You might have seen my recent post about the ongoing
development of teqqer (a console based tracker style midi/cv
sequencer). It is based on a simple library called teq [1] which
provides a pattern/tracker based abstraction for playing midi/cv
events over jack ports.

The simplest (somewhat complete) program to generate a loop of notes
would be something like this:

import teq
from pyteq import *

t = teq.teq()

# start pattern/tick, end pattern/tick
set_loop_range(t, 0, 0, 1, 0, True)

t.insert_midi_track("foo", 0)

# create a pattern
p = t.create_pattern(16)

# fill it with notes
for n in range(0, 16):
"...")
        # track, tick, event
        p.set_midi_event(0, n, teq.midi_event(teq.midi_event_type.ON,
60, 64))

# insert pattern at position 0
t.insert_pattern(0, p)

# some cleanup (call regularly to collect garbage after editing
operations)
t.gc()

# ticks per second
t.set_global_tempo(4)

# pattern, tick
set_transport_position(t, 0, 0)

# ...
play(t)

# wait for the user to press enter
try:
        i = input("Press Enter to continue...")
except:
        pass

t.deactivate()

It is still not feature complete (alpha stage, though teq is more
complete than teqqer). jack_transport is definitely on the TODO list.
And I also ponder implementing basic sampler functionality.

So maybe it interests you..

[1] https://github.com/fps/teq
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJS4+CYAAoJEA5f4Coltk8ZJ70IAJX58Jh5dIEK/rchWJI/tyzn
WcxBHmQq3yg1pCRcV88wn9sgwPkkEKibWvZbAqyfxJ1gHRb6gbbE5plQnV/tAc+C
UbYL4CJS6c3kthyQnnzUc6/YelLTM1/24wEHwJvP3x0ovlHCZp9sfOigStkQog4U
vavlNcOPurV1oVzmxPytnNvvvaz42DT0WaT5V+xUT0bIDZ+OC31ZSKkrOaYS0pmP
h/CW9AV0AMGrNHTOCX5nVJ6eZtCLhx3KK6o/FYygcu2IiMRYqDxEEozzQaPe/uqX
9cL81hyZ+h5QcPHJlrbyfnZ64q6I4reYv+7DF54sRJWYh8ScPks6BuMuugmL0xs=
=jL+F
-----END PGP SIGNATURE-----
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Sat Jan 25 20:15:04 2014

This archive was generated by hypermail 2.1.8 : Sat Jan 25 2014 - 20:15:04 EET