Coding

Currently have it set to 64 samples, and it’s running perfectly well, albeit with only a single VSTi.

1 Like

ElkOS officially supports HiFiBerry hats, and there are anecdotal reports of their proprietary drivers also working with other hats that use the same codec.

1 Like

It’s really nice that you can use vsti! Makes it relatively easy to put together a groove box type thing using open source vsti synths.

Do you know if there’s a way to do UART midi in and out on the rpi?

That’s my thinking! A single workhorse synth, sampler and some fx that are already open source will get me a good bit of the way there.

as for UART MIDI - I’ve not looked too hard, but I’m pretty sure you can, via the GPIO pins.

What are you using? I was thinking surge due to its flexibility and kinda low CPU. And the fact that it builds on Arm.

At the moment I’m just focusing on the sequencer and using the example VSTs bundled with the OS (mda-vst). Serge has been in the back of my mind as a really good candidate for this project for the reasons you listed! It’ll need to be built for Elk with the GUI removed etc, but I think it’s probably one of the best options out there.

1 Like

They do. It depends on what that instruction set is. If you have powerful operation codes built into those instructions you can do incredible things with a small amount of one for one assembled code.

A good example is the Spin Semi FV-1 DSP. It’s a stereo effects processor that is capable of some amazing sound processing. Check out all the free DSP code on their site to see how compact those programs can be.

The FV-1 happens to also be available as a submodule board from Electrosmith which also makes the Daisy that I posted about up-thread. Yves Usson used the FV-1 in his amazing effects box Les diffYUseur which i posted about over here.

So it depends on the hardware you run with your machine code, if all it does is load registers, perform simple math in registers, and write those registers to memory or device locations like most general purpose processors, forget it, you need a high level language and fabulous libraries (plus maybe an OS and task switching, and garbage collection, and …) to get anything done.

Also note the Ashun Sound Machine Hydrasynths are programmed completely in assembly code on their own custom built processors. It is likely done with the same sort of manner as in the FV-1 with each machine code instruction capable of directing a larger set of hardware parts each capable of running in parallel doing complex tasks.

BTW: All this programming is not done as exercises. :stuck_out_tongue_winking_eye:

4 Likes

Elektron also use assembly code for some critical parts like FXs.

2 Likes

Yes, but would you say that’s machine code? I’d call that assembly. In my mind, machine code would be writing out the numerical opcodes by hand.

I’ve written a lot of DSP in assembly in my recent career, so I’m no stranger to why it needs to be done :blush:

1 Like

I do.

2 Likes

Technically not, but for almost all practical uses, yes, of course. Beside some meta constructs to simplify the job assembly translates 1:1 to the numerical opcodes. Doing the translation to numbers by hand has no benefit, but is simply a “braindead” job.

Only when patching already existing binaries in place and by hand or doing in memory code manipulations you may still use some numerical opcodes. But these are exceptional edge cases.

1 Like

Plus when you get right down to it processors don’t even ‘understand’ numbers,. Even binary (or hex) digits are abstractions. It’s the electrical states of hardware components in ordered context and specific positions that matter inside the machine.

You want brain dead, hand toggle a boot loader into memory with front panel switches some time. That’s pretty close to bottom, especially if you’re working in microcode, and even then it’s an abstraction, which is why the terms machine code and assembly code are more or less synonymous.

1 Like

:neutral_face:

This happened to you? How, what, why?

Yup ! I started very early and have been at it a while. I’ve programmed a long list of different processor in assembly, hell I’ve written assemblers, and compilers from scratch, and designed hardware too, plus FPGAs and such like. What matters is staying somewhere close to current, and out of the museum.

You asked for a long post, and i am not going to do that.

5 Likes

I guess we’ve shared quite some experiences over all these decades. :slight_smile:

1 Like

You make us creative coders with our Arduino’s and Max and Supercollider look like kindergarten toddlers :wink:

3 Likes

All of it is good fun.

Toggling in programs though is more like a toddler playing with the blocks to be honest.

1 Like

Well as there are only ever two distinct electrical states (i.e. above a specific voltage and below a specific voltage) binary is a pretty useful “abstraction”.

Hex, of course, simply allows for easier management of long binary numbers.

… in what is now the dominant form of electronic computation. Various other systems existed before and since, and are currently used.

There are and have long been programmable analog computers (electrical, mechanical, and hydraulic) as well.

Intel and others have experimented with analog components for “weighting” with their neuromorphic chips.

There is also a long history with ternary computers, which uses three states: -1, 0, +1. (There was a mechanical ternary computer invented in 1840.) While the electrical components for this are largely non-existent it in theory could be made commercial. Three states isn’t necessarily a limit.

There is also another non binary (non von Neumann) computer, that each of us as electronic musicians have access to, and can use for programming — CV.

This can be implemented using either a hybrid analog/digital form, or in pure electronic analog form. Think of all the quantities it can represent beyond pitch. Run it fast enough it becomes the audio itself. Most systems are inherently parallel. Operations can include addition/subtraction, storing/recall, table look up, inversion, multiplication, looping, conditionals, slew, log and exponential, random functions, continuous incrementing/decrementing, min/max, Boolean logic, fuzzy logic, feedback, … i could go on but let’s save that for another post.

Many electronic musicians spend a great deal of time programming (patching) in CV, and while that is not thought of as “coding”, it certainly could qualify as such. In fact i think we could benefit from considering it as such and applying the same disciplines.

What is object oriented CV ? (I suggest that’s done all the time btw.) What about a CV subroutine ? High-level vs. low-level. Again i could go on …

2 Likes

Well I suppose that if you are going to equate CV with computing you would have to say the same about MIDI.