Skip to content

Commit 176105f

Browse files
committed
Page d'accueil GitHub claire : bouton de téléchargement, installation en 3 étapes, captures ; l'app est publiée dans Releases à chaque envoi ; libellé Cadrage au-dessus du choix
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016wVsap73EucTstQoL8cttV
1 parent 8fb9df3 commit 176105f

13 files changed

Lines changed: 136 additions & 30 deletions

File tree

‎.github/workflows/macos.yml‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77
jobs:
88
compiler:
99
runs-on: macos-latest
10+
permissions:
11+
contents: write
1012
defaults:
1113
run:
1214
working-directory: app
@@ -32,6 +34,23 @@ jobs:
3234
name: LaFleurStudio
3335
path: app/dist/LaFleurStudio.zip
3436
retention-days: 30
37+
- name: Publier la dernière version (page Releases, lien de téléchargement du README)
38+
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/etape-1')
39+
env:
40+
GH_TOKEN: ${{ github.token }}
41+
GH_REPO: ${{ github.repository }}
42+
run: |
43+
gh release delete derniere-version --yes --cleanup-tag || true
44+
cat > notes.md <<EOF
45+
Télécharge **LaFleurStudio.zip** ci-dessous, dézippe, glisse l'app dans Applications.
46+
47+
Premier lancement : Réglages Système → Confidentialité et sécurité → **Ouvrir quand même**
48+
(l'app n'est pas signée par Apple). Mode d'emploi complet sur la page d'accueil du projet.
49+
50+
Version du $(date -u +%d.%m.%Y), code ${GITHUB_SHA::7}.
51+
EOF
52+
gh release create derniere-version dist/LaFleurStudio.zip --target "$GITHUB_SHA" --latest \
53+
--title "LaFleurStudio — dernière version" --notes-file notes.md
3554
- name: Extraire les textes à traduire
3655
continue-on-error: true
3756
run: |

‎README.md‎

Lines changed: 102 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,108 @@
1-
# Kassette Studio
1+
<p align="center">
2+
<img src="docs/images/icone.png" width="96" alt="Icône LaFleurStudio">
3+
</p>
24

3-
App Mac perso pour fabriquer de vraies cassettes audio, de A à Z :
5+
<h1 align="center">LaFleurStudio</h1>
46

5-
1. **Préparer la mixtape** : import depuis Spotify (tracklist, durées, pochettes), faces A/B équilibrées
6-
par Claude selon la cassette (C60, C90 ou custom).
7-
2. **Imprimer la jaquette** : J-card, O-card cassingle, étiquettes de K7, obi strip… (on coche ce qu'on
8-
veut), mise en page assistée par Claude, export PDF / PNG haute résolution.
9-
3. **Enregistrer la K7** : lecteur façon platine Win98 avec VU-mètre, qui joue la face depuis les
10-
fichiers audio du Mac et s'arrête pile au bon moment.
7+
<p align="center">
8+
<b>Fabrique de vraies cassettes audio, de A à Z, sur ton Mac.</b><br>
9+
Tu prépares les faces, Claude dessine la jaquette, tu imprimes, et l'app enregistre la K7 pile au bon moment.
10+
</p>
1111

12-
Usage personnel uniquement, rien n'est publié.
12+
<h3 align="center">
13+
<a href="https://github.com/Jonlekern/kassette-Studio/releases/latest/download/LaFleurStudio.zip">⬇️ Télécharger LaFleurStudio pour Mac</a>
14+
</h3>
15+
<p align="center">macOS 14 Sonoma ou plus récent · Mac Apple Silicon ou Intel · toujours la dernière version</p>
1316

14-
## Où on en est
17+
<p align="center">
18+
<img src="docs/images/jaquette.jpg" width="820" alt="L'écran Jaquette">
19+
</p>
1520

16-
**Étapes 1 et 2 codées, à tester** : Mixtape, Jaquette (J-card, O-card, étiquettes, obi, codes, Claude
17-
directeur artistique, vérification, export, impression calibrée), Enregistrement, Collection. Code dans
18-
[app/](app/), mode d'emploi dans [app/LISEZMOI.md](app/LISEZMOI.md). À chaque envoi, GitHub Actions
19-
compile l'app sur macOS, lance les tests (minutage audio au sample près, codes-barres relus par le lecteur
20-
de macOS) et photographie chaque écran et chaque format de jaquette (artefact « Captures »).
21+
---
2122

22-
- [docs/brainstorm.md](docs/brainstorm.md) : les décisions prises et les questions ouvertes
23-
- [docs/analyse-texs.md](docs/analyse-texs.md) : analyse de Tapercraft (vhs.texs.org), l'outil de référence
24-
- [maquettes/](maquettes/) : sources des maquettes des écrans (lien de la toile : https://claude.ai/artifact/L2NujxGroozC4qXLw1D9un)
25-
- [prototype-v0/](prototype-v0/) : premier prototype Swift écrit trop tôt (avant le brainstorming),
26-
jamais compilé. Des morceaux sont réutilisables (clients Spotify et Claude), le reste sera réécrit.
23+
## Installer (2 minutes)
24+
25+
1. **Télécharge** [LaFleurStudio.zip](https://github.com/Jonlekern/kassette-Studio/releases/latest/download/LaFleurStudio.zip).
26+
2. **Double-clique** sur le zip, puis glisse **LaFleurStudio.app** dans le dossier **Applications**.
27+
3. **Premier lancement** : l'app n'est pas signée par Apple, donc macOS la bloque la première fois.
28+
- Ouvre l'app une fois. macOS affiche un message : clique **OK**.
29+
- Va dans **Réglages Système → Confidentialité et sécurité**, descends tout en bas et clique
30+
**Ouvrir quand même**.
31+
- Si ça ne marche toujours pas, colle ceci dans le Terminal :
32+
```bash
33+
xattr -dr com.apple.quarantine /Applications/LaFleurStudio.app
34+
```
35+
36+
C'est tout. Les fois suivantes, elle s'ouvre normalement. Pour mettre à jour : retélécharge et remplace
37+
l'app, tes cassettes et tes réglages sont gardés.
38+
39+
## Ce qu'il te faut
40+
41+
| | | |
42+
|---|---|---|
43+
| ✅ | **Clé API Claude** | Obligatoire pour le design. Ce n'est **pas** l'abonnement Claude Pro/Max : c'est un compte à part, payé à l'usage, sur [platform.claude.com](https://platform.claude.com). Le bouton **i** de l'app explique tout. |
44+
| ✅ | **Tes fichiers audio** | Un dossier avec tes morceaux (MP3, FLAC, WAV, AIFF, M4A). |
45+
| ✅ | **Une platine K7 + un câble** | Sortie casque ou carte son USB du Mac → entrée LINE IN de la platine. |
46+
| ✅ | **Une imprimante** | Papier 170 à 250 g/m² pour les jaquettes, papier autocollant pour les étiquettes. |
47+
| ➖ | **Spotify Premium** | Facultatif. Sans lui : recherche MusicBrainz, ou « Cassette depuis le dossier ». |
48+
| ➖ | **Jeton Discogs** | Facultatif. Donne les crédits et les photos des vraies éditions cassette. |
49+
50+
Le pas à pas complet (clés, Spotify, premier démarrage) : [app/LISEZMOI.md](app/LISEZMOI.md).
51+
52+
## Ce que fait l'app
53+
54+
### 1. Mixtape : préparer les faces
55+
56+
Cherche un album (Spotify ou MusicBrainz) ou pars de ton dossier. L'app répartit les morceaux sur les faces
57+
A et B selon ta cassette (C60, C90…) et relie chaque morceau à son fichier. Pour une mixtape, tu décris
58+
l'ambiance et Claude propose.
59+
60+
<img src="docs/images/mixtape.jpg" width="820" alt="L'écran Mixtape">
61+
62+
### 2. Jaquette : Claude directeur artistique
63+
64+
- **Formats** : J-card de 3 à 8 volets, O-card cassingle, étiquettes de K7, obi.
65+
- **Claude** va chercher les **vraies éditions cassette** de l'album et s'en inspire. Si l'album n'est
66+
jamais sorti en K7, il part du **dos du CD ou du vinyle**. Il connaît le plan exact d'une cassette,
67+
tiré de l'étude de 27 vraies K7 ([docs/etude-cassettes.md](docs/etude-cassettes.md)).
68+
- **Tu lui parles** : « plus sombre », « mets le logo Sony », « mets la vraie pochette ». Il peut tout changer.
69+
- **Codes qui se scannent** : code-barres EAN-13 / UPC-A / Code 128, QR code, code Spotify.
70+
- **Vérification avant impression** : textes qui débordent, trop petits, contraste, codes illisibles.
71+
- **Export** : PDF avec fond perdu et traits de coupe, PNG 600 DPI, ou impression directe
72+
**calibrée à la règle** pour ton imprimante.
73+
74+
<img src="docs/images/j-card.jpg" width="820" alt="Une J-card à plat">
75+
76+
<p>
77+
<img src="docs/images/apercu-3d.jpg" width="300" alt="Aperçu 3D">
78+
<img src="docs/images/etiquettes.jpg" width="510" alt="Étiquettes de K7">
79+
</p>
80+
81+
### 3. Enregistrer : la platine
82+
83+
Une platine façon Windows 98 avec VU-mètres. Elle joue la face depuis tes fichiers, avec le compte à
84+
rebours, les blancs entre les morceaux, et s'arrête net à la fin de la face.
85+
86+
<img src="docs/images/enregistrer.jpg" width="820" alt="L'écran Enregistrer">
87+
88+
### 4. Collection
89+
90+
Toutes tes cassettes, à rouvrir ou à dupliquer.
91+
92+
<img src="docs/images/collection.jpg" width="820" alt="L'écran Collection">
93+
94+
---
95+
96+
L'app parle français, anglais, russe et allemand (Réglages → Langue).
97+
98+
## Pour les curieux
99+
100+
- [app/LISEZMOI.md](app/LISEZMOI.md) : mode d'emploi complet, et comment compiler soi-même avec Xcode.
101+
- [docs/etude-cassettes.md](docs/etude-cassettes.md) : comment sont faites les vraies K7 (27 scans).
102+
- [docs/brainstorm.md](docs/brainstorm.md) : les décisions prises pendant la conception.
103+
- [docs/analyse-texs.md](docs/analyse-texs.md) : analyse de Tapercraft (vhs.texs.org), l'outil de référence.
104+
- [maquettes/](maquettes/) et [prototype-v0/](prototype-v0/) : les maquettes et le tout premier prototype.
105+
- À chaque envoi de code, GitHub compile l'app, lance les tests, photographie chaque écran et publie la
106+
nouvelle version dans [Releases](https://github.com/Jonlekern/kassette-Studio/releases/latest).
107+
108+
Usage personnel uniquement.

‎app/LISEZMOI.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# LaFleurStudio — l'app Mac
22

3-
Étape 1 : **Mixtape + Enregistrement**. Les jaquettes (J-card, étiquettes, O-card, obi) arrivent à l'étape 2.
3+
Mixtape, Jaquette (J-card, O-card, étiquettes, obi), Enregistrement et Collection.
44

55
## Installer
66

7-
### Option A : télécharger l'app compilée par GitHub
7+
### Option A : télécharger l'app (le plus simple)
88

9-
1. Sur GitHub : onglet **Actions** → dernière « Compilation macOS » réussie → en bas, **Artifacts** →
10-
`LaFleurStudio` (un .zip).
9+
1. Télécharge [LaFleurStudio.zip](https://github.com/Jonlekern/kassette-Studio/releases/latest/download/LaFleurStudio.zip)
10+
(toujours la dernière version, publiée par GitHub à chaque envoi de code).
1111
2. Dézippe et glisse **LaFleurStudio.app** dans Applications.
12-
3. Premier lancement : l'app n'est pas signée par Apple, donc macOS la bloque. Fais **clic droit →
13-
Ouvrir → Ouvrir**. Si ça ne suffit pas, dans le Terminal :
14-
`xattr -dr com.apple.quarantine /Applications/LaFleurStudio.app`
12+
3. Premier lancement : l'app n'est pas signée par Apple, donc macOS la bloque. Ouvre-la une fois, puis
13+
**Réglages Système → Confidentialité et sécurité → Ouvrir quand même**. Si ça ne suffit pas, dans le
14+
Terminal : `xattr -dr com.apple.quarantine /Applications/LaFleurStudio.app`
1515

1616
### Option B : compiler sur ton Mac
1717

‎app/Sources/LaFleurStudio/Interface/EcranJaquette.swift‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,15 @@ struct EcranJaquette: View {
192192
ForEach(OrientationRecto.allCases, id: \.self) { Text(tr($0.nom)).tag($0) }
193193
}
194194
.pickerStyle(.segmented)
195-
Picker("Cadrage", selection: lien(\.cadrage)) {
196-
ForEach(CadrageRecto.allCases, id: \.self) { Text(tr($0.nom)).tag($0) }
195+
// Libellé au-dessus : à côté, il se coupait en deux (« Cadra-ge »).
196+
VStack(alignment: .leading, spacing: 3) {
197+
Text("Cadrage")
198+
Picker("Cadrage", selection: lien(\.cadrage)) {
199+
ForEach(CadrageRecto.allCases, id: \.self) { Text(tr($0.nom)).tag($0) }
200+
}
201+
.labelsHidden()
202+
.pickerStyle(.segmented)
197203
}
198-
.pickerStyle(.segmented)
199204
Picker("Style", selection: lien(\.variante.style)) { ForEach(StyleRecto.allCases, id: \.self) { Text(tr($0.nom)).tag($0) } }
200205
HStack {
201206
Button("Choisir une image…") { etat.choisirImagePerso() }.buttonStyle(.w98)

‎docs/images/apercu-3d.jpg‎

27.2 KB
Loading

‎docs/images/collection.jpg‎

73.7 KB
Loading

‎docs/images/enregistrer.jpg‎

123 KB
Loading

‎docs/images/etiquettes.jpg‎

73 KB
Loading

‎docs/images/icone.png‎

1.32 KB
Loading

‎docs/images/j-card.jpg‎

126 KB
Loading

0 commit comments

Comments
 (0)