Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
rnd:projects:pc_build_1 [2023-03-06 05:46] – asdf | rnd:projects:pc_build_1 [2023-07-09 23:45] (current) – asdf | ||
---|---|---|---|
Line 4: | Line 4: | ||
oneline: a custom machine for fun and...more fun | oneline: a custom machine for fun and...more fun | ||
---- | ---- | ||
- | It's high time I assemble a desktop computer. The hardest part will be saving up the cash for it---not because I'm broke, but because I'll almost certainly be tempted to buy synth parts instead. Maybe I'll start after I buy a Syntakt... | + | It's high time I assemble a desktop computer. |
===== Planning ===== | ===== Planning ===== | ||
Line 22: | Line 22: | ||
An ultra-wide monitor would be awesome, although I have no clue where I'm going to put it (or the machine itself, for that matter). | An ultra-wide monitor would be awesome, although I have no clue where I'm going to put it (or the machine itself, for that matter). | ||
- | [[https:// | + | [[https:// |
* CPU | * CPU | ||
Line 34: | Line 34: | ||
* SSD | * SSD | ||
* Samsung 860 Evo 1 TB 2.5" ($144) | * Samsung 860 Evo 1 TB 2.5" ($144) | ||
+ | * case | ||
+ | * Corsair Airflow 4000D | ||
+ | * misc | ||
+ | |||
+ | ===== Assembly and configuration ===== | ||
+ | Assembly proceeded mostly without issue, though there was a simple snag: we struggled to mount the disks in the included 2.5" brackets. We found the included screws too short, the brackets too slim, and the bracket mount point incompatible with disk cables. This was because we were trying to place the disks //inside// the brackets rather than the //outside// where they belong. As it happens, we were not the only ones to have this problem((https:// | ||
+ | |||
+ | During the assembly process, we at last settled on the hostnames for this machine: jekyll for the Linux side and hyde for the Windows side((The joke being that the Linux side is its respectable face, and the Windows side is the madman we don't openly acknowledge.)). Most of this section will be concerned with the former, since that's where the bulk of our effort was spent. | ||
+ | |||
+ | ==== Video ==== | ||
+ | When installing Manjaro i3, we faced the same interface problem that occurred when preparing [[.: | ||
+ | |||
+ | VLC similarly required some wrangling to get working. Out of the box, it crashed any time it tried to play videos. As documented on the Arch Linux forum((https:// | ||
+ | |||
+ | ==== Audio ==== | ||
+ | Since one of our major goals with this machine was to use it for recording music, it was imperative that the audio system be as flexible as possible with minimal maintenance effort. To that end, we decided to go all-in on [[JACK]] as the primary audio interface. Following instructions on the unofficial [[ALSA]] wiki((https:// | ||
+ | |||
+ | <file text sound.conf> | ||
+ | # create a stereo loopback at index 0 to feed to jack | ||
+ | options snd-aloop index=0 pcm_substreams=2 | ||
+ | # the other two cards | ||
+ | options snd-hda-intel index=1,2 | ||
+ | </ | ||
+ | |||
+ | The second is '' | ||
+ | |||
+ | <file text .asoundrc> | ||
+ | # https:// | ||
+ | # * ALSA playback = subdevice 0,0 | ||
+ | # * ALSA capture | ||
+ | # * Jack readable client (cloop) = subdevice 1, | ||
+ | # * Jack writable client (ploop) = subdevice 1,1 | ||
+ | |||
+ | # playback | ||
+ | pcm.amix { | ||
+ | type dmix | ||
+ | ipc_key 219345 | ||
+ | slave.pcm " | ||
+ | } | ||
+ | |||
+ | # capture | ||
+ | pcm.asnoop { | ||
+ | type dsnoop | ||
+ | ipc_key 219346 | ||
+ | slave.pcm " | ||
+ | } | ||
+ | |||
+ | # duplex device to combine the above | ||
+ | pcm.aduplex { | ||
+ | type asym | ||
+ | playback.pcm " | ||
+ | capture.pcm " | ||
+ | } | ||
+ | |||
+ | # jack devices | ||
+ | pcm.ploop { | ||
+ | type plug | ||
+ | slave.pcm " | ||
+ | } | ||
+ | |||
+ | pcm.cloop { | ||
+ | type dsnoop | ||
+ | ipc_key 219348 | ||
+ | slave.pcm " | ||
+ | } | ||
+ | |||
+ | # default device | ||
+ | pcm.!default { | ||
+ | type plug | ||
+ | slave.pcm " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Finally, we have the script that connects those software devices within JACK. | ||
+ | |||
+ | <file bash loop2jack> | ||
+ | #!/bin/bash | ||
+ | |||
+ | # create jack clients | ||
+ | / | ||
+ | / | ||
+ | |||
+ | # pass some time | ||
+ | sleep 1 | ||
+ | |||
+ | # connect alsa -> jack | ||
+ | jack_connect "from alsa: | ||
+ | jack_connect "from alsa: | ||
+ | |||
+ | # connect jack -> alsa | ||
+ | jack_connect " | ||
+ | jack_connect " | ||
+ | </ | ||
+ | |||
+ | <WRAP center round todo 60%> | ||
+ | Figure out how to connect other devices ([[: | ||
+ | </ | ||
+ | |||
+ | {{tag> |