GithubHelp home page GithubHelp logo

Comments (17)

telephon avatar telephon commented on May 27, 2024

yes, why not.

for the first: we just change the startup file, and add default orbit args in tidal? One thing to worry about (or rather: to test) is if this might lead to a very large cpu load when you use many at the same time, all with effects. also, it is an aesthetic choice. it sounds very differently.

rms: yes. can we open a port in tidal that dirt can send to?

from superdirt.

yaxu avatar yaxu commented on May 27, 2024

Yes default orbit args would be added to the editor startup config. I'll experiment with this and see what the cpu load is like.

(Currently I'd say global effects don't work well when multiple patterns send to the same orbit. I haven't investigated in detail but think when a pattern doesn't set a parameter, it turns off the effect.)

rms - I think it wouldn't be tidal itself that would open the port, but the editor. I'm working on a new text editor in ncurses, so the vu meter would be rendered with extended ascii / unicode blocks, so wouldn't need to be high resolution in this case! FFT might also be nice to experiment with. I'd want to mirror the functionality in classic dirt.

from superdirt.

fdragovic avatar fdragovic commented on May 27, 2024

from superdirt.

telephon avatar telephon commented on May 27, 2024

yes in the end it just depends on what kind of orbit-effects you use.

from superdirt.

telephon avatar telephon commented on May 27, 2024

if we would be picky, we would say that a delay is local, but a room is global. we would need nested orbits...

from superdirt.

fdragovic avatar fdragovic commented on May 27, 2024

from superdirt.

echophon avatar echophon commented on May 27, 2024

from superdirt.

telephon avatar telephon commented on May 27, 2024

@fdragovic if you don't use them, they don't eat. But if you do, each parallel dirt pattern will use one each instead of one total.

from superdirt.

bgold-cosmos avatar bgold-cosmos commented on May 27, 2024

I am working on a change to the global effects so that messages don't stomp on each other quite so much. It makes it much easier to have multiple things going on in a single orbit.
https://github.com/bgold-cosmos/SuperDirt/tree/global-send
Still in progess, and the solution I came up with is kind of ugly, but it seems to be working so far. I'll have another update to that branch in a few days implementing it for all the global effects.

from superdirt.

yaxu avatar yaxu commented on May 27, 2024

In terms of an interface, I guess something like this to start sending rms values:
~dirt.send_rms(addr="127.0.0.1", port=6020, hz=4)
hz being number of times to send the rms values per second.

The OSC message could have path /rms followed by one value per orbit.

@bgold-cosmos nice one!

from superdirt.

fdragovic avatar fdragovic commented on May 27, 2024

from superdirt.

yaxu avatar yaxu commented on May 27, 2024

I implemented sending /rms out from classic dirt
tidalcycles/Dirt@227b508

from superdirt.

telephon avatar telephon commented on May 27, 2024

@bgold-cosmos If we really want separate busses per orbit, then we shouldn't add them separately, variable by variable. This makes the system hard to extend.

Your prototype will definitely help in finding the best solution - thanks!

from superdirt.

fdragovic avatar fdragovic commented on May 27, 2024

hey @yaxu this should send the Peak & RMS values at the given refresh rate on the sclang port

{
var busses = ~dirt.orbits.collect { |x| x.dryBus };
(1..~dirt.orbits.size).do { |i|
  SendPeakRMS.kr(InFeedback.ar(Select.kr((i-1) /*n*/, busses), ~dirt.numChannels),
                 4, //refresh rate
                 3, //peak lag 
                 "/meter" ++ (i-1));
}}.play

3rd parameter is peak and 4th RMS, and it's sending to 57110 because it's assuming it's for sclang, but you can also forward them with and OSCFunc (this one just posts them (: )

OSCFunc({ |msg|
  "peak: %, rms: %".format(msg[3], msg[4]).postln
}, '/meter0');

from superdirt.

yaxu avatar yaxu commented on May 27, 2024

Thanks @fdragovic, I'll try this out!

For now I have this working with classic dirt: https://www.youtube.com/watch?v=dIXRRfxNH2s

from superdirt.

telephon avatar telephon commented on May 27, 2024

there is a typo in the code, this should do it (untested!):

(
~dirt.orbits.do { |orbit, i|
	{
		SendPeakRMS.kr(
			InFeedback.ar(orbit.dryBus, ~dirt.numChannels),
			4, //refresh rate
			3, //peak lag 
			"/meter" ++ (i-1)
		);
	}.play
}
)

from superdirt.

yaxu avatar yaxu commented on May 27, 2024

Thanks very much!

from superdirt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.