c++11 fun.

Nigdy nie lubiłem C++98, ale C++{11,14} chyba polubię. Jakieś takie toto mniej odstraszające, a z boost da się robić ciekawe rzeczy…


#include <iostream>
#include <boost/range/irange.hpp>

using namespace std;

int main() {
   auto fib = [] (int n) {
      int a = 0, b = 1;
      for (auto i: boost::irange(0, n)) {
         swap(a, b);
         b += a;
      }
      return a;
};

for (auto i: boost::irange(0, 20))
   cout << fib(i) << " ";
}

$ ./lambda.exe
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Reklamy

Małe kroczki…

Cieszą najbardziej 😉

sio2usb_fd

Cały widz polegał na tym, że aby uzyskać uprawnienia, trzeba to robić w  wątku UI Androida. Dzięki Bogdanowi Vatrze i jego prezentacji „Crash course…” wiem jak to zrobić ładnie w BroadcastReceiverze przez runOnUiThread(). A żeby coś zwrócić do QT, trzeba to zakolejkować jako funkcję do wykonania w wątku UI QT, bo to dwa osobne wątki… Piękny design i superowa zabawa :). Mam nadzieję, że teraz już będzie z górki.

 

Yamaha DTX-400 i Krigg Triggera.

Postanowiłem wymienić KU-100 (silent kick pedal) Yamahy na mechaniczny pedał stopy z triggerem piezoelektrycznym. Wybór padł na Krigg Triggera + tani pedał stopy Basix PD-600 V3. Pedał bardzo fajny z napędem łańcuszkowym, a co najważniejsze – oddzielnym uchwytem bijaka. Po zdemontowaniu, jak widać na zdjęciach poniżej, zostaje tylko uchwyt łańcuszka. Wygląda na niezniszczalny.

Działa świetnie ;). Tylko trochę ciężko się samemu nagrać.

Do pełni szczęścia trzeba ustawić w DTX-400 charakterystykę prędkości na 3 (Song + Kit potem 5 i 1, kick i wpisać wartość 3) żeby było głośno i wyraźnie nawet przy lekkim graniu. Odstęp między mocowaniem łańcuszka a przetwornikiem ustawiłem na 4-5mm, a punkt styku mocowania łańcuszka z gumą przetwornika podkleiłem taśmą izolacyjną (zostają ślady po uderzaniu metalu o gumę).

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).

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.