Dj Remix Effect

0 views
Skip to first unread message

Tisham Candella

unread,
Aug 4, 2024, 10:44:40 PM8/4/24
to perecoza
WithSmart Controls, you can, for example, assign one parameter of one effect to one knob. You can even add a mapping to the same knob to turn the effect on when the Smart Control is in certain positions (say, off for 0, and on for the 1-127 range). The problem is, unless you bring back the Smart Control all the way down to zero, the effect stays on when you let go of the controller knob in any other position.

So I'm not too sure how you would handle that, or if that's a problem. If you have a button and a knob then you could use the button for on/off and the knob for parameter modulation. Especially if it's a momentary button.


Got it, understood. What specific external controller are you referring to? And I'm also wondering just how to map remix effects to the smart controls in the first place? I tried doing the usual way that you would map something to a smart control, but no luck.


First you can map by clicking and choosing the parameter names. To add a second mapping, click the action wheel in the Parameter Mapping pane and choose Add Mapping. I scaled the Filter On/Off mapping like this by clicking on Scaling: Open, deselecting "Stepped" and creating the following curve:


Another option if you have a MacBook or Magic Trackpad. I made this app AudioSwift that transforms the trackpad into a set of MIDI tools. In this video, I divided the trackpad into two XY pads, that controls each Remix effect and has on/off command:


To configure this, first you'll need to get access to the Remix FX parameters and use the MIDI Learn function (CMD+L) in Logic Pro X for the mapping. Click the View button at the top right of Remix FX and change the graphical interface to Controls; all the plugin parameters appear in a list.


Besides the vertical and horizontal movements, you'll need to also map a MIDI message to toggle each effect using the AudioSwift XY pads switch controls (CC#22 and CC#25 in my example). In the video above, I divided the trackpad into two XY pads using AudioSwift in XY Mode/View 2 and separated the effects in groups using different MIDI channels. Change between the channels quickly by using key shortcuts "Left" and "Right" arrows. You can then write the trackpad performance to a track via the automation lanes.


I'm using Reaper and so far I've seriously cut back a lot of the frequency ranges (all lows and highs, left in about 30% mids) added a delay (although I think a reverb would be better) and some fuzz distortion.


Depending on whether you've recorded the vocals already or not, one method I've seen used before is to enclose the microphone (something as simple as a Shure SM58) within a tin can. This creates a hollow, metallic, ringing sound, just like, well, a tin can! If you've already recorded, I'm sure something similar could be created with some clever EQ.


Also, depending on the kind of results you want, I would consider slowing the voice down a little. Rather than timestretching, I would lower the pitch 'naturally' (i.e. just slow down the playback as with a tape player) and then, if necessary, add some pitch-shifting to the results. Adding a very subtle envelope to the playback speed can also be effective.


i have some issues with the Remix-Tool in Premiere. I love working with it because it makes my life ten times easier, but sometimes while using it the waveforms just disappear. Most times they are not showing again as long as I am using the remix effect still.


Rendering audio does not help at all. It comes back when I disable Remix, but as soon as I remix again to the wanted lenght its gone again (you can see it in the screenrecord.)



Is there any solution to it? This is not the first project where that is happening


These past months I've been working with Remix. The release of Next.js 13 and its follow-ups didn't make much impression on me, and if anything they were kind of a deal breaker. Consequently, I decided to take a closer look at Remix, and I was blown away by its ease of use.


In short, I find the Remix approach simpler. I write my backend, and I use the loader & action functions to communicate with React. I'm oversimplifying, but that's all I perceive. In reality, it's a well thought, and complex framework that does such a good job hiding all the complexity from me. And it just works, everywhere.


When it comes to every other response (non-30X status) though, it's all about how you handle the errors. When throwing a response, we diverge from the happy path, and the error is handled in the closest ErrorBoundary. This isn't very helpful at times, as you don't want to show an ErrorBoundary if a username is taken.


I find the infered types that useLoaderData, useActionData & useFetcher return to be slightly incorrect (Issue-3931).For that case I use remix-typedjson and its hooks. So instead of useFetcher I use useTypedFetcher and so on.


I don't like these oversimplified examples where you do everything in your actions. Take that business logic, and create a dedicated file for it. I like to group them under modules/use-cases. There are many approaches, you can go wild with DDD, whatever - just don't blindly add everything to the loaders.


Oh, almost forgot. I like to colocate everything I need inside the same route. A single folder _route.tsx re-exports everything (meta, default-page, loader, action). I'm writing this piece before Remix V2 lands, so I'm using the Remix Flat Routes package to make it happen.


Hi,

I am finding a remix button is still there for my CS Principles students, but not for my CSA students! One thing I tried to possibly fix it was to go into my dashboard and manage students, and enable sharing for each class, but that did not fix the missing remix button for CSA. I agree with Varrience, that sending an email to sup...@code.org is a good next step so that they can help if it is a technical issue, or know that this is a feature we would like back if it has been intentionally removed.


The Share/Remix button is disabled on Neighborhood levels. The Neighborhood is not supported as a standalone project, which happens when a level is shared or remixed. Only console and Theater levels can be shared or remixed.

It should still be available for other levels on CSA, and Principles. If you are not seeing this, please email sup...@code.org with info about specific levels, and possibly screenshots too.


To clarify here, remixing is currently disabled for on any Neighborhood levels. This is because remixing a level turns it into a standalone Java Lab level, and Neighborhood levels will not run in standalone mode. All other level types can still be remixed.


That being said, all coding levels in CSP should still be remixable. If you are not seeing the remix button for levels in the CSP course, please let me know, and if so can you please provide some additional information:


The server needs everything in this file but the browser only needs the component and meta. In fact, it'll be completely broken if it includes the prisma module in the browser bundle. That thing is full of node-only APIs!


That console.log does something. The module is imported and then immediately logs to the console. The compiler won't remove it because it has to run when the module is imported. It will bundle something like this:


The loader is gone but the prisma dependency stayed! Had we logged something harmless like console.log("hello!") it would be fine. But we logged the prisma module so the browser's going to have a hard time with that.


This is no longer a module side effect (runs when the module is imported), but rather a side effect of the loader (runs when the loader is called). The compiler will now remove both the loader and the prisma import because it isn't used anywhere else in the module.


Occasionally, the build may have trouble tree-shaking code that should only run on the server. If this happens, you can use the convention of naming a file with the extension .server before the file type, for example db.server.ts. Adding .server to the filename is a hint to the compiler to not worry about this module or its imports when bundling for the browser.


This type of abstraction is introduced to try to return a response early. Since you can throw a Response in a loader, we can make this simpler and remove the module side effect at the same time so that the server code can be pruned:


If you want to do some extracurricular reading, google around for "push vs. pull API". The ability to throw responses changes the model from a "push" to a "pull". This is the same reason folks prefer async/await over callbacks, and React hooks over higher order components and render props.


Unlike the browser bundles, Remix doesn't try to remove browser only code from the server bundle because the route modules require every export to render on the server. This means it's your job to be mindful of code that should only execute in the browser.


Now localStorage is not being accessed on the initial render, which will work for the server. In the browser, that state will fill in immediately after hydration. Hopefully it doesn't cause a big content layout shift though! If it does, maybe move that state into your database or a cookie, so you can access it server side.


The point is to perform the effect at the same time as the browser paint so that you don't see the popup show up at 0,0 and then bounce into place. Layout effects let the paint and the effect happen at the same time to avoid this kind of flashing.

3a8082e126
Reply all
Reply to author
Forward
0 new messages