2 Commits

Author SHA1 Message Date
aa87ad7538 WIP: Start implementing OAuth 2023-05-31 14:25:42 +02:00
918b075b62 WIP: Start writing a first post 2023-05-31 13:22:28 +02:00
45 changed files with 235 additions and 377 deletions

View File

@ -1,12 +1,15 @@
---
# ----------------------------------------------
# -- Update the helm chart
# ----------------------------------------------
kind: pipeline
type: docker
name: Publish the helm chart
trigger:
event:
- push
steps:
- name: Publish the Helm chart
image: alpine/helm
@ -25,11 +28,13 @@ steps:
kind: pipeline
type: docker
name: Build badhouseplants.net
trigger:
event:
- push
clone:
disable: true
steps:
- name: clone
image: alpine/git
@ -39,25 +44,27 @@ steps:
- git clone $DRONE_REMOTE_URL .
- git checkout $DRONE_BRANCH
- git submodule update --init --recursive
- name: Test a build
image: git.badhouseplants.net/badhouseplants/hugo-container
image: git.badhouseplants.net/badhouseplants/hugo-builder
depends_on:
- clone
commands:
- hugo -s ./src
- name: Build and push the docker image
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:896dc589d44bfa3560ee8d0469d5ee6fc4559532
privileged: true
depends_on:
- Test a build
environment:
BUILDER_COMMIT: 2449b73b13a62ae916c6703778d096e5290157b3
GITEA_TOKEN:
from_secret: GITEA_TOKEN
commands:
- ./scripts/build-container.pl
- name: Sync pictures from lfs to Minio
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:896dc589d44bfa3560ee8d0469d5ee6fc4559532
depends_on:
- Test a build
environment:
@ -67,8 +74,9 @@ steps:
commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- ./scripts/upload-media.pl
- name: Deploy the application
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:896dc589d44bfa3560ee8d0469d5ee6fc4559532
depends_on:
- Build and push the docker image
- Sync pictures from lfs to Minio
@ -83,8 +91,9 @@ steps:
from_secret: GOOGLE_OAUTH_KEY
commands:
- ./scripts/deploy-app.pl
- name: Cleanup everything
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9fabf0ce6eab3a9a9da15b2791e8282afc05ee0b
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:896dc589d44bfa3560ee8d0469d5ee6fc4559532
depends_on:
- Deploy the application
environment:
@ -104,11 +113,13 @@ steps:
kind: pipeline
type: docker
name: Spell-Checker
trigger:
event:
- push
clone:
disable: true
steps:
- name: clone
image: alpine/git
@ -117,6 +128,7 @@ steps:
commands:
- git clone $DRONE_REMOTE_URL --recurse-submodules .
- git checkout $DRONE_BRANCH
- name: Spell-Checker
image: node
commands:

0
.hugo_build.lock Normal file
View File

View File

@ -130,20 +130,6 @@ Ruina
VCV
LFO
beatmaker
wavetables
OSC
YOUTUBE
Twelve50TV
Robotik
McRoy
brah
aw
shite
lowrider
mdma
nah
clubby
MGK
- src/themes/papermod/README.md
PaperMod
hugo-paper

View File

@ -1,10 +0,0 @@
---
when:
event: push
steps:
spell-check:
name: Spell-Checker
image: node
commands:
- npm i markdown-spellcheck -g
- mdspell "src/content/**/*.md" -n -r

View File

@ -1,4 +1,4 @@
FROM git.badhouseplants.net/badhouseplants/hugo-container:dd6475f3c99b450d334d3377f3c1a1474a341ba7
FROM git.badhouseplants.net/badhouseplants/hugo-container:451ffcefe9803644a65172b04e34392564ce8743
WORKDIR /src
COPY ./src /src
ENTRYPOINT ["hugo"]

View File

@ -38,7 +38,7 @@ print `yq -i '.spec.source.helm.values = load_str("/tmp/values.yaml")' /tmp/appl
if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){
print `argocd app create -f /tmp/application.yaml --upsert` or die $!;
print `argocd app sync --prune -l application=badhouseplants -l branch=$git_branch` or die $!;
print `argocd app sync -l application=badhouseplants -l branch=$git_branch` or die $!;
print `argocd app wait -l application=badhouseplants -l branch=$git_branch` or die $!;
}
# ----------------------------------

View File

@ -34,7 +34,7 @@ params:
profileMode:
enabled: true
title: "Bad Houseplants"
subtitle: Easy DevOps by allanger
subtitle: ... by allanger.
imageUrl: "main-logo.png"
imageWidth: 150
imageHeight: 150
@ -46,10 +46,16 @@ params:
- name: Source
url: "https://git.badhouseplants.net/badhouseplants/badhouseplants-net"
socialIcons:
- name: "telegram"
url: "https://t.me/allanger"
- name: "twitter"
url: "https://twitter.com/_allanger"
- name: "mastodon"
url: "https://mastodon.social/@allanger"
- name: github
url: 'https://github.com/allanger'
- name: instagram
url: "https://instagram.com/_allanger"
- name: email
url: 'mailto:allanger@zohomail.com'
ShowShareButtons: true

View File

@ -4,19 +4,7 @@ date: 2023-01-24T09:26:52+01:00
draft: false
---
## Welcome
Oi! Welcome to Bad Houseplants.
This is a blog about DevOps, self-hosting, Kubernetes, and stuff like that.
I'm allanger and I believe that DevOps should be easy to understand, and when saying DevOps, I also mean SRE and Ops in general. I see/hear it very often that teams working with GitOps and Kubernetes are making it increadbly hard, and I don't know the reasons for sure.
Here, I'll try do describe how things can be deployed to K8s, what one could do with that, and how to keep it maintainable. My main focus is self-hosted k8s, because it's the one I'm using on my own, but it doesn't mean that what you'll read here can't be applied to cloud providers and different k8s-as-a-service solutions.
Oi!
I'm allanger and currently I'm working as full time SRE, but recently I've found out that I'd like to spend more time doing things related to music and sound. So I'm currently looking for project to add to my portfolio. So if you want somebody do a decent (I hope) mix for you without asking for any money, just let shoot me a message.
I'm not a pro mixing engineer of course, but it's what I'm aiming for.

View File

@ -2,123 +2,77 @@
title: Beats
date: 2023-01-24T09:26:52+01:00
draft: false
---
>I don't lease my beats. If you happen to like anything, just shout me a message and we will come to an agreement. And if you decide to use any of my beats you'll be the only one using it (legally).
---
---
### That's Rich
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/36)
> I'm poor though, huh
Mainstream beats for dope rap about your luxury lifestyle, mate
### Easy Money
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=36"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=18"></iframe>
{{< /rawhtml >}}
---
### Why So Serious?
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/38)
> Don't be so suicidal, brah
Depressive and horror beats to show them all what's real suffering out there
### Monk
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=38"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=27"></iframe>
{{< /rawhtml >}}
---
### Coke Queue
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/39)
> Aw, shite, I've meant line
Need a track that will be screaming out of your lowrider? Check it out then
### Phantom Limb
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=39"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=19"></iframe>
{{< /rawhtml >}}
---
### Meta Irony's Bastard
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/40)
> Or just an unwanted child
Your track is supposed to make no freaking sense? Pick it up
### Silk Road
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=40"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=34"></iframe>
{{< /rawhtml >}}
---
### MDMA
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/35)
> Nah, I'm not using
An album for four-on-the-floor or just clubby kinds of beats. If you want your track to be fitting in Berlin, this one is your choice.
### Tremor
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=35"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=30"></iframe>
{{< /rawhtml >}}
---
### Punk's Not Dead
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/34)
> Unless it's MGK
Here I'll be uploading alternative beats that might not work for any track, but rather for something special.
### Silver Grenade
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=34"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=31"></iframe>
{{< /rawhtml >}}
---
### Boys Don't Cry
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/37)
> ... do they?
Looking for something sad and not really of a hip-hop kind? This is the place
### Spinal Cord
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=37"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=32"></iframe>
{{< /rawhtml >}}
---
### Trash Can
#### by allanger
[Listen on Funkwhale](https://funkwhale.badhouseplants.net/library/albums/33)
>It doesn't mean that beats are shitty, it just me not liking them too much
To this album, I will upload beats that I don't like, they all can be yours without any efforts of yours.
### Empty Cubicles
{{< rawhtml >}}
<iframe width="100%" height="300" scrolling="yes" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=33"></iframe>
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=23"></iframe>
{{< /rawhtml >}}
### Petrol
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=35"></iframe>
{{< /rawhtml >}}
### PSY
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=28"></iframe>
{{< /rawhtml >}}
### Body Drop
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=20"></iframe>
{{< /rawhtml >}}
### Broken Piano
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=22"></iframe>
{{< /rawhtml >}}
### Dead Wings
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=25"></iframe>
{{< /rawhtml >}}
### Trapped
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=17"></iframe>
{{< /rawhtml >}}

View File

@ -20,7 +20,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="100%" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=20"></iframe>
<iframe width="100%" height="100%" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=20"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Anymore.zip)*

View File

@ -22,7 +22,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=26"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=26"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Await.zip)*

View File

@ -21,7 +21,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=22"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=22"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Desensitized.zip)*

View File

@ -20,6 +20,6 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=27"></iframe>{{< /rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=27"></iframe>{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Under%20My%20Pillow.zip)*

View File

@ -19,7 +19,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="350" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=16"></iframe>
<iframe width="100%" height="350" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=16"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Four%20Steps%20Behind.zip)*

View File

@ -21,7 +21,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=21"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=21"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Let%20Me%20Kill.zip)*

View File

@ -21,7 +21,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=23"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=23"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Not%20Alone.zip)*

View File

@ -20,7 +20,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=18"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=18"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Out%20Of%20Law.zip)*

View File

@ -21,6 +21,6 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=17"></iframe>{{< /rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=17"></iframe>{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Trace.zip)*

View File

@ -20,7 +20,7 @@ tags:
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=19"></iframe>
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=19"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Wasted%20Time.zip)*

View File

@ -1,19 +0,0 @@
---
title: "allanger"
date: 2018-12-26T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "/music/allanger.png"
caption: "allanger"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- alternative
---
I'm allanger, the owner of Bad Houseplants.

View File

@ -1,83 +0,0 @@
---
title: "Creating a Sample Pack: Kick"
date: 2023-05-24T16:59:03+02:00
draft: false
ShowToc: true
cover:
image: "/posts/creating-a-sample-pack-kick/cover.png"
caption: "Creating a Sample Pack: Kick"
relative: false
responsiveImages: false
---
>Oi!
>I've decided to turn that blog more into the musical direction, because I've got enough of IT related stuff on my work. So most probably, I'll be posting about sound design, sound engineering and music more.
## Intro
I want to make a series of articles about sound design. I'll be learning as well during this process, and here I'll just post my findings. If you happen to read it and find mistakes, feel free to send me your thoughts.
I consider this cycle ready, when I have enough of samples, that I can create a beat or a song. After everything is done, I'll publish the sample pack, so anybody can download it for free. And the example of a track will be on my [funkwhale instance](https://funkwhale.badhouseplants.net/library)
## Let's go
I've decided to start with a drum kit. And the first element that I'm going to create is a **kick drum**. I'll be using Vital as a sound design instrument, if you don't know what it is you should check it out here: <https://vital.audio>.
First, we need to understand, what the kick actually is. What are components of that sound. I can identify three components of it:
- Click (that is produced by a pedal)
- Body (sound from inside a drum)
- Metal (vibrations of metal components of a drum kit) *This is optional, I'd say*
Let's open Vital
![Empty Vital](/posts/creating-a-sample-pack-kick/init_vital.png)
First of all, let's get rid of all non-persistent stuff (Things that are different on each key press)
![Unison and Phase](/posts/creating-a-sample-pack-kick/unison_phase.png)
*And we will do the same for all wavetables for kick and snare*
Now let's set wave types to `basic shapes`
![Basic Shape](/posts/creating-a-sample-pack-kick/kick_basic_shape.png)
Doesn't sound like a kick yet, but the main trick, as I think, is to map the pitch of that OSC to an LFO, that looks like that, and set the base value to something around **-12**.
![LFO 1](/posts/creating-a-sample-pack-kick/kick_lfo_1.png)
You can play around a bit and find a perfect spot that will make your kick awesome, but let's listen to what I've got now. I'll use one of defaults `Logic Pro` drum kits and replace a kick with the one I'm creating. Later I'll be replacing other drums as well, and in the end we will have a full drum kit.
Also, we don't need to change a pitch depending on which key is pressed, so let's disable the `Note Track` for all OSC in the `Advanced` tab
![Note Track disabled](/posts/creating-a-sample-pack-kick/disable_note_track.png)
*Also, after disabling the note tracking, I've set the pitch base value to -14, so it sounds like a kick*
Now, let's listen:
{{< audio "/posts/creating-a-sample-pack-kick/Kick_v1.mp3" >}}
Kick already sounds like a kick, but a lame one, doesn't it. Let's play a bit.
First, let's add a second LFO to control the volume level of the kick, it should be a short hit, so I'm adding a LFO like that and mapping it to the `level` of the first `OSD`
![LFO 2](/posts/creating-a-sample-pack-kick/kick_basic_shape.png)
And then enabling the `Filter 1` and mapping this LFO to the `Filter` as well,
It looks and sounds like that
{{< video "/posts/creating-a-sample-pack-kick/Kick_v2.mp4" "video-1">}}
With that filter setup I think, click sounds better. To make it even sharper, let's add some `White Noise` and an additional `LFO` for it.
{{< video "/posts/creating-a-sample-pack-kick/Kick_v3.mp4" "video-2">}}
And now let's add some effects. I've added a little bit of `EQ`, a `Distortion` which drive is mapped to a new `LFO`, and a `Compressor`, so now it looks like that:
{{< video "/posts/creating-a-sample-pack-kick/Kick_v4.mp4" "video-3">}}
The last step would be to add some more effects, but outside the `Vital` synth already. *And I'd like to change the pattern, because this one is driving me nuts*. So I've added a bit of additional `EQ`, `Distorition`, and `Compression`, and now it sounds like that. `
{{< audio "/posts/creating-a-sample-pack-kick/Kick_final_result.mp3" >}}

View File

@ -0,0 +1,144 @@
---
title: "Developing a Free Alternative for Splice"
date: 2023-05-31T12:05:44+02:00
draft: true
ShowToc: true
cover:
image: "cover.png"
caption: "Developing a Free Alternative for Splice"
relative: false
responsiveImages: false
---
## Intro
I think that almost everybody knows what **Splice** is. Basically, it's just a huge library of sounds and VST presets with some additional sweets. I can't say that I'm not satisfied by Splice, it's an applications that is doing pretty good, until you want to use it on Linux. That's something that I don't understand, (I'm almost sure that )it's an Electron application with and some binary running a gRPC server in a background, that I believe is written in **GO**. Both technologies are working on Linux, so basically, they could have just built a version without promising any real support for that. But they haven't. I've decided to try running it with WINE, but it didn't work. And then I though: There is awesome [freesound](https://freesound.org/), and why wouldn't I use it?
> Freesound is a collaborative database of Creative Commons Licensed sounds. Browse, download and share sounds.
But downloading samples using a browser it not something I'd like to do. I love Splice for their drag-n-drop app. And I've decided to develop one that will work with Freesound.
## Starting the project
I've decided to use Rust and try the [Iced](https://iced.rs/) for the UI.
Here you will find the project git repository: https://git.badhouseplants.net/allanger/frice
Basically, there are two things to do so the MVP is ready
- Make correct API requests to the Freesound
- Create a UI
So the very first thing that I'm doing, I'm initializing a project and creating a very simple **Iced** app using examples
```bh
cargo init
cargo add iced
```
```toml
# Cargo.toml
[package]
name = "frice"
version = "0.1.0"
edition = "2021"
[dependencies]
iced = "0.9.0"
```
```rust
// ./src/main.rs
use iced::{Sandbox, Settings, widget::Container};
fn main() -> Result<(), iced::Error> {
Frice::run(Settings::default())
}
struct Frice {}
impl Sandbox for Frice {
type Message = String;
fn new() -> Self {
Frice {}
}
fn title(&self) -> String {
"Frice".to_string()
}
fn update(&mut self, message: Self::Message) {
println!("Updating")
}
fn view(&self) -> iced::Element<'_, Self::Message> {
Container::new("frice").center_x().center_y().width(iced::Length::Fill).height(iced::Length::Fill).into() }
}
```
### API
And now I want to switch to the API, because the UI without API requests won't be able to do anything. As I see now, I'll need to implement two API calls for the MVP:
1. Search sounds
2. Download a sound
So let's start with the first one. They have a basic example of searching on their [documentation page](https://freesound.org/docs/api/overview.html)
```bash
curl "https://freesound.org/apiv2/search/text/?query=dogs&token=YOUR_API_KEY"
```
*API key can be created here: <https://freesound.org/apiv2/apply>*
So let's create a FreesoundAPI struct and add two methods there
```rust
struct FreesoundAPI {}
impl FreesoundAPI {
fn new() -> Self {
Self {}
}
fn search() {
todo!()
}
fn download() {
todo!()
}
}
```
To create an API call I'll need a token, so I need to add a new field to the `FreesoundAPI struct`
```rust
struct FreesoundAPI {
token: String
}
impl FreesoundAPI {
fn new(token: String) -> Self {
Self { token }
}
...
}
```
I also need a library for making API calls `cargo add reqwest`
```rust
pub(crate) fn search(&self) {
let client = reqwest::blocking::Client::builder().build().unwrap();
let res = client.get("https://freesound.org/apiv2/search/text")
.query(&[("token", self.token.as_str()), ("query", "dogs")])
.send().unwrap();
println!("{:?}", res.text());
}
```
Let's leave it like this for a moment, and try to implement the `download` method. Freesound API sais that we need to use `Oauth` to download sounds. Let's try.
```bash
cargo add oauth2
```

View File

@ -1,22 +0,0 @@
---
title: "Kid Robotik - I'm SO Sorry"
date: 2023-09-22T13:05:28+02:00
draft: true
ShowToc: true
cover:
image: "/posts/kid-robotik-im-so-sorry/cover.jpg"
caption: "Kid Robotik - I'm SO Sorry"
relative: true
responsiveImages: true
---
[OPEN ON SPOTIFY](https://open.spotify.com/album/6TTnfWZQyoZ8O1GuK8TtXf?si=cNchuEmfTAy52Z6jstnG2A) -- [OPEN ON DEEZER](https://deezer.page.link/D3M4JVdDYhmxXUUZ7) -- [OPEN ON YOUTUBE](https://youtube.com/playlist?list=OLAK5uy_l3BFAqPxAOkkzb-SByHbbvgBkdk3_idjg&si=bBo6cQE8jGWjLnsI)
It's not easy to find this album, to be honest. I think that I would never have listened to it unless I started trying to understand the Glaswegian accent. *I haven't succeeded really still*. While searching for artists from Scotland, I've bumped onto this YouTube channel: [Twelve50TV](https://www.youtube.com/@Twelve50TV). There are many rappers that I actually like, but they don't tend to publish their music on mainstream streaming platforms (read Spotify). So I couldn't really listen to them during my daily routine.
One of my favourites was that video: [Kid Robotik - War](https://youtu.be/LToW8CdBGOQ?si=-MgdWM1FvzGqKhnM). And this guy has his albums published on Spotify. I was listening to this song mostly because of other rappers performing on it: **Sherlock** and **McRoy**. And since this album is **Kid Robotik's** one, I wasn't trying to listen to it at all. I'm not saying that I didn't like his part there, but it didn't seem outstanding to me at all. Though, not so long ago I was bored by all the music I was listening to, and I've decided to check out the album finally. And after first listen I could already say that this guy, Kid Robotik is indeed one of favourite rappers. *Even though I still can't understand about 80% of what they're saying on that album, I freaking like beats, flow, voice and mixing.* And I think that it should gain a way more streams, than it has.
I can't even pick songs that I like the most, because they're all great in my opinion.
---
I want to build a completely non-profit independent public music library based on Funkwhale application, you can find it here: https://funkwhale.badhouseplants.net. At the moment of writing this post, I only have my music released there, but I hope that one day it will change. And I would really like to have this album there. So if you are Kid Robotik or someone who know him, please let me know if you'd be interested.

View File

@ -1,38 +0,0 @@
---
title: "Some old beats are out"
date: 2023-07-23T13:46:29+02:00
draft: false
ShowToc: true
cover:
image: "/posts/some-old-beats-are-out/Cover.png"
caption: "Some old beats are out"
relative: false
responsiveImages: false
tags:
- Music
- Beats
---
I've released some of my old beats that we pending for quite a time. You can check them out on my [Funkwhale](https://funkwhale.badhouseplants.net/channels/allanger_beats)
If you happen to like anything, just let me know, we will figure it out
### Dusted
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=157"></iframe>
{{< /rawhtml >}}
### Fallen Folk
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=154"></iframe>
{{< /rawhtml >}}
### Pillows
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=166"></iframe>
{{< /rawhtml >}}
### Swipe
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=159"></iframe>
{{< /rawhtml >}}

View File

@ -1,6 +0,0 @@
<figure class="{{ .Get 1 }}">
<audio controls preload="{{ .Get "preload" | default "metadata" }}">
<source src="{{ .Get 0 }}" type="audio/mpeg">
<figcaption>{{ .Get 0 }}</figcaption>
</audio>
</figure>

View File

@ -13,7 +13,7 @@
var player = new Clappr.Player({
source: {{ .Get 0 }},
mute: false,
mute: true,
height: 360,
width: 640
});

BIN
src/static/music/allanger.png (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7281dc2f93cfba5731b2bd0d38c6530ca84a33b05cf8a3ecacee583a073fb5be
size 376034

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.