DIVMMC/ESXDOS na MIST.

Bardzo mnie ucieszyła ta zmiana w rdzeniu ZX Spectrum dla MIST:

The DIVMMC/ESXDOS combo provides easy and fast access to spectrum games stored on SD card. With release r877 the zxmmc has been replaced by a DIVMMC implementation in the spectrum core.

ESXDOS aims to be the ultimate firmware for the DivIDE/DivMMC interface. Here’s a list of current features:

    • DivMMC: Supports MMC/SD/SDHC devices
    • Device and filesystem abstraction layer
    • Full FAT16/FAT32 read/write support (no extended partitions, no LFN).
    • Virtual Disk support (up to 4 devices)
    • Betadisk/TR-DOS emulation using (trimmed) .TRD files
    • Provides extended BASIC commands
    • BASIC files integration using +3DOS headers for FAT filesystems
    • Support for seamless IM2 loading/saving, from BASIC and machine code
    • System commands loaded from /BIN dir of system drive
    • TAPE emulator supports reading/writing from/to TAP files. TAP attaching functions are available to external programs.
    • POSIX-based API usable by .commands, external programs and NMI.SYS. Functions available on rst $08: open, read, write, close, opendir, readdir, seek, sync, fstat, getcwd, chdir, unlink…
    • Possibility of getting absolute LBA sector and device on an opened file (for direct I/O)
    • Kernel loads modules (.KO files) on demand
    • NMI.SYS support (NMI system is independent, ESXDOS kernel just provides services)

„Zawsze chciałem mieć takie coś”, bo Spectrum to pierwszy komputer, jaki na oczy zobaczyłem.

DIVMMC/ESXDOS na MIST.

Fsthost-svn + Hybrit + Lecab2 na Tahr Puppy (RT) :)

Fsthost-svn da się skompilować bez GTK i lash:

make GTK=0 LASH_PRESENT=0 PLAT=32

a mimo to, dodanie opcji -l -s plik.fps i potem kill -SIGUSR1 <pid> zapisuje stan wtyczki :) (wielkie dzięki dla autora za wskazówki i cierpliwość).

chrt -f -p 89 `pidof jackd`
export WINE_RT=10; export WINE_SRV_RT=5
set_rlimits /usr/bin/fsthost -s ~/fsthost/brit.fps ~/poulin/HyBrit.dll&
set_rlimits /usr/bin/fsthost -s ~/fsthost/lecab.fps ~/poulin/Poulin_LeCab2_Rev1.dll&

i na wszelki wypadek:

pids=`pidof fsthost.so`
for pid in $pids; do chrt -f -p $pid; done

DSP load na poziomie <20% i brak xruns :). Co ciekawe, jak obciążę procesor np. klikoma pustymi pętlami while 1: pass, DSP run spada do 10-11%. Nadal uważam, że to zdecydowanie za dużo. Vsthost z dużym pluginem, typu GR5 generuje DSP load do 3% przy znacznie większej liczbie uruchomionych efektów… Ale raczej pozostanie to jako zagadka. Faktem jest, że te pluginy pod Linuksem działają lepiej jak pod Windows.

set_rlimits, bo w Puppim nie ma pam i /etc/security/limits.conf, a wine z łatką rt ma problem z priorytetami bez tego (trzeba przeedytować /etc/set_rlimits.conf).

Fsthost-svn + Hybrit + Lecab2 na Tahr Puppy (RT) :)

Wysoki DSP load dla wtyczek VST Win32.

Staram się ograrnąć temat VST pod Linuksem i pomimo że nie jest najgorzej, zauważyłem dziwne zjawisko: wysoki DSP load i xruns w Ardour przez vst-bridge lub w Carli, przez jej własny bridge dla wtyczek VST. Dwa dni kombinacji i udało mi się zejść do nieco poniżej 50% (przez winetricks zainstalowałem gdiplus i vcrun205{08,10}, choć nie wiem czy to pomogło, dodałem też  i915.do_wbinvd=no do parametrów kernela, bo podobno sterowniki grafiki dają w kość, ale to dalej nie to! choć jeszcze wczoraj load skakał do 70-90%).

Najdziwniejsze jest to, że na starym vsthost z projektu dssi-vst DSP load jest na poziomie max 2-3% dla tych samych wtyczek. 

Ciekawe czy autor Carli, KXStudio i aktualny deweloper dssi-vst, Filipe Coelho aka falkTX, coś odpowie.

vst_host_low_dsp_loadardour_vst_bridgecarla_vst_bridgeCiekawe, że vst-bridge również cierpi na to samo „schorzenie”, choć działa nieco inaczej.

Update: zmieniłem IR loader na keFIR i da się żyć. DSP load na poziomie <40% xruns sporadycznie. Brzmienia darmowych symulacji wzmaków z dobrymi odpowiedziami impulsowymi cabinetów są lepsze od wszystkiego co słyszałem do tej pory w GR5.

Wysoki DSP load dla wtyczek VST Win32.

Tahrpup RT spotyka Poulin Legion, Lecto i LeCab2.

Cóż mogę powiedzieć… Chyba spałem pod kamieniem zbyt długo. Mam dziś wolne od pracy (ach te wiosenne ciepłe dni, łatwo się przeziębić) antybiotyk chyba działa, bo eksperymentuje dziś z wtyczkami VST do gitary i bardzo, ale to bardzo jestem zaskoczony jakością symulacji wzmaków http://lepouplugins.blogspot.com a szczególnie Legion – urywa dupę w połączeniu z Lecab2.
poulinWszystko co potrzeba do szczęścia pod Linuksem to vsthost i któraś z ogólnie dostępnych bibliotek impulsów gitarowych. Np Gods Cab,
lecto

Tahrpup RT spotyka Poulin Legion, Lecto i LeCab2.

Tahrpup 6 z kernelem RT.

Jestem zachwycony Puppim. Żadna inna dystrybucja nie wykorzystuje w ten sposób aufs (union type filesystem). Z pendrive działa to rewelacyjnie bo wszystko z systemu bazowego ładuje się do pamięci, a kolejne warstwy dogrywane są do obrazu aufs w pamięci z plików sfs. Dzięki temu pendrive się nie zużywa, a system jest bardzo szybki w odróżnieniu od typowej konfiguracji, w której zapisy i odczyty na pendrive powodują, że całość staje się niemal nieużywalna.Do pełni szczęścia potrzebowałem jedynie kernela RT ;). Pierwsze podejście – ze względu na dostępne wersje patchy RT – oryginalne źródła kernel_sources-3.14.11-tahr_PAE.sfs (już z łatkami z Puppiego) spaczowałem 3.14.12-rt8.patch. Et voila!

A mój „Pro-audio” setup wygląda tak:

#!/bin/bash
cpufreq-set -g performance
echo 2048 > /sys/class/rtc/rtc0/max_user_freq
echo 2048 > /proc/sys/dev/hpet/max-user-freq
sysctl vm.swappiness=10
sysctl fs.inotify.max_user_watches=524288
#powyższe dwie linie raczej nie są potrzebne w puppim
setpci -v -d *:* latency_timer=b0
setpci -v -s 00:1b.0 latency_timer=ff #intel audio
jackd -R -P89 -dalsa -r44000 -p128 -n2 -D -Chw:0 -Phw:0 -Xseq&
qjackctl&
/etc/init.d/rtirq start
export WINE_RT=10; export WINE_SRV_RT=5
vsthost /some/where/VST.dll

Qjackctl używam ze względu na patchbay, który automatycznie łączy wcześniej zdefiniowane wejścia i wyjścia. Można więc e-drumsy podłączać i odłączać, albo np. zrobić suspend to ram i iść na siku ;)

gr

Tahrpup 6 z kernelem RT.

DTX-400 i Hydrogen/VST pod Linuksem.

Mistrzowie z Yamahy zrobili DTX-400 jak należy i zestaw działa out-of-the-box pod Linuksem. Nie trzeba żadnych dodatkowych sterowników, wszystko jest w kernelu (usb-audio, testowałem na 3.18.5-1-ARCH).
hydrogen_dtx

Hydrogen to nie Superior Drummer, ale pokombinuje z ustawieniami bo soft ma duże możliwości, startuje szybko i zajmuje mało miejsca (SD2 ma z 30GB sampli), a przykładowy Sonor Designer Kit zajmuje niecałe 6MB. Trzeba tylko trochę „uczłowieczyć” odgrywanie próbek.

Odkąd pierwszy raz zobaczyłem Hydrogena, miałem marzenie żeby pograć na elektronicznej perkusji pod Linuksem. Marzenie się spełniło ;). Nie wiem tylko czy poniżej nie przekombinowałem z opcjami „Swing” i „Humanize” na wyjściu (a może tylko ja tak gram ;P).

Obsługa MIDI pod Linuksem daje spore możliwości: można sobie ścieżki MIDI nagrywać w Ardour lub Rosegarden, a potem kombinować dowolnie z brzmieniem i instrumentami. Nic tak nie oddaje krzywo grającego „perkusisty”, jak sam krzywy perkusista ;). Na keyboardzie czy z klawiatury komputera nie da się tego zrobić.

Poeksperymentuje też na pewno z fsthost i wtyczkami VST. Skoro drumkit widziany jest jako urządzenie MIDI, będzie działać wszystko…

UPDATE: dssi-vst + jackd z opcją -Xseq działa bardzo ładnie :). Wtyczka VST SD2 działa po prostu idealnie, lepiej jak pod Windows. A o zaletach jackd pisać nie będę, bo to każdy użytkownik dobrze wie: jackd to perełka. Więcej o jackd i MIDI z Alsa tutaj, ale uruchomienie VST niemal nie wymaga konfiguracji:

1. Odpalamy jackd -R -dalsa -r44000 -p128 -n2 -D -Chw:0 -Phw:0 -Xseq (karta intela w laptopie daje rade). Można też uruchomić jackd bezpośrednio z qjackctl:
qjackctl2. Odpalamy vsthost ~/VST/Plugin.dll.
3. Łączymy wyjście z DTX Drums Midi z wejściem MIDI wtyczki (zakładka Alsa w Qjackctl->Connect, można też to zrobić na stałe w Patchbay).

DTX-400 i Hydrogen/VST pod Linuksem.