Napisy takie jak w karaoke (+dzwiek karaoke)

0

Od dluzszego czasu pracuje nad porgramem do karaoke. Jednak mam dwa problemy ktorych nie moge rozwiazc... Pierwszy z nich to napisy a drugi to dzwiek karaoke. Oto jakie mam problemy.

NAPISY
Jak zapewne kazdy wie (a przynajmniej kazdy kto mial ort! z karaoke) karaoke polega na odtwarzaniu muzyki bez wokalu wykonawcy oraz wyswietlaniu odpoiwiedniego fragmentu tekstu ktory ma byc wlasnie spierwany. Latwo jest zrobic wyswietlanie liniowe - moze nie latwo ale po jakims czasie da sie to rozpracowac. Jednak jezeli chodzi o napisy w karaoke one nie dzialaja tak jak np. w napisach do filmow. Bo przeciez w tym wypadku zaznaczane sa okreslone fragmenty tekstu. Np. jezeli linia ma tekst 'wlazl kotek na plotek' to dokonuje sie najpierw zaznaczenie 'wlazl' potem 'ko', 'tek','na'... itd. Naturalnie zaznaczanie musza pojawiac sie w innym kolorze. Pomyslalem ze najlatwiej bedzie to zrobic Canvasem labela... jednak wystarczy go zaslonic a 'zaznaczenie' znika. Potem wpadlem na inny genialny pomysl. Zeby dokonyac takiego zaznaczania w innym komponencie. No i super - dzialalo ale... kiedy przerysowywuje sie to co trzeba (czyt. 'zaznacza sie' czyli maluje czesc linii na inny kolor) to wszystko strasznie miga. Wiec pomyslalem zeby zrobic jeszcze inaczej... Dwa Labele na sobie, jeden z tekstem na kolor 'niezaznaczony' a drugi z tekstem 'zanzaczonym'. Ten kolorowy mial ustawiony weight na 0 i odpowiednio do danej sytuacji sie rozszerzal. No i super - tez dzialalo choc bylo nieco skomplikowane bo najpierw trzeba bylo ustawic zamalowanego Labela tak zeby tekst po rozwinieciu sie pokrwyal. To rozwiazanie ma dwie wadu - po pierwsze potwornie obciaza procesor a po drugie... tez miga (choc rzeczywiscie mniej). Wiec pytanie brzmi:

JAK ZAMALOWYWAC CZESC TEKSTU TAK ABY NIE POWODOWALO TO ZBYTNIEGO OBCIAZENIA PROCESORA ORAZ NIE MIGALO TO WSZYSTKO?

Myslalem moze o czyms zwiazanym DirectX ale nie wiem jak to zrobic.

DZWIEK
Dosc latwo jest zrobic np. z pliku MP3 (normalna piosenka) plik karaoke (bez wokalu - sama sciezka dzwiekowa). Opiera sie to na tym ze czesc wspolna dla obu kanalow (w stereo) sie odrzuca i jest to (w wiekszoci wypadkow) wlasnie wokal. Naturalnie nie dziala to zawsze tak jak powinno bo czesto bywa tak ze w ten sposob wokal i tak zostaje a za to wycinane sa nie te dzwieki :-8 Ale mi nie zlezy na tym zeby to bylo idealne. Chce skorzystac wlasnie z takiego sposobu. ort! z niego niektore programy do tworzenia karaoke (w ogole z tego co sie orientuje wszystkie) w tym Nero (w Ustawieniach jest opcja 'Karaoke'), Magix Music Maker i wiele innych w tym profesjonalnych. W kazdym z tych wypadkow caly proces odbywa sie w czasie rzeczywistym i nie powoduje to wyraznego obciazenia procesora. Wiec moje pytanie (dot. dzwieku) brzmi:

JAK POD DELPHI STWORZYC DZWIEK KARAOKE (POLEGAJACY NA WYCINANIU CZESCI WSPOLNEJ OBU KANALOW) W CZASIE RZECZYWISTYM?

Nie moge znalezc zadnego komponentu a sam niestety nie wiem jak to zrobic...

Moze ktos zna odpowiedz na kotres z tych pytan?

PROSZE O POMOC!

0

Co do tego migania, to spróbuj ustawić właściwość doubleBuffered formy na true. Ale procesor to oczywiście obciąży(nie wiem jak bardzo), ale nie będzie(nie powinno) migać

0

humm przeczytaj swoj post i popatrz na niego tak:

"od dluzszego czasu usiluje zmienic kolo w samochodzie ale nie mam samochodu, kola ani narzedzi, czy ktos moze mi pomoc ?"

skoro pracujesz dluzszy czas to co masz skoro brak tekstu i dzwiekua akaraoke to wlasnie tekst i dzwiek ?

....
juz bede grzeczny :P powyzszy oraz ponizszy tekst to jest wylacznie moje prywatne zdanie i moge sie w kilku kwesiach mylic

  1. Jestem DJem i prowadzielm kiedys impreze ze wstawkami karaoke stad kilka wnioskow:
    a) przy odtwarzaniu publicznym nie masz prawa uzyc modyfikowanej mp3jki jedyne czego ci wolno uzyc to podklad zagrany przez kogos - tak jak kapele grajace np covery (wlasne wykoanania) utworow innych kapel, no i tu grzyb bo kto ci zagra od kolorowych jarmarkow, przez brathanki, rasmusa, red hot itp zeby to nie brzmialo jak u cioci na imieninach ...
    b)kompromis polega na tym ze wykorzystuje sie gotowe podklady midi (wiem ze niektorzy wymiotuja jak slysza midi ale dobrze zrobione midi ma sens), jak koniecznie chcesz wszytko robic sam to podklady ci musi jakis klawiszowiec zrobic ale najlepsze sa "open source" w sieci darmowe i bez praw autorskich i jest tego cala masa
  2. Troche praktyki i doswiadczen ogolnych
    a) delphi nie jest najlepszym narzedziem do tego typu montazy
    b) teksty sa w sieci

wniosek koncowy - uzyj gotowego programu do karaoke - sa takowe darmowe i uzywaja ogolnie uznanych standardow , jest nawet specjalny format plikow tekstowych, calosc sie latwo synchronizuje i przerabia jak chce, goraco odradzam wywazania otwartych drzwi bo widzialem w akcji darmowe programy do karaoke i jezeli na takich freewarach mozna prowadzic impreze na 500 osob to po co sie katowac

ps.
zapomnij o probach synchronizacji podswietlania sylab wzgledem czasu utworu bo sie beda ludzie meczyc

jesli koniecznie chcesz sam to sprobuj zaczac od napisania narzedzia ktore rozumie midi wtedy synchronizacje z tekstem uzyskujesz w timingu muzycznym a nie na mikrosekundach, co siecej jak cie sie program powiesi jakos to nie ma ryzyka desynchronizacji

ciekawostka - ktos juz to robil uzywajac jakiegos odtwarzacza multimediow typu open source i wycial z niego moduly graficzne zostawil dzwiek i uzywal tekstow takich jak do filmow avi itp, efektu koncowego nie widzialem

0

Ja robiłem coś takiego w swoim odtwarzaczu. Działało w porzadku. Nie podświetlałem jednak literek, tylko całymi zdaniami, jak przy avi. Jestem jednak pewny, że takie coś także by zadziałało :).

0

Postanowilem odpowiedziec :p

"od dluzszego czasu usiluje zmienic kolo w samochodzie ale nie mam samochodu, kola ani narzedzi, czy ktos moze mi pomoc ?" - Otoz nie! Chodzi o to ze moj program zasadniczo dziala i wszystko jest ok tylko moj problem polega na tym ze posiadam linijkowe (to o czym mowi thenkles) wyswietlanie tekstu ale to nie jest to samo co prawdziwe karaoke. poza tym program nie ma byc programem komercyjnym wiec nie chce tu mowic o tym ze bedzie to odtwarzanie publiczne. Jezeli chodzi o dzwiek to chce zwrocic uwage ze czesto do roznego rodzaju singli dodawane sa wersje karaoke piosenek (szczegolnie ostatnio stalo sie to popularne). Jezeli jednak ktos nie ma takich utworow to MOZE przerobic je w opisany przeze mnie sposob bo po pierwsze nie jest to integracja w utwor a poprawki sa czyst kosmetyczne - to cos w stylu odejmowania i dodawania basow z tym ze w tej sytuacji jest to nieco bradziej skomplikowane. Wiec drogi feerial'u (czy jak to sie odmienia :p) uzytkownik ma prawo dokonywac takich zmian w utworach na wlasny uzytek (przeloze to np. na jezyk komputerowy - porgramow nie mozemy modyfikowac ale tlumaczyc na wlasny uzytek i owszem - o ile nie bedziemy tego rozpowszechniac). Nie chce kozystac z midi bo jezeli prowadziles imprezy karaoke (tak mi sie wydaje z tego co przeczytalem) to zapewne wiesz ze czasami sa w utworach karaoke rowniez chury! A midi (poza tym ze jest ch****e jak przeciag) nie daje takiej mozliwosci. Wiem ze Delphi nie jest do tego najlepszym sposobem ale co z tego? Nie chce kozystac z gotowych programow karaoke bo caly trik polega na tym ze chce to zrobic sam i bez pomocy jakis gotowcow! Nie katuje sia dlatego zeby prowadzic jakas impreze tylko po to zeby miec z tego satysfakcje! Jezeli chodzi o synchronizowanie sylab to nie wiem czemu mialoby to byc meczace - otoz chce zauwazyc ze przeciez tak jest w oryginalnym karaoke. Co wiecej - zdaje sobie sprawe, ze przygotowywanie plikow z tekstem nie jest (bedzie) latwe ale juz moja w tym glowa zeby to stalo sie stosunkowo proste (z reszta nie bede ukrywal ze podobne aplikacje juz istnieja i nie sa wcale takie trodne w obludze!). Jezeli chodzi o poroblem synchronizacji z utworem to rozwiazalem go na poczatku i nie ma obaw zeby cos poszlo nie tak (tzn. zeby pojawily sie jakies trwale opoznienia).

A miniestety chodzi o to zeby to zrobic i choc teoretycznie wszystko jest juz sprawne to chcialbym to ulepszyc i uatrakcyjnic! Do tego potrzebne sa mi powyzsze elementy.

0

synchronizacja sylab - chodzilo mi o to ze midi daje lepsze mozliwosci a na mikrosekundach to bywa rozne, po prostu "interpreter" midi moze byc zaprogramowany tak zeby rozumiec wewnetrzne indeksy zapisane w samym midi a co za tym idzie sam ci generuje zdarzenia powodujace przejscie do nowej sylaby czy linijki

midi wcale nie jest zle - wszystko zalezy od tego jakie masz do tego barwy, w tej chwili spora ilosc kapel sampluje wszystko i jest to prawie identyczne z uzyciem midi - tyle ztam wchodza juz powazniejsze formaty danych - karaoke ma polegac nie na udawaniu ze sie spiewa oryginal tylko wlasnie ma wyciagnac wokaliste na przod stad powszechna tendencja do obnizania jakosci podkladu - wszystkie komercyjne "maszyny karaoke" bazuja na midi

podswietlanie (akcentowanie) sylab - tak mi sie wymyslilo ze mozesz zrobic statyczny tekst (linijka) i napisac jakis efekt graficzny ktory po tym tekscie wedruje - taka soczewka

wracjac do indeksow mozesz sprobowac uzyc ideksowania plikow muzycznych (niestety nie znam sie na tym wcale ale wiem ze jest) czyli wpisac w utwor wlasne indeksy ktore beda popychaly akcentowanie sylab - wymaga to troche pracy ale po dorobieniu jakichs bajerow do obrobki tekstu masz juz mniej roboty z tekstem, czyli najlepiej od razu sie zdecydowac co bedzie odpowiedzialne za synchronizacje - albo tekst bedzie mial indeksy timera albo utwor bedzie mial takie "popychacze sylab". z tekstem latwiej ale wiecej klepania, z utworem trudniej ale mozna indeksy next sylaby wybijac na zywo w trakcie trwania utworu i jak juz masz caly engine to szybko pojdzie wbijanie kolejnych utworow, tak na bezczelnego to mozesz dodawac dzwiek na jakiejs niezauwazalnej dla ucha czestotliwosci i go potem wylapywac, zeby bylo weselej to mozesz w ten sposob ominac odtwarzanie dzwieku z poziomu delphi :)
czyli tak: przygotowujesz utwor w programie muzycznym (obciecie stereo + markowanie sylab), piszesz progam ktory tylko "podsluchuje" odtwarzana muzyke i podaje tekst

wiem ze to troche naokolo wszystko ale dlaej uwazam ze pisanie calosci bez gotowych modulow w delphi to katorga

dopisane po powtornej analizie :)
"Opiera sie to na tym ze czesc wspolna dla obu kanalow (w stereo) sie odrzuca i jest to (w wiekszoci wypadkow) wlasnie wokal."

czesc wspolna dla obu kanalow to prawi wszystko co slyszysz, zrob sobie eksperyment z glosnikami ...
podepnij 2 glosniki normalnie czyli
G1 - prawy sygnal i zero
G2 - lewy sygnal i zero
kazdy glosnik gra fale bedaca roznica poziomu sygnalu i zera czyli fale sygnalowa

teraz wez te same dwa glosniki i wepnij tak
G1 - prawy minus lewy (prawy i lewy sygnal)
G2 - lewy minus prawy (jw)
w ten sposob kazdy glosnik bedzie gral tylko roznice miedzy sygnalami czyli tylko to co jest stereo, takie cos sie czasem stosuje dla ubarwienia dzwieku z malo bajernej wierzy jako dodatkowe glosniki tylne, posluchaj sobie jak malo one graja jak ogromna czesc jestprawie monofoniczna, zakladanie ze jedynym sygnalem monofonicznym jest wokal to blad dyskryminujacy cale twoje podejscie do tematu, dodatkowo popytaj ludzi piszcych w delphi jak zapatruja sie na patroszenie pliku mp3 na kanaly i jakiekolwiek operacje na nich

jezeli chcesz robic cos dla wlasnej satysfakcji to znajdz inny temat bo to co usilujesz zrobic to jedzenie zupy widelcem ... ja wiem ze forum prawda to powinni ci wszyscy pisac jak cos zrobic ale czasem tez trzeba napisac jak czegos nie robic albo wrecz zeby w ogóle tego nie robic...

0

Od dluzszego czasu pracuje nad porgramem do karaoke. Jednak mam dwa problemy ktorych nie moge rozwiazc... Pierwszy z nich to napisy a drugi to dzwiek karaoke. Oto jakie mam problemy.

NAPISY
Jak zapewne kazdy wie (a przynajmniej kazdy kto mial doczynienia z karaoke) karaoke polega na odtwarzaniu muzyki bez wokalu wykonawcy oraz wyswietlaniu odpoiwiedniego fragmentu tekstu ktory ma byc wlasnie spierwany. Latwo jest zrobic wyswietlanie liniowe - moze nie latwo ale po jakims czasie da sie to rozpracowac. Jednak jezeli chodzi o napisy w karaoke one nie dzialaja tak jak np. w napisach do filmow. Bo przeciez w tym wypadku zaznaczane sa okreslone fragmenty tekstu. Np. jezeli linia ma tekst 'wlazl kotek na plotek' to dokonuje sie najpierw zaznaczenie 'wlazl' potem 'ko', 'tek','na'... itd. Naturalnie zaznaczanie musza pojawiac sie w innym kolorze. Pomyslalem ze najlatwiej bedzie to zrobic Canvasem labela... jednak wystarczy go zaslonic a 'zaznaczenie' znika. Potem wpadlem na inny genialny pomysl. Zeby dokonyac takiego zaznaczania w innym komponencie. No i super - dzialalo ale... kiedy przerysowywuje sie to co trzeba (czyt. 'zaznacza sie' czyli maluje czesc linii na inny kolor) to wszystko strasznie miga. Wiec pomyslalem zeby zrobic jeszcze inaczej... Dwa Labele na sobie, jeden z tekstem na kolor 'niezaznaczony' a drugi z tekstem 'zanzaczonym'. Ten kolorowy mial ustawiony weight na 0 i odpowiednio do danej sytuacji sie rozszerzal. No i super - tez dzialalo choc bylo nieco skomplikowane bo najpierw trzeba bylo ustawic zamalowanego Labela tak zeby tekst po rozwinieciu sie pokrwyal. To rozwiazanie ma dwie wadu - po pierwsze potwornie obciaza procesor a po drugie... tez miga (choc rzeczywiscie mniej). Wiec pytanie brzmi:

JAK ZAMALOWYWAC CZESC TEKSTU TAK ABY NIE POWODOWALO TO ZBYTNIEGO OBCIAZENIA PROCESORA ORAZ NIE MIGALO TO WSZYSTKO?

Myslalem moze o czyms zwiazanym DirectX ale nie wiem jak to zrobic.

DZWIEK
Dosc latwo jest zrobic np. z pliku MP3 (normalna piosenka) plik karaoke (bez wokalu - sama sciezka dzwiekowa). Opiera sie to na tym ze czesc wspolna dla obu kanalow (w stereo) sie odrzuca i jest to (w wiekszoci wypadkow) wlasnie wokal. Naturalnie nie dziala to zawsze tak jak powinno bo czesto bywa tak ze w ten sposob wokal i tak zostaje a za to wycinane sa nie te dzwieki :-8 Ale mi nie zlezy na tym zeby to bylo idealne. Chce skorzystac wlasnie z takiego sposobu. ort! z niego niektore programy do tworzenia karaoke (w ogole z tego co sie orientuje wszystkie) w tym Nero (w Ustawieniach jest opcja 'Karaoke'), Magix Music Maker i wiele innych w tym profesjonalnych. W kazdym z tych wypadkow caly proces odbywa sie w czasie rzeczywistym i nie powoduje to wyraznego obciazenia procesora. Wiec moje pytanie (dot. dzwieku) brzmi:

JAK POD DELPHI STWORZYC DZWIEK KARAOKE (POLEGAJACY NA WYCINANIU CZESCI WSPOLNEJ OBU KANALOW) W CZASIE RZECZYWISTYM?

Nie moge znalezc zadnego komponentu a sam niestety nie wiem jak to zrobic...

Moze ktos zna odpowiedz na kotres z tych pytan?

PROSZE O POMOC!

Wejdż na stonę: www.muzyczka.com.pl . Tam możesz ściągnąć profesjonalny program komputerowy do karaoke mp3 . Możesz też kupić piosenki karaoke mp3.

1 użytkowników online, w tym zalogowanych: 0, gości: 1