change card
This commit is contained in:
@@ -205,6 +205,14 @@ const App = () => {
|
|||||||
? `${options?.title} - MusicLand`
|
? `${options?.title} - MusicLand`
|
||||||
: "MusicLand",
|
: "MusicLand",
|
||||||
}}
|
}}
|
||||||
|
linking={{
|
||||||
|
prefixes: ["musicland://", "https://musicland-one.vercel.app"],
|
||||||
|
config: {
|
||||||
|
screens: {
|
||||||
|
// Add any deep link configurations here if needed
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<MainStack />
|
<MainStack />
|
||||||
</NavigationContainer>
|
</NavigationContainer>
|
||||||
|
|||||||
@@ -31,6 +31,8 @@
|
|||||||
<category android:name="android.intent.category.DEFAULT"/>
|
<category android:name="android.intent.category.DEFAULT"/>
|
||||||
<category android:name="android.intent.category.BROWSABLE"/>
|
<category android:name="android.intent.category.BROWSABLE"/>
|
||||||
<data android:scheme="musicland"/>
|
<data android:scheme="musicland"/>
|
||||||
|
<data android:scheme="com.googleusercontent.apps.305598753437-qck73beo37mi04qlautgafbpdl3ccaoh"/>
|
||||||
|
<data android:scheme="com.googleusercontent.apps.305598753437-t2uitr9gd7aaed59ahdvklkcsg0vngmk"/>
|
||||||
<data android:scheme="com.omedis.musicland"/>
|
<data android:scheme="com.omedis.musicland"/>
|
||||||
<data android:scheme="exp+musicland"/>
|
<data android:scheme="exp+musicland"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|||||||
@@ -3,8 +3,14 @@
|
|||||||
"owner": "minuitagency",
|
"owner": "minuitagency",
|
||||||
"slug": "musicland",
|
"slug": "musicland",
|
||||||
"name": "MusicLand",
|
"name": "MusicLand",
|
||||||
"scheme": "musicland",
|
"scheme": [
|
||||||
"deeplinks": ["musicland://"],
|
"musicland",
|
||||||
|
"com.googleusercontent.apps.305598753437-qck73beo37mi04qlautgafbpdl3ccaoh",
|
||||||
|
"com.googleusercontent.apps.305598753437-t2uitr9gd7aaed59ahdvklkcsg0vngmk"
|
||||||
|
],
|
||||||
|
"deeplinks": [
|
||||||
|
"musicland://"
|
||||||
|
],
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"icon": "./assets/icon.png",
|
"icon": "./assets/icon.png",
|
||||||
"backgroundColor": "#0F0C14",
|
"backgroundColor": "#0F0C14",
|
||||||
@@ -26,7 +32,9 @@
|
|||||||
"usesAppleSignIn": true,
|
"usesAppleSignIn": true,
|
||||||
"requireFullScreen": true,
|
"requireFullScreen": true,
|
||||||
"userInterfaceStyle": "dark",
|
"userInterfaceStyle": "dark",
|
||||||
"associatedDomains": ["applinks:musicland-one.vercel.app"],
|
"associatedDomains": [
|
||||||
|
"applinks:musicland-one.vercel.app"
|
||||||
|
],
|
||||||
"bundleIdentifier": "com.omedis.musicland.ai",
|
"bundleIdentifier": "com.omedis.musicland.ai",
|
||||||
"infoPlist": {
|
"infoPlist": {
|
||||||
"NSMicrophoneUsageDescription": "MusicLand uses the microphone to record your voice and audio so you can create and collaborate on music projects.",
|
"NSMicrophoneUsageDescription": "MusicLand uses the microphone to record your voice and audio so you can create and collaborate on music projects.",
|
||||||
@@ -38,14 +46,19 @@
|
|||||||
"UIInterfaceOrientationLandscapeLeft",
|
"UIInterfaceOrientationLandscapeLeft",
|
||||||
"UIInterfaceOrientationLandscapeRight"
|
"UIInterfaceOrientationLandscapeRight"
|
||||||
],
|
],
|
||||||
"LSApplicationQueriesSchemes": ["itms-apps", "minuit"]
|
"LSApplicationQueriesSchemes": [
|
||||||
|
"itms-apps",
|
||||||
|
"minuit"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"usesNonExemptEncryption": false
|
"usesNonExemptEncryption": false
|
||||||
},
|
},
|
||||||
"entitlements": {
|
"entitlements": {
|
||||||
"aps-environment": "development",
|
"aps-environment": "development",
|
||||||
"com.apple.developer.applesignin": ["Default"]
|
"com.apple.developer.applesignin": [
|
||||||
|
"Default"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"appleTeamId": "W2QZ9CTMYJ"
|
"appleTeamId": "W2QZ9CTMYJ"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
"expo-speech": "~13.0.1",
|
"expo-speech": "~13.0.1",
|
||||||
"expo-splash-screen": "~0.29.24",
|
"expo-splash-screen": "~0.29.24",
|
||||||
"expo-status-bar": "~2.0.1",
|
"expo-status-bar": "~2.0.1",
|
||||||
|
"expo-store-review": "~8.0.1",
|
||||||
"expo-system-ui": "~4.0.9",
|
"expo-system-ui": "~4.0.9",
|
||||||
"expo-video": "~2.0.6",
|
"expo-video": "~2.0.6",
|
||||||
"expo-web-browser": "~14.0.2",
|
"expo-web-browser": "~14.0.2",
|
||||||
@@ -78,7 +79,6 @@
|
|||||||
"react-native-safe-area-context": "4.12.0",
|
"react-native-safe-area-context": "4.12.0",
|
||||||
"react-native-screens": "~4.4.0",
|
"react-native-screens": "~4.4.0",
|
||||||
"react-native-sortables": "~1.8.0",
|
"react-native-sortables": "~1.8.0",
|
||||||
"react-native-store-review": "~0.3.0",
|
|
||||||
"react-native-super-grid": "~5.0.0",
|
"react-native-super-grid": "~5.0.0",
|
||||||
"react-native-svg": "15.8.0",
|
"react-native-svg": "15.8.0",
|
||||||
"react-native-swiper-flatlist": "~3.2.5",
|
"react-native-swiper-flatlist": "~3.2.5",
|
||||||
@@ -1397,6 +1397,8 @@
|
|||||||
|
|
||||||
"expo-status-bar": ["expo-status-bar@2.0.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg=="],
|
"expo-status-bar": ["expo-status-bar@2.0.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-AkIPX7jWHRPp83UBZ1iXtVvyr0g+DgBVvIXTtlmPtmUsm8Vq9Bb5IGj86PW8osuFlgoTVAg7HI/+Ok7yEYwiRg=="],
|
||||||
|
|
||||||
|
"expo-store-review": ["expo-store-review@8.0.1", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-eJoZbsAsOXpyl1CEXauiMqs3z++8Qf1OMDUBEGmRj9hew+w9JbS3wvFOZpc0UXbm/NYn5YwiLfK7epQjLLKz4A=="],
|
||||||
|
|
||||||
"expo-system-ui": ["expo-system-ui@4.0.9", "", { "dependencies": { "@react-native/normalize-colors": "0.76.8", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-hqBc0EWeK/BTB8i4H84vqNjje8GgxhapYrcWdg5qriaRA/u+bNNxhmpZXdAjFuhonOP4SmAbF+gjoJJWsTrhUg=="],
|
"expo-system-ui": ["expo-system-ui@4.0.9", "", { "dependencies": { "@react-native/normalize-colors": "0.76.8", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-hqBc0EWeK/BTB8i4H84vqNjje8GgxhapYrcWdg5qriaRA/u+bNNxhmpZXdAjFuhonOP4SmAbF+gjoJJWsTrhUg=="],
|
||||||
|
|
||||||
"expo-updates-interface": ["expo-updates-interface@1.0.0", "", { "peerDependencies": { "expo": "*" } }, "sha512-93oWtvULJOj+Pp+N/lpTcFfuREX1wNeHtp7Lwn8EbzYYmdn37MvZU3TPW2tYYCZuhzmKEXnUblYcruYoDu7IrQ=="],
|
"expo-updates-interface": ["expo-updates-interface@1.0.0", "", { "peerDependencies": { "expo": "*" } }, "sha512-93oWtvULJOj+Pp+N/lpTcFfuREX1wNeHtp7Lwn8EbzYYmdn37MvZU3TPW2tYYCZuhzmKEXnUblYcruYoDu7IrQ=="],
|
||||||
@@ -2273,8 +2275,6 @@
|
|||||||
|
|
||||||
"react-native-sortables": ["react-native-sortables@1.8.0", "", { "optionalDependencies": { "react-native-haptic-feedback": ">=2.0.0" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-gesture-handler": ">=2.0.0", "react-native-reanimated": ">=3.0.0" } }, "sha512-uoNY0uiHikq3eKJoF85CATMPpo9jS7t37XUlunxSGjjbGi4L05os8eJBGNZSR+3NQgK2FtYGGkQtFbeSJIwmDg=="],
|
"react-native-sortables": ["react-native-sortables@1.8.0", "", { "optionalDependencies": { "react-native-haptic-feedback": ">=2.0.0" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-gesture-handler": ">=2.0.0", "react-native-reanimated": ">=3.0.0" } }, "sha512-uoNY0uiHikq3eKJoF85CATMPpo9jS7t37XUlunxSGjjbGi4L05os8eJBGNZSR+3NQgK2FtYGGkQtFbeSJIwmDg=="],
|
||||||
|
|
||||||
"react-native-store-review": ["react-native-store-review@0.3.0", "", {}, "sha512-PipH/p3O10DDCUWHiW0sVZ0020HPx6gRFFZOyuAYRRVwdssO7or/+H2pHTlwUt2lasVzLenTf2aZ9sMrpryuKA=="],
|
|
||||||
|
|
||||||
"react-native-super-grid": ["react-native-super-grid@5.0.1", "", { "dependencies": { "prop-types": "^15.6.0" }, "peerDependencies": { "react": ">=16.8.0", "react-native": ">=0.59.0" } }, "sha512-BNkLgQT79zv906TAVWGl+7B+5g6eL0GDTtO6te/g/WYOkxM8OXXJN8/Q1aIUBOpDo1L0Wv0BDR6EGHuhndmcRw=="],
|
"react-native-super-grid": ["react-native-super-grid@5.0.1", "", { "dependencies": { "prop-types": "^15.6.0" }, "peerDependencies": { "react": ">=16.8.0", "react-native": ">=0.59.0" } }, "sha512-BNkLgQT79zv906TAVWGl+7B+5g6eL0GDTtO6te/g/WYOkxM8OXXJN8/Q1aIUBOpDo1L0Wv0BDR6EGHuhndmcRw=="],
|
||||||
|
|
||||||
"react-native-svg": ["react-native-svg@15.8.0", "", { "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-KHJzKpgOjwj1qeZzsBjxNdoIgv2zNCO9fVcoq2TEhTRsVV5DGTZ9JzUZwybd7q4giT/H3RdtqC3u44dWdO0Ffw=="],
|
"react-native-svg": ["react-native-svg@15.8.0", "", { "dependencies": { "css-select": "^5.1.0", "css-tree": "^1.1.3", "warn-once": "0.1.1" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-KHJzKpgOjwj1qeZzsBjxNdoIgv2zNCO9fVcoq2TEhTRsVV5DGTZ9JzUZwybd7q4giT/H3RdtqC3u44dWdO0Ffw=="],
|
||||||
|
|||||||
+1
-1
@@ -87,7 +87,7 @@
|
|||||||
"react-native-safe-area-context": "4.12.0",
|
"react-native-safe-area-context": "4.12.0",
|
||||||
"react-native-screens": "~4.4.0",
|
"react-native-screens": "~4.4.0",
|
||||||
"react-native-sortables": "~1.8.0",
|
"react-native-sortables": "~1.8.0",
|
||||||
"react-native-store-review": "~0.3.0",
|
"expo-store-review": "~8.0.1",
|
||||||
"react-native-super-grid": "~5.0.0",
|
"react-native-super-grid": "~5.0.0",
|
||||||
"react-native-svg": "15.8.0",
|
"react-native-svg": "15.8.0",
|
||||||
"react-native-swiper-flatlist": "~3.2.5",
|
"react-native-swiper-flatlist": "~3.2.5",
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 677 KiB After Width: | Height: | Size: 657 KiB |
@@ -4,6 +4,7 @@ import numbro from "numbro";
|
|||||||
import { Linking } from "react-native";
|
import { Linking } from "react-native";
|
||||||
import { isTauri, isWeb } from "../hooks/useLayoutType";
|
import { isTauri, isWeb } from "../hooks/useLayoutType";
|
||||||
import Palette from "../styles/Palette.js";
|
import Palette from "../styles/Palette.js";
|
||||||
|
import * as StoreReview from "expo-store-review";
|
||||||
|
|
||||||
export const capitalize = (string) => {
|
export const capitalize = (string) => {
|
||||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||||
@@ -140,18 +141,12 @@ export const validateDate = (date = null) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const onStoreReview = async () => {
|
export const onStoreReview = async () => {
|
||||||
let StoreReview;
|
|
||||||
|
|
||||||
if (!isWeb) {
|
if (!isWeb) {
|
||||||
import("react-native-store-review").then((module) => {
|
if (await StoreReview.hasAction()) {
|
||||||
StoreReview = module;
|
|
||||||
|
|
||||||
StoreReview.requestReview();
|
StoreReview.requestReview();
|
||||||
});
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log("Store review not available on web");
|
console.log("Store review not available on web");
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import ResetPassword from "../screens/ResetPassword";
|
|||||||
import ChooseDecor from "../screens/Playback/ChooseDecor";
|
import ChooseDecor from "../screens/Playback/ChooseDecor";
|
||||||
import CreatingDecor from "../screens/Playback/CreatingDecor";
|
import CreatingDecor from "../screens/Playback/CreatingDecor";
|
||||||
import Playback from "../screens/Playback/Playback";
|
import Playback from "../screens/Playback/Playback";
|
||||||
|
import PlaybackGuide from "../screens/Playback/PlaybackGuide";
|
||||||
import PlaybackOnboarding from "../screens/Playback/PlaybackOnboarding";
|
import PlaybackOnboarding from "../screens/Playback/PlaybackOnboarding";
|
||||||
import RecordPlayback from "../screens/Playback/RecordPlayback";
|
import RecordPlayback from "../screens/Playback/RecordPlayback";
|
||||||
import RecordedPlayback from "../screens/Playback/RecordedPlayback";
|
import RecordedPlayback from "../screens/Playback/RecordedPlayback";
|
||||||
@@ -228,6 +229,10 @@ const baseScreens = [
|
|||||||
name: Routes.Playback,
|
name: Routes.Playback,
|
||||||
component: Playback,
|
component: Playback,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: Routes.PlaybackGuide,
|
||||||
|
component: PlaybackGuide,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: Routes.RecordPlayback,
|
name: Routes.RecordPlayback,
|
||||||
component: RecordPlayback,
|
component: RecordPlayback,
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ export const Routes = {
|
|||||||
|
|
||||||
PlaybackOnboarding: "PlaybackOnboarding",
|
PlaybackOnboarding: "PlaybackOnboarding",
|
||||||
Playback: "Playback",
|
Playback: "Playback",
|
||||||
|
PlaybackGuide: "PlaybackGuide",
|
||||||
RecordPlayback: "RecordPlayback",
|
RecordPlayback: "RecordPlayback",
|
||||||
RecordedPlayback: "RecordedPlayback",
|
RecordedPlayback: "RecordedPlayback",
|
||||||
ChooseDecor: "ChooseDecor",
|
ChooseDecor: "ChooseDecor",
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ const Playback = ({ route, navigation }) => {
|
|||||||
/>
|
/>
|
||||||
<BorderGradientButton
|
<BorderGradientButton
|
||||||
title="Guide du Playbacker"
|
title="Guide du Playbacker"
|
||||||
onPress={() => setShowIntro(videos.theo)}
|
onPress={() => navigate(Routes.PlaybackGuide)}
|
||||||
/>
|
/>
|
||||||
{/* <BorderGradientButton title="Importer une vidéo" /> */}
|
{/* <BorderGradientButton title="Importer une vidéo" /> */}
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -0,0 +1,340 @@
|
|||||||
|
import React from "react";
|
||||||
|
import { ScrollView, StyleSheet, Text, View, Platform } from "react-native";
|
||||||
|
import { BlurView } from "expo-blur";
|
||||||
|
import { background } from "../../assets";
|
||||||
|
import MusicLandHeader from "../../components/MusicLandHeader";
|
||||||
|
import Page from "../../layouts/Page";
|
||||||
|
import { Routes } from "../../navigation";
|
||||||
|
import { gutters, Palette } from "../../styles";
|
||||||
|
import { FONT_FAMILY } from "../../styles/Fonts";
|
||||||
|
|
||||||
|
const PlaybackGuide = ({ navigation }) => {
|
||||||
|
return (
|
||||||
|
<Page headerType="NONE" backgroundImg={background.playbackBG2}>
|
||||||
|
<MusicLandHeader onPressBack={() => navigation.goBack()} />
|
||||||
|
<View style={styles.container}>
|
||||||
|
<BlurView intensity={Platform.OS === "ios" ? 80 : 50} style={styles.blurContainer}>
|
||||||
|
<ScrollView
|
||||||
|
contentContainerStyle={styles.scrollContent}
|
||||||
|
showsVerticalScrollIndicator={false}
|
||||||
|
>
|
||||||
|
<Text style={styles.title}>Le Guide Ultime du Playback de TA Chanson : L'Expérience Créative Totale</Text>
|
||||||
|
|
||||||
|
<Text style={styles.sectionTitle}>Introduction : Tu Es l'Artiste ET le Performeur !</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Imagine ça : tu as créé Ta chanson, TES paroles, TA mélodie, TON univers.
|
||||||
|
Et maintenant, tu vas lui donner vie en playback. C'est une expérience UNIQUE au monde !
|
||||||
|
Tu n'imites personne - tu deviens la version scénique de toi-même. C'est comme avoir un
|
||||||
|
jumeau qui chante pendant que toi, tu performes. Double dose de créativité, double dose de
|
||||||
|
fun !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Chapitre 1 : Le Lip-Sync de Ta Propre Création - L'Avantage Ultime</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Le Pouvoir d'Être le Créateur</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Tu as un super-pouvoir que personne d'autre n'a : tu connais CHAQUE intention derrière
|
||||||
|
chaque mot, chaque respiration, chaque silence. Tu n'as pas à deviner ce que l'artiste
|
||||||
|
voulait dire - c'est TOI l'artiste ! Cette connexion intime avec ta chanson va transparaître
|
||||||
|
dans chaque mouvement de tes lèvres.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>La Règle des 15 Écoutes - Version Créateur</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Oui, même pour TA chanson, les 15 écoutes sont cruciales ! Mais avec une twist magique :
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Écoutes 1-5 : Redécouvre Ta Création</Text> Écoute ta chanson comme si c'était la première
|
||||||
|
fois. Tu vas être surpris de détails que tu avais oubliés !
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Écoutes 6-10 : L'Analyse du Créateur</Text>
|
||||||
|
{"\n"}• Où as-tu placé les émotions fortes ?
|
||||||
|
{"\n"}• Quels mots méritent d'être sur-articulés ?
|
||||||
|
{"\n"}• Où sont tes respirations naturelles dans l'enregistrement ?
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Écoutes 11-15 : La Transformation</Text> Maintenant, détache-toi du "toi qui a enregistré" pour
|
||||||
|
devenir le "toi qui performe". C'est là que la magie opère !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Les Secrets du Créateur-Performeur</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Le Phénomène de Dédoublement</Text> C'est normal de se sentir bizarre au début - tu entends
|
||||||
|
ta voix mais tu ne chantes pas ! Embrasse cette sensation unique. C'est comme être ton
|
||||||
|
propre fan numéro un.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>La Liberté de Réinterpréter</Text> Tu as le droit de changer l'émotion ! Si tu as enregistré la
|
||||||
|
chanson en étant mélancolique mais qu'aujourd'hui tu la sens joyeuse - VAS-Y ! C'est TA
|
||||||
|
chanson, tu peux la réinventer à chaque performance.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>L'Anticipation Parfaite</Text> Tu connais chaque micro-pause, chaque inflexion. Utilise cet
|
||||||
|
avantage ! Anticipe les moments forts avec ton expression faciale une fraction de seconde
|
||||||
|
avant qu'ils arrivent.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Le Truc du "Nouveau Moi"</Text> Crée un personnage scénique de toi-même. Peut-être que le
|
||||||
|
"toi studio" est introverti, mais le "toi playback" est extraverti. Cette dualité est fascinante et
|
||||||
|
totalement unique à ton expérience !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Chapitre 2 : Capturer l'Essence de Ta Création</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Ton Smartphone, Ton Studio Visuel</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Quand tu filmes le playback de TA chanson, tu complètes l'œuvre. La musique était l'audio,
|
||||||
|
maintenant tu ajoutes le visuel !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Les Angles Qui Racontent Ton Histoire</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>L'Angle "Confession" (Très Proche)</Text> Pour les parties intimes de ta chanson. Le spectateur
|
||||||
|
doit sentir que tu lui confies un secret.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>L'Angle "Concert" (Plan Large)</Text> Montre l'artiste complet en toi ! Parfait pour les refrains
|
||||||
|
énergiques où tu veux bouger.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>L'Angle "Clip Musical" (Variété)</Text> Change d'angle selon les parties de ta chanson. Verse 1
|
||||||
|
proche, refrain large, pont en profil... Raconte visuellement l'histoire de ta musique.
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>L'Accessoire Signature : L'Instrument de Ta Création</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
C'est encore plus puissant quand c'est TA chanson !
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Si tu as composé avec un instrument :
|
||||||
|
{"\n"}• Mime-le même si tu ne l'as pas sous la main
|
||||||
|
{"\n"}• Montre les accords que TU as choisis
|
||||||
|
{"\n"}• Tes mains connaissent les mouvements par cœur
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Si c'est une création digitale :
|
||||||
|
{"\n"}• Un casque audio autour du cou = le créateur
|
||||||
|
{"\n"}• Un smartphone en main = le compositeur moderne
|
||||||
|
{"\n"}• Les mains qui "mixent" dans l'air = le producteur
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
L'accessoire émotionnel :
|
||||||
|
{"\n"}• Un carnet (tes paroles originales !)
|
||||||
|
{"\n"}• Un objet qui t'a inspiré la chanson
|
||||||
|
{"\n"}• Un élément qui représente le thème de ta chanson
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Chapitre 3 : La Scène de Ta Première</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Chaque Lieu Devient TON Lieu</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Quand tu performes ta propre chanson, chaque endroit prend une signification spéciale. Ce
|
||||||
|
n'est pas juste un décor, c'est le lieu de naissance visuelle de ta création !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Les Scènes Qui Amplifient Ta Création</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>L'Endroit Où Tu l'as Écrite - Le Retour aux Sources</Text> Si tu as écrit ta chanson dans ta
|
||||||
|
chambre, filme-là ! C'est puissant de montrer l'artiste là où la magie a commencé.
|
||||||
|
L'authenticité sera palpable.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Le Studio Maison - Là Où Tu l'as Enregistrée</Text> Montre ton setup, même basique ! Un
|
||||||
|
micro, un ordinateur, des câbles... C'est TON univers créatif. Les gens adorent voir les
|
||||||
|
coulisses.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Le Lieu Qui t'a Inspiré - La Boucle Créative</Text> Tu as écrit sur la plage ? Sur l'amour au café
|
||||||
|
? Sur la solitude au parc ? Retourne-y ! La cohérence entre ton inspiration et ta performance
|
||||||
|
est magique.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>La Scène Imaginaire - Ce Que Tu Visualisais</Text> Quand tu as créé cette chanson, où
|
||||||
|
t'imaginais-tu la performer ? Un grand stade ? Un petit club intime ? Recrée cette ambiance
|
||||||
|
avec ce que tu as !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Suggestions Créatives Uniques :</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
• La Voiture : Si c'est là que tu as eu l'idée de la mélodie
|
||||||
|
{"\n"}• La Douche : Avec le téléphone protégé, si c'est là que tu chantes toujours
|
||||||
|
{"\n"}• Le Toit/Balcon : Pour une sensation de "crier au monde" ta création
|
||||||
|
{"\n"}• Devant le Miroir : Le dialogue entre toi créateur et toi performeur
|
||||||
|
{"\n"}• Dans le Noir avec une Seule Lumière : Pour l'aspect dramatique et intime
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Chapitre 4 : Le Mindset du Créateur-Performeur</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>L'Expérience Unique au Monde</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Ce que tu fais est EXTRAORDINAIRE. Tu es à la fois Mozart et le pianiste, Beyoncé et la
|
||||||
|
performeuse, le compositeur ET l'interprète. Cette dualité créative est rare et précieuse !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Les Mantras du Créateur en Playback</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>"C'est MON Bébé Musical"</Text> Cette chanson est née de toi. Chaque note, chaque mot est ton
|
||||||
|
enfant créatif. Quand tu la performes en playback, tu lui donnes une nouvelle dimension.
|
||||||
|
Sois fier !
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>"Je Me Réinvente à Chaque Prise"</Text> L'avantage de faire le playback de TA chanson ? Tu
|
||||||
|
peux explorer 1000 façons de l'interpréter ! Mélancolique le matin, énergique le soir. C'est ta
|
||||||
|
playground créative.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>"Mes Deux Moi Collaborent"</Text> Le toi qui a chanté et le toi qui performe sont une équipe.
|
||||||
|
C'est une collaboration unique avec toi-même à travers le temps !
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>"C'est Mon Histoire, Mes Règles"</Text> Personne ne peut te dire "ce n'est pas comme ça que
|
||||||
|
l'artiste le fait" - parce que l'artiste, c'est TOI !
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>La Célébration de Ta Création</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
<Text style={styles.bold}>Le Rituel du Créateur :</Text>
|
||||||
|
{"\n"}1. Écoute ta chanson une fois les yeux fermés - Reconnecte avec ton intention originale
|
||||||
|
{"\n"}2. Dis à voix haute : "J'ai créé quelque chose qui n'existait pas avant"
|
||||||
|
{"\n"}3. Danse 30 secondes sur TA création - Célèbre-toi !
|
||||||
|
{"\n"}4. Filme avec fierté - Ce moment est historique dans ton parcours
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>Le Partage de Ton Univers</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Quand tu partages le playback de ta propre chanson, tu offres une expérience complète :
|
||||||
|
{"\n"}• Les gens découvrent ta musique
|
||||||
|
{"\n"}• Ils voient ta personnalité
|
||||||
|
{"\n"}• Ils connectent avec l'artiste complet que tu es
|
||||||
|
{"\n"}• Ils witness la naissance visuelle de ton art
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Résumé : Ton Parcours Créatif Unique</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>🎵 Chapitre 1 - Ton Lip-Sync Signature</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
• Tu connais chaque intention : Avantage ultime du créateur
|
||||||
|
{"\n"}• 15 écoutes pour redécouvrir : Même ta création mérite cette attention
|
||||||
|
{"\n"}• Le dédoublement créatif : Embrasse d'être ton propre interprète
|
||||||
|
{"\n"}• Liberté totale : Réinterprète selon ton humeur du jour
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>🎬 Chapitre 2 - Ton Setup Créatif</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
• Les angles qui racontent : Confession, concert, clip
|
||||||
|
{"\n"}• L'instrument de création : Montre ton processus créatif
|
||||||
|
{"\n"}• Accessoires significatifs : Objets liés à ton inspiration
|
||||||
|
{"\n"}• L'authenticité avant tout : Ton setup, tes règles
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>🎭 Chapitre 3 - Tes Lieux de Création</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
• Retour aux sources : Là où tu as créé
|
||||||
|
{"\n"}• Le lieu d'inspiration : Boucle ta vision créative
|
||||||
|
{"\n"}• La scène rêvée : Matérialise ta vision
|
||||||
|
{"\n"}• Chaque lieu = ton histoire : Personnalise à fond
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.subTitle}>🌟 Chapitre 4 - Ton Mindset Unique</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
• Double créativité : Compositeur ET performeur
|
||||||
|
{"\n"}• Fierté créative : Tu as créé quelque chose de rien
|
||||||
|
{"\n"}• Réinvention constante : Explore toutes les facettes
|
||||||
|
{"\n"}• Histoire complète : Tu offres l'expérience totale
|
||||||
|
</Text>
|
||||||
|
|
||||||
|
<Text style={styles.chapterTitle}>Ton Défi Ultime : La Première Mondiale !</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Tu es sur le point de faire quelque chose qu'AUCUN autre artiste ne peut faire : créer la
|
||||||
|
performance visuelle parfaite de TA chanson. C'est ta première mondiale, ton moment
|
||||||
|
unique !
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Dans les 24 prochaines heures, donne vie visuellement à ta création. Choisis ta chanson
|
||||||
|
préférée (parmi les tiennes !), trouve ton spot créatif, et MONTRE au monde non seulement
|
||||||
|
ta musique, mais TOI en train de la vivre.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Rappelle-toi : Tu n'es pas en train d'imiter. Tu n'es pas en train de copier. Tu es en train de
|
||||||
|
COMPLÉTER ton œuvre. La chanson était le tableau, le playback est le cadre qui le
|
||||||
|
sublime.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
C'est ton moment. Ta chanson. Ta performance. Ton histoire.
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
Le monde attend de découvrir l'artiste complet que tu es ! 🎤🎵✨
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
#MonPlaybackMaChanson #CréateurPerformeur #DoubleArtiste
|
||||||
|
</Text>
|
||||||
|
<Text style={styles.text}>
|
||||||
|
P.S. : Garde chaque prise, même les "ratées". Dans 10 ans, tu regarderas ces vidéos et tu
|
||||||
|
verras le début de ton parcours d'artiste. C'est de l'or pur !
|
||||||
|
</Text>
|
||||||
|
</ScrollView>
|
||||||
|
</BlurView>
|
||||||
|
</View>
|
||||||
|
</Page>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const styles = StyleSheet.create({
|
||||||
|
container: {
|
||||||
|
flex: 1,
|
||||||
|
marginHorizontal: Platform.OS === "web" ? gutters : 0,
|
||||||
|
marginBottom: gutters,
|
||||||
|
borderRadius: 20,
|
||||||
|
overflow: "hidden",
|
||||||
|
},
|
||||||
|
blurContainer: {
|
||||||
|
flex: 1,
|
||||||
|
backgroundColor: Palette.glass,
|
||||||
|
},
|
||||||
|
scrollContent: {
|
||||||
|
padding: gutters,
|
||||||
|
paddingBottom: gutters * 3,
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
fontFamily: FONT_FAMILY.InterBold,
|
||||||
|
fontSize: 24,
|
||||||
|
color: Palette.white,
|
||||||
|
textAlign: "center",
|
||||||
|
marginBottom: 20,
|
||||||
|
},
|
||||||
|
sectionTitle: {
|
||||||
|
fontFamily: FONT_FAMILY.InterBold,
|
||||||
|
fontSize: 20,
|
||||||
|
color: Palette.primary,
|
||||||
|
marginBottom: 10,
|
||||||
|
marginTop: 10,
|
||||||
|
},
|
||||||
|
chapterTitle: {
|
||||||
|
fontFamily: FONT_FAMILY.InterBold,
|
||||||
|
fontSize: 22,
|
||||||
|
color: Palette.primary,
|
||||||
|
marginBottom: 15,
|
||||||
|
marginTop: 25,
|
||||||
|
textAlign: "center",
|
||||||
|
},
|
||||||
|
subTitle: {
|
||||||
|
fontFamily: FONT_FAMILY.InterSemiBold,
|
||||||
|
fontSize: 18,
|
||||||
|
color: Palette.white,
|
||||||
|
marginBottom: 8,
|
||||||
|
marginTop: 15,
|
||||||
|
},
|
||||||
|
text: {
|
||||||
|
fontFamily: FONT_FAMILY.InterRegular,
|
||||||
|
fontSize: 16,
|
||||||
|
color: Palette.white,
|
||||||
|
marginBottom: 10,
|
||||||
|
lineHeight: 24,
|
||||||
|
},
|
||||||
|
bold: {
|
||||||
|
fontFamily: FONT_FAMILY.InterBold,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export default PlaybackGuide;
|
||||||
@@ -164,17 +164,6 @@ const Register = () => {
|
|||||||
keyboardShouldPersistTaps="handled"
|
keyboardShouldPersistTaps="handled"
|
||||||
>
|
>
|
||||||
{renderFormContent()}
|
{renderFormContent()}
|
||||||
<View style={styles.bottomLoginPrompt}>
|
|
||||||
<Text style={styles.bottomFooterText}>
|
|
||||||
Tu as déjà un compte ?{" "}
|
|
||||||
<Text
|
|
||||||
style={styles.bottomFooterLink}
|
|
||||||
onPress={() => navigate(Routes.Login)}
|
|
||||||
>
|
|
||||||
Se connecter
|
|
||||||
</Text>
|
|
||||||
</Text>
|
|
||||||
</View>
|
|
||||||
</KeyboardAwareScrollView>
|
</KeyboardAwareScrollView>
|
||||||
</KeyboardAvoidingView>
|
</KeyboardAvoidingView>
|
||||||
)}
|
)}
|
||||||
|
|||||||
Reference in New Issue
Block a user