Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

April 14 2013

clone lvm via ssh

one just creates the targetlv in the same size as the srclv (8g in this case),
and when telling pv this size for the transfer it shows all the bells and
whistles it can .. even ETA :_)

dd if=/dev/srcvg/srclv | 
pv -p -e -t  -r -a -s 8G | 
ssh -i /home/user/.ssh/sshprivatekey -C -c arcfour -l root 172.x.y.z 'dd of=/dev/targetvg/targetlv'

January 25 2013

resonant lowpass gate panel

After getting to build two resonant lowpass gates, a design from old don buchla put into a pcb done by thomas white, i decided to make my own euro front panels for it and share them.


the files are available at github

(c) 1904-2038 wotwot

cc-by-nc-sa

June 29 2012

hercules rmx weight reduction

hercules rmx weight reduction

somewhere i read about the hercules rmx having a piece of steel inside that adds to its total weight. removing it would make it easier to transport to gigs, i thought.

of course, i removed all screws to disassemble the enclosure which resulted in some parts bouncing around, so i really had to go on with my objective.

removing the steel plate was then quite simple. i even managed to reassemble it without having some parts left over. to do it again, it makes sense to only remove some screws and leave at least four of them in place: the only screws on the top side that need to be removed are the six long screws that hold top and bottom case together.

to just remove the piece of steel, it is sufficient to remove the bottom lid only which means removing all screws on the sides and the bottom and the aforementioned six on the left and right side from the top. removing the aluminium cover is trickier but not necessary.

hercules rmx top screws

February 23 2012

big is the old old

think big is dead

big is the old old


even when thought locally.
bigger, stronger, louder, and longer might trigger lowlevel patterns but small is as underrated as analog descriptions of great size are overhyped. neither of them is more important than the other.
while it might still desirable to maintain an illusion of an overview of reality,
rather than thinking of something in always the biggest possible Point of View, it makes sense to look at chaos and remember that all models derived from an approximation of "it/nature/dog/.." are never sufficient to thoroughly describe a more complex system and any focusing on the next big "solution" (hey, you're free to choose your own reality after all) will often lead to a system reacting in a bolder way than necessary.

contrary to dawkins, freedom exists, but it often requires almost machine-like precision to go about ones way knowing that exerting your freedom to leave your own path is seldom a good idea.

to repeat an older meme:

small is beautiful

interfering into systems to "improve them" is the beginners behaviour that at best resembles the dreams of the wizards apprentice.
the cake is a lie.
the cake factory is a bigger lie.
abstractions do not exist. also, closed systems don't either.

February 21 2012

migrate lvm based xen dom0 to another machine ..

.. or even ignore that it is xen, basically this command moves the content of an logical volume to another server, reducing bandwidth using gzip compression.

prerequisites:

  • create lvm on target machine
  • install "pv" on src machine

run

root@src:# dd if=/dev/vg/disk bs=4096 | pv | gzip -1 | ssh -p2222 targethost.org "gzip -dc | dd of=/dev/vg/disk"

on your target machine you may want to:

  • resize2fs if the target lvm is larger
  • fsck.extX /dev/vg/disk on the target machine
  • edit the domU.cfg according to your target machine
  • mount /dev/vg/disk /mnt && chroot /mnt ** edit network, hostname, hosts

February 01 2012

December 26 2011

patchbay

patchbay

a patchbay might seem a bit like ye olde telephone switchboard but can actually do some neat things. here's some cablemonkey stuff:

the thing looks like this:

basically, this box contains 2 rows of 24 TRS sockets each, on front and back, equalling 96 ways to sink your beloved cables.

there are some terms that are sometimes used differently: normalled, half-normalled, open, paralleled, split and isolated. local copy: show

Patchbays (also mixbays) are very simple, once you understand their purpose. They let you easily change the way your recording studio is connected, and to easily restore your standard operating methods just by removing all of the plugs from the patchbay. This means that the patchbay must have some way of remembering what your standard operating methods are.

A standard patchbay is divided into a number of columns of pairs of jacks, each one containing one patch point. Usually a patch point consists of an output from one device and an input to another device. How they are connected depends on how you normally use your studio. With this in mind, there are four different ways patch points can be connected. Notice that the following diagrams show all combinations of jacks being inserted or removed from the front panel.

OPEN

The open configuration never makes a connection from the top jacks to the bottom jacks. Notice how the two circuits are always kept separate.

This is useful for connecting a normally unused effect to the patchbay. The bottom front panel jack becomes the send to the effect and the top jack becomes the return from the effect.

Examples: effect boxes, isolated tape machines Patchbay open configuration

NORMALLED

The normalled configuration makes a connection from the top jacks to the bottom jacks whenever no plugs are inserted into either front panel jack. Notice how inserting a plug in either front panel jack breaks the connection between the top and bottom circuits.

This is useful for connecting a source that should not have more than one load, such as a dynamic mic. The mic comes into the back of the top jacks and the feed to the preamp is at the bottom. Inserting a plug in the top front jacks diverts the mic signal for use elsewhere, while preventing the mic from being loaded down. Inserting a plug into the bottom jack allows a different signal to feed the preamp.

By using both jacks, you can insert a mic-level effect between the mic and the preamp.

Examples: microphones, high impedance outputs Patchbay open configuration

HALF-NORMALLED

The half-normalled configuration makes a connection from the top jacks to the bottom jacks whenever no plug is inserted into the bottom front panel jack. Notice how inserting a plug in the bottom front panel jack breaks the connection between the top and bottom circuits, but inserting a plug in the top front panel jack does not.

This is useful for connecting a normal signal flow from one piece of equipment to another, while allowing the connection to be tapped off of or replaced if needed. Inserting a plug in the top front jacks taps the signal for use elsewhere while letting the normal connection still pass signal. Inserting a plug into the bottom jack allows substituting a different signal while removing the normal signal flow.

By using both jacks, you can insert an effect into the signal path.

Examples: mixer to monitor amp, direct out to recorder in Patchbay open configuration

PARALLEL

The parallel configuration always makes a connection from the top jacks to the bottom jacks. Notice how the two circuits are kept together, and that both front panel jacks are outputs.

This is useful for connecting an output, which is normally connected to one input, to several different inputs at once. Both jacks can send the signal to places where it is needed.

Examples: mixer submaster outputs, monitor feeds, tape duplication tap points Patchbay open configuration

Note that balanced patchbays have a second set of connections on each patch point for the Ring terminal, which are wired identically to the connections for the Tip terminal that are shown in the diagram. But before the TRS plug was developed, paired plugs were made with one handle, so they fit into two adjacent patch points for balanced signals. Some of these are still around.

Patchbays are now available that have switches on each patch point, to select whether the patch point is Open, Normalled, Half-normalled, or Parallel. Usually the patchbay must be removed from the rack to change the switches.

USING THE PATCHBAY

For most studio patching, two setups are used most often:

The first setup is the normal audio chain. For this setup, the output of each component in an audio chain is brought to the rear input of one patch point. The input of the next component in the chain is connected to that patch point's rear output. The patch point is set up as Half-normalled. The normal connection is maintained whenever plugs are not inserted into front jacks of the patch pair.

Inserting a plug in the upper front panel jack allows you to split the signal off in two directions.

Inserting plugs in both front jacks allows you to insert another component in the chain.

By inserting a cable in the front output jack of one patch point, and the front input jack of the next patch point downstream, you can remove a component from the audio chain. You can then connect cables to the remaining jacks of those patch points and use the removed component somewhere else (nifty use!).

The second setup is the isolated component. Bring its output to the top jack on the rear, and its input to the bottom jack on the rear of the same patch point. Set the patch point up as Open. This component is disconnected until needed, but takes up only one patch point, rather than the two that would otherwise be used.

Patchbays can make your studio life easier, by keeping you from having to reach around behind racks to reconnect equipment frequently. They also make it super-easy to restore your most-often used configuration. All you do is pull all of the patchcords out of the front panel, and you are back to standard operation.

hide

notice that one will hardly ever find a serious use case for the "open" configuration. connections might be different in equipment, ymmv.

each top and bottom socket on it would be on a little PCB, with one of the sockets in gray and the rest in black. it can also be rotated and put back into the patchbay.

 



 in theory,

these connections can be plugged in with whatever.

in else,

very often an approach is taken that looks like

the top sockets are outputs like from a subgroup, fx, line or soundcard out,
the bottom ones are inputs like for a microphone or other sound sources.


whenever a plug is inserted into the gray socket, top and bottom row will be isolated.

the idea is to use the back side of the patch- or mixbay to connect the default connections. other setups can flexibly be patched, and just unplugging the front cables will reset the connections to default.

insert cables

can be connected to the back and left disconnected at the front until some fx needs plugging in or directly used as input.

December 25 2011

fossil

fossil, a dscm

fossil is an open source distributed version control system with some features like

  • distributed bug tracking
  • distributed wiki
  • web interface
  • and moar

like a detailed overview cares to explain.

December 21 2011

get rid of that damn firefox DNS caching .. argh!

most annoying feature ever!

as with the increasing version number of the ffox less and less plugins do work, all ffox
DNS cleaning extensions didn't install with my recent version 9.something :/

so, here comes the plain way to do it:

  • about:config
  • yes, I'll be careful
  • new -> integer
  • network.dnsCacheExpiration as name and 0 as value
  • new -> integer
  • network.dnsCacheEntries as name and 0 as integer value

*phew

apropos: did you know about:robots?

try it, LOL :_)

November 27 2011

new linux audio findings

recent findings

streaming & radio tools

new linux aduio findings

recent findings

streaming & radio tools

August 02 2011

Gracefully loading configs in prosody

Assuming:

  • you have running prosody.im XMPP server
  • you have the telnet module enabled
  • you added modules and/or changed configs
  • you don't want to restart the service and force-disconnect the connected users

Here is what you do:

telnet localhost 5582

now we want to load a module

module:load("muc_log", "conference.example.com")

| Loaded for conference.example.com
| OK: Module loaded onto 1 host

if loaded first time just do

module:load("muc_log_http")

more trickier, when you need to clean up for a module reload

httpserver.new.http_servers[5290].handlers["muc_log"] = nil

now browser to http://conference.example.com:5290/muc_log/ (trailing slash needed!)

now: profit!

May 31 2011

ardrum

ardrum

Recently i started making my own drumset. as good e-drums are not quite affordable to me, i set out to build my own with some design goals:

  • the individual drums should be sensitive to the place where they get hit
  • i wanted the set to be able to play samples as well as to trigger and influence sound synthesis
  • it should teach me about arduinos and other microcontrollers
  • the sensor input should be processed in an arduino and sent to pure data
  • it should be sort of affordable
  • standard parts should be used whenever possible

i just came back from work where we checked my 20 yr old piezos with an oscilloscope, they have their first peak between 8.88 and 9ms after being hit. less than 10ms latency should work. among the other drums, these piezos go into the snare, too.

parts

electronics

  • arduino atmega 168
  • plenty of piezos (i still had them and have no idea what kind they are)
  • an analog multiplexer to expand the amount of analog arduino inputs

hid

practice cymbals and pads

  • 12" snare
  • cymbals: plastic crash and ride

software

  • arduino sketch
  • pure data patches

May 29 2011

noisefoc

noisefoc

yesterday we built a noisefoc, a little NAND-based square wave synthesizer.

noisefoc-mini

the sounds it makes can be heard in a little video

April 10 2011

putty and ssh public key authentication

putty and ssh public key authentication

hardly ever did i bother to use putty as a normal terminal usually does what i want. unfortunately, there is an "operating system" whose name i will not mention that considers itself so different that the variety of available terminals for it is pretty low.

needing to tunnel an audio stream, i finally engaged in the quest for working ssh public key authentication using putty on such a system. needless to say, i read Chapter 8: Using public keys for SSH authentication and Chapter 9: Using Pageant for authentication of its documentation.

also needless to say, i couldn't have imagined how many pitfalls it contains. on unix, generating a key pair and sending the public key over is something that does not take more than a minute.

putty saved the generated keys somewhere, with the private key named .ppk and the public named whatever. it also offers to export something into openssh format which was what i wanted. i was nevertheless amazed that this file only contains the private key.

the public key that is needed to be put into server:.ssh/authorized_keys looked like some other rsa key that are used for ssl certificates but not very much like the keys that are normally stored in .ssh/authorized_keys. there is something that will output this format that i found on unix but not yet on other platforms, -O public-openssh.

remedy:

edit a copy of this public key file with a text editor, delete all the boilerplate stuff, write ssh-rsa / ssh-dsa on the beginning of the line with the actual key, join all further lines of it to just one, append something like user@host at the end and delete all the rest. the file is now ready to be appended to the other keys in authorized_keys.

the documentation on puttygen on unix has options to directly output this format using -O public-openssh . in this case i did it manually, from this:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20110410"
AAAAB3NzaC1yc2EAAAABJQAAAIEAqW/3hc9LgrNfYHFdBU37AM45s0OLfDJ1isvh
V5Ug4h0d/YzY8uzjRcZU5FrUz3NAsLlkgZck7M3Dg61/6oSZRDYAOZwsWJWhv+bx
uBY6Y2JEiFTZP1vIJoaj2v3nJz07w5n6ZtueCtodUWLi8MHotC6+zsXEmCbhI1RR
7u/8ork=
---- END SSH2 PUBLIC KEY ----

into this:


ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqW/3hc9LgrNfYHFdBU37AM45s0OLfDJ1isvhV5Ug4h0d/YzY8uzjRcZU5FrUz3NAsLlkgZck7M3Dg61/6oSZRDYAOZwsWJWhv+bxuBY6Y2JEiFTZP1vIJoaj2v3nJz07w5n6ZtueCtodUWLi8MHotC6+zsXEmCbhI1RR7u/8ork= user@host

run:

start pageant. i will hang out in the system tray and yes, private keys can be read into it and decrypted at which point it workedforme(tm).

April 07 2011

Howto quick update diaspora

assuming you have a local git branch called my_diaspora with custom settings and changes (skins, header, footer etc) and serve that via e.g. nginx to from localhost:3000 to the outer world.

git checkout master
git pull
git checkout my_diaspora
git pull origin master
bundle install (you will probably be asked for a sudo or root password)
rake spec

if neccessary:

rake db:migrate && rake spec 

finally fire it up:

./script/server

now: profit!

hm, on multiple request, here is the nginx conf I use for diaspora:

server {
    listen 443;
    ssl on;
    ssl_certificate /path/to/my/cert.crt;
    ssl_certificate_key /path/to/my/cert.key;

    server_name diaspora.subsignal.org;

    access_log /var/log/nginx/nginx.access.log;
    error_log /var/log/nginx/nginx.error.log;

    root /path/to/my/diaspora/checkout/diaspora/public;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    location / {
            client_max_body_size 4M;
            client_body_buffer_size 128K;
            if (-f $request_filename/index.html) {
                    rewrite (.*) $1/index.html break;
            }
            if (-f $request_filename.html) {
                    rewrite (.*) $1.html break;
            }
            if (!-f $request_filename) {
                    proxy_pass http://diaspora;
                    break;
            }
    }
    error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root html;
    }

}

upstream diaspora {
    server 127.0.0.1:3000;
}

server {
    listen 80;
    server_name diaspora.subsignal.org;
    access_log /var/log/nginx/nginx.access.log;
    error_log /var/log/nginx/nginx.error.log;
    root /path/to/my/diaspora/checkout/diaspora/public;
    rewrite      ^(.*) https://diaspora.subsignal.org$1 permanent;
}

ok, but now profit!

March 09 2011

OVH Xen with multiple Failover IPs and a Load Balancing IP

As the previous post with bridged Xen setup was not good to make the LoadBalance IP running,
I again fiddled with routed setup and the things I learned from my friend TH. And, against
all the warnings in propably older OVH docs I just use now dev ethX as default gw in my
routing table(s). (I think before they introduced the virtual MAC they always blocked unknown
MACs (and therefore also random ones from virtualisation as well) on their switches. This
seems not to be the case anymore).

first, get two of your 3 failover IPs and attach them to your rootserver.

second, get at least a second rootserver and attach a LoadBalancing infrastructure to both
of them and then enable only your test candidate for now.

get your Xen in routed mode (xend-config.sxp):

(network-script network-route)
(vif-script     vif-route)

don't forget to restart xend!

and in domU /etc/network/interfaces easy as this: (where 2.2.2.254) is the default gw of your dom0)

auto lo
iface lo inet loopback

# fixed IP
auto eth0
iface eth0 inet static
    address 1.1.1.1
    netmask 255.255.255.255
    broadcast 1.1.1.1
    post-up /sbin/ip route add 2.2.2.2 dev eth0
    post-up /sbin/ip route add default dev eth0
    post-down /sbin/ip route del 2.2.2.2 dev eth0
    post-down /sbin/ip route del default dev eth0

# moving failover IP
auto eth1
iface eth1 inet static
    address 1.1.1.2
    netmask 255.255.255.255
    broadcast 1.1.1.2
    post-up /sbin/ip rule  add from 1.1.1.2 lookup 100
    post-up /sbin/ip route add 2.2.2.2 dev eth1 table 100
    post-up /sbin/ip route add default dev eth1 table 100
    post-down /sbin/ip rule  del from 1.1.1.2 lookup 100
    post-down /sbin/ip route del 2.2.2.2 dev eth1 table 100
    post-down /sbin/ip route del default dev eth1 table 100

# moving loadbalance IP
auto eth2
iface eth2 inet static
    address 1.1.1.3
    netmask 255.255.255.255
    broadcast 1.1.1.3
    post-up /sbin/ip rule add from 1.1.1.3 lookup 200
    post-up /sbin/ip route add 2.2.2.2 dev eth2 table 200
    post-up /sbin/ip route add default dev eth2 table 200
    post-down /sbin/ip rule  del from 1.1.1.3 lookup 200
    post-down /sbin/ip route del 2.2.2.2 dev eth2 table 200
    post-down /sbin/ip route del default dev eth2 table 200

now: profit!

March 08 2011

OVH Xen with mre than one IP

Getting new sh*t around the block, having new roots at OVH, cool offers, nice machines, decent services, okay price, worst UI for management webinterface ever :_)

first, get two of your 3 failover IPs and attach them to your rootserver.

to get xen bridged running you need to create virtual mac addresses in the ovh manager. assign those to the vif section of the domU config:

vif         = [ 'ip=1.3.3.7,mac=02:00:00:00:00:01,vifname=vif.serv01',
                'ip=1.3.3.8,mac=02:00:00:00:00:02,vifname=vif.serv02' ]

use in xend-config.sxp

(network-script 'network-bridge antispoof=yes')
(vif-script vif-bridge)

and in domU /etc/network/interfaces easy as this:

auto eth0
iface eth0 inet static
    address 1.3.3.7
    netmask 255.255.255.255
    broadcast 1.3.3.7
    post-up /sbin/ip route add default dev eth0

auto eth1
iface eth1 inet static
    address 1.3.3.8
    netmask 255.255.255.255
    broadcast 1.3.3.8
    post-up /sbin/ip rule add from 1.3.3.8 lookup 100
    post-up /sbin/ip route add default dev eth1 table 100

Active Directory lacks memberOf attribute for unknown reason ..

Using a binduser with password to read from LDAP/AD is common. Using the memberOf=Group attribute for authing is common, too. Both in combination can be a major fuckup: when your binduser is seeing the whole LDAP tree, except the memberOf attributes. Ok, rewrite your authing. Ok, do that once, twice, more often .. for every single service changing ootb auth to something non common. No no no, I don't buy that.

Well, I searched for ages, but the I found a vague hint, that enabling

"Pre Windows 2000 Compatibility" 

might help. An really, this info is digged up from the bottoms of the interwebbs. Golden needle in a haystack!

Enable the darn stopid named checkbox, and hey, finally you binduser can read what you binduser should be able to read anyways.

February 28 2011

stuffing a fucked bootloader

screwing over a fucked bootloader

problem:

 u got grub, lilo or something in your partitions but the shit doesnt boot

solution:

 fuck the harddisks MBR over to get a bootmenu that boots any fuckin partition, regardless of whats inside

how-to-repeat:


DISCLAIMER: if you wipe your harddisk(s) trying this its your dogdamn own fault.
also, dos partition labels only. no idea if this works on gpt.

NOTE: this snippet was almost finished but got fucked up on the way. it prolly sounded nicer before.

entering:

some FreeBSD bootmedium (ie. a freesbie image if that works for you or maybe something more recent: a CD, Stick etc)

boot the thing and get root.

make your mind up about which disk you want to replace the MBR of.
if there is just one disk in the box, and this is a PATA disk connected as master on the first bus, the bios will likely call it 0x80 (0x81 for the 2nd etc.).
also, in this case the os will likely call it ad0.

knowing the disks name in terms of bios and OS numbering will help in hitting the right disk.

making the mbr writable:

  sysctl kern.geom.debugflags=0x10

write a new mbr without affecting the partitions on it:

  boot0cfg -B -v -d 0x80 ad0

if everything went well, on next reboot you'll be greeted with a little chooser for booting.

Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.

Don't be the product, buy the product!

Schweinderl