openjutsu
One-click character swap for videos: an open-source, local Higgsfield Genjutsu alternative built on ComfyUI and MiniMax H3, with FLUX.3 Klein relighting.
Körlåtar med ackord
Translation pending
MediaJavaScript · CSSGitHub @Ruperto72OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗En modern webbapp för körsånger med ackord, byggd som en PWA för GitHub Pages. ES-moduler, offline-stöd via Service Worker och valfritt byggsystem med esbuild.
Klicka på ett ackorddiagram för att se alternativa grepp för samma ackord:
En fast bottenrad används på alla enheter med tre knappar:
På desktop finns även i inställningsbladet:
Alla inställningar sparas lokalt på enheten.
?haft=demestkoren öppnar appen direkt i rätt häfteKnappen ⭳ Från urklipp (under ⚙ Inställningar) visas bara när appen körs lokalt, precis som låtredaktören. Den öppnar en dialog där du klistrar in ackord/text kopierad från valfri ackordsida (t.ex. Ultimate Guitar):
[G]text), samt [Vers]/[Refräng]-headers, byggs om till Låtboks format med bibehållen kolumnjusteringKey:/Capo:-rader om de finns med i den inklistrade texten (annars fyller du i själv)python server.py), precis som låtredaktörenKnappen ✎ Redigera låt öppnar ett strukturerat redigeringsläge direkt i webbläsaren:
| för att markera taktgränserlatbok/
├── index.html ← Huvudsida (HTML-skelett)
├── style.css ← All styling
├── app.js ← Huvudlogik (rendering, redaktör, autoscroll) — ES-modul
├── chords.js ← Ackordbibliotek, transponering, SVG-diagram — ES-modul
├── sw.js ← Service Worker (offline-caching)
├── package.json ← npm-skript och devDependencies
├── scripts/
│ └── build.js ← Fullständigt dist-bygge (esbuild + kopiera assets)
├── tests/
│ └── chords.test.js ← Enhetstester (Node.js test runner)
├── README.md
└── songs/ ← Låtfiler (en JSON-fil per låt)
├── index.json ← Lista med alla låtfiler (styr menyn)
└── *.json ← En fil per låt
songs/Definiera återkommande ackordföljder i chordTemplates och referera till dem med @mallnamn i "c"-fältet. Separera takter med | i både ackord och text.
{
"title": "Låtens namn",
"artist": "Artist / Kompositör",
"key": "Am",
"timeSignature": "4/4",
"difficulty": "Medel",
"chordTemplates": {
"vers": "Am|F|G|Am",
"refr": "F|G|C|Am"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers", "l": "Här skrivs |texten uppdelad |i fyra |takter." },
{ "c": "@vers", "l": "Andra raden |med samma |ackord|följd." }
]
},
{
"label": "Refräng",
"lines": [
{ "c": "@refr", "l": "Refrängen |kan ha en |annan |ackordföljd." }
]
}
]
}
Varje rad har två fält:
"c" — ackordrad: antingen @mallnamn eller ackord separerade med |"l" — textrad separerad med | (ett segment per takt)Giltiga värden för difficulty: Lätt, Medel, Svår
Obs: Om ett ord delas av ett taktstreck hanterar appen detta automatiskt — hela ordet visas i rätt takt.
Många visor börjar med en eller några stavelser innan första taktslaget. Markera detta med . (punkt) som första takt i ackordmallen — cellen renderas då kursivt med streckad taktlinje och utan ackordnamn.
Tumregler:
| Förklaring | |
|---|---|
. som första takt | Förslag — texten visas kursivt med streckad kant |
Antal | i c och l | Måste vara lika — varje takt matchar ett lyrikavsnitt |
chordTemplates | Återanvänd ackordföljder med @mallnamn |
Avslutande | | Ok att ha — sista cellen lämnas tom |
{
"title": "En enkel visa",
"artist": "Trad.",
"key": "G",
"timeSignature": "4/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers": "G|D|Em|C",
"refräng": "C|G|D|G"
},
"sections": [
{
"label": "Vers",
"lines": [
{ "c": "@vers", "l": "Solen skiner |över skog och |mark i dag |och det är |" },
{ "c": "@refräng", "l": "skönt att |vara här till |sist nu |äntligen." }
]
}
]
}
{
"title": "Sommarpsalm",
"artist": "Trad.",
"key": "C",
"timeSignature": "4/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers_a": ".|C|Am|F|G",
"vers_b": ".|F|G|C|C"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers_a", "l": "Nu är det |dags att |sjunga vår |sommarvisa |" },
{ "c": "@vers_b", "l": "för dig och |mig och |alla vi |känner. |" }
]
}
]
}
{
"title": "Vallvisa",
"artist": "Trad.",
"key": "Am",
"timeSignature": "3/4",
"difficulty": "Lätt",
"chordTemplates": {
"vers_a": ".|Am|Am|E7|E7",
"vers_b": ".|Am|E7|Am|Am"
},
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "@vers_a", "l": "Långt i |skogen |bortom |stigen |" },
{ "c": "@vers_b", "l": "hördes |klockor |klinga |sakta. |" }
]
}
]
}
{
"title": "Låtens namn",
"artist": "Artist / Kompositör",
"key": "Am",
"sections": [
{
"label": "Vers 1",
"lines": [
{ "c": "Am F G", "l": "Här skrivs texten med ackord ovanför." },
{ "c": "C Am", "l": "Ackorden placeras med mellanslag." }
]
}
]
}
songs/index.json[
"amazing_grace.json",
"bella_ciao.json",
"din_nya_lat.json"
]
Ordningen i listan styr ordningen i menyn.
Appen läser songs/index.json vid laddning och hämtar varje låtfil dynamiskt.
Filen chords.js innehåller ~200 gitarrackord med fingersättningar plus ~120 alternativa
grepp. Samtliga kategorier täcker alla 12 grundtoner:
| Kategori | Täckning |
|---|---|
| Dur | Alla 12 grundtoner |
| Moll | Alla 12 grundtoner |
| 7 (dominant) | Alla 12 grundtoner |
| m7 (moll 7) | Alla 12 grundtoner |
| m6 (moll 6) | Alla 12 grundtoner |
| maj7 | Alla 12 grundtoner |
| sus4 | Alla 12 grundtoner |
| sus2 | Alla 12 grundtoner |
| add9 | Alla 12 grundtoner |
| dim | Alla 12 grundtoner |
| dim7 | Alla 12 grundtoner |
| aug | Alla 12 grundtoner |
| 9 (dominant) | Alla 12 grundtoner |
| m7b5 (halvförminskad) | Alla 12 grundtoner |
| 7+ (dominant #5) | Alla 12 grundtoner |
| Slash-ackord | C/G, C/B, C/E, G/B, Am/E, Dm/F, E7/G#, E7/B, A7/C# m.fl. |
Enharmoniska namn slås upp automatiskt (D#7 hittar Eb7), så en grundton per kategori
räcker med en stavning. Diagram genereras som SVG direkt i webbläsaren. Ackord som saknas
i biblioteket hoppas över (och visas som varning i redaktören).
tests/chords-lib.test.js räknar ut vilka toner varje grepp faktiskt ger och jämför med
ackordnamnet — nya grepp med fel band eller kategorier som tappar en grundton fastnar i CI.
För att lägga till ett nytt ackord, utöka CHORD_LIB i chords.js:
'Cadd9': { frets: [-1,3,2,0,3,0], fingers: [0,2,1,0,3,0] },
Format: frets = greppet per sträng (E A D G B e), där -1 = dämpad, 0 = öppen.
Låtredaktörens sparfunktion kräver en lokal server som hanterar POST /save-song. Starta med:
python server.py
På GitHub Pages (produktion) är sparknappen inaktiverad — redigera JSON-filerna lokalt och pusha.
Sidan hostas gratis via GitHub Pages:
https://ditt-användarnamn.github.io/reponamn/| Funktion | Chrome/Edge | Safari | Firefox |
|---|---|---|---|
| Grundfunktioner | ✅ | ✅ | ✅ |
| Ackorddiagram | ✅ | ✅ | ✅ |
| Taktbaserad layout | ✅ | ✅ | ✅ |
| Autoscroll | ✅ | ✅ | ✅ |
| Låtredaktör | ✅ | ✅ | ✅ |