justin = { main feed , music , code , askjf , pubkey };
Ask Justin Frankel
No reasonable question unanswered since 2009!

Suggested topics: programming, music, sleep, coffee, etc.

Note: please do not ask questions about REAPER features, bugs or scheduling, use the forums instead.


Name: Ask: Human (enter yes):
[newer questions][unreplied] | [replied] | [recent comments] | [all]
[older questions]

Question: when you want to measure how fast an algorithm is how do you do it?
Asked by Olilarkin (81.100.230.x) on January 26 2014, 10:44pm
Reply on January 27 2014, 4:24am:
    I have a little file called timing.c which (when enabled on test builds) does RDTSC or QueryPerformanceCounter() or gettimeofday(), and measure the times of the algorithm. Don't forget to test with various parameters and on different CPUs, too (things that are faster on an i7 are often slower on a C2D, for example).
Comment...
Question: Solved the bezier question in the meantime, but that video is awesome! Thanks for that! I always wondered, do cockos employers actually use other people extensions or you don't bother and just code it yourselves?
Asked by Martin (93.136.48.x) on January 26 2014, 2:17am
Reply on January 27 2014, 4:23am:
    Both!
Comment...
Question: Winamp stills now in Belgium! Proud, really. Ask: Well, do you know Brussels ?
Asked by John@crawltech.n (81.240.129.x) on January 26 2014, 12:10am
Reply on January 27 2014, 4:23am:
    I don't, but I'd like to!
Comment...
Question: Re: Y U NO SoX :) Perhaps I should've just asked - why Reaper doesn't yet have the best resampling algo implemented: forum.cockos.com/showthread.php?t=40340
Asked by EvilDragon (88.207.125.x) on January 25 2014, 8:40am
Reply on January 27 2014, 4:23am:
    Ah, mainly because it's a lot of work, and REAPER is more demanding of its resamplers (requiring them to be able to change rates on the fly etc). Also, I think analysis of resamplers using the sine sweeps is a bit misleading, especially because of how they color them (they can have bright bright artifacts that show up, but they end up being around 90dB below the sinewave...).
Comment...
Question: With the different version of Reaper (ie Win 32 bit, Win 64 bit, and 3 x OSX version) is it a case of write the code once and compile 5 times? Or do you need to maintain 5 sets of source code? How do you manage that?
Asked by Mick (101.165.217.x) on January 25 2014, 7:22am
Reply on January 27 2014, 4:21am:
    There's one codebase that compiles on all -- with #ifdefs sprinkled throughout, maybe 1% of it... Some things that are very OS specific (DirectX plug-ins, Audio Units, ASIO, Core Audio, etc) will get their own files that are specific to a given platform.
Comment...
Question: Reaper is such a great program, and I love that you aim to maintain full backward compatability. With that in mind, are there any parts of the program (code-wise or conceptually) that you wish you'd done differently from the start, in order to save major headaches in the present day? Are there any bits of code that you'd like to throw away or re-do, but simp
Asked by BennyG (86.27.83.x) on January 24 2014, 11:17pm
Reply on January 25 2014, 3:15am:
    Heh just yesterday we redid the way regions are stored -- there were markers before regions, so when adding region support I implemented regions as a special pair of markers. So since then (2006), any time you wanted to check the size of a region, you had to do a full linear scan of the list to find the matching side. That was a fun thing to fix-- it took a few hours, and you get to remove a bunch of stupid code. There were only a few spots that needed new code written, one of which being RPP file reading/writing, where you get to figure out the most efficient way to encode the region/marker data in such a way that old REAPER versions (2006 to current) will properly read it back. Fun!
Comment...
Question: Y U NO SoX in Reaper? :)
Asked by EvilDragon (88.207.124.x) on January 22 2014, 4:50pm
Reply on January 25 2014, 3:15am:
    Huh?
Comment...
Question: Okay then, how about this one? www.youtube.com/watch?v=2VN8zH366M8
Asked by Will (70.173.80.x) on January 22 2014, 7:01am
Reply on January 25 2014, 3:15am:
    Hell yeah.
Comment...
Question: Anything exciting you at NAMM 2014? Are you attending?
Asked by Mick (27.127.192.x) on January 22 2014, 2:33am
Reply on January 25 2014, 3:15am:
    Nah, I'm not much of one for trade shows or orange county.
Comment...
Question: Reaper uses cubic bezier for one of it's envelope shape. How would one calculate control points based on bezier tension? Bonus question: do fast/slow/start/end formulas here: pastebin.com/JSuqLynG resemble something you use? Thanks!
Asked by Martin (93.138.91.x) on January 20 2014, 11:42pm
Reply on January 25 2014, 3:17am:
Comment...
Question: Which do you use and why: void foo(int *num) or void foo(int &num)
Asked by Rodrigo (187.112.67.x) on January 18 2014, 6:59pm
Reply on January 18 2014, 10:25pm:
    I would typically use a pointer rather than a reference for more instances, because then looking at the calling code it is clear that the parameter could be modified. Using a reference has the advantage of not being allowed to receive NULL, though. If everything was very const-heavy on the calling side I might be inclined to use a reference, but probably not enough...
Comment...
Question: Can you talk a little bit about structure/byte alignment, why it's important, and how to test you're doing it right when programming to get the best performance?
Asked by Will (70.173.80.x) on January 18 2014, 7:41am
Reply on January 18 2014, 10:22pm:
    For the most part the compiler should have reasonable defaults, unless you're using SSE, or doubles with gcc and can't set -malign-double (ugh!). For the latter case I made a macro called WDL_FIXALIGN, which I apply to double/int64 members of structs when the alignment is uncertain. One thing I should mention: if you have classes with virtual functions, remember the implicit vtable pointer (which on 32 bit platforms can mean being only 4 byte aligned rather than 8 byte aligned)!
Comment...
Question: Do you enjoy books like these? ISBN-13: 978-0307599803 . I.m having a blast reading it myself.
Asked by Haze (153.2.246.x) on January 16 2014, 7:40am
Reply on January 18 2014, 10:18pm:
    Nah I mostly read fiction at this point.
Comment...
Question: Feelin this? www.youtube.com/watch?v=0xjXpD4pfP8
Asked by Will (24.234.85.x) on January 16 2014, 3:53am
Reply on January 18 2014, 10:18pm:
Comment...
Question: Why do you still use Apache instead of nginx?
Asked by Patrick (68.65.169.x) on January 15 2014, 4:38am
Reply on January 15 2014, 7:13pm:
    Because it works?
Comment...
Question: How do I do "Install for all users" or "Install for current user" in NSIS? I couldn't find it, I even asked LEGO.com
Asked by Nicholas Foryste (173.31.164.x) on January 14 2014, 3:15pm
Reply on January 14 2014, 3:17pm:
Comment...
Question: Why do you keep your apache keep-alive at 15s? Seems like that's asking for timeouts if someone decides to DOS you.
Asked by Will (70.173.80.x) on January 14 2014, 9:53am
Reply on January 14 2014, 3:15pm:
    Silly ubuntu defaults...
Comment...
Question: What you think about Peercoin?
Asked by Harvey (220.255.2.x) on January 13 2014, 1:28pm
Reply on January 14 2014, 3:15pm:
    Meh...
Comment...
Question: It seems like you're into travelling. How much time do you spend in other countries/cities during the year? What do you like the most about visiting new places?
Asked by asafonov (87.250.44.x) on January 13 2014, 12:56pm
Reply on January 14 2014, 3:16pm:
    Right now I'm really liking being at home, actually.
Comment...
Question: Hello Justin, I have huge admiration for your Reaper work. Speaking for many radio/spoken-word feature audio people, Reaper WITHOUT breakout effect lanes was MUCH better. The last ever Reaper without breakout effect lanes was version 2.58, rel 15th March 2009. I am worried that one day, I will no longer be able to use this ver of Reaper. My Q: In current
Asked by Glen (65.49.2.x) on January 10 2014, 5:47am
Reply on January 10 2014, 2:46pm:
    If you mean envelopes having their own lanes, added in 3.0, you can disable this option in Preferences/Editing Behavior/Editing display. If you have lanes active, it won't remove their separate lanes, but it'll prevent newly created envelopes from appearing in new lanes. For existing envelopes (existing projects), you can click on the envelope lane panel, the little envelope button, and choose "move to media lane".
Comment...
[newer questions][unreplied] | [replied] | [recent comments] | [all]
[older questions]
Copyright 2025 Justin Frankel. | RSS