-
fishcrystals
what you are thinking of is an accumulator - this is from Desigining Sound's free intro http://aspress.co.uk/ds/pdf/pd_intro.pdf - (More about the book at) http://aspress.co.uk/ds/about_book.html
so here is a more complicated one that can do addition and subtraction as well as multiplication and division - doing that involves using two steps to turn off the addition/subtraction or the multiplication/division depending on what you are doing - also the way you had [/ 4] and [* 4] - wont work unless you bang a 1 into them.. its like sending 0 into /4 or *4
-
fishcrystals
@Dizzy-Dizzy on the EE side - sounds like you might not be interfacing to the arduino in an ideal way, normally you want to wire them pull up just using the arduinos internal resistors, putting a small capacitor across the switches will also filter out a lot of noise.
-
fishcrystals
mostly nostalgia out of me - the cz 101 felt unique, probably out of its limitations. really wanted to slide through all its settings in real time or at least send sysex to randomize a patch while it was playing.
what interesting now about casio's take on FM/PM with 'phase distortion synthesis' is after listening to it do its thing through a patch randomizer I'm surprised how many real instruments it will attempt to sound like in kind of a plastic toy way. does a lot with very little
@lacuna figured it out, the crash happens in windows with 0.54.1 when you try closing the patch after sending [clone] the [resize < message - but only if the amount of voices is different than when it started
& thanks - it wasn't obvious to have a second subpatch connected to [clone] for the oversampling filter
also looking closer I see that all the math for calculating the filter is in J07.oversampling.pd
-
fishcrystals
I have an old 2010 13" macbook pro thats about similar, it kind of chokes compared to a desktop.. but you definitely should be able to run 200 oscs~
its probably the FX - maybe there's a cheaper reverb out there (they use delay lines) or maybe use delay lines more sparingly
it might also be the UI if you have a PD screen full of number boxes, sliders, other things that are giving feedback all the time, reducing the amount of responsive UI can help
if you are using two monitors try just one, definitely close browsers and other apps, turn off the network
but yeah upping the delay msec setting is usually where you go to try and fix it, you're right around the threshold I run into when I jam in netpd with that laptop. theres a patch you can open with your patch running - its called test audio and midi and listen to the sine wave - if it crackles or sounds weird while your patch is on try setting the delay msec up until its good.
leave the block at 64 - a lot of stuff expects it to be 64, so that can only cause weirdness.
It isn't as much latency as you think it is because its 64+that setting, as little as 2. this is different than something like JUCE which just says its a power of two buffer. it would be 104 at 40. vs 128 is the lowest usually offered
side note: testing the round trip settings in the extras I was able to set it down to 3 on an intel mac. 2 with asio and a roland dac on a pc. quickly had to turn it up when I started working on complicated patches tho
-
fishcrystals
@seb-harmonik.ar they polyblep ones are here https://github.com/MikeMorenoDSP/pd-mkmr/tree/master/oscillators
& actually its also in there - the os.cz~ oscillator that I'm using though I wastefully hooked it up so you can slide through waves and everything in realtime, something I always wanted my cz101 to do
but it was mostly from playing around with really high notes in anticipation of what might happen in netpd .. later I realized the casios of that era actually modulo notes above and below their range to the top and lowest octave
nice tip @oid - sounds like if anything I should introduce more aliasing
-
fishcrystals
@Load074 PD uses different libraries for audio and midi based on how its compiled and what OS its talking to .. so in linux I bet there's a difference between alsa, jack, or legacy and id guess that over time thats changed when libraries either continue to get updated or not
back in the glory days of Windows XP if you unplugged a live usb midi it would not only crash out your software, possibly need a reboot, it could show up like an entirely different device and everything had to be set up all over again.. doubt anyone has tried it but vanilla is still being built for XP
-
fishcrystals
the 16x oversampling filter http://msp.ucsd.edu/techniques/latest/book-html/node194.html from this part of the book is too expensive to use with [clone]. [clone] also just really does not like any reblocking (closing the patch while its running will often crash pd so I'm trying to avoid using it with a dynamic patching system like netpd).
Is there a cheaper way to achieve something similar or some maths to try 8x or 4x oversampling to smooth out high pitches? It's a polyphonic casio cz synth I'm testing with really high midi notes
-
fishcrystals
I like to use a virtual port to connect my hardware (in windows or wine MIDI-OX), that way I can stop and start/close reopen it if I need to unplug it physically without having to interrupt any audio software running
-
fishcrystals
check out plugdata for ios, its super alpha, but it has [else] installed. just checked on my phone and something like the help for [pluck~] works
you can bug them on the discord https://discord.gg/eT2RxdF9Nq
-
fishcrystals
if you really want to make it easy use [else]. its got everything you need already whipped up with help documentation as well as a whole tutorial on live electronic music.
its in find externals (works best with the newest vanilla) or baked in to the vanilla compatible max lookalike plugdata (plugdata works best if you get the nightly)
-
fishcrystals
@inum https://github.com/MikeMorenoDSP/pd-mkmr/tree/master/sequencers check out the vanilla friendly mkmr library, uhh the github is a lot newer than whats in the find externals .. download the whole zip here https://github.com/MikeMorenoDSP/pd-mkmr just put whatever you want to use (and the help if you like) in the same folder and [callitbyitsname].pd
-
fishcrystals
[poly] would work fine here - it's a recreation of midi polyphonic voicing so it comes with a lot of "well this does that huh"
.. so one important thing to understand is midi is serial and the short version is .. just send your note on messages in a row instead of all together -- thats the difference between parallel and serial,
with midi proper everything like a note on or off or tempo tick is sent about 0.32 (tempo tick) to 0.98 mseconds after each other.. pure data does not respect this slowdown btw
.. set it up for the max polyphony of a chord maybe? whatever your clone is at. [poly 5 1] then feed that into clone. the 1 means that "voice stealing" is on, so a voice will get sent velocity 0 .. and fade out I guess .. its weird .. instead of refusing to trigger new notes.
it takes some (a lot) of getting used to.. in the help /extras folder there's an example of a polyphonic synth thats as good a place as any to start out with tho it doesnt respond in real time, just sets the inputs and fires off, any changes to the UI would fire after
-
fishcrystals
@porres i switch to a multi-output device I created with Blackhole 2ch and the regular output in order to capture the desktop audio in mac with OBS - but that just mixes the two channels.
so to test that with an aggregate device -
-
list item1 - had to make sure 4 channels is set up in PD, fortunately PD reports amount of devices created in the console
-
list item2 Blackhole had to be set to 48k - but PD's setting didn't matter
you can see the muted mic audio blow up in OBS when it's actually playing through my speakers into the laptops mic
-
-
fishcrystals
@brendanmac there's some vanilla abstractions (meaning they should work in purr data, plug data as well as PD vanilla, theyre just made out of the most basic pure data vanilla objects), copy these to the same folder you are working in and type os.square~ into an object box aka [os.square~] , then right click the help (or just open the help file) os.square~-help.pd os.square~.pd
these and other goodies are in mkmr to get you going quick in most of the flavors of pd because theyre vanilla https://github.com/MikeMorenoDSP/pd-mkmr
some other good links at https://github.com/MikeMorenoDSP/awesome-puredata
-
fishcrystals
@brendanmac lets look at it.
from an electronics perspective it looks like a square wave represents a steady DC signal the closest (meaning if you were to flip the 0 to -1 part it would be a straight line) besides at the crossings and the others look filtered.
Its interesting how there's a subtle difference at the peak of a sine vs a triangle, the sine hits red a little. In vintage analog synths a "dirty" triangle wave could be mislabeled on the synth as tho it is a sine but it looks like it has the least energy. Also from vintage synths if you look at the waves in a scope they look different than you would think, especially something like a 303 (filtering out the DC maybe?). A function generator (which this basically is) is more like what you think of these basic waveforms in your head.
the live electronics tutorial included in [else] is top notch btw (as is the audio section in the help browser, thats supplemented with a free online book on miller's website). a saw has all the harmonics, a square odd, triangle even, and they can be separated or combined. a (co)sine wave is the only signal that can travel through electronics without change phase (which can mess up what you are seeing) one reason why its used to probe inside audio electronics
also to note, the oscope~ on the top was just to show that the [phasor~] normally comes out at 0-1 (normalized float which is easy to use as a looping function) so it has to be stretched out to be used like a sawtooth
testWaves.pd -
fishcrystals
right click on the [else/pic] to look at the help, it only opens certain types of files like bmp and gif
-
fishcrystals
you can install [else] using "find externals" - from there you can use [else/pic] (I put [else/ in front because it saves having to add settings to find else)
I took the [else/knob] also included in else and made it put out discrete values from 00 to 78 which get changed from 0, 1, 2, to 00, 01, 02, for the way I have them named - and mapped to a sequence (if you like I can post the imagemagik terminal command I cobbled to do that from a website online that has free VST looking UI)
if you changed the sequence to three (like 001 002) just change the makefilename from 2 to 3
knobanimationExample.zip
-
fishcrystals
had to see if what you both say is true about windows
switched down to 1920x1080 and ran my stripped UI patch at 100000 BPM with out going above 9% cpu
putting the tempo up to 1000000, at 1e+07 it started hovering around 20% cpu.. at least until the counter hit 1.67772e+07 and stopped at the 32 bit floats limit of being able to add 1 and quit
on any computer 4k is an exponential increase of pixels which is a strain on TK, a cross platform UI system , and running with a non 100% pixel scale is also extra work
-
fishcrystals
@oid its been sloggy since switching to a 60hz 4k TV, the way windows does scaling doesn't help either.. but its nice to have all that real estate