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):
[unreplied] | [replied] | [recent comments] | [all]
[older questions]

Question: are you a human
Asked by skibidi (195.234.156.x) on May 8 2025, 7:49am
Reply on May 8 2025, 7:31pm:
    most days I feel like one
Comment...
Question: How would one play items from REAPER's arrange view in non linear fashion? Basically using tracks and their fx as mixer, but triggering sources programatically from multiple different tracks at the same time, using exising project item sources, or creating them from HDD)
Asked by nikolalkc (80.216.15.x) on May 7 2025, 11:36pm
Reply on May 8 2025, 7:31pm:
    use playtime?
1 Comment...
Question: Hi :-) I have a question about r8brain being used in Reaper. From what I understand, r8brain doesn't operate in real-time. In cases where we're doing playback, whether for listening, recording, or even playback for outboard gear, how does Reaper handle this? Does the playback have additional latency from r8brain? And does r8brain perform fully without being adjusted to reduce its effectiveness?
Asked by tar tar tar (223.206.51.x) on May 7 2025, 7:27pm
Reply on May 7 2025, 7:32pm:
    "operate in real-time" is a bit ambiguous. It has some latency. Which is fine when reading media, because disks have (a different kind of) latency too... :) the only time it would matter is if you're converting a signal that is being monitored, which doesn't really happen unless you're trying to realtime oversample, in which case, well, you have to deal with the latency.

    The main thing we have to do some fanciness around is changing the resample rates on the fly, which r8brain-free isn't really designed for. REAPER only really does that if you use the playspeed envelope, or stretch marker tempo ramps without preserving pitch.
2 Comments...
Question: Hey Justin! How do you weigh implementing code design that is much faster to implement (hacky) vs design that is more robust but will take much longer to implement, is it just down to importance of the system/how hot the path is? Any times you regretfully implemented the former, lessons learned? Thank you!
Asked by Jack (194.110.115.x) on May 6 2025, 8:16pm
Reply on May 6 2025, 8:23pm (edited at May 6 2025, 8:25pm):
    there are a lot of other factors, but the biggest is probably the certainty of the design: if the elegant solution is fully understood and I have a great degree of confidence in it being the correct solution, then go that route even if it's a ton of extra work. if the problem isn't sufficiently understood such that an elegant solution is not unlikely to end up being the wrong solution, then definitely go hacky until you figure out what the elegant solution is. for things in between, interpolate...

    the biggest thing, though, is don't be afraid to rewrite _small_ subsystems in a larger project. that is a great thing to be able to do, once you've seen how they've been used for a long time. because at that point you should understand the elegant solution.
Comment...
Question: Hey, look hyperland creator is using a familiar daw. x.com/vaxryy/status/19191547007854...
Asked by Rano (27.131.211.x) on May 5 2025, 6:29pm
Reply on May 6 2025, 8:23pm:
    nice
Comment...
Question: I've started writing a Winamp DSP plugin (not released anywhere and I got carried away realizing they're also perfect for visualization), and during some debugging I found out that it always returns 576 samples (except mp3s, where it gives back twice that), and in my head it seems crazy to me that a small buffer is seemingly enough for stuff like time stretch engines to work, which, they do get fed enough data... but still. And so I wonder, why only 576 samples by default?
Asked by Eris Lund (80.228.64.x) on May 5 2025, 11:47am
Reply on May 5 2025, 1:55pm:
    it was linked into the mp3 decoding originally which produces 1152/576 samples depending on whether it was MPEG-1 or MPEG-2.
1 Comment...
Question: This suggestion you gave has really helped me fix a glitching problem in my jsfx plugin: "also, for JSFX in particular, variables (e.g. x) are a lot faster than memory (e.g. x[1]), and variables and constants are roughly similar in speed (e.g. using some_global_scale = 2.0 vs 2.0 directly in the code, no real difference)." Pls, I need another tip, lol, especially for reducing cpu usage or any other you deem very important?
Asked by Deeee (197.251.240.x) on May 5 2025, 7:25am
Reply on May 5 2025, 1:57pm:
    unrolling short loops is also a good idea:
      ptr[0] *= 2.0;
      ptr[1] *= 2.0;
      ptr += 2;
    
    is faster than:
      loop(2, ptr[0] *= 2.0; ptr+=1; );
    
    Also avoid unnecessary stores:
       foo = (x*y+z)*3.0;
    
    is faster than:
       tmp = x*y+z;
       foo = tmp * 3.0;
    
    (within single statements, EEL2 does a decent job of optimizing, but it doesn't do much inter-statement optimization).
1 Comment...
Question: Greetings from Germany , we are using Ninjam a lot with different continents and play in front of (small) audiences , with video using the VDO NInja protocol ... Tom Benoist tried to come up with a VDO sync on the ninbot.com servers, but it did not work so far : Is there a way to sync external Video to the beautiful Ninjam algorithm , so the people can see the players when you hear them ? ... and could there be a multi output routing , so tha t can have a single player on a dedicated fader in the Reaper ?
Asked by Bernd Keul (89.0.39.x) on April 30 2025, 4:41pm
Reply on April 30 2025, 6:49pm:
    Re: VDO, no idea sorry. ReaNINJAM supports multi-out and you can route each player to a discrete output.
3 Comments...
Question: In a few words how will advise someone getting started with JSFX coding, for example, is the advice don't calculate too much at the @slider a good advice?
Asked by Deeee (197.251.240.x) on April 28 2025, 7:01pm
Reply on April 28 2025, 9:48pm:
    depends on what the goals are, but in general make things simple and readable and don't prematurely try to optimize.

    also, for JSFX in particular, variables (e.g. x) are a lot faster than memory (e.g. x[1]), and variables and constants are roughly similar in speed (e.g. using some_global_scale = 2.0 vs 2.0 directly in the code, no real difference).
1 Comment...
Question: Have you ever used foobar? Is it true that I saw in the encyclopedia that the developers of Foobar are related to Winamp?
Asked by nvnv (129.153.24.x) on April 27 2025, 10:22am
Reply on April 28 2025, 1:35pm:
    Yeah PP did some Winamp plug-in work back in the day. Never cared much for fb2k though, lacked a certain something for my taste...
Comment...
Question: Smartphones have folders as categories, like "Media" folder has apps like Spotify, Music app etc. and "Tools" have apps like Calculator. I am doing similar thing with my laptop's browser's bookmarks. Now I wonder in which folder I should put the bookmark "askjf.com"?
Asked by Abhi (106.219.71.x) on April 27 2025, 9:18am
Reply on April 28 2025, 1:35pm:
    oddities
1 Comment...
Question: I'm using REAPER as 'sound module' (piano practice) on an old T420 with ASIO4ALL/Win11. Works fine as long R is in foreground. When in background though (e.g. watching YT piano tutorials) sounds starts crackling. Feels like it gets less priority or s.th. Any idea? (t=298075)
Asked by wasereb4 (95.91.77.x) on April 20 2025, 8:03pm
Reply on April 21 2025, 12:28am:
    Try setting windows to not boost the foreground process (Windows system settings/performance, reboot)... replying in thread too.
1 Comment...
Question: Why REAPER use "Ctrl + Shift + Z" as default redo shortcut, instead of the regular "Ctrl + Y"?
Asked by Abhi (106.219.70.x) on April 20 2025, 4:43pm
Reply on April 20 2025, 6:52pm:
    both seem pretty common
3 Comments...
Question: Pls answer from the perspective of one who is not developing REAPER. Is this hate speech or undeniable facts mingled with humour? reddit.com/r/Reaper/s/TLXCn7TEFh
Asked by Looool (102.176.65.x) on April 18 2025, 11:14pm
Reply on April 19 2025, 12:43am:
    seems reasonably factual and humorous, not sure how it could be considered hate speech lol
1 Comment...
Question: Are you using shared_ptr?
Asked by Ruchira (175.157.16.x) on April 18 2025, 8:41am
Reply on April 18 2025, 4:58pm:
    not really no
Comment...
Question: During coding, how much do you find yourself looking things like functions, syntax, etc up in references vs. remembering it all off the top of your head?
Asked by seventhsam (75.6.181.x) on April 18 2025, 12:54am
Reply on April 18 2025, 4:59pm:
    depends on what I'm coding and how familiar I am with the APIs in question. for working on REAPER internals, e.g. trying t o fix issues with the updated peak cache algorithm on this branch, almost no docs. When writing php/sql, constantly.
Comment...
Question: Reaper version "So it Goes" is a reference to Kurt Vonnegut?
Asked by The Kurt itself (179.104.167.x) on April 15 2025, 3:09pm
Reply on April 15 2025, 3:14pm (edited at April 15 2025, 3:15pm):
    I have most of his novels on a bookshelf by my desk
Comment...
Question: Hey Justin! Would Reaper be interested in sponsoring AirCon25 this year? (with kind regards from the team behind Airwiggles.com :D)
Asked by sergio (83.50.71.x) on April 15 2025, 12:46pm
Reply on April 15 2025, 2:04pm:
    Thanks for the offer but we don't really sponsor things so much
1 Comment...
Question: Hey Justin, have you/do you use 'memory arena' architecture at all, what are your impressions of them? I don't think they're very popular and they go by a lot of names, the general idea is passing around a block of memory and linearly distributing it, bit like a heap stack frame. Very simple, but using them primarily or even exclusively really forces a shift in architecture choices (for the better? not sure, but the code is certainly faster and classical memory management is kind of a non-issue). Thanks!
Asked by jack (146.70.134.x) on April 15 2025, 9:22am
Reply on April 15 2025, 2:03pm:
    They for sure have their places but I can't say we use them a lot
Comment...
Question: EDIT: What kind of setup would you recommend fo building crossplatform REAPER extension that supports everything? Intel Mac, Sillicone Mac, older OSX versions, PC. Which VS and compiler, which XCode, what build system, which hardware machines, which OSes for dev env?
Asked by nikolalkc (80.216.15.x) on April 15 2025, 6:34am
Reply on April 15 2025, 2:03pm:
    Maybe you can do it using github actions/infrastructure?
    • Linux: anything with gnu libc and gcc 4.x (eg debian)
    • macOS: if you want to support older (pre-10.15), then Xcode 9 or so, and any OS that supports that
    • macOS: if you want to support newer 10.15+ and arm64, Xcode 11+, and an OS that supports that
    • Windows: any VC version that supports the OSes you want to support, we use 2005 with ICC, but 2013 should be fine. Probably want to static link the runtime to avoid a dependency there.
    pain in the ass, I know!
Comment...
[unreplied] | [replied] | [recent comments] | [all]
[older questions]
Copyright 2025 Justin Frankel. | RSS