The random screenshot for today is the new keygroup editor for drum programs.
Shows the new modulation matrix; samples can be directly dropped on zones to upload and assign them.
The random screenshot for today is the keygroup editor.
The keygroup editor has editable zone envelopes, and the knobs feature shift+click for fine adjustments.
I've just released Aksy 0.2. This is an intermediate release to make the new and improved Aksy library, OSC support and AksyFS available.
The upcoming 0.3 release will include Aksui, the new alternative for ak.Sys.
Download it from the project releases page:
It was a bit quiet on the Aksy (news) front last three weeks, because I was on holiday. In my absence Joe made a lot of progress on ak.py, which is now called Aksui. Aksui is now using the recently implemented Aksy support for alternative operations (described in the Akai System Exclusive manual). These operations make it possible to efficiently execute commands for a given program, multi, etc in batch. Speedwise, Aksui is now approaching ak.Sys.
In the mission to release ak.py with aksy in 0.3, I'm getting help from Joe now. He has been so active lately, I had to make him a committer ;-). We're now actively using trac for project bookkeeping.
The random screenshot for today is the recording widget:
Aksyfs is now running multithreaded, and starts an embedded OSC server to be able to perform non-file based operations when the sampler's filesystems are mounted. Currently ak.py does not use OSC to communicate with the sampler backend, but in the not too distant future it will be possible to use aksyfs and ak.py at the same time.
Joe Misra did a lot of work on a UI for aksy last year. It has been in the aksy source repository for quite a while, but we've never really gone public with it - drastic new insights (eg. ditching GTK...) kind of made its development seem a dead end street. But because we're both quite busy in real life, a new iteration of ak.py will probably take a long, long while, so I decided to get the first iteration of ak.py in release shape. No polish or fancy features, but just something that "works".
I'll finish again with the obligatory screenshots of what's already there -
The front panel widget (which supports navigation by mouse and keyboard!)
The main sampler objects browser:
The program editor:
I've ported AksyFS to fuse-python 0.2, to make use of the new stateful file API, which cleaned up the code and allowes me to tune the direct_io property on a per file basis. It was a quite smooth ride, resulting in less and cleaner code.
Recently, during the revision of support for Multi support, I stumbled upon some interesting methods in the sysex documentation:
Multi EQ Get EQ Output Channel Get EQ Enable Get EQ Low Gain Get EQ Low Frequency Get EQ Mid Gain Get EQ Mid Frequency Get EQ High Gain Get EQ High Frequency
Semi-parametric EQ on multis? Cool! But after my disappointing experiences with implementing advanced sample manipulation, I approach the documentation with a healthy suspicion (the docs mention methods for loop and region creation, but when I tested them they turned out to be no-ops). So I turned on my sampler, and tried them out. The methods even modified the multi! But I no matter how extreme I tuned the settings, I could not hear any audible difference...
I've finally finished the first iteration of aksyfs, a FUSE implementation for aksy, which makes it possible to mount an Akai sampler as a file system. This feature had been on my wish list for a long time, but I was a bit hesitant to start implementing a Linux-only feature. But times are changing and it seems that a Windows port of FUSE is in the works. Some of the possibilities:
Copy files to and from the sampler:
cp -r /tmp/aksy/memory/ ~/music/sampler/backup
Rename and delete files and directories:
rm /tmp/aksy/memory/tabla.wav rmdir /tmp/aksy/disks/Z48\ \&\ MPC4K/Temp/
Load and save files on the sampler using mv:
mv /tmp/aksy/disks/Z48\ \&\ MPC4K/Exp/SynthTest3.AKP /tmp/aksy/memory/
But of course, the file system integration isn't limited to commandline utilities, some experiments with Freecycle show that aksyfs will make sampler workflow really smooth!
I'll finish with the obligatory screenshot - which also shows that the Akai System Exclusive protocol has some limitations; it is not possible to query file sizes of files on the sampler. Luckily, of most applications I've tested with so far, only vi (!?!) seems to trust blindly on the file metadata to determine file sizes and will keep trying to read bytes past EOF...
Last week I managed to get all file transfers to work properly. Win32: the linking problems were resolved after a reboot (I should have known ;-)), but usb setup fails - I have to dive into the libusb API a bit more - probably there are subtle cross platform data types issues at work here.
For this week's agenda: adding name and handle lookups to the Aksy C library, so it can be used as a stand alone solution for transferring files from and to the sampler.
I also hoped to find out tonight that the Z8 supports more than a small subset of S56k system exclusive (disktools), but this doesn't seem to be the case.
After recovering from a very persistent cold, I can report some progress on Aksy again.
I factored out all C level code from the Python extension which gives a C-only API and a cleaned up Python extension. Had some sweet dreams about hooking the API up with OSC but succeeded in pushing those back because its *DEBUGGING TIME*! ;-)
After some more usb sniffing I found out all transfer modes, for file up and downloads from both memory and disk. Also managed to find out the way to abort a transfer (not implemented, because the current synchronous approach would not allow for any interruptions on the client side - put this on long term). With download, there are no real problems any more (except lacking error handling), uploading works ok with big files but not with small ones... maybe I'm setting the block size incorrectly under some conditions.
In the beginning of 2004, I started working on a library and a GUI tool that would enable me to transfer files between my up-and-coming Linux DAW and the Akai Z8 sampler over USB and control the sampler from my workstation - Aksy. Months later My Linux DAW was up and running, but Aksy had gotten into a dormant state... One of my good intentions for 2005 is to not lose all the work I invested into it and make it available to the general public.
So I have to get stuff usable and stable. I decided to drop the GUI and re-conceive Aksy as an scripting and command environment rather than a Ak.sys clone (the Windows/Mac software that came with the sampler). Because the library is written in Python this will be quite easy to do and much faster to implement than any GUI. I want to use my sampler too!
But, things are starting to look nice currently, I have started on Akai AKP/wav write support, and in the first release there will be some nice scripts which will make dealing with the Akai Z8 much more fun.