Showing posts with label Principium. Show all posts
Showing posts with label Principium. Show all posts

11.5.20

Principium 3.0: under the hood 3

aah. wiring.
the keyboard obviously has thirteen wires: one common (+3.3v) and then one for each key contact, all running to Bela's digital I/O pins.
add in twelve pulldown resistors to make it all behave: done.


next , i threw in the only thing i bought extra. an M-Audio Midisport 1x1. cheap, reliable, small footprint when uncased: no need to reinvent the wheel there. in the end i ran wires from the input port to a panel mounted 5 pin jack, keeping the integrity of the M-Audio. because you never know.
i cut a USB cable in half, plugged it into the Midisport, and soldered the other end to the bottom of the BBB's usb host port. a plug would have been in the way too much there. so now Bela recognises it at startup and acts as a host - works flawlessly. if i ever want to use the host port for something else, i can just unplug the Midisport.

then - a little show and tell for jack wiring.


i used switching jacks, and came up with the above.
a single mono cable in the left output jack sees a mono mix of the L and R channels through the two 1k resistors.
obviously we can put another mono cable in the right output jack - that breaks the mixdown connection and now we have dual mono, split stereo, whatever you want to call it: L channel on L jack, R channel on R jack. the standard, quoi.
what you don't see too often is option 3: nothing in the left jack, but stereo on a TRS cable in the right jack. nice for using a Y-cable. and if you should accidentally plug a mono cable in there with the L jack empty, you'd just pull the L channel to ground through the 1k resistor, so no problem. no stereo, no mixdown, but no problem.


 then, horror of horrors - the display.
i picked a double digit 7 segment display out of the scrap box. must've pulled it out of something, but can't remember what. tested it, got every segment lighting up on the breadboard - great.
ordered me some 40110 CMOS counters, since you can clock those to count up and down - perfect for bank selection - and they can act as a 7 segment driver! sounded Purrfect.
however.
in my enthousiasm, i failed to realise there's two types of 7 segment displays: there's common cathode, which the 40110 likes very much, and then there's common anode, which the 40110 doesn't quite get along with. guess which one i had.
now i could have ordered me some new IC's, but that meant waiting.
i could have inverted all the 40110's outputs, but that meant inverting 14 signals and it seemed like too much hassle - and real estate.
i could have ordered me a new display, but it had cost me so much effort to make a hole in the front panel to fit this one, that i didn't want to go through that again. (and believe me, i checked - couldn't find any new ones with the exact same dimensions.)


in the end, i dug up an ancient Arduino Duemilanove which wasn't seeing much action - C++ and all, you know.. not my bag - and i guess it's about to go unsupported soon anyway. hah.
the benefits were that it could receive 3.3v signals and see them as HIGH (which the 40110 wouldn't have running at +5v), i could invert however much i damn well pleased, there were 7 segment libraries to be found and, within reason, i could interface with the display directly without having to come up with extra circuitry.
i tried to multiplex the two digits with the SevSeg library. meaning: the arduino lights up one digit at a time, but so fast you see both of them light up. which spares you some pins, since you only need 7 segment pins and not 14 for two digits. now, this only worked with resistors on the segments for me (the other option being resistors on the digit pins), and results in terms of luminosity were disappointing to say the least.
after much trial and error and measurements, i actually initiated two SevSeg objects (one for each digit), i'm driving every single led LOW on it's own pin on the Arduino, and i'm using every single pin on the Duemilanove except one (0= rx).
the display power source is the raw +5v output on Bela (straight from the wall wart, basically), the Arduino itself is powered from the regulated +5v USB out on Bela to the +5v pin on the Arduino. i know this is not recommended practice, but that's only because you then bypass the arduino's own regulator. since this is already regulated it won't damage anything.

i don't know the specifics of the display itself, but the current limiting resistors i used were surprisingly low: i have 100 ohms on each pin, and current draw is about 170mA when displaying the number 88 (all segments lit.) that's not too close to the 200mA limit of the Arduino, and i don't see myself using 88 soundbanks any time soon. every other number is below that: on average i would say i'm drawing something like 100 to 120mA, which seems fine.
the only thing that is a tiny bit stupid is that, at startup, the segment connected to pin#13 lights up by itself. probably to do with the internal resistor+led. if i feel very brave, brave enough to brave the hot glue barrier i created myself, i might swap that pin for the DP on the display - the decimal point, aka the little dot in the corner. wouldn't mind that so much.



close-up of the opened back panel. to the left is Bela, usb cable for the midisport visible underneath. the microSD card is right next to the miniHDMI, so easy enough to pull. next to Bela is display driver buddy Duemilanove. which has a little reminder to unplug the +5v line should i ever want to reprogram it.

Principium 3.0: under the hood 2

now then. Finally on to hardware hacking!

years ago i found an old midi keyboard lying in the street.
a fine donor keyboard if ever there was one. needed some cleaning up, but hey. don't we all.


.. and then all of a sudden i had a setup that seemed like it just might work.

continuing the repurposing game, i used scrap wood bits, and sliders and buttons i still had lying around. i messed up the holes for the buttons and display pretty badly, and i hate the shiny white kitchen cupboard material to work with with a vengeance. well, once you start, no way back.



all oiled up!
now just cram everything in there.


Principium 3.0: under the hood 1

follow up on previous preview post..

i'd been chewing on this idea for a long time - i even had a software mockup of this very thing at the 2.1 record presentation, so we're talking at least july 2016. i was running the loops in Ableton, and i wrote a PureData patch that took my midi keyboard input and turned it into volume controls for the Ableton channels over midi.


(i knew i had a pic of that setup somewhere.)

but i always knew i wanted this as a standalone instrument.
now, to bring this to life had its problems - i didn't want to compromise on audio quality, and running a dozen 5-to-10-minute loops is not exactly easy with tapes or anything in the analog domain - let alone portable.
so enter digital.
i tried several platforms - i tried an Axoloti, and i tried a Robertsonics WavTrigger, both of which are awesome in terms of audio quality and ease of use. but alas, while the Axoloti shines at DSP and synths (no, really! check it out.), running 12 stereoloops continuously just isn't its forte. i'm sure i'll find a new use for it soon enough - it was just the right platform for the wrong job, or something like that.
and while the WavTrigger will handle that same wrong job no questions asked, fade in and out times (over midi) are restricted to a 2 second maximum - not nearly slow enough for my purposes (i'm running fade times of over 5 seconds at the moment) and at the other end of the spectrum i had some nasty glitches going below a couple hundred ms attack time, which is no fun for a keyboard instrument. in fairness, it only craps out on the fades - if you tell it to jump to a certain volume it will do so instantly.
i did try ditching the midi altogether and running serial control with an Arduino, calculating my own fades and whatnot. and while i learned a lot, my coding skills are still way below par, the fastest times were still glitching in the end and it all became well frustrating.
again, i'll definitely be using the WavTrigger for other things in the future - the things it does well, it does really really well. but what i wanted from it was a bit beyond its limits, i'm afraid.
i was looking at the Robertsonics Tsunami, because it has multiple outputs that i could route to, but then i'd need two of them and come up with 24 external VCA's or something..

and then someone pointed me towards Bela.
an audio-centered open source platform that runs PureData patches! a light at the end of the tunnel!


well.. in all honesty, it was a dim light and a very long tunnel at first.

i don't know the first thing about linux (Bela sits on a BeagleBone Black, basically a mini linux computer), i had never ssh'd into anything before, and Terminal was an application i had so far only opened by accident. but okay. bite the bullet.
after a bit of a bumpy ride - and a lot of forum support - i got Pd up and running with the externals and libraries i needed installed, and Bela willing to read .wavfiles from an external SDcard which will mount when hot swapped. phew!
after that, it was 'just' Pd. took me a long time, but all in all it was still relatively easy - as i will obviously take Pd over C++ any day of the week. maybe i was just happy to be on more familiar ground again.

sidenote: i never got round to trying a Raspberry Pi, because Bela caught my eye sooner.
the Pi will run Pd patches as well, and seems to be the cheaper board, so it could be a contender.
the focus is definitely not on audio though - as i understand it, you would at least need to add a decent DAC. one pretty interesting piHat i spotted was the Blokas Pisound, but then you end up in the exact price range where Bela sits. and apparently the pisound has a bit higher latency, so no regrets.
the only thing i would really like is for the BBB to boot a bit faster, but ok. their claimed 10 seconds is fast, but not while you're onstage having to reboot because some idiot pulled your plug.

10.5.20

Principium 3.0: quick preview

may i proudly present, the third installment of what is slowly becoming the ongoing Principium series: Principium 3.0!


what is it, i hear you ask? well, it's an instrument somewhere between a stubborn Mellotron and the Principium 2.0 record installation.
that is to say: it plays back 12 loops continuously, and when you press a key the volume of the respective loop opens up. so unlike the Mellotron, there's no retriggering - you get to hear the loop where it happens to be at that point in time.
to the left are master volume, and the attack and release sliders determining fade in and out times. which is actually more Solina than Mellotron, but who's keeping score.

my basic idea for a single loop is pretty simple: to have several octaves of a single note (say C1, C2, C3, C4 etc) fade in and out and overlap with eachother, disappear and reappear, maybe with different timbres, filtering and processing.
then you have twelve of those loops, each with its own dedicated note. and if they are of different lengths, they will start to overlap in unpredictable ways after a while. so if you play a sustained chord, not only will the sound 'move', but it will also be impossible to predict which inversion of the chords you'll be playing, aka which of the notes will be the highest or lowest in the chord. since with several octaves fading in and out, that doesn't necessarily respond to the order of the keyboard anymore. which is exactly what happened in the 2.0 installation.

so right now i obviously have it running all twelve Principium 2.0 records - but it reads sets of 12 .wav files from a microSD card, so it can hold multiple soundsets. hence the 'bank' selection buttons. the display shows the number of the current set. and i'm very much in the process of recording new sounds for this baby.


back panel view: above the DC barrel jack there's a stop/reload switch for safe removal of the SDcard, so you can load new files without having to reboot or power down. next to that 2 output jacks: left/mono (summed) and right/TRS, so you can have stereo over a single Y-cable. and you can even hook up a set of speakers for standalone operation!
woops, forgot the 5 pin midi input. so it accepts midi (well, note on/offs) - although an 88 keyboard will still be reduced to a single octave. and with a push of the button you can select what midi channel it responds to (from 1 to 12, selected via keyboard).

the panel on the right opens up to access the SDcard, the Bela that runs the whole thing, and the arduino that handles display duties.

still some software upgrades to do, and i need to get me some swanky fader caps for the sliders, but for now: happy camper!!


10.8.16

interview

Joeri Bruyninckx interviewed me about the Principium 2.1 record..
read it HERE!

Boomkat described the record as "conceptual sound art that recalls Oval wrecking Wendy Carlos' Clockwork Orange score".

i chuckled. :)

27.7.16

Principium 2.1 in full effect!

i still can't quite believe it, but it happened - the bits i chopped out of the 8-hour performance that was the presentation of Principium 2.0 got etched onto vinyl!
may i proudly present, my first full length release on the wonderful Ultra Eczema label: Principium 2.1..



no reason not to get them while they're hot. 300 copies y'all!

we had a lovely presentation at Stadslimiet, showing the history and possible future of the Principium series. there was an original by Vaast Colson, the Casio 1.0 version, my own copy of the 2.0 vinyl+electronics, and a preview of a vague dreamy idea to turn all 12 records back into a mellotron-sample-playback instrument. right now it's running on Pd/Ableton, but i'm hoping to ditch the laptop altogether some day for a 2.2 version, or something.


23.2.16

Principium 2.0 in full effect




on july 2nd, we had a presentation of the full stack of 12 records that make up Principium 2.0.

i'm only posting this now, because the whole performance lasted for eight hours, and i only just finished going through the full length recording to chop out some interesting bits.. quite the chew.


the setup was the following:

- 12x 10" records, each containing a single note drone. the full set equals notes from C to B.
like the rows of the original artwork matrix, they were in 6 pairs of the same color.
- 6x record players, each dedicated to one vinyl colour.
- 6x custom electronics, basically a crude gate based on a magnetic sensor. gates work in 2 modes, either standard gate behaviour (sound when magnet is sensed), or punching silence when a magnet is present. these modes are independent for L and R channels.
- 8x magnets per record player, taking the role of the columns of the original.
underneath the 10" vinyl is a 12" metal base, leaving 1" around the vinyl to place magnets on.



i decided to build myself a random score generator/ conductor in Pd.
basically, with every press of the button, it decided for me in what order and combination the vinyls would have to be played. for every vinyl that reached its end, there would be a random decision to either play that record again, play the other one of the same colour, or leave the turntable empty, introducing silence. that decision would also be applied to the other turntables that were empty at that moment.
the program also gave me the number of magnets that needed to be on every turntable, the mode switch settings and the turntable volumes.


(click pic for closer look at pd program screen, and possibly the loverly youngsters of Mittland Och Leo watching the installation.)

seeing how the vinyls all have different lengths, the overlaps are quite intriguing..
started at three in the afternoon, and ended at eleven at night sharp. with a wonderful instruction from the program to leave all the turntables empty. first time it had done that! that was an insane moment. i love it when technology pretends it's cognitive.

thanks to Alex Dumitran for grabbing this screenshot:



excerpts to be uploaded soon!
all twelve Principium 2.0 boxes that were used in the installation have been sold, so those of you that are interested will have to wait for a possible release of the recorded material.
i guess that would be Principium 2.1..

28.2.15

Principium 2.0: live preview



it's not quite the finished set of 12 yet, but as you can see we did get 4 copies ready.

did a small preview/concert with at De Player for ART Rotterdam.
already lots of fun - can't wait to try this with TWELVE of these things!

as mentioned before, each record contains a single droney note, varying in octave/timbre in time.
i played around with the pitch of the record players to try and make different chords. quite the challenge.

(pic is a still from a shakey movie by DePlayer's #1 busy bee, Koos.)


4.2.15

Principium 2.0

in the process of putting together Principium 2.0 - the Turntable Edition!


based on the work of Vaast Colson, Principium 1.0 was a hacked one-octave Casio keyboard, to be played by placing magnets on a coloured playing field.
on friday we're presenting the second version at The Player, Rotterdam. stoked!

the kind people of De Player asked me if i wanted to do a record of the Principium 1.0.
needless to say, it turned into a different beast. based on the same grid of colours, we ended up with a single set of 12 records - one for each note of an octave.

the sound of these records is, like in the first Casio version, to be turned on and off by magnets again. only this time the rotation of the turntable provides the sequencing - magnets are to be placed around each 10" record, their presence picked up by a sensor, activating or blocking the sound.

speaking of which, the sound on the first record is a 10 minute composition centered around a C note, varying in timbre and octave, recorded on organ an the trusty MS-20.
this recording then got pitched up a semitone for each subsequent record, making each next record just that little bit shorter.



see you on friday.. and if not, i hope to 'play' the full set in antwerp sometime soon!

30.9.12

Principium, crummy video.

the video quality of my mobile is.. what's the word again.. bad.

still, unique footage of a rare specimen of Jan Matthé filmed in the wild, as it was attracted to the principium.

Principium, first public presentation

here's the pix of the first working prototype.. at least for the matrix/interface.
i like to think of it as the Principium v1.0



the internal casio clock drives a counter through an 8-step loop.
these 8 steps go into the 8x12 matrix.
so there's 12 outputs from the matrix, each one wired to a single note of a slightly restricted keyboard - just the one octave. very minimal indeed.
wherever you place a magnet on the board, that note gets played.





for the less technically inclined: stick a dot, dot goes 'Ping!'.
added bonus is that it has a nicely naive four-in-a-row/Twister-y vibe to it, so you don't even need to know exactly what you're doing to enjoy yerself. it's all a game, innit.


since it runs off the casio clock, it's actually in sync with the rhythm presets.
results range from strangely ethereal to, well, plain annoying. (especially WITH the rhythm presets.)

i still really want to lose the casio, but i have to admit that it works and looks better than expected.
it's so silly it's ok again, and it does seem to attract user interaction quite naturally.

here's a full installation view (Huis Hoste, Hasselt.)
blows my mind to think it was in an exhibition with an amazing work of the great Paul Panhuysen..
all in all, a nice first.



28.9.12

Zaal België - Principium, first draft.

tonight there's a presentation on!
Vaast Colson invites a number of people to present their interaction with some of his editions/books - the OPZ people will be there a.o., Tyfus will be there, and i will be presenting a first intermediate version of the Principium idea.

since it was impossible for me to finish the whole synth, i used the sequencer and switching matrix to drive a casio keyboard (for now). works pretty well. pics tomorrow!


15.8.12

Principium pt.2: the Idea

pics of progress to follow
for now, here's yet another funky preliminary flowchart! yay!

14.8.12

Principium - prototyping

got an interesting question. Vaast Colson, Artiste Extraordinaire, asked me if i would like to have a go at producing a musical interpretation of one of his works. well, a couple of 'em. the work in question is called principium, and basically consists of tiny round paper stickers. i'm guessing he's done hundreds of these, and some of them have been arranged in two neat little booklets.

(click image to expand.)

in all honesty, i was most interested in the leftover patterns on the original sticker sheets. an 8x12 colourful matrix.. yells 'sequencer' to me!

after much trial and error and talking back and forth, i've got half an idea of what i want. since the stickers are either on or off the paper, i want an 8x12 switching matrix (that is, 96 switches either on or off.) this should control 6 oscillators, one for each colour - top row of each colour would be left channel, bottom row right channel.

ideally, i'm thinking 6 sawtootch oscillators, each with their own 2 VCA's (left and right) and possibly an envelope generator each. haven't deicided on the sound generating part yet, really, because getting the visual aspect of that matrix right became sort of a Big Thing. I won't sleep well until that's settled.

i tried getting my hands on some of the switches 4ms uses in their VCA Matrix - the yellow buttons. unfortunately, i'm not about to have 2000 of them custom made in china, only need 12 per colour, so no go.
i found similar ones at mouser (thanks for the help, Dann!) but they don't supply all the colours i need. i tried switching out the LED inside one of them and i was lucky to even get it back together in a half decent way. no way am i doing that 96 times.

aah, fuck buttons. buttons are boring anyway. in true sticker fashion, i'm now going for -tadaaa- magnets and proximity switches. gotta love the mouser catalogue.

will update for progress and further decisions.