diff --git a/art_assets/vector/mix_playpause_01.afdesign b/art_assets/vector/mix_playpause_01.afdesign new file mode 100644 index 0000000..5d74f0a Binary files /dev/null and b/art_assets/vector/mix_playpause_01.afdesign differ diff --git a/art_assets/vector/mix_playpause_01.afdesign~lock~ b/art_assets/vector/mix_playpause_01.afdesign~lock~ new file mode 100644 index 0000000..3950d73 Binary files /dev/null and b/art_assets/vector/mix_playpause_01.afdesign~lock~ differ diff --git a/art_assets/vector/mix_playpause_01.afdesign~lock~:com.dropbox.ignored b/art_assets/vector/mix_playpause_01.afdesign~lock~:com.dropbox.ignored new file mode 100644 index 0000000..f66c9cf Binary files /dev/null and b/art_assets/vector/mix_playpause_01.afdesign~lock~:com.dropbox.ignored differ diff --git a/art_assets/vector/ui_mix_seek_01.afdesign b/art_assets/vector/ui_mix_seek_01.afdesign new file mode 100644 index 0000000..5f5b26b Binary files /dev/null and b/art_assets/vector/ui_mix_seek_01.afdesign differ diff --git a/art_assets/vector/ui_mix_seek_01.afdesign~lock~ b/art_assets/vector/ui_mix_seek_01.afdesign~lock~ new file mode 100644 index 0000000..94dcb6b Binary files /dev/null and b/art_assets/vector/ui_mix_seek_01.afdesign~lock~ differ diff --git a/art_assets/vector/ui_mix_seek_01.afdesign~lock~:com.dropbox.ignored b/art_assets/vector/ui_mix_seek_01.afdesign~lock~:com.dropbox.ignored new file mode 100644 index 0000000..f66c9cf Binary files /dev/null and b/art_assets/vector/ui_mix_seek_01.afdesign~lock~:com.dropbox.ignored differ diff --git a/art_assets/vector/ui_mix_seek_02.afdesign b/art_assets/vector/ui_mix_seek_02.afdesign new file mode 100644 index 0000000..ea21fc7 Binary files /dev/null and b/art_assets/vector/ui_mix_seek_02.afdesign differ diff --git a/art_assets/vector/ui_mix_seek_02.afdesign~lock~ b/art_assets/vector/ui_mix_seek_02.afdesign~lock~ new file mode 100644 index 0000000..de6fe8f Binary files /dev/null and b/art_assets/vector/ui_mix_seek_02.afdesign~lock~ differ diff --git a/art_assets/vector/ui_mix_seek_02.afdesign~lock~:com.dropbox.ignored b/art_assets/vector/ui_mix_seek_02.afdesign~lock~:com.dropbox.ignored new file mode 100644 index 0000000..f66c9cf Binary files /dev/null and b/art_assets/vector/ui_mix_seek_02.afdesign~lock~:com.dropbox.ignored differ diff --git a/docs/ANIMATIONS.md b/docs/ANIMATIONS.md new file mode 100644 index 0000000..a9c755c --- /dev/null +++ b/docs/ANIMATIONS.md @@ -0,0 +1,180 @@ +# Hand-Drawn Animation Effects + +This project includes a sustainable animation system for adding hand-drawn, organic animation effects to text and UI elements throughout the site. + +## Using Animations in Markdown + +Thanks to the **markdown-it-attrs** plugin (already installed), you can add CSS classes to any text inline in your markdown files using the `{.classname}` syntax. + +### Available Animation Classes + +#### `.shiver` - Subtle Shake/Vibration +Creates a gentle trembling effect, like hand-drawn letters slightly moving. + +```markdown +This text will [shiver]{.shiver} on the page! +``` + +#### `.wobble` - Gentle Sway +A slow, organic swaying motion. + +```markdown +The word [wobbles]{.wobble} gently back and forth. +``` + +#### `.draw` - Hand-Drawing Effect +Simulates text being drawn onto the page (plays once on load). + +```markdown +This text [appears drawn]{.draw} onto the page. +``` + +#### `.jitter` - Erratic Movement +Fast, jittery movement for emphasis. + +```markdown +This is [urgent]{.jitter} and needs attention! +``` + +#### `.bounce` - Playful Bounce +Bounces up and down playfully. + +```markdown +[Click here]{.bounce} for something fun! +``` + +### Examples + +#### Single Word Animation +```markdown +I'm feeling [jittery]{.jitter} about this! +``` + +#### Multiple Animations +```markdown +The [shaky]{.shiver} text was [drawn]{.draw} by hand. +``` + +#### Combining with Other Attributes +You can combine animations with other markdown-it-attrs features: + +```markdown +[Important note]{.shiver #special-note style="color: red;"} +``` + +### Applying to Entire Paragraphs + +You can also apply animations to entire blocks: + +```markdown +The whole paragraph wobbles! +{.wobble} +``` + +## Technical Details + +### CSS Architecture +- **Location**: `/src/assets/css/global/utilities/text-animations.css` +- **Layer**: `utilities` (automatically imported via `@import-glob`) +- **Build**: Processed through PostCSS, minified in production + +### Animation Properties +All animations: +- Use `display: inline-block` to enable transforms +- Include staggered delays for visual interest +- Respect `prefers-reduced-motion` for accessibility +- Use CSS custom properties where beneficial + +### Performance Considerations +- Animations use `transform` and `opacity` (GPU-accelerated) +- No layout thrashing or reflows +- Minimal impact on page performance +- Can be disabled per-element or globally via media query + +## Track Navigation Buttons + +The track navigation buttons on mix pages automatically include animated SVG backgrounds: + +- **Previous button**: Mirrored wavy line pointing left +- **Next button**: Wavy line pointing right +- **Animation**: Subtle color shift and opacity pulse +- **Hover**: Faster animation speed + +### Implementation +- Uses `::before` pseudo-element for background +- SVG: `/assets/svg/ui/mix_seek_01.svg` +- Controlled via `data-track-nav` attribute +- CSS: `/src/assets/css/global/blocks/track-navigation.css` + +## Extending the System + +### Adding New Animation Effects + +1. **Add keyframes to** `/src/assets/css/global/utilities/text-animations.css`: + +```css +@keyframes my-effect { + 0% { transform: /* start state */ } + 100% { transform: /* end state */ } +} + +.my-effect { + display: inline-block; + animation: my-effect 1s ease-in-out infinite; +} +``` + +2. **Use in markdown**: + +```markdown +Text with [my custom effect]{.my-effect}! +``` + +### Creating Component-Specific Animations + +For UI components (like buttons, cards), add animations to the component's CSS file in `/src/assets/css/global/blocks/`. + +Example: +```css +.my-component[data-animated]::after { + animation: wave-draw 2s ease infinite; +} +``` + +## Alternative Approaches Considered + +### Custom Markdown Plugin +We could create a custom shortcode like `{% shiver "text" %}`, but: +- ❌ More verbose syntax +- ❌ Requires custom plugin development +- ❌ Less flexible than attributes +- ✅ Already have markdown-it-attrs installed + +### Inline Syntax +We could use delimiters like `{shiver}text{/shiver}`, but: +- ❌ Conflicts with existing syntax +- ❌ Harder to parse reliably +- ❌ Not standard markdown +- ✅ Attributes are a well-established pattern + +### JavaScript-Based Animation +We could use JavaScript libraries like: +- **Anime.js**, **GSAP**, **Motion One** +- ❌ Additional bundle size +- ❌ Requires JavaScript to run +- ❌ More complex implementation +- ✅ CSS is simpler, more performant, works without JS + +## Best Practices + +1. **Use sparingly**: Animation should enhance, not distract +2. **Consider accessibility**: Some users find animations distracting +3. **Test performance**: Too many animated elements can impact page speed +4. **Semantic HTML**: Animations are presentational, keep markup semantic +5. **Progressive enhancement**: Content should work without animations + +## Resources + +- [markdown-it-attrs documentation](https://github.com/arve0/markdown-it-attrs) +- [Web Animations API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Animations_API) +- [prefers-reduced-motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) diff --git a/eleventy.config.js b/eleventy.config.js index 10d3128..560fd98 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -131,7 +131,7 @@ export default async function (eleventyConfig) { // --------------------- Passthrough File Copy // -- same path - ['src/assets/fonts/', 'src/assets/images/template', 'src/assets/og-images'].forEach(path => + ['src/assets/fonts/', 'src/assets/images/template', 'src/assets/og-images', 'src/assets/svg/'].forEach(path => eleventyConfig.addPassthroughCopy(path) ); diff --git a/src/_includes/partials/card-mix-track.njk b/src/_includes/partials/card-mix-track.njk deleted file mode 100644 index c16dbd7..0000000 --- a/src/_includes/partials/card-mix-track.njk +++ /dev/null @@ -1,10 +0,0 @@ -{% set headingLevel = headingLevel | default('h3') %} - -
- <{{ headingLevel }}> - {{ item.data.track_number }}. {{ item.data.title }} by {{ item.data.artist }} - -
- {{- item.templateContent | safe -}} -
-
\ No newline at end of file diff --git a/src/_includes/partials/album-info.njk b/src/_includes/partials/mix-album-info.njk similarity index 94% rename from src/_includes/partials/album-info.njk rename to src/_includes/partials/mix-album-info.njk index 5fbeb10..80a1057 100644 --- a/src/_includes/partials/album-info.njk +++ b/src/_includes/partials/mix-album-info.njk @@ -17,7 +17,7 @@
{% if album %} -

{{ album }}

+

{{ album }}

{% endif %} {% if artist %}

{{ artist }}

diff --git a/src/_layouts/track.njk b/src/_layouts/mix-track.njk similarity index 50% rename from src/_layouts/track.njk rename to src/_layouts/mix-track.njk index 5276884..1bf7900 100644 --- a/src/_layouts/track.njk +++ b/src/_layouts/mix-track.njk @@ -18,34 +18,46 @@ layout: base

{{ title }}

- {% include "partials/album-info.njk" %} + {% include "partials/mix-album-info.njk" %} {{ content | safe }} diff --git a/src/assets/css/global/blocks/mix-track-navigation.css b/src/assets/css/global/blocks/mix-track-navigation.css new file mode 100644 index 0000000..11b0323 --- /dev/null +++ b/src/assets/css/global/blocks/mix-track-navigation.css @@ -0,0 +1,56 @@ +/* Track list button with play/pause SVG background */ +.track-list-bg { + display: inline-block; + background-image: url('/assets/svg/ui/mix_playpause_01.svg'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + padding: 1.5em 0.6em; + animation: wave-draw 3s ease-in-out infinite; +} + +/* Animate faster on hover */ +.track-list-bg:hover { + animation: wave-draw 1.5s ease-in-out infinite; +} + +/* Track navigation: outer wrapper with SVG background */ +.track-nav-bg { + display: inline-block; + background-image: url('/assets/svg/ui/mix_seek_02.svg'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + padding: 1.5em 0.6em; + animation: wave-draw 3s ease-in-out infinite; +} + +/* Mirror the SVG for previous buttons */ +.track-nav-bg[data-direction="prev"] { + transform: scaleX(-1); +} + +/* Inner button with tight padding */ +.button[data-track-nav] { + --button-padding: var(--space-3xs) var(--space-l); +} + +/* Flip content back for prev button so text reads correctly */ +.track-nav-bg[data-direction="prev"] .button[data-track-nav] { + transform: scaleX(-1); +} + +/* Subtle wave animation */ +@keyframes wave-draw { + 0%, 100% { + filter: hue-rotate(0deg); + } + 50% { + filter: hue-rotate(15deg); + } +} + +/* Animate faster on hover */ +.track-nav-bg:hover { + animation: wave-draw 1.5s ease-in-out infinite; +} diff --git a/src/assets/css/global/utilities/color-invert.css b/src/assets/css/global/utilities/color-invert.css new file mode 100644 index 0000000..f2ceae1 --- /dev/null +++ b/src/assets/css/global/utilities/color-invert.css @@ -0,0 +1,14 @@ +/* Color inversion utility - swaps background and text colors */ +.color-invert { + background-color: var(--color-text); + color: var(--color-bg); +} + +/* For buttons with the invert class */ +.button.color-invert { + --button-bg: var(--color-text); + --button-color: var(--color-bg); + --button-border-color: var(--color-text); + --button-hover-bg: var(--color-text); + --button-hover-color: var(--color-bg); +} diff --git a/src/assets/css/global/utilities/text-animations.css b/src/assets/css/global/utilities/text-animations.css new file mode 100644 index 0000000..115fa81 --- /dev/null +++ b/src/assets/css/global/utilities/text-animations.css @@ -0,0 +1,140 @@ +/* Hand-drawn animation effects for text and UI elements */ + +/* Shiver effect - subtle shake/vibration */ +@keyframes shiver { + 0%, 100% { + transform: translate(0, 0) rotate(0deg); + } + 10% { + transform: translate(-1px, -1px) rotate(-0.5deg); + } + 20% { + transform: translate(1px, 1px) rotate(0.5deg); + } + 30% { + transform: translate(-1px, 0) rotate(-0.3deg); + } + 40% { + transform: translate(1px, -1px) rotate(0.3deg); + } + 50% { + transform: translate(-1px, 1px) rotate(-0.4deg); + } + 60% { + transform: translate(1px, 0) rotate(0.4deg); + } + 70% { + transform: translate(-1px, -1px) rotate(-0.2deg); + } + 80% { + transform: translate(1px, 1px) rotate(0.2deg); + } + 90% { + transform: translate(0, -1px) rotate(-0.1deg); + } +} + +.shiver { + display: inline-block; + animation: shiver 0.8s ease-in-out infinite; +} + +/* Wobble effect - gentle sway */ +@keyframes wobble { + 0%, 100% { + transform: rotate(0deg) translateY(0); + } + 25% { + transform: rotate(2deg) translateY(-2px); + } + 75% { + transform: rotate(-2deg) translateY(2px); + } +} + +.wobble { + display: inline-block; + animation: wobble 2s ease-in-out infinite; + transform-origin: center bottom; +} + +/* Draw effect - simulate hand-drawing text */ +@keyframes draw-in { + from { + opacity: 0; + filter: blur(2px); + transform: translateX(-10px) rotate(-5deg); + } + to { + opacity: 1; + filter: blur(0); + transform: translateX(0) rotate(0deg); + } +} + +.draw { + display: inline-block; + animation: draw-in 0.6s cubic-bezier(0.68, -0.55, 0.27, 1.55) forwards; +} + +/* Jitter effect - erratic movement */ +@keyframes jitter { + 0%, 100% { transform: translate(0, 0); } + 10% { transform: translate(-2px, 1px); } + 20% { transform: translate(2px, -1px); } + 30% { transform: translate(-1px, 2px); } + 40% { transform: translate(1px, -2px); } + 50% { transform: translate(-2px, -1px); } + 60% { transform: translate(2px, 1px); } + 70% { transform: translate(-1px, -2px); } + 80% { transform: translate(1px, 2px); } + 90% { transform: translate(-2px, -2px); } +} + +.jitter { + display: inline-block; + animation: jitter 0.5s ease-in-out infinite; +} + +/* Bounce effect - playful bounce */ +@keyframes bounce { + 0%, 100% { + transform: translateY(0); + } + 50% { + transform: translateY(-10px); + } +} + +.bounce { + display: inline-block; + animation: bounce 1s ease-in-out infinite; +} + +/* Stagger animations for multiple elements */ +.shiver:nth-child(2n) { + animation-delay: 0.1s; +} + +.shiver:nth-child(3n) { + animation-delay: 0.2s; +} + +.wobble:nth-child(2n) { + animation-delay: 0.3s; +} + +.wobble:nth-child(3n) { + animation-delay: 0.6s; +} + +/* Reduce motion for accessibility */ +@media (prefers-reduced-motion: reduce) { + .shiver, + .wobble, + .draw, + .jitter, + .bounce { + animation: none; + } +} diff --git a/src/assets/svg/ui/mix_playpause_01.svg b/src/assets/svg/ui/mix_playpause_01.svg new file mode 100644 index 0000000..128a74f --- /dev/null +++ b/src/assets/svg/ui/mix_playpause_01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/ui/mix_seek_01.svg b/src/assets/svg/ui/mix_seek_01.svg new file mode 100644 index 0000000..269be12 --- /dev/null +++ b/src/assets/svg/ui/mix_seek_01.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/svg/ui/mix_seek_02.svg b/src/assets/svg/ui/mix_seek_02.svg new file mode 100644 index 0000000..05a2a32 --- /dev/null +++ b/src/assets/svg/ui/mix_seek_02.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/00-album.md b/src/pages/projects/mixes/tomorrowsbacon/00-album.md index 6bfb22d..2f53dec 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/00-album.md +++ b/src/pages/projects/mixes/tomorrowsbacon/00-album.md @@ -5,7 +5,10 @@ project: TomorrowsBacon permalink: /mixes/tomorrowsbacon/index.html go: tomorrowsbacon --- -An introduction and description of the album. +A digital mixed CD. + +Argument goes here, eventually. In the meantime, imagine that I pasted in some filler text. + {% set itemList = collections.mix %} {% set headingLevel = "h3" %} diff --git a/src/pages/projects/mixes/tomorrowsbacon/02-bastards-of-young.md b/src/pages/projects/mixes/tomorrowsbacon/02-bastards-of-young.md index 196dc14..29b5faf 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/02-bastards-of-young.md +++ b/src/pages/projects/mixes/tomorrowsbacon/02-bastards-of-young.md @@ -6,9 +6,44 @@ date: 1985-09-18 project: TomorrowsBacon track_number: 02 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/the-replacements-tim.jpg" + --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +Aaaaaah, god, what a mess on the ladder of success +Where you take one step and miss the whole first rung +Dreams unfulfilled, graduate unskilled +It beats pickin’ cotton and waitin’ to be forgotten + +Wait on the sons of no one, bastards of young +Wait on the sons of no one, bastards of young +The daughters and the sons + +Clean your baby womb, trash that baby boom +Elvis in the ground, no way he’ll be here tonight +Income tax deduction, one hell of a function +It beats pickin’ cotton or waitin’ to be forgotten + +Wait on the sons of no one, bastards of young +Wait on the sons of no one, bastards of young +Now the daughters and the sons + +Unwillingness to claim us, ya got no warrant to name us +The ones love us best, are the ones we’ll lay to rest +And visit their graves on holidays at best +The ones love us least, are the ones we’ll die to please +If it’s any consolation, I don’t begin to understand them + +Wait on the sons of no one, bastards of young +Wait on the sons of no one, bastards of young +Daughters and the sons +Young, of young, young, young, young + +Take it, it’s yours, take it, it’s yours! +Take it, it’s yours, take it, it’s yours! +Take it, it’s yours, take it, it’s yours! +Take it, it’s yours, take it, it’s yours! +Take it, it's yours \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/03-howlin-at-the-moon.md b/src/pages/projects/mixes/tomorrowsbacon/03-howlin-at-the-moon.md index 7f15038..44e65df 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/03-howlin-at-the-moon.md +++ b/src/pages/projects/mixes/tomorrowsbacon/03-howlin-at-the-moon.md @@ -6,9 +6,92 @@ date: 1988-05-31 project: TomorrowsBacon track_number: 03 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/ramones-mania.jpg" --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la + +Ships are docking +Planes are landing +A never ending supply +No more narco +No more gangster +Conservatives can cry +I took the law and threw it away +’Cause there’s nothing wrong, it’s just for play +There's no law, no law anymore +I want to steal from the rich and give to the poor + +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la + +It was glowing +Glowing, glowing +Glowing in the dark +It was sparkling +Sparkling, sparkling +Sparking in the night +I took the law and threw it away +’Cause there's nothing wrong, it’s just for play +There’s no law, no law anymore +I want to steal from the rich and give to the poor + +Winter turns to summer +Sadness turns to fun +Keep the faith, baby +You broke the rules and won + +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la + +Keep it glowing +Glowing, glowing +I’m not hurting anyone +Keep it glowing +Smoking, glowing +I’m howling at the moon +I took the law and threw it away +’Cause there’s nothing wrong, it’s just for play +There’s no law, no law anymore +I want to steal from the rich and give to the poor + +Oh baby +Oh baby +Oh baby +Oh baby +I took the law and threw it away +’Cause there’s nothing wrong, it’s just for play +I’m smoking, baby +I’m smoking, oh baby +There’s no law, no law anymore +I want to steal from the rich and give to the poor + +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la-la +Sha-la-la-la +Sha-la-la-la-la-la +Sha-la-la-la \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/04-googies-vs-et.md b/src/pages/projects/mixes/tomorrowsbacon/04-googies-vs-et.md index 3d5b7c2..7015870 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/04-googies-vs-et.md +++ b/src/pages/projects/mixes/tomorrowsbacon/04-googies-vs-et.md @@ -1,14 +1,75 @@ --- title: "Goonies vs. E.T." artist: "Run The Jewels" -album: "Mania" +album: "RTJ4" date: 2020-06-03 project: TomorrowsBacon track_number: 04 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/rtj-rtj4.jpg" --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +Maybe if I had another chance, I would give another chance to you +Ooh, If I make another wish +I’ll wish for another wish for you (for you) +(One, two) + +Egads, you heard of these lads +The myth how we made a grip, never rode dick +Truly the Cadillac of how to contract L’s on the quick +Stick ’em up, slick talker, no tricks +It’s the funniest shit, finally the money up +And print on the kid and the planet hit skids +Livin’ in a valley of flames like, “I win” +Skyline ablaze in a Bob Ross pic +You don’t want to acknowledge I’m raw, give a shit +Never, nah, you can talk of me fond when I’m gone +Bad news bear on the lawn with big claws +Try’na hold our whole lives in its paws and applaud +Swear to goddamn the whole city odd +Make a romance hard, we got scars for hearts +Shit for odds, baby, living in a one chance LARP +So I stick to the art, oh my god, I’m +Ultra mag, put cash in bag +Running through dead zone, hope I don’t crash +Tenor Saw motherfuck, ring it up fast +Be alarmed, I’ma harm what I can and then dash +Fuck, y’all got another planet on stash? +Far from the fact of the flames of our trash? +That is not snow, it is ash, and you gotta know +The past got a wrath, it’s a lover gone mad + +But I promise +Baby, if I had another chance, +I would give another chance to you (ooh) +If I make another wish, I would wish for a wish for you (ooh) +But the brass on the magic lamp’s damn near rubbed through (through) +It’s been wish after wish after wish after wish +And the chances are that none are comin’ true + +Amazing, ain’t it, how we made it and didn’t fake it? +Life’s a disguise, the truth is butt naked +Used to be a time I’d see it and not say it +Now I understand that woke folk be playin’ +Ain’t no revolution that’s televised and digitized +You’ve been hypnotized and Twitter-ized by silly guys +Cues to the evenin’ news, make sure you ill-advised +Got you celebratin’ the generators of genocide +Any good deed is pummeled, punished and penalized +Rulers of the world will slice it up like a dinner pie +Race in a nation told you to identify +People take false pride and warfare incentivized +Fuck that, me and my tribe we on an iller vibe +We accept the role of the villains ’cause we been villainized +Stomped to the dirt of the Earth, we still will arise +In the Terrordome, let me alone as I soliloquize +This is license to ill with a license to kill +This is nigga with an attitude in Beverly Hills +Heavy build with a pocket full of treasury bills +Got a fire high temper, find it hard to chill +I’m a lifetime member of Fuck That Fuck Shit +Me and Jamie versus y’all with a knife and a musket +Now our tombstones read, “They were nothing to fuck with” \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/05-better-way-to-live.md b/src/pages/projects/mixes/tomorrowsbacon/05-better-way-to-live.md index 8b4493a..c03d1ad 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/05-better-way-to-live.md +++ b/src/pages/projects/mixes/tomorrowsbacon/05-better-way-to-live.md @@ -6,9 +6,81 @@ date: 2024-06-14 project: TomorrowsBacon track_number: 05 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/kneecap-fine-art.png" --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +Underneath all the thundering there’s magic +And if there’s a better way to live, I’ve gotta have it +Because I think all but when I drink I’m okay +It gets further away every time I try to grab it +Underneath all the chattering there’s Heaven +I gotta peak one day made me feel like I was seven +I know it exists but I can’t stop getting pissed +One more thing I’ll be adding to the list + +Faoi dheireadh tá deireadh tagtha le mo rut +Mar bhí lá maith agamsa inniu buíochas le foc +So I stroll I dtreo an pholl sa bhalla +Four digit code, what do you know its Mo Chara +And I’m gonna be spending my dole tonight +Two pints at a time strolling about like Dolemite +But home for a shite ar dtús, thit sé amach one push +Mar nach raibh bac ar bith ag bailiú strap inniu, seo Móglaí Bap +(What’s happening) +And then we both jump down and do a class handstand +Like a man’s man can +Fág slán leis an dúshlán a bhí againn an mhí seo +Mar go dtí seo, I’m on the upside of the see-saw + +Underneath all the thundering there’s magic +And if there’s a better way to live, I’ve gotta have it +Because I think all but when I drink I’m okay +It gets further away every time I try to grab it +Underneath all the chattering there’s Heaven +I gotta peak one day made me feel like I was seven +I know it exists but I can’t stop getting pissed +One more thing I’ll be adding to the list + +Go fóill ag mothú cosúil le cac +Ach ní ligim orm féin cause an ndéanann sé stop? +Obviously not, what? Is mise moglai bap +Cuirim mo raybans orm sula bhfágaim an teach +Nó ba chuma liom, cause tá an t-am ag dul anonn +Is tá an saol seo I bhfad róghairid +Bheith ag cur amú an oiread ama ann +Go síoraí I do cheann ag iarraidh éalú achan soicind +Irish exit out the back without text +Mar caithfidh tú tú féin a chur chun tosaigh +I bhfad rófhurast bheith chomh crua ort féin I gcónaí +Mar ní haon áit bheith i’do chónaí, déan cibé rud dtig leat a stócaigh +Is faigh fíor-bhlas sula n-imíonn an beocht di + +Underneath all the thundering there’s magic +And if there's a better way to live, I’ve gotta have it +Because I think all but when I drink I’m okay +It gets further away every time I try to grab it +Underneath all the chattering there’s Heaven +I gotta peak one day made me feel like I was seven +I know it exists but I can’t stop getting pissed +One more thing I’ll be adding to the list + +Éirí as do chean, caith do chloigeann in airde ar bharr do dtonn +Tuigim go bhfuil an saol trom agus tionchair ann +But we’ve got one chance then it’s done, so bí thú féin +Speak your pain and receive the love +Don’t let the cunts get ya, down +And surround yourself with ones that miss ya +Tóg soicind, tóg anáil, ná gabh níos gaiste +Is creid go daingean go bhfuil an saol seo duitse + +Underneath all the thundering there’s magic +And if there’s a better way to live, I've gotta have it +Because I think all day, but when I drink I’m okay +It gets further away, every time I try and grab it +Underneath all the chattering there’s Heaven +I got a little peak one day, made me feel like I was seven +I know it exists, but I can’t stop getting pissed +One more thing I’ll be adding to the list \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/06-violet-the-upper-room.md b/src/pages/projects/mixes/tomorrowsbacon/06-violet-the-upper-room.md index 5fcbee4..770714b 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/06-violet-the-upper-room.md +++ b/src/pages/projects/mixes/tomorrowsbacon/06-violet-the-upper-room.md @@ -1,14 +1,78 @@ --- title: "Violet (The Upper Room)" artist: "CunninLynguists" -album: "Fine Art" +album: "Rose Azura Njano" date: 2017-10-06 project: TomorrowsBacon track_number: 6 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/cunninlynguists-roseazuranjano.jpg" --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +Dearly beloved +We are gathered here today, to celebrate an electric life +Under violet sky +I pray you hear our cry +Please help us protect what’s right (amen) +There ain’t nothing in this world, that could take your place +There ain’t nothing in this world, that could take your place +There ain’t nothing in this world, that could take your place +There ain’t nothing in this world, that could take your place +Gather your thoughts, gather around +Painted arrangements, mixed from a pallet of sound +A casket froze in indigo, royal and profound +Many stems like hymns, once blossomed from ground +But while the reaper is king, we carry the crown +We weigh it out, dreaming, screaming or close to even +In this sense nobody’s perfect, nobody is worthless +The system’s imperfect, maybe we should measure in purpose +What is yours? What is mine? When do we serve it? +Being hood ain’t the absence of good +Being square don’t make you equal or fair, it’s not an equal affair +Weak voices can’t speak for a share +Speak choices with no when or a where, are you aware? I don’t think so +Unless your cup runneth over and you still sip slow +Or guzzle ’til nothing, complaining when you don’t get mo’ +See another’s glass empty and you don’t think poor +The upper room is calling +What are we supposed to do? +(There ain’t nothing in this world that can take your place) +The upper room is calling +It appears it’s just for you +(There ain’t nothing in this world that can take your place) +Faith (faith), we treat it like a four letter word +While fear (fear), we shout it through the ghettos and burbs +Hear me my Lord (hear me my Lord), come settle my nerves +I pray these words bring honor as the heavens observe +And to the sky where the birds will testify +Freedom’s a state of mind be free any day or time +Reality will make you doubt your actuality +The truest fallacy is man can’t change how he sees +So it’s death to reason, it’s left the legions +Wondering where to pledge allegiance +This is my letter to Ephesians, the rest, we need them +Through death, the best are leaving +The upper room is calling +What are we suppose to do? +The upper room is calling +It appears it’s just for you +Some people play the victim, some people play the fool +Some people pay the dealer while others pay the dues +I don’t know what’s realer, the struggle and the strain +Or the guilt that can be built within when making gains +Ain’t no cheating death, you can’t lie to life +Plus everything about yous hiding in these satellites +Outside of the one day that Adam had it right +Humans are parasites, insatiable appetites +“So where do we go from there?”, you ask +I think we all trying to figure that out? +One nation under a God kicking us out +’Cause America took and takes the infamous route +As we state from state to state, let’s be great again +Let’s forget the salient struggle of each alien +Parade after you honor the graves +Of natives, slaves, women, gays +Et cetera, et cetera, et cetera \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/07-new-gold.md b/src/pages/projects/mixes/tomorrowsbacon/07-new-gold.md index b277a4b..815af18 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/07-new-gold.md +++ b/src/pages/projects/mixes/tomorrowsbacon/07-new-gold.md @@ -6,9 +6,78 @@ date: 2023-02-24 project: TomorrowsBacon track_number: 7 start_time: "" +albumArt: "/pages/projects/mixes/tomorrowsbacon/gorillaz-cracker-island.jpg" --- ## Notes Notes go here. ## Lyrics -Lyrics go here. \ No newline at end of file +But in the magic cove, there’s a pretty one +I asked her where it goes ’cause I really want +I wonder if she knows that we’re underwater +That’s the way it goes in this city wonder + +Moved to the spot, I’m one of a few +A whole lot of everything, but nothin’ to do +Tilted in a Tesla, partner, ex-wrestler +He dates Francesca, they on the Xannies +Liposuction scheduled for Granny +She want to save some, add to her fanny +Girls’ trip, Miami at the end of the year +Polluted-filled skies, tryin’ to think clear +I heard the bad news while I was sheddin’ a beer +Watch out from the coast, Paul Revere +We all play a part in the devil’s cheer +Run to the hills ’cause the end is near + +But in the magic cove, there’s a pretty one +I asked her where it goes ’cause I really want +I wonder if she knows that we’re underwater + +That’s the way it goes in this city wonder +Yo, a desolate city where it hurts to smile +Ran into the Reverend, says it’s been a while +I’m reining in a rando’, she’s a social scandal +Gave ourselves a handout when it’s too much to bear +ABC boys raided the mayor +Like Shaun, he’s a Ryder, took on the dare +Now he’s singin’ like a birdy, pullin’ on his hair +Trendin’ on Twitter’s what some of us live for +Friendship’s here, but now fuckin’ revolving door +All of this a joke? Pauly Shore +Bullshit keeps comin’, maybe I’m a matador +What are we livin’ for? +Are we all losing our minds? +Because life got in the way +(Hey, hey, hey) +They will be here just in time +Your replacement is here to stay (ahh) + +New gold, fool’s gold +Everything will disappear (new gold) +Someone’s out here +Who traveled far too many years (new gold) +To nowhere, nowhere (new gold, new gold) +Nothing here is ever real (new gold) +New gold, fool’s gold (new gold) +Everything will disappear, disappear +Disappear, disappear, disappear +Disappear, disappear, disappear +Disappear, disappear, disappear, disappear + +But in the magic cove, there’s a pretty one +I asked her where it goes ’cause I really want +I wonder if she knows that we’re underwater +That’s the way it goes in this city wonder (new gold) +But in the magic cove, there’s a pretty one (new gold, new gold, new gold) +I ask her where it goes ’cause I really want (new gold, new gold, new gold) +I wonder if she knows that we’re underwater (new gold, new gold, new gold) +That’s the way it goes in this city wonder (new gold, new gold, new gold) +In the magic cove, there’s a pretty one (new gold, fool’s gold) +I ask her where it goes ’cause I really want (everything will disappear) +I wonder if she knows that we’re underwater (someone’s out here) +That’s the way it goes in this city wonder (who travelled far too many years) +But in the magic cove, there’s a pretty one (to nowhere, nowhere) +I ask her where it goes ’cause I really want (nothing here is ever real) +I wonder if she knows that we’re underwater (new gold, fool’s gold) +That’s the way it goes in this city wonder (everything will disappear) \ No newline at end of file diff --git a/src/pages/projects/mixes/tomorrowsbacon/cunninlynguists-roseazuranjano.jpg b/src/pages/projects/mixes/tomorrowsbacon/cunninlynguists-roseazuranjano.jpg new file mode 100644 index 0000000..444ba0e Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/cunninlynguists-roseazuranjano.jpg differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/gorillaz-cracker-island.jpg b/src/pages/projects/mixes/tomorrowsbacon/gorillaz-cracker-island.jpg new file mode 100644 index 0000000..53e8183 Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/gorillaz-cracker-island.jpg differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/kneecap-fine-art.png b/src/pages/projects/mixes/tomorrowsbacon/kneecap-fine-art.png new file mode 100644 index 0000000..0699cf8 Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/kneecap-fine-art.png differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/ramones-mania.jpg b/src/pages/projects/mixes/tomorrowsbacon/ramones-mania.jpg new file mode 100644 index 0000000..99a6c65 Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/ramones-mania.jpg differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/rtj-rtj4.jpg b/src/pages/projects/mixes/tomorrowsbacon/rtj-rtj4.jpg new file mode 100644 index 0000000..01539d4 Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/rtj-rtj4.jpg differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/the-replacements-tim.jpg b/src/pages/projects/mixes/tomorrowsbacon/the-replacements-tim.jpg new file mode 100644 index 0000000..4a200a2 Binary files /dev/null and b/src/pages/projects/mixes/tomorrowsbacon/the-replacements-tim.jpg differ diff --git a/src/pages/projects/mixes/tomorrowsbacon/tomorrowsbacon.11tydata.js b/src/pages/projects/mixes/tomorrowsbacon/tomorrowsbacon.11tydata.js index 3ac6533..5e207c8 100644 --- a/src/pages/projects/mixes/tomorrowsbacon/tomorrowsbacon.11tydata.js +++ b/src/pages/projects/mixes/tomorrowsbacon/tomorrowsbacon.11tydata.js @@ -3,7 +3,7 @@ import slugify from "slugify"; const s = (str) => slugify(String(str), { lower: true, strict: true }); export default { - layout: "track", + layout: "mix-track", permalink: (data) => { const num = String(data.track_number).padStart(2, "0"); return `/mixes/${s(data.project)}/${num}-${s(data.title)}/index.html`;