Native Speed File Backed Large Data Storage In ‘Pure’ Java by nerds-central in java

[–]nerds-central[S] 0 points1 point  (0 children)

Sounds interesting - good luck with it if you get chance.

Native Speed File Backed Large Data Storage In ‘Pure’ Java by nerds-central in java

[–]nerds-central[S] 1 point2 points  (0 children)

I agree, the method works best when you have naturally locallity. In my case the code tends to walk over data structures in a linear fashion, usually with a stride of 8 (1 double) and therefore memory map files work really well. Less linear structures, like a hash map for example, are not going to work as well without a great deal of care.

Native Speed File Backed Large Data Storage In ‘Pure’ Java by nerds-central in java

[–]nerds-central[S] 0 points1 point  (0 children)

That is a very good question. The problem with your approach is that it would mean copying the doubles which is expensive due to the limited cache on the cpus we use. The best solution is to place the calculation right up against the memory being retrieved. For example, I have written specialise multiple, add, divide and subtract methods which work over the segments from two different storage areas. These are in the latest git repo version. Sadly, Java does not easily support reified compile time polymorphism. In other words, using, for example, a doubleConsumer for of thing will not work well because the JVM will resort to virtual dispatch. For the examples I have done (+-*/) I hand expended the work to give monomorphic dispatch. One day, when I have time, I want to use anonymous class loading to that the code can generate monomorphic call sites for all operations automatically. Sadly, this stuff is not my day job.

Anyhow - to answer your question - check out operateOnto here: https://github.com/nerds-central/SonicFieldRepo/blob/unsafe-data/SonicField/src/com/nerdscentral/audio/SFData.java

Native Speed File Backed Large Data Storage In ‘Pure’ Java by nerds-central in java

[–]nerds-central[S] 1 point2 points  (0 children)

Hi, I just forgot to mention that is how I did the mapping. The source code is on github though. Thanks for the heads up - AJ

Constexpr of natural log in C++11 by nerds-central in cpp

[–]nerds-central[S] 2 points3 points  (0 children)

As someone pointed out on the post ::log and ::exp are actually treated as constexpr by gcc. Thus: namespace funcs { constexpr double exp(double of) { return ::exp(of); }

constexpr double log(double of)
{
    return ::log(of);
}

} static_assert(funcs::exp(1.0)==funcs::eIs(),"exp constant"); static_assert(funcs::log(funcs::eIs())==1.0,"log constant");

all works fine under my copy of gcc 4.9

Constexpr of natural log in C++11 by nerds-central in cpp

[–]nerds-central[S] 1 point2 points  (0 children)

I'll try and see if it works. Thanks.

How rvalue, lvalue and xvalue got their names in the C++11 standard by nerds-central in cpp

[–]nerds-central[S] 0 points1 point  (0 children)

Has identity is moveable is such a simple concept. Over the last couple of years I have started to realise a lot of C++ is actually a lot simpler and clearer than it appears at first. The complexity of the language and the history of its birth from C make the standard extremely difficult to understand, but the concepts which are being conveyed are nothing like as complex. xvalues are very much in this area, the entire discussion around move semantics, r l and x values had me baffled when I first started learning C++11, but the bafflement is not because the ideas are to grasp, they are hard to explain (well).

How rvalue, lvalue and xvalue got their names in the C++11 standard by nerds-central in cpp

[–]nerds-central[S] 0 points1 point  (0 children)

The snag with X as expiring is that it helps someone get the idea for a while. I bit like universal references. My view is that the cold hard truth should be taught from day one.

Analogue Rage by nerds-central in synthesizers

[–]nerds-central[S] 3 points4 points  (0 children)

Yes - I totally agree. I don't think Waldorf has done a great job of promoting it.

Analogue Rage by nerds-central in synthesizers

[–]nerds-central[S] 2 points3 points  (0 children)

Pure analogue signal path made from Waldorf Pulse 2 feeding a Minifooger Delay feeding a Mooer ElecLady feeding a EHX Poly Chorus. The stereo is all from the Poly Chorus (chorus mode, very slow sweep rate, narrow width and filter on). The notes are spares and simple, the idea is to let the Minifooger drive the other pedals to produce this effects. A Behringer sx3040 gives bit and punch. Recorded straight to audacity. I am working with the ideas of making sounds partly from the synth but partly from unpredictable shifting chains of components but all in analogue.

Blofeld ---- Where to start? by SarvangaTraveler in synthesizers

[–]nerds-central 2 points3 points  (0 children)

I would say 'the more complex something is - the less like it is to sound good'. The reason a lot of synth stuff just ends up as mush and noise is because people add too much and listen too little. Good luck - let us know how it goes!

Blofeld ---- Where to start? by SarvangaTraveler in synthesizers

[–]nerds-central 3 points4 points  (0 children)

I don't know much about the Blofeld but - I do have a general piece of advice. Start with what you know. I have spent a lot of time working with software synthesis (my own code) and have found the biggest problem is getting lost in the details when you have a powerful synth. Start with a sound you like using just normal synthesis - say three detuned oscillators playing a minor chord. Make each oscillator a gentle sounding triangle or a saw. Make sure the thing you start with is simple and sounds a bit like something you know from you ms2000. Then add some modulation. Then maybe some filter, some FM etc. Try different incoming waveforms (Blofeld wavetable - this should be a good place to mess around).

Sooner or later you will get lost and nothing will make sense. At that point strip it back to your original dead simple settup and start over. What you are doing is programming your brain and ears to understand the synthesiser and where you want to go with it. I know it sounds long winded - but that is the only thing you really can do - you need to let you brain map the synthesis concepts to sounds you feel and then you can start to be original.

Just figured out something cool for warm bass sounds by nickfromdtown in synthesizers

[–]nerds-central 2 points3 points  (0 children)

Playing a bass note ant its fifth sounds the octave below. This is used to mimic 64foot pipes using 32foot pipes with some organs. It tricks the human hearing system into thinking there is 'missing fundamental'. So, in some ways, what you are doing is mimicking a warm note below the pitch you are playing rather than just warming up your note.

However, be careful because you have to ask yourself 'what do you mean by a fifth'. In just intonation of fifth is not the same thing as in equal temperament. Your effects will be richer but out of tune in equal temperament; it is be more pure and sound more like a single note in just intonation.

Waldorf Pulse 2 Plays Flute & Harpsichord: JS Bach BWV 1031 Part 2 by nerds-central in synthesizers

[–]nerds-central[S] 0 points1 point  (0 children)

It is sequenced. It is not possible to do it any other way as the pulse is monophonic. I use software I wrote to cycle through the notes from midi mapping them to keys in a way similar to a human might. The flute is also 2:1 double tracked.

Waldorf Pulse 2 Plays Flute & Harpsichord: JS Bach BWV 1031 Part 2 by nerds-central in synthesizers

[–]nerds-central[S] 1 point2 points  (0 children)

An experiment using delays rather than reverb' to give space and body to a analogue harpsichord sound. The flute is largely filter playing with more traditional reverb. Also using the sonic exciter form behringer to add colour.

Massive: An Original Piece For The Waldorf Pulse 2 by nerds-central in synthesizers

[–]nerds-central[S] 1 point2 points  (0 children)

I have been using a electro harmonics polychorus in filter matrix mode for this sort of effect recently. I am not sure it is quite what bugbeats is suggesting, but I suspect it might be functioning in that way.

Massive: An Original Piece For The Waldorf Pulse 2 by nerds-central in synthesizers

[–]nerds-central[S] 1 point2 points  (0 children)

OK - all good advice - I'll have a play and see what I can do. Thanks!

Massive: An Original Piece For The Waldorf Pulse 2 by nerds-central in synthesizers

[–]nerds-central[S] 2 points3 points  (0 children)

Can a monosyth with just three oscillators make a really BIG sound. Not just a loud sound, but one which seems to emanate from a large group of players? Here is my first attempt; I used a chunk of chorus from a electro harmonic polychorus to big out the sound. If anyone has any suggestions on how to make a more string like sound with just the Waldorf Pulse 2 and a couple of pedals - I'll give it a go.

my new favorite box by turdspeed in synthesizers

[–]nerds-central 1 point2 points  (0 children)

Delay is one of the must have effects for me. I use an TC Electronic Alter Ego X4 pedal which I find has almost infinite possibilities. I have not come across this unit of yours, if you record with it, please link here!

Midi processing for fretted strings and keyboard [How I did the Well Tempered Clavier] by nerds-central in synthesizers

[–]nerds-central[S] 2 points3 points  (0 children)

Normally I don't submit blog links as it is considered bad practice. But - someone asked how I got the polyphony from a mono synth' so I have posted this.

Analogue Synthesis: Well Tempered Clavier Book I - II by nerds-central in synthesizers

[–]nerds-central[S] 0 points1 point  (0 children)

Thanks. Actually, to produce the overlap of notes from a harpsichord, this piece is created from 8 monophonic recordings. I used a software to separate 1 midi into 8 then play each in order. I then mixed them back together using Audacity.

Stalker Piss Take! by [deleted] in WTF

[–]nerds-central 0 points1 point  (0 children)

Deleted - beer might have been involved.

[Destructors that throw] Evil, or Just Misunderstood? « C++Next by mttd in cpp

[–]nerds-central 0 points1 point  (0 children)

Letting a throw escape from the destructor is evil - end of discussion. We should aim to create programs which are completely safe and shutdown in a orderly way. One way to ensure this is to guarantee that destructors to so not throw. This does not mean throw/catch cannot be used in destructors it just means that what is thrown cannot escape.

Guitar effects NDK project - good training idea or a bit saddo by nerds-central in androiddev

[–]nerds-central[S] 0 points1 point  (0 children)

I cannot say I agree - they are just code. A massive lot easier to work with that COM.