Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

swiety: To jest wojna! :P Jak za starych dobrych czasów ;):D
Ogólnie im więcej "nowości" przy SoftSynth'cie tym bardziej oddalacie się od tego co, chyba, na początku chcieliście uzyskać...

52

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Ktoś mi mówił, że FC (ten atarowski) mógł grać paterny dowolnej długości zaczynające się niezależnie od siebie. I był to tracker. Paterny dowolnej długości są w ogóle standardem w trackerach od dawna. Nie wiem o jakie przypisanie paternów do kanałów chodzi. Przecież nie będziemy grać standardowymi syntetykami z POKEYa, każdy patern w Neo jest jednościeżkowy, więc można go posadzić na którym kanale dusza zapragnie.
Tracker jest. Nie chodzi o to, żeby grać i edytować muzaki z programu SoftSynth, tylko coś, co gra na podobnej zasadzie. Kwestia dopisania edytora instrumentów i playera, niewykluczone, że będzie to player Świętego, przecież już o tym rozmawialiśmy. ;)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

53

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Zgadza się, choć warto rozpatrzyć jakieś założenia zanim będzie można pisać muzę - Atarowski fc nie wiem jakie miał patterny ale amigowski - 32 pozycyjne, każdy pattern ponadto miał transpozycję + numer nuty , + numer instrumentu - z tym że można było zrobić lock instrument , lack note w edytorze instrumentów - dzięki temu np bas z perkusją transponowało się idealnie.
Generalnie chyba 32 pozycje wystarczają do napisania muzy - generalnie w trackerach z amigi chciano oszczędzić na długości songu co się udało ! (np. niektóre playery miały już w sobie podstawowe fale na których odgrywana była muza)
Zielony: może i tak, może i wojna :) , ale jeśli ktoś będzie w stanie napisać jakąś sensowną muzę na takim edytorze to chyba warto coś nowego napisać

Ostatnio edytowany przez swiety (2006-04-13 13:49:35)

54

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Ta. Zwłaszcza w MODzie, gdzie jeden patern 4 ścieżki * 64 linie zajmuje zawsze cały kilobajt. A jak chcesz zmienić dwie nutki na jednej tylko ścieżce, to jesteś następny kilobajt w plecy. :]

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Swiety: No mam nadzieję, że zamiast hałasów usłyszę muzykę z linią melodyczną. :D Piszcie, piszcie, ja się będę przyglądał ;) Jakby co, służę mała wiedzą (od strony programowej) na temat oryginalnego SoftSyntha.

56

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Ta wiedza może się przydać :)

57

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

I skrol co pół piksela. :]

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

58

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Equalizery majom byc! ;)

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Epi: No problem :P synchronizacja pójdzie się kochać, ale skrol będzie jak ta lala.

60

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Zielony: widziałem, dlatego zaczepiłem. ;]

lewiS: "napisz se!"

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

61

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

'nieliniowe' trackery epij zjada na sniadanie ;)

don't come after... please don't follow me along. when you read this, i'll be gone...

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

epi napisał/a:

Nie chodzi o to, żeby grać i edytować muzaki z programu SoftSynth, tylko coś, co gra na podobnej zasadzie.

Nie obraziłbym się, gdyby była taka mozliwość. ;)

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

63

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Napisz se! ;)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

:) :) :)

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

[OT] GUI
Tu skrol łamany co pół piksela :P
00:| C-1 0A000000 | --- -------- | --- ------- | G-2 01000000 |
01:| G-1 0A000000 | --- -------- | --- ------- | H-2 02000000 |
02:| C-1 0A000000 | --- -------- | --- ------- | H-2 02000000 |
03:| G-1 0A000000 | --- -------- | --- ------- | H-2 02000000 |
04:| C-1 0A000000 | --- -------- | --- ------- | C-3 03000000 |

Chciałbym tylko zauważyć, że heksadecymalnie da się zapisać jedynie pierwszą i czwartą nutkę z gamy: D0, re, mi, FA, sol, la, si, D0.
[/OT]

66

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Wyciągnę temat softsyntha na wierzch :)

A to dlatego, że nie widziałem drugiego takiego programu na nic . Po prostu, przyszła amiga i jej format trackerowych modułów zawładnął światem. Tymczasem softsynth to taka klasyka syntezy: definiujesz 1 okres sampla, adsr, i .. jedziemy.

W związku z czym robię dwie rzeczy:

(1) reverse engineering plików Softsyntha.. żeby je móc wylistować i edytować na PC
(przy okazji: źródła najlepszej muzyki na Atari made by Jakub Husak, są zabezpieczone przed listowaniem)

(2) softsynth na PC. Żeby (1) brał i odtwarzał pliki atarowskiego softsyntha, (2) nie miał jego ograniczeń.

Tak sobie wyobrazić "Wodospadem Czasu" zagrane na maszynie Softsyntha z 16-bitowymi samplami...

No i to, co można by skomponować, mając Softsyntha bez ograniczenia na ilośc kanałów i na dodatek jajieś GUI.

W sumie wiem jak to zrobić, aby mi tylko czasu i zapału nie zabrakło. Jak się uda, opublikuję na GPL :)

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

epi napisał/a:

No ma być, ma być. Trudne to to nie będzie, ale po maturze. ;]

Ówczesny maturzysta zdążył posiwieć, brzuch zapuścić, a syntezatora jak nie było, tak nie ma. ;)






pik33:
Na PC to chyba że cross-platform, żeby plik wynikowy chodził na 800XL. To wtedy rozumiem.











.

Ostatnio edytowany przez YERZMYEY/HOOY-PROGRAM (2010-06-07 14:31:49)

Trzy najpopularniejsze w Polsce platformy 8-bit: Piwo, Wino i Wódka.
http://ym-digital.i-demo.pl/ - http://yerzmyey.i-demo.pl - https://soundcloud.com/yerzmyey
ŻADEN DOBRY UCZYNEK NIE UJDZIE BEZ KARY.

68

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

pik33 napisał/a:

Tak sobie wyobrazić "Wodospadem Czasu" zagrane na maszynie Softsyntha z 16-bitowymi samplami...

No i to, co można by skomponować, mając Softsyntha bez ograniczenia na ilośc kanałów i na dodatek jajieś GUI.

No to żeś PIKnął (33 razy ;P). A na poważnie - jak sama nazwa wskazuje - SOFT(SYNTH) - tam nie ma sampli, wszystko jest liczone przez Atari, poprzez zapętlanie fali. To są pseudo-sample, generowane, a nie samplowane. Taka idea programu.
Swoją drogą - szkoda, że nie ma drugiego takiego z obsługą jak w trakerze, może by więcej muzyczek było...

Sikor umarł...

69

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Pliki .s to jednak są sample.. mają zdefiniowany 1 okres fali na 256 bajtach :)  @ 4 bity na bajt.
Pliki .h to coś a'la adsr

No i siła brzmień softsyntha i jego prostota to możliwość kombinacji .s z .h - dowolnie

A teraz wyobraźmy sobie nie 4 a 16 bitów w definicji .s. I nie 256 bajtów a np 4 kB

----
A tymczasem format i syntezator mam wstępnie rozpracowany.

70

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

tak, ale sample wygenerowane software-owo. W każdym razie jak napisał yerz: gdyby dało się to potem odpalić na atarkę...

Sikor umarł...

71

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

pik33 napisał/a:

Tak sobie wyobrazić "Wodospadem Czasu" zagrane na maszynie Softsyntha z 16-bitowymi samplami...

Odlot! Akurat ten kawałek to mój najulubieńszy utwór z Softsynth i jeden z najlepszych ogólnie z Atari 8-bit !!!! :)
Solo na basie w tym utworze to po prostu mistrzostwo... Poza tym jest świetna perkusja, itp., itd.

pik33 napisał/a:

W sumie wiem jak to zrobić, aby mi tylko czasu i zapału nie zabrakło. Jak się uda, opublikuję na GPL :)

Trzymam kciuki, oby Ci się udało!

Ostatnio edytowany przez Dracon (2010-06-07 21:12:34)

72

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Po rozpracowaniu w jakichś 70% kodu zapisu muzyki w Softsynth jestem coraz bardziej pełen podziwu dla autora/autorów. W każdym razie mam już wstępną wersję listera na PC - autor tego softu zadbał, żeby najczęściej używane polecenie w stylu 1,C1 było zapisane jsk najoszczędniej. 5 bajtów na nutkę, z czego 2 bajty numeru linii, 1 bajt offsetu do następnego polecenia, skombinowanego z numerem kanału i zapalonym siódmym bitem (ten zapalony bit robi za kod tego polecenia, pozostałe mają kod na 4 bajcie plus 15 bit numeru linii), dwa pozostałe bajty to częstotliwość, pomnożona przez jakąś dziwaczną stałą, (65/11 - nie wiem skąd taka dziwna liczba) w każdym razie dźwięk A (440 Hz) =$0A28 = 2600 dec

A moduły zabezpieczone przed listowaniem mają najzwyczajniej w świecie wyzerowane wszystkie numery linii.

Początek kodu zaczyna się zawsze $168 bajtów od początku pliku. Wcześniej jest nagłówek i nazwy plików sampli/adsr użytych w module.

Rekord zapisu ma strukturę następującą (bajty liczę od 1):

bajt 1,2 (15 bitów) - numer linii (LO, HI); bit 7 bajtu HI jest bitem 9 kodu instrukcji

bajt 3:
- bit 7 - ustawiony na 1 oznacza 2-argumentową uproszczoną instrukcję grania tonu (kanał, ton)
- bity 6,5 - numer kanału dla niektórych instrukcji
- bity 0..4 - długośc rekordu w bajtach.

Dla polecenia "print"  długością rekordu są bity 0..6

bajt 4: 8 młodszych bitów kodu instrukcji; jeśli bit 7 bajtu 3 =1 to bajt 4 i 5=częstotliwość*65/11

kolejne bajty, do końca rekordu: argumenty instrukcji.

Plik kończy się sekwencją $00,$80,$20,$20,$20

Zdekodowane jak dotąd polecenia (kody dec):

125 - pełne polecenie grania w składni kanał, ton,fala,obwiednia,głośność, czas, opóźnienie
257 - print ('?')
265 - speed
260..263 set 1..set 4
273 tron
274 troff
275 track
291 wait

Reszta kodów to już tylko kwestia czasu.. trzeba zacząć robić maszynę grającą na PC i sprawdzić, czy nie da się wyciągnąc tego samego kodu z plików .sap

--------------
EDIT: Kod źródłowy plików SoftSyntha daje się wyciągnąć z SAPa. Dają się też z niego wyciągnąć wszystkie użyte w module .s i .h. Właśnie wydusiłem "Wodospadem czasu" (nie miałem tego źródła) oraz brakujący w moich zasobach "beben.s", wrzuciłęm z pomocą windows commandera do obrazu dyskietki .atr, uruchomiłem pod emulatorem softsyntha - plik wczytuje się i gra.

Ostatnio edytowany przez pik33 (2010-06-08 11:48:02)

73

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

dobra robota. Jeśli się Jakub Husak zgodzi - poprosimy o pliczki w formacie SoftSyntha. I o traker zapisujący dla Atari z PC :)

Sikor umarł...

74

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Jak mnie nie przywalą nadmiarem roboty, to jutro zacznę z interpreterem MASICa na PC. Mam w głowie ogólny schemat, ale trzeba go zaimplementować. No i trochę żmudnej roboty z dekodowaniem całej reszty poleceń - muszę zdekodować kilka modułków żeby wydusić z niego wszystkie polecenia wraz z argumentami. Modułki Jakuba Husaka mam już wszystkie w formacie softsyntha.

Poniżej procedury w Pascalu (FPC/Lazarus) - kod pisany dziś na szybko, więc nie musi być idealny. Trzeba zrobić w lazarusie formę z elementami: Memo, 2 buttony i 1 OpenDialog, po czym dokleić poniższe procedurki.

// (c) 2010 pik33 
// licencja: GPL 2.0

procedure TForm1.Button1Click(Sender: TObject); //lister

var i,fh,il,command,offset,chl,line:integer;
    bufor:array[1..5120] of byte;
    koniec:boolean;
    linijka, l2:string;


begin
  if opendialog1.execute then
    begin
      fh:=fileopen(opendialog1.filename, $40);
      fileread(fh,bufor,$168); //168
      koniec:=false;
      memo1.lines.clear;
      repeat
        il:=fileread(fh,bufor,4);
        command:=bufor[4];
        line:=bufor[1]+256*bufor[2];
        if line>=32768 then
          begin
          line:=line-32768;
          command:=command+256;
          end;
        if command=257 then offset:=bufor[3] else offset:=bufor[3] and $1F;
        if command<>257 then chl:=(bufor[3] shr 5) else chl:=-1;
        l2:='';
        for i:=1 to 4 do l2:=l2+inttostr(bufor[i])+' ';
        if (bufor[1]=00) and (bufor[2]=$80) and (bufor[3]=$20) and (bufor[4]=$20) then koniec:=true;
        if not koniec then
          begin
          il:=fileread(fh,bufor,offset-4);
          if il<>offset-4 then koniec:=true;
          linijka:='('+l2+') ';
          linijka:=linijka+'line: '+inttostr(line)+' ';
          linijka:=linijka+'offset: '+inttostr(offset)+' ';
          linijka:=linijka+'channel: '+inttostr(chl)+' ';
          linijka:=linijka+'command: '+inttostr(command)+': ';
          linijka:=linijka+'args: ';
          for i:=1 to offset-4 do linijka:=linijka+inttostr(bufor[i])+' ';
          memo1.lines.add(linijka);
          end;
      until koniec;
      fileclose(fh);
    end;
end;

procedure TForm1.Button2Click(Sender: TObject); //cracker
var i,fh2,fh,il,command,offset,chl,line:integer;
    bufor:array[1..5120] of byte;
    koniec:boolean;
    linijka, l2:string;
    linenum_lo,linenum_hi:byte;

begin
  if opendialog1.execute then
    begin
      fh:=fileopen(opendialog1.filename, $40);
      fh2:=filecreate(opendialog1.filename+'.crack');

      fileread(fh,bufor,$168);
      filewrite(fh2,bufor,$168);

      linenum_lo:=0;
      linenum_hi:=0;
      koniec:=false;
      memo1.lines.clear;
      repeat
        il:=fileread(fh,bufor,4);
        command:=bufor[4];
        line:=bufor[1]+256*bufor[2];
        if (bufor[1]=00) and (bufor[2]=$80) and (bufor[3]=$20) and (bufor[4]=$20) then koniec:=true;
        if line>=32768 then
          begin
          line:=line-32768;
          command:=command+256;
          end;
        if command=257 then offset:=bufor[3] else offset:=bufor[3] and $1F;
        if not koniec then
          begin
          inc(linenum_lo);
          if linenum_lo=0 then inc(linenum_hi);
          bufor[1]:=linenum_lo;
          bufor[2]:=linenum_hi;
          if command>=256 then bufor[2]:=bufor[2] or 128;
          filewrite(fh2,bufor,4);
          il:=fileread(fh,bufor,offset-4);
          if il<>offset-4 then koniec:=true;
          filewrite(fh2,bufor,il);
          end;
      until koniec;
      bufor[1]:=0;bufor[2]:=$80;bufor[3]:=$20;bufor[4]:=$20;bufor[5]:=$20;
      filewrite(fh2,bufor,5);
      fileclose(fh);
      fileclose(fh2);
    end;
end;

PS: czy macie gdzieś tu miejsce na wrzucanie plików?

Ostatnio edytowany przez pik33 (2010-06-08 18:51:48)

75

Odp: SOFTSYNTH - może ktoś napisze dwa zdania?

Macie. Pod polem, w którym piszesz jest przycisk "Wybierz plik".

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.