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: VST/Win (googled but not convinced by results..) : Is there any good reason for hosts not to "forward" WM_SIZE? And, if not, is there any REAPER VST extension or trick to "enable" them?
Asked by frenchos (66.45.252.x) on July 12 2013, 7:46am
Reply on July 12 2013, 1:58pm:
    Well, ideally you wouldn't send WM_SIZE directly, but you'd just resize the child window to fit, but this would break tons of plugins. What some of our plugins (i.e. ReaTune) do is poll the size of the parent on a timer...
Comment...
Question: register("file_in_project_ex", &struct) : is there a way to 1) register a callback (or something) so that so I can update paths when the user save as/convert to a new place? -2) specify a sub-directory?
Asked by frenchos (46.218.205.x) on July 12 2013, 7:35am
Reply on July 12 2013, 1:57pm:
    1) No, but I've been meaning to add that, and 2) a sub-directory for save-as? Could be useful I suppose...
Comment...
Question: whats your favourite euro techno song or band?
Asked by ladida (24.138.41.x) on July 12 2013, 7:18am
Reply on July 12 2013, 1:57pm:
    hmm not sure what qualifies as techno....
Comment...
Question: How often do you record music?
Asked by ees. (69.15.110.x) on July 9 2013, 12:16pm
Reply on July 9 2013, 10:03pm:
    You can see more than half of my recordings on my music/Alone page, though a lot of stuff doesn't get finished the majority does get to the point of ending up there...

    Or:
    deadbeef@nas:/c/data/recordings$ for a in 12?? 13??; do echo -n $a; echo -n : ;ls $a | wc -l ; done
    1201:14
    1202:11
    1203:13
    1204:5
    1205:6
    1206:5
    1207:13
    1208:11
    1209:3
    1210:6
    1211:4
    1212:11
    1301:9
    1302:8
    1303:6
    1304:9
    1305:4
    1306:3
    1307:2
    
Comment...
Question: Do you use Email encryption like PGP or SMIME? If yes: only private or also for your company? If no: why?
Asked by John (93.193.68.x) on July 8 2013, 11:29am
Reply on July 9 2013, 10:03pm (edited at July 9 2013, 10:04pm):
    I don't -- I'd like to at least for certain communications, but nobody else seems to bother so it's a tough challenge (maybe I should try though...)
Comment...
Question: Do you have a preference for either 16:9 or 16:10?
Asked by travis (70.178.147.x) on July 8 2013, 3:51am
Reply on July 9 2013, 10:05pm:
    For working desktops, 16:10, I guess.. for movies, 16:9 or wider...
Comment...
Question: Neat canvas code. Could you do all of AVS in JS/canvas or is it too limited? Think V8 would beat EEL?
Asked by Jason (77.109.138.x) on July 7 2013, 12:46am
Reply on July 9 2013, 10:06pm:
    Probably could do a lot of AVS in JS/canvas, though there were so many AVS modules it would be a crazy amount of work to duplicate them all.

    I often wonder on V8 vs EEL as well, the main thing preventing me from adding V8 support to JSFX would be that V8 doesn't really support threading in the same way (so it would require some rethinking, or fx to do some IPC-type signalling between threads), but it would be interesting at any rate! Someone should make a V8-VST :)
Comment...
Question: So if you could sit down and pick Abrash's brain, what's something you'd want him to explain to you that you never figured out on your own?
Asked by Will (70.173.150.x) on July 6 2013, 6:23pm
Reply on July 9 2013, 10:07pm:
    Probably would just want to shoot the shit, really. Talking about programming is like talking about masturbation, for the most part.
Comment...
Question: Can you explain the algorithm to HTML5 canvas/javascript fun #1?
Asked by Will (24.234.85.x) on July 5 2013, 7:35pm
Reply on July 5 2013, 10:42pm:
    It has two things:

    The first is what it draws in the center, which is a classic super-basic effect which is to draw each pixel as a bitwise combination of their coordinates, i.e. xor/or/and. In that case, it does something a little different for each color plane (back in the day we'd have a palette so we'd just typically make the palette index bitwise x/y).

    The second effect is blitter feedback; this is implemented by creating a second canvas, blitting a copy of the main canvas to it, and then blitting a portion of that copied canvas to the main canvas, with scaling. The scale applied is usually slightly different (i.e. zooming 1.05x or so), which wouldn't mean much, except the zooming accumulates each frame. It's a very common technique for visualizers (going back to Geiss, AVS, G-Force, etc).
Comment...
Question: You once posted a video of your rather large AZ home. In retrospect, is more space worth it, or have you come to appreciate smaller / more minimal spaces to live/work?
Asked by Will (24.234.85.x) on July 3 2013, 6:03pm
Reply on July 3 2013, 7:12pm:
    Hmm I don't think I did, maybe it was something else; at any rate I think for a couple of people anything more than 1500-1800 square feet is pretty much wasted... of course when you have hobbies/activities/jobs that require more space that goes out the window...
Comment...
Question: I know REAPER does most work in the FPU space and I was curious in the case of mixing with integers. Is that done in the FPU as well? or you have a build a total different execution path based on integers. I have a feeling that it's the first one but some clarification will solve the mystery. By the way thanks for update, it was sweet.
Asked by gio (94.66.27.x) on July 3 2013, 12:42am
Reply on July 3 2013, 1:57pm:
    The integer mixing mode that REAPER uses actually still uses the FPU for computation, it just models the computation on integer summing (meaning the results are the same as if it was done as integers.
Comment...
Question: Do you use Android? If not what OS does your phone run? And why not Android?
Asked by Bob (93.193.64.x) on July 2 2013, 4:49pm
Reply on July 3 2013, 1:58pm:
    iOS here, since the first iPhone. At the time the iPhone came out, I got one of those Nokia flip smart phone things that was technically superior in many ways, although not as nice to use.
Comment...
Question: do you use some kind of lock-free queue in reastream when sharing buffered audio data between threads?
Asked by olilarkin (81.100.230.x) on July 1 2013, 9:39pm
Reply on July 2 2013, 12:41am:
    No, we use normal mutexes/critical sections, but are careful not to keep them locked for too long etc.
Comment...
Question: How many mics do you use to record drums?
Asked by ees. (69.15.110.x) on July 1 2013, 1:59pm
Reply on July 1 2013, 3:37pm:
    Lately, due to laziness, 4. Used to bother with mics on the toms, hihat (8 total), sometimes snarebottom etc too, but drum sound is rarely a limiting factor now...
Comment...
Question: Think you could keep up with this girl? scanlime.org/
Asked by Will (70.173.150.x) on July 1 2013, 12:31am
Reply on July 1 2013, 2:24am (edited at July 1 2013, 2:31am):
    No idea, I mean it depends on how long we're talking (1 mile? 10k? 10 miles?), and she doesn't publish stats... Has more youth on her side, but odds are my legs are longer...

    In all seriousness though, there is a ton of stuff I don't know, and my multidimensional math skills are weak, but I do still like to learn new things.
Comment...
Question: Re: linked lists. Could you explain why the statement "you need...insertions will have problems" is false? If this is false then there is an assumption that arrays do better -- which isn't true if the insertions are not pushed at the back of the array. plus at every given time you might have a memcpy penalty if there isn't enough headroom, etc.
Asked by gio (94.66.83.x) on June 23 2013, 8:47am
Reply on June 23 2013, 10:27pm:
    I think his assertion that a doubly-linked list was necessary for random insertions was making a lot of assumptions, particularly that the random-insertion algorithm wasn't really aware of the structure of the list (basically, he's saying that you'd need the most general form of doubly-linked list to be used as-is for the algorithm, otherwise you have to actually write code that traverses the list to decide where to insert, etc).

    Regarding the performance penalties of having to shuffle the list around due to insertions, his point is that those penalties are actually relatively low (because of CPU caches etc) compared with having to traverse a list (which most of the time will thrash CPU caches and will in general touch a lot more memory due to overhead of the list structures).

    The real thing to take away from this, though, is that you should think about the data structures you are using, and think about how they will be used, before you decide which to use. Also, sometimes writing versions of algorithms that are optimized for a particular data structure (such as code that inserts at a random point in a singly-linked list, and does it with a single pass, vs a more braindead approach which would require a doubly-linked list), can have value. Having said that, though, linked lists can and do have plenty of uses where they DO perform well, even if they don't in this example.
Comment...
Question: What do you think about JUCE?
Asked by EvilDragon (88.207.58.x) on June 21 2013, 9:21am
Reply on June 21 2013, 11:48pm:
    Not much of an opinion at all, if it was BSD licensed I'd be more inclined to invest in it...
Comment...
Question: Have you found this to be true in practice, regarding linked lists? youtube.com/watch?v=YQs6IC-vgmo
Asked by will (70.173.150.x) on June 20 2013, 7:42am
Reply on June 21 2013, 11:49pm (edited at June 21 2013, 11:57pm):
    I think the benefit of linked lists depends heavily on use cases, so it really depends.

    The case for the problem being solved (random insertion/deletions), I don't disagree with, but he makes some bad arguments at times (paraphrasing): "you need to use a doubly-linked-list or the insertions will have problems" (false), "the data structures are always much larger for a list than for a vector" (true, they are always larger, but depending on the size of the underlying data they may not be *much* bigger), etc.

    Anyhoo... TBH the biggest thing is that vectors are generally less leak/error prone, which is a win (forget about performance, if you can't do it reliably then what's the point?).
Comment...
Question: re: ReaStream protocol: I reverse engineered what I needed for github.com/obijywk/footswitch so no rush :-)
Asked by matt (72.14.228.x) on June 18 2013, 3:07pm
Reply on June 18 2013, 3:13pm:
Comment...
Question: could you document the ReaStream UDP protocol (esp. midi)?
Asked by matt (108.182.51.x) on June 17 2013, 3:03pm
Reply on June 18 2013, 2:53pm:
    Yeah, I need to do that.
Comment...
[newer questions][unreplied] | [replied] | [recent comments] | [all]
[older questions]
Copyright 2025 Justin Frankel. | RSS