All the updates regarding projects and stuff.

This commit is contained in:
Michael Fabian 'Xaymar' Dirks
2025-02-12 01:19:19 +01:00
parent e7f299c38b
commit 4d28f8f346
17 changed files with 188 additions and 483 deletions
-68
View File
@@ -1,68 +0,0 @@
name: "Build & Publish"
on: [push]
concurrency:
group: build-publish
cancel-in-progress: false
jobs:
build:
name: "Build"
runs-on: "ubuntu-22.04"
strategy:
fail-fast: true
steps:
- name: "Install Build Tools"
shell: bash
run: |
sudo apt-get update
sudo apt-get install ruby-full build-essential zlib1g-dev
echo "GEM_HOME=$HOME/gems" >> "${GITHUB_ENV}"
echo "PATH=$HOME/bin:$PATH" >> "${GITHUB_ENV}"
sudo gem install bundler
- name: "Clone"
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: "Install Dependencies"
shell: bash
run: |
bundle install
- name: "Build"
shell: bash
run: |
bundle exec jekyll clean --destination build
bundle exec jekyll build --destination build
- name: "Upload Artifact"
uses: actions/upload-artifact@v4
with:
path: "build/"
if-no-files-found: error
retention-days: 7
compression-level: 0
publish:
name: "Publish"
runs-on: "ubuntu-22.04"
needs: build
strategy:
fail-fast: true
steps:
- name: "Download Artifact"
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: "Restore SSH Key"
shell: bash
run: |
mkdir $HOME/.ssh
chmod u=rwx,go= $HOME/.ssh
echo "${{ secrets.SSHKEY }}" | base64 -d > $HOME/.ssh/id_ed25519
chmod u=rw,go= $HOME/.ssh/id_ed25519
echo "Host xaymar.com" >> $HOME/.ssh/config
echo " StrictHostKeyChecking no" >> $HOME/.ssh/config
- name: "Publish"
shell: bash
run: |
rsync -v -h -P -a --delete . "com.xaymar@xaymar.com:/var/www/com.xaymar/public/com.xaymar.www/"
+10 -7
View File
@@ -5,16 +5,16 @@ comments: false
date: "2022-01-12" date: "2022-01-12"
--- ---
{% capture content %}Hey, Im the guy referred to as Xaymar also known by the real name Michael Fabian Dirks. Ive been enjoying software development for a long time now, its both my hobby and my job, and i love it. Im probably a great example when it comes to “Love your job and youll never work a day in your life”, because so far it has only felt like work once.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <p class="block">Hi, my name is Xaymar, a trilingual (🇩🇪🇬🇧🇳🇱) Furry/Scaly Vtuber with AuDHD. I'm software and game developer since 2002, starting with a Basic-like language on Amiga. I worked for Elgato (now Corsair), Thales, OWN3D, Streamlabs, and now I have my own company called Vhonowslend. I've always been fond of coding as an escape from reality, and I'm probably a good example of “Love your job and you'll never work a day in your life”.</p>
{% capture content %}I love playing and making games, listening to music, reading comics and books, and obviously also love programming. My favourite music genres include Drum & Bass and Psytrance, while my favourite games (so far) are Stardew Valley, Factorio, Risk of Rain, and Cave Story+.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <p class="block">I love playing and making games, listening to music, reading comics and books, and obviously also love programming. My favourite music genres include Drum & Bass and Psytrance, while my favourite games (so far) are Stardew Valley, Factorio, Risk of Rain, and Cave Story+. Anyway, that's pretty much it. There isn't much to me I'm just another human, with different interests and different skills.</p>
{% capture content %}Anyway, thats pretty much it. There isnt much to me Im just another human, with different interests and different skills.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <p class="block">Go find me on other socials if you want to know more, <a class="inline" target="_blank" href="https://linktr.ee/xaymar">my Linktree has all of them</a>.</p>
{% include blocks/heading.liquid level=1 content="Contact Me" %}
{% capture content %}You can contact me at: info (at) xaymar (dot) com . Use the PGP key below for End-To-End Encryption.{% endcapture %}{% include blocks/paragraph.liquid content=content %} <h2 class="block">Contact Me</h2>
<p class="block">You can contact me at: <code class="inline">info (at) xaymar (dot) com</code>. Use the PGP key below for End-To-End Encryption if you need it.</p>
{% capture content %}-----BEGIN PGP PUBLIC KEY BLOCK----- <code class="block">-----BEGIN PGP PUBLIC KEY BLOCK-----
xjMEYJJ1RxYJKwYBBAHaRw8BAQdA53AIvujGXIV3x8M4Ns4yXf7/fdpuBjDXL8uybq1lvUTNL01p xjMEYJJ1RxYJKwYBBAHaRw8BAQdA53AIvujGXIV3x8M4Ns4yXf7/fdpuBjDXL8uybq1lvUTNL01p
Y2hhZWwgRmFiaWFuICdYYXltYXInIERpcmtzIDxpbmZvQHhheW1hci5jb20+wpEEExYIADkWIQR7 Y2hhZWwgRmFiaWFuICdYYXltYXInIERpcmtzIDxpbmZvQHhheW1hci5jb20+wpEEExYIADkWIQR7
gh48yk5u6aS6TDX9mKsqgjje9AUCYJJ1RwUJBaOagAIbAwULCQgHAgYVCAkKCwIFFgIDAQAACgkQ gh48yk5u6aS6TDX9mKsqgjje9AUCYJJ1RwUJBaOagAIbAwULCQgHAgYVCAkKCwIFFgIDAQAACgkQ
@@ -24,4 +24,7 @@ x+mxFhYepi6wcN9DPbdKMpsoAwEIB8J+BBgWCAAmFiEEe4IePMpObumkukw1/ZirKoI43vQFAmCS
dUcFCQWjmoACGwwACgkQ/ZirKoI43vQ9UgEA/rcGHvgIgN3HWowTbSZ1eFbUIjQhcSslq9LTB196 dUcFCQWjmoACGwwACgkQ/ZirKoI43vQ9UgEA/rcGHvgIgN3HWowTbSZ1eFbUIjQhcSslq9LTB196
pT4A+gMR7FyY7U2erlW74dEBzJbGu9otL5YKeLgTygLa7C0E pT4A+gMR7FyY7U2erlW74dEBzJbGu9otL5YKeLgTygLa7C0E
=KrxB =KrxB
-----END PGP PUBLIC KEY BLOCK-----{% endcapture %}{% include blocks/code.liquid content=content %} -----END PGP PUBLIC KEY BLOCK-----</code>
<h2 clas="block">Imprint</h2>
<p class="block">Under applicable law (§ 5 Digitale-Dienste-Gesetz, § 18 Medienstaatsvertrag) I am not required to provide an Imprint. You can contact me using the above E-Mail address or in extreme cases go through the proper legal means.</p>
-5
View File
@@ -70,11 +70,6 @@ collections:
posts: posts:
output: false output: false
label: "Articles" label: "Articles"
games:
output: true
permalink: '/games/:path/'
label: "Games"
sort_by: title
guides: guides:
output: true output: true
permalink: '/guides/:path/' permalink: '/guides/:path/'
+54 -103
View File
@@ -1,85 +1,15 @@
{ {
"home": { "home": {
"name": "Home", "name": "Blog",
"url": "/", "url": "/"
"entries": {
"news": {
"name": "News",
"url": "/category/news/",
"blank": false,
"entries": {
"progress-reports": {
"name": "Progress Reports",
"url": "/category/progress-reports/",
"blank": false
}
}
},
"blog": {
"name": "Blogs",
"url": "/category/blog/",
"blank": false
},
"review": {
"name": "Reviews",
"url": "/category/review/",
"blank": false
}
}
}, },
"project": { "project": {
"name": "Projects", "name": "Projects",
"entries": { "url": "/projects"
"obs-studio": {
"name": "OBS Studio",
"entries": {
"amd-encoder": {
"name": "AMD Encoders",
"url": "/projects/obs/amd-encoder/",
"blank": false
},
"ffmpeg-encoder": {
"name": "FFmpeg Encoders",
"url": "/projects/obs/ffmpeg-encoder/",
"blank": false
},
"ocean-blue": {
"name": "Ocean Blue",
"url": "/projects/obs/ocean-blue/",
"blank": false
},
"streamfx": {
"name": "StreamFX",
"url": "/projects/obs/streamfx/",
"blank": false
}
}
},
"voicefx": {
"name": "VoiceFX (for VST)",
"url": "/projects/voicefx/",
"blank": false
},
"all": {
"name": "All Projects",
"url": "/projects/",
"blank": false
}
}
}, },
"guides": { "guides": {
"name": "Guides", "name": "Guides",
"entries": { "entries": {
"games": {
"name": "Games",
"entries": {
"remnant2": {
"name": "Remnant 2",
"url": "games/remnant2/",
"blank": false
}
}
},
"debloating": { "debloating": {
"name": "Debloating your System", "name": "Debloating your System",
"blank": false, "blank": false,
@@ -91,6 +21,21 @@
} }
} }
}, },
"games": {
"name": "Games",
"entries": {
"remnant2": {
"name": "Remnant 2",
"url": "guides/games/remnant2/",
"blank": false
}
}
},
"lost_knowledge": {
"name": "Lost Knowledge & Secrets",
"url": "guides/lost-knowledge-and-secrets/",
"blank": false
},
"recording": { "recording": {
"name": "High Quality Recording (in OBS Studio)", "name": "High Quality Recording (in OBS Studio)",
"url": "guides/obs/high-quality-recording/", "url": "guides/obs/high-quality-recording/",
@@ -132,41 +77,49 @@
"blank": false "blank": false
} }
} }
},
"lost_knowledge": {
"name": "Lost Knowledge & Secrets",
"url": "guides/lost-knowledge-and-secrets/",
"blank": false
} }
} }
}, },
"socials": {
"name": "Socials",
"entries": {
"discord": {
"name": "Discord",
"url": "https://s.xaymar.com/discord",
"blank": true
},
"github": {
"name": "GitHub",
"url": "https://s.xaymar.com/github",
"blank": true
},
"patreon": {
"name": "Patreon",
"url": "https://s.xaymar.com/patreon",
"blank": true
},
"twitch": {
"name": "Twitch",
"url": "https://s.xaymar.com/twitch",
"blank": true
},
"about": { "about": {
"name": "About Me", "name": "About Me",
"url": "/about/me/", "url": "/about/me/",
"entries": { "entries": {
"imprint": {
"name": "Imprint",
"url": "/about/me/#imprint"
},
"socials": {
"name": "Social Links",
"url": "https://linktr.ee/xaymar",
"blank": true,
"entries": {
"bluesky": {
"name": "BlueSky",
"url": "https://bsky.app/profile/xaymar.com",
"blank": true
},
"discord": {
"name": "Discord",
"url": "https://discord.gg/UD8hhU6BsG",
"blank": true
},
"tiktok": {
"name": "TikTok",
"url": "https://www.tiktok.com/@dotxaymar?_t=zg-8tauujbyvct&_r=1",
"blank": true
},
"twitch": {
"name": "Twitch",
"url": "http://twitch.tv/xaymar",
"blank": true
},
"youtube": {
"name": "YouTube",
"url": "https://discord.gg/UD8hhU6BsG",
"blank": true
}
}
},
"privacy": { "privacy": {
"name": "Privacy Policy", "name": "Privacy Policy",
"url": "about/privacy/", "url": "about/privacy/",
@@ -180,5 +133,3 @@
} }
} }
} }
}
}
@@ -2,6 +2,8 @@
title: "Remnant 2: All Builds for Armor, Weapons, Rings, Amulets, etc." title: "Remnant 2: All Builds for Armor, Weapons, Rings, Amulets, etc."
category: [ "Build" ] category: [ "Build" ]
tags: ["Remnant 2", "Build"] tags: ["Remnant 2", "Build"]
redirect_from:
- /games/remnant2/
--- ---
<p class="block">Remnant 2, also known as "What Remnant: From the Ashes" should have been, is finally out and I've already finished the entire game - 5 times. It is incredibly fun and addictive, especially due to the depth of the game - not just randomly generated maps, but also a lot of layered secrets. Anyway, here are my builds that I've used so far.</p> <p class="block">Remnant 2, also known as "What Remnant: From the Ashes" should have been, is finally out and I've already finished the entire game - 5 times. It is incredibly fun and addictive, especially due to the depth of the game - not just randomly generated maps, but also a lot of layered secrets. Anyway, here are my builds that I've used so far.</p>
@@ -4,7 +4,9 @@ category: Blog
tags: ["JavaScript", "TypedArray", "WordPress Archive"] tags: ["JavaScript", "TypedArray", "WordPress Archive"]
--- ---
<p class="block">As a Programmer I have to deal with a number of programming languages to write code, and one language that repeatedly appears is JavaScript. JavaScript is one of the <a rel="noreferrer noopener" href="https://www.youtube.com/watch?v=et8xNAc2ic8" data-type="URL" data-id="https://www.youtube.com/watch?v=et8xNAc2ic8" target="_blank">weirder languages</a> - similar to PHP in weirdness - which makes it an interesting experience to say the least. Most of the time you're at the whim of a grey box compiler, due to the massive variance of Browsers and Devices that the users use. </p> <p class="block">As a Programmer I have to deal with a number of programming languages to write code, and one language that repeatedly appears is JavaScript. JavaScript is one of the <a rel="noreferrer noopener" href="https://www.youtube.com/watch?v=et8xNAc2ic8" data-type="URL" data-id="https://www.youtube.com/watch?v=et8xNAc2ic8" target="_blank">weirder languages</a> - similar to PHP in weirdness - which makes it an interesting experience to say the least. Most of the time you're at the whim of a grey box compiler, due to the massive variance of Browsers and Devices that the users use. </p><!--more-->
<alert class="block" data-type="info">As of 2024 there are <a class="inline" target="_blank" href="https://jsbench.me/pym3eou78u">even faster options</a> and this article has even been turned into a <a class="inline" target="_blank" href="https://github.com/jawj/hextreme">proper NPM modules</a>. Not listed is a variant of the code that is NodeJS specific which uses Buffer.from().text() instead of TextDecoder.</alert>
<p class="block">So in order to best approach reality, I have to figure out which APIs are available at any point in time, and also run performance benchmarks in current major browsers available to me. And that's what todays post is about, finding which of the various methods is fast enough for high performance use.</p><!--more--> <p class="block">So in order to best approach reality, I have to figure out which APIs are available at any point in time, and also run performance benchmarks in current major browsers available to me. And that's what todays post is about, finding which of the various methods is fast enough for high performance use.</p><!--more-->
@@ -63,8 +63,4 @@ tags: ["Review", "Exploration", "Action", "Shooter", "First-Person" ]
</ul> </ul>
<h1 class="block">Final words</h1> <h1 class="block">Final words</h1>
<p class="block">As it currently is, my recommendation is "if you've got nothing better". The game is still in Early Access, so its current state isn't representative of the final product, and that shows in many areas. Who knows what progress the developers manage to make by the end of next year, maybe it'll be nothing like what's described here. I've linked the game's page below for your own perusal.</p> <p class="block">As it currently is, my recommendation is "if you've got nothing better". The game is still in Early Access, so its current state isn't representative of the final product, and that shows in many areas. Who knows what progress the developers manage to make by the end of next year, maybe it'll be nothing like what's described here.</p>
<iframe class="block" src="https://store.steampowered.com/widget/2297960/" frameborder="0" width="646" height="190"></iframe>
<p class="block">I don't know why the Store page is "The ruins of Xantao", but the game itself is titled "Ruins of Xantao".</p>
+7
View File
@@ -0,0 +1,7 @@
---
title: "Path of Exile 2"
category: [ "Blog" ]
tags: [ "Path of Exile", "PoE", "Path of Exile 2", "PoE2" ]
---
Gonna be enjoying a newly released indie game for abit. See ya all next year!
-17
View File
@@ -1,17 +0,0 @@
---
layout: default
title: "AMD AMF Encoders (for OBS Studio)"
comments: false
date: "2022-03-07"
---
{% capture content %}The AMD Encoder plugin for OBS Studio enables AMD GPU owners to use their GPUs to encode H.264 and H.265 video directly. It leverages the AMF SDK (and in older versions a Media Codec SDK), which enables direct integration of AMDs video engine into other Software. At the peak of its lifetime, the AMD Encoder was integrated into OBS Studio and became part of its core toolset.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}The project is now unmaintained and completely abandoned, after the de-facto only maintainer (me) left the project. This decision was made due to repeated disagreements with the OBS Project team and harassment from people affiliated with the OBS Project team.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% include blocks/heading.liquid level=2 content="Further Links" float="clear" %}
{% capture content %}
<li>{% include inline/link.liquid url="https://github.com/obsproject/obs-amd-encoder" content="Source Code" %}</li>
<li>{% include inline/link.liquid url="https://obsproject.com/forum/threads/amd-hardware-encoder-s-deleted.52305/" content="Project thread on OBS Project" %}</li>
<li>{% include inline/link.liquid url="https://web.archive.org/web/20200302051056/https://obsproject.com/forum/resources/amd-hardware-encoder-s.427/" content="Resource on OBS Project (Archived)" %}</li>
{% endcapture %}{% include blocks/list.liquid content=content %}
-15
View File
@@ -1,15 +0,0 @@
---
layout: default
title: "FFmpeg Encoders (for OBS Studio)"
comments: false
date: "2022-03-07"
---
{% capture content %}FFmpeg Encoders (for OBS Studio) enabled the use of FFmpeg encoders directly in OBS Studio. As the code base had massive overlaps with StreamFX's code, it was merged into StreamFX and is now a core feature of it.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% include blocks/heading.liquid level=2 content="Further Links" float="clear" %}
{% capture content %}
<li>{% include inline/link.liquid url="https://github.com/xaymar/obs-ffmpeg-encoder" content="Source Code" %}</li>
<li>{% include inline/link.liquid url="https://obsproject.com/forum/threads/ffmpeg-encoders-for-obs-studio.108253/" content="Project thread on OBS Project" %}</li>
<li>{% include inline/link.liquid url="https://obsproject.com/forum/resources/ffmpeg-encoders-for-obs-studio.826/" content="Resource on OBS Project (Archived)" %}</li>
{% endcapture %}{% include blocks/list.liquid content=content %}
-43
View File
@@ -1,43 +0,0 @@
---
layout: default
title: "Ocean Blue, an eye friendly OBS Studio Theme"
comments: false
date: "2022-02-25"
---
{% capture content %}Ocean Blue is a dark mode theme for OBS Studio with focus on visibility and clear visual grouping. I wanted to avoid making another gray or black theme, and tested a lot of different colors, finally ending up with a color that I can only describe as "Ocean Blue". This wasn't the only thing that needed to be different, I wanted something that set itself apart from other themes.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}My second goal was to improve the visual structure of the user interface as much as possible. This meant unifying the spacing (or padding) of elements, resizing them to fit the expected layouts, and other adjustments. For example, property groups are now clearly visible, instead of just being a thin almost invisible line.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% capture content %}These two goals resulted in something that I can only describe as a theme that is directly oriented at content creators.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% include blocks/heading.liquid level=1 content="Download & Source Code" %}
{% capture content %}This theme, including the source code for it, is available {% include inline/link.liquid content="on Github" url="https://github.com/xaymar/obs-oceanblue/releases" %} for free. If you deem this Theme useful, consider supporting me on {% include inline/link.liquid url="https://patreon.com/Xaymar" content="Patreon" %}, {% include inline/link.liquid url="https://github.com/sponsors/Xaymar" content="Github" %}, or {% include inline/link.liquid url="https://twitch.tv/Xaymar" content="Twitch" %}.{% endcapture %}{% include blocks/paragraph.liquid content=content %}
{% include blocks/heading.liquid level=1 content="Screenshots & Media" %}
{% capture columns %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_m7sDhBCWe5.png" link=true caption="Main Window" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_Xv1X1BIvsn.png" link=true caption="General Settings" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_uz5wmDLXlk.png" link=true caption="Output Settings" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_lcFx1KOO15.png" link=true caption="Hotkeys" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_eOLVrDEB9t.png" link=true caption="Text Source Properties" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% capture column %}
{% include blocks/media.liquid type="image" url="https://cdn.xaymar.com/blog/2020/12/obs64_oncZVYZVHH.png" link=true caption="Filters" %}
{% endcapture %}{% include blocks/column.liquid content=column %}
{% endcapture %}{% include blocks/columns.liquid content=columns %}
-25
View File
@@ -1,25 +0,0 @@
---
layout: default
title: "StreamFX (for OBS Studio)"
comments: false
date: "2022-02-25"
---
<figure class="block float clear" style="float: right; width: 33%; max-width: 256px;">
<img src="{{ "projects/obs/streamfx/icon.png" | absolute_url }}"/>
<figcaption>Official Icon (All Rights Reserved)</figcaption>
</figure>
<figure class="block float clear" style="float: right; width: 33%; max-width: 256px;">
<img src="{{ "projects/obs/streamfx/logo.svg" | absolute_url }}"/>
<figcaption>Official Logo (All Rights Reserved)</figcaption>
</figure>
<p class="block">StreamFX is the premier plugin to OBS Studio to take your stream or recording to the next level! Whether it is crafting advanced scene setups, recording in intermediate formats, bringing out a little bit of extra quality from encoders, StreamFX has everything you need. Bring your content creation to the future, no matter if you are a Power User or End User.</p>
<h2 class="block">Further Links</h2>
<ul>
<li><a href="https://streamfx.xaymar.com">Official Website</a></li>
<li><a href="https://github.com/xaymar/obs-StreamFX">Source Code on GitHub</a></li>
<li><a href="https://obsproject.com/forum/threads/streamfx-for-obs%C2%AE-studio.76619/">OBS Project Resource Page</a></li>
</ul>
<h2 class="block">Media</h2>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.9 KiB

-72
View File
@@ -1,72 +0,0 @@
---
layout: default
title: "VoiceFX"
comments: false
date: "2022-02-25"
---
<figure class="block float" style="max-width: 256px; width: 33%; float: right"><img src="https://cdn.xaymar.com/blog/2020/10/VST_Compatible_Logo_Steinberg.png"/><figcaption>VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.</figcaption></figure>
<figure class="block float" style="max-width: 256px; width: 33%; float: right; clear: both;"><img src="https://cdn.xaymar.com/blog/2020/10/powered-by-nvidia-broadcast-lockup-rgb-wht-for-screen.png"/><figcaption>The NVIDIA Audio Effects SDK gives you everything you need to rise above the noise every time. AI-powered noise removal filters both incoming and outgoing audio to make every conversation crystal-clear. No special equipment required.</figcaption></figure>
<p class="block">VoiceFX is a VST 2.x and VST 3.x plug-in enabling you to clean up noise and echo from recordings in post-processing<sup><a href="#ex1">1</a></sup> workflows. It is based on NVIDIA Broadcast SDKs, and as such is able to filter out fan noise, keyboard clicking, and a lot of other unwated noise. At the current time it is compatible with a number of VST 2.x and 3.x hosts, but may not work with all of them<sup><a href="#ex2">2</a></sup>.</p>
<details class="block" open>
<summary><h2>Compare Features between Demo and Full</h2></summary>
<p class="block">The table below explains the differences between each version, as well as what is planned for the future. Please note that this is not a guarantee, as sometimes features end up impossible upon closer inspection.</p>
<table class="block">
<thead>
<tr>
<th width="200px">Feature</th>
<th>Demo Version</th>
<th>Full Version</th>
</tr>
</thead>
<tr>
<td>VST 3.x Support</td>
<td>✔ (v0.1)</td>
<td>✔ (v0.1)</td>
</tr>
<tr>
<td>VST 2.x Support</td>
<td>✔ (v0.3)</td>
<td>✔ (v0.2)</td>
</tr>
<tr>
<td>Noise Removal<sup><a href="#ex1">1</a></sup></td>
<td>✔ (v0.3)</td>
<td>✔ (v0.3)</td>
</tr>
<tr>
<td>Room Echo Removal<sup><a href="#ex3">3</a></sup></td>
<td></td>
<td>✔ (v0.4)</td>
</tr>
<tr>
<td>Acoustic Echo Removal<sup><a href="#ex3">3</a></sup></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Intensity Control</td>
<td></td>
<td>✔ (v0.4)</td>
</tr>
<tr>
<td>Automation</td>
<td></td>
<td>✔ (v0.4)</td>
</tr>
<tr>
<td>User Interface</td>
<td></td>
<td></td>
</tr>
</table>
</details>
<div class="block"><iframe class="block" src="https://itch.io/embed/1190072?linkback=true&bg_color=252525&fg_color=ffffff&link_color=3373cc&border_color=07111e" width="100%" height="167" frameborder="0"><a href="https://xaymar.itch.io/voicefx">VoiceFX by Xaymar</a></iframe></div>
<ol class="block subscript">
<li id="ex1">A volume difference between voice and noise of 25 dBFS or more may be required for ideal results. The effect will try its best to remove noise, but is not magic and may fail under certain conditions.</li>
<li id="ex2">Most VST 2.x and 3.x hosts will work, however some hosts do unnatural modifications to sandbox plug-ins, which will break VoiceFX. A notable examples is DaVinci Resolve, but more are listed <a href="https://itch.io/t/2256497/welcome-take-some-time-to-orient-yourself-readme" target="_blank">here</a>.</li>
<li id="ex3">Room/Acoustic Echo Removal may misidentify your own voice as an echo and remove it.</li>
</ol>
+1
View File
@@ -1,4 +1,5 @@
body > .content { body > .content {
width: 100vw;
max-width: $theme-width; max-width: $theme-width;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
+104
View File
@@ -0,0 +1,104 @@
---
layout: default
title: "A mostly complete history of Projects"
comments: false
date: "2025-02-12"
redirect_from:
- /projects/obs/
- /projects/voicefx/
- /projects/obs/streamfx/
- /projects/obs/amd-encoder/
- /projects/obs/ffmpeg-encoder/
- /projects/obs/ocean-blue/
---
<p class="block">Over the years I've started, stopped, forgotten, and completed many projects. This is a list of all of them that I remember.</p>
<h1 class="block">2009</h1>
<h2 class="block">BlitzHit</h2>
<p class="block">My first complex project made in Blitz3D and possibly still the one I'm most proud of, as I was merely 16 years old at the time. It was a clone of Guitar Hero or Frets on Fire for PC/Windows and ended up being a massive learning experience for a lot of things. The final version which never saw the public had a fully implemented stage and music editor, calculated accuracy, had difficulty selection, and a lot more.</p>
<p class="block">Unfortunately real life eventually caught up and I had to abandon the project, and the project files were also lost due to various incidents and experiences.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://www.blitzforum.de/forum/viewtopic.php?t=33046&highlight=blitzhit">BlitzForum resource</a></li>
</ul>
<h1 class="block">2016</h1>
<h2 class="block">AMD Encoder <i>for OBS Studio</i></h2>
<p class="block">My first endeaver into making plugins for <a class="inline" target="_blank" href="https://obsproject.com">OBS Studio</a> was spawned by being nerdsniped by <a class="inline" target="_blank" href="https://www.reddit.com/r/Amd/comments/4s38ju/">a reddit thread on /r/AMD</a> of all things. At the time I had an AMD Radeon HD 5770 (still have it boxed) and I was trying to get more quality out of my recordings. I had the option of using <a class="inline" target="_blank" href="https://obsproject.com/forum/threads/obs-branch-with-amd-vce-support.13996/">a fork of OBS Classic</a> (it had heavy performance penalty) or use the official "Plays.tv" app (which was filled with ads and tracking).</p>
<p class="block">But instead of choosing either, I decided that the most intelligent path forwards was to trial and error my way through the (now defunct) <a class="inline" target="_blank" href="https://web.archive.org/web/20150905172751/http://developer.amd.com/tools-and-sdks/media-sdk/">AMD Media SDK</a> (without AMDs permission). The plugin quickly took shape and its first working version was done within just a month, with it rapidly getting significantly more stable and versatile with each release. Eventually it caught the attention of AMD and it was credited as the reason why the Video Encoding team wasn't completely axed that year, eventually resulting in the new AMD Advanced Media Framework.</p>
<p class="block">The project was put on ice in late 2020 after repeated disagreements with the team being OBS Studio, especially the project lead. As of 2023 it has been replaced with a superior implementation which makes use of hardware texture sharing.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://obsproject.com/forum/threads/amd-hardware-encoder-s-deleted.52305/">OBS Forum Thread</a></li>
<li><a class="inline" target="_blank" href="https://web.archive.org/web/20200302051056/https://obsproject.com/forum/resources/amd-hardware-encoder-s.427/">OBS Forum Resource (Archived)</a></li>
<li><a class="inline" target="_blank" href="https://github.com/obsproject/obs-amd-encoder">Source Code (GPL 2.0)</a></li>
</ul>
<h1 class="block">2017</h1>
<h2 class="block">StreamFX <i>for OBS Studio</i></h2>
<p class="block">Originally under the name Stream Effects, this project is what kickstarted my career and massively improved my C++ knowledge. I have learned basically all I know about modern C++ through this project alone, as it always was the place for new groundbreaking inventions and changes. Though some of these inventions were made by necessity or requirement, not by choice.</p>
<p class="block">At its core this project adds several sources, filters, encoders, and transitions to the popular <a class="inline" target="_blank" href="https://obsproject.com">OBS Studio</a> streaming solution. It was developed primarily for friends and family, but later gained an audience far beyond what I could handle - at its peak had an average of 200k active users. As funding was running out due to inflation, it was eventually migrated to a paid model.</p>
<p class="block">As of 2025 it is now owned and run by <a class="inline" target="_blank" href="https://vhonowslend.com/">Vhonowslend</a>.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://streamfx.vhonowslend.com">Website</a></li>
<li><a class="inline" target="_blank" href="https://discord.gg/v7tpF9Ady7">Discord</a></li>
<li><a class="inline" target="_blank" href="https://obsproject.com/forum/resources/streamfx-by-vhonowslend.578/">OBS Forum Resource</a></li>
</ul>
<h2 class="block">BlitzLLM</h2>
<p class="block">BlitzLLVM is an attempt at making a compiler or transpiler for the BlitzBasic language (Blitz2D, Blitz3D and BlitzPlus). The end goal is to be able to compile BlitzBasic-based games using a modern compiler, significantly improving performance and compatibility with modern systems. It is simultaneously a learning experience and an application of learned experience.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://github.com/Xaymar/BlitzLLVM">Source Code</a></li>
</ul>
<h1 class="block">2020</h1>
<h2 class="block">Last.FM Now Playing Overlay <i>for OBS Studio</i></h2>
<p class="block">A simple "Now Playing" overlay that uses Last.fm and runs in a Browser Source. Kinda not much to write about, it was just a result of not wanting to install weird software with administrator rights.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://obsproject.com/forum/resources/now-playing-display-via-last-fm.893/">OBS Forum Resource</a></li>
</ul>
<h2 class="block">VST 2.x SDK</h2>
<p class="block">With Steinberg abandoning and removing the VST 2.x SDK from their website, I had to search for alternatives. All of the "open source" SDKs at the time were tainted and therefore could not be used in any way, so it was time to take matters into my own hands. It took about 9000€ in lawyer expenses and a year of documenting and writing code before I could make the worlds first untained clean room VST 2.x SDK.</p>
<p class="block">This was the most fun I've had reverse engineering software APIs in years. A shame it set me back a significant chunk of my savings, though thanks to sales of VoiceFX I've barely equalled out the expenses.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://github.com/Xaymar/vst2sdk">Source Code</a></li>
</ul>
<h1 class="block">2022</h1>
<h2 class="block">FFmpeg Encoders <i>for OBS Studio</i></h2>
<p class="block">As the built-in encoders in OBS Studio felt too limiting, I made a plugin that provides the FFmpeg included encoders instead. Over time the code base further and further merged with StreamFX, and the two projects merged into one. It is now a core feature of StreamFX.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://github.com/Xaymar/obs-ffmpeg-encoder">Source Code</a></li>
<li><a class="inline" target="_blank" href="https://obsproject.com/forum/resources/ffmpeg-encoders-for-obs-studio.826/">OBS Forum Resource</a></li>
</ul>
<h2 class="block">Ocean Blue <i>Theme for OBS Studio</i></h2>
<p class="block">Ocean Blue is a "dark mode" theme for OBS Studio with a focus on clarity and visual grouping without sacrificing style. It is a result of wanting to avoid the gray/black epidemic and after testing a lot of different colors I arrived at what I dubbed as "Ocean Blue". It is a color that is not too straining on the eyes in the night, yet still lends itself to nice styling options.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://github.com/xaymar/obs-oceanblue">Source Code</a></li>
<li><a class="inline" target="_blank" href="https://obsproject.com/forum/resources/ocean-blue.1327/">OBS Forum Resource</a></li>
</ul>
<h1 class="block">2023</h1>
<h2 class="block">VoiceFX <i>(VST 2.x, VST 3.x)</i></h2>
<p class="block">After seeing the announcement and release of RTX Voice I got a bit excited about how well it worked at the time, and wanted to turn it into a plugin usable for offline post-processing. The result was a barely functional plugin that broke under more situations than expected, and to this date still doesn't fully work.</p>
<p class="block">As of 2025 it is now owned and run by <a class="inline" target="_blank" href="https://vhonowslend.com/">Vhonowslend</a>.</p>
<ul class="block">
<li><a class="inline" target="_blank" href="https://xaymar.itch.io/voicefx">Itch Store Page</a></li>
</ul>