SampleTweaker

Questions, bug reports, features requests, ... about the Oric Software Development Kit. Please indicate clearly in the title the related element (OSDK for generic questions, PictConv, FilePack, XA, Euphoric, etc...) to make it easy to locate messages.

User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: SampleTweaker

Post by jbperin »

Dbug wrote: Thu Aug 12, 2021 11:01 am - Have you checked that the output of the pcmenc was identical to what your python script did
Nope.
But I don't think it will be identical because, as I was casting a glance at the C++ source code, I noticed that it was question of RLE compressing the sample which was not the case in the Matlab script I started from.
Perhaps they felt on the issue of the size in memory and then decided to use RLE to ligthen the weight of sample in memory.
Dbug wrote: Thu Aug 12, 2021 11:01 am - Have you reached the conclusion that viterbi encoding was worth having on the oric?
Not exactly but my position on the topic is mitigated:
- I find that the viterbi encoded Welcome message is more "accurate" regarding the original sample than the one in your demo (accurate in the sens of "fidèle" and "ressemblant" in french)
- With the current implementation of the replayer, the quantity of memory used to store the sample makes that the benefit/cost balance is not interesting. The quality seems better but far too memory greedy.
- When I look at the shape of writings in PSG'registers, I'm almost sure that there may exist a smart way to compress the encoded sample in memory .. but for now I've failed to find the courage to look for and implement it.
- With technologies such as Oricart (from IssRax) or TwilightBoard (from jede) it becomes possible to read huge amount of data from SdCard and then to relax the memory size constraint.


We do have a mean to test the sound quality offered by sample encoded with the viterbi algorithm.
We do not have yet (and perhaps we will never have) the mean to use it in a software production.

Dbug wrote: Thu Aug 12, 2021 11:01 am Only if we get a decoder with it.
If Viterbi, in it's current implementation, is not better than any of the current versions on any of the criteria, and also requires hours of data crunching to achieve the same result, it's not worth investing time in it.
Well technically speaking, we have a Viterbi decoder that works and that was used in some demos. :D
But honnestly, I would not recommand to build upon it as it is.
My secret hope was that someone like you would find interesting to implement a smart compression/decompression system that feed the buffer used by the reader .. but well .. let's be realistic .. "je n'ai jamais réussi à te refiler du boulot et ce n'est pas demain la veille que je vais y parvenir".

As for ADPCM .. I love the idea ..
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: SampleTweaker

Post by jbperin »

Dbug wrote: Thu Aug 12, 2021 11:01 am I don't add stuff that will not be used.
I think that it is a very wise position and I can't help telling myself that I should have thought of that before starting glOric (the most unused 3D engine on earth).

But the question is: "how can we know if something is going to be used or not ?"
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: SampleTweaker

Post by Dbug »

jbperin wrote: Fri Aug 13, 2021 8:43 am
Dbug wrote: Thu Aug 12, 2021 11:01 am I don't add stuff that will not be used.
I think that it is a very wise position and I can't help telling myself that I should have thought of that before starting glOric (the most unused 3D engine on earth).

But the question is: "how can we know if something is going to be used or not ?"
That's not really a difficult question to answer, but there are multiple parameters
- If only you manage to use it because it's difficult to understand, modify or extend, it's not going to be used
- If it uses so much CPU time or memory that it can't be used for anything else, it's not going to be used
- If it's an alternative way of doing something that does not bring significant improvements, it's not going to be used

Basically things are going to be used if they bring significant benefits without significant drawbacks.

That's why many people have switched from the OSDK to CC65, the CC65 compiler has allowed them to do what LCC65 was not able to do because of code size bloat, and people are starting to moe from CC65 to VBCC because the code performance is getting significantly better.

Rule of thumb: You can impress people with fancy graphics, impressive audio, bombastic statements and advertisement, but ultimately they will judge the product by if they can use easily grasp how to use it.

Concrete example: I doubt anyone will try to do anything new with your raycasting engine, until you handle the difficult part for them, which is "interactive elements".

In the current version, all you can do is variants of empty maze games.

Sure, they are impressive mazes, but you already did them, so there's nothing else to do.

Now, if you add support for:
- Doors that can be opened and closed or locked
- Items that can be collected (like keys) or interacted with (buttons, switches, panels to read, ...)
- Things that can move around and can interact with you

Then suddenly you have something that can be used for all kind of 3D adventure games. Assuming there is still room in memory.

A tech demo is just that: A tech demo, a proof of concept.
Until you can show a couple of different usages for it, showing clearly how things were done/modified, nobody uses anything.
User avatar
Chema
Game master
Posts: 3014
Joined: Tue Jan 17, 2006 10:55 am
Location: Gijón, SPAIN
Contact:

Re: SampleTweaker

Post by Chema »

jbperin wrote: Fri Aug 13, 2021 8:43 am
Dbug wrote: Thu Aug 12, 2021 11:01 am I don't add stuff that will not be used.
I think that it is a very wise position and I can't help telling myself that I should have thought of that before starting glOric (the most unused 3D engine on earth).

But the question is: "how can we know if something is going to be used or not ?"
Sorry to jump in, but I wrote an isometric engine with a map editor included (white+noise), adapted a wireframe 3d engine (lib3d), and created a whole set for developing graphical adventure games (OASIS) with script compiler and room editor all of them never used by any other than me :)

It is not the destination, it is the journey that matters, isn't it? XD
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: SampleTweaker

Post by Dbug »

Chema wrote: Fri Aug 13, 2021 10:48 pm It is not the destination, it is the journey that matters, isn't it? XD
Definitely, heck, there's not point in making Oric games or demos, just that it's something enjoyable to do.

Regarding the C/C++/Python/WebDev/Libraries, I just saw that on Twitter:


Now put that thread in context with the OSDK having some code still using original K&R syntax, which is still supported by C compilers 30+ years later.

Technically we could take the original OSDK or first cross compiler from Fabrice, and compile it with a 2019 compiler.

If these tools had been written in Java Script, any other language with breaking changes in the API, or anything relying on externally fetched libraries, and there would be no way it would work without some update/fixing work.
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: SampleTweaker

Post by jbperin »

glOric and cactoric are libraries to render 3D scene.
I don't think they have to deal with doors, keys, interactive stuffs .. just as OpenGL has nothing to do with these kind of things.
That's pure game logic and it is not the responsibility of the graphic library.

In my opinion, glOric and castoric are not used mainly because there are only few developers for Oric and they are all on their own project, ideas, technologies.

Chema wrote: Fri Aug 13, 2021 10:48 pm It is not the destination, it is the journey that matters, isn't it? XD
That's totally right !!
I took lot of pleasure to create glOric and castoric. Of course I would be glad if never they were used by someone else than me.
But I don't forget that they are the result of my own personal challenge and my wish to contribute to Oric's community assets (and my willing to impress back some of the people who impressed me by they works on this machine).

And guess what .. I'm still having some news ideas of new impressive things that will probably never be used. :D
User avatar
Dbug
Site Admin
Posts: 4444
Joined: Fri Jan 06, 2006 10:00 pm
Location: Oslo, Norway
Contact:

Re: SampleTweaker

Post by Dbug »

jbperin wrote: Sat Aug 14, 2021 7:28 am glOric and cactoric are libraries to render 3D scene.
I don't think they have to deal with doors, keys, interactive stuffs .. just as OpenGL has nothing to do with these kind of things.
That's pure game logic and it is not the responsibility of the graphic library.
I totally disagree there.

Yes, what happens when a button is pressed is a game thing, but the support for handling the fact there is something you can interact with, which is going to be displayed and collided with, that's 100% the responsibility of the raycast engine, because it's absolutely non trivial to implement.

When I told you to do a 3D pacman, it was not just for the fun, it's because it's the most basic thing I can think of that:
- Has a maze to go around
- Needs proper collisions
- Has static and moving items
- They can be interacted with (pills) or can interact with you (ghosts)

At the very least, you could do a 3D museum room:
- A single room
- A bunch of pictures on the walls
- A bunch of items on some stands inside the room
- When you go close to the pictures or items, you get a small text that appears with the name or description
- You can't go through the items (collision)

Without these things, making a game from your tech demo is very very difficult, and definitely out of ram of the skills range of almost everybody except you.
User avatar
jbperin
Flight Lieutenant
Posts: 480
Joined: Wed Nov 06, 2019 11:00 am
Location: Valence, France

Re: SampleTweaker

Post by jbperin »

Dbug wrote: Sat Aug 14, 2021 7:45 am - Has static and moving items
- They can be interacted with (pills) or can interact with you (ghosts)
To some extend, I agree with you. That would definitely be a step toward a nice 3D game engine
Dbug wrote: Sat Aug 14, 2021 7:45 am At the very least, you could do a 3D museum room:
- A single room
- A bunch of pictures on the walls
- A bunch of items on some stands inside the room
- When you go close to the pictures or items, you get a small text that appears with the name or description
- You can't go through the items (collision)
Yes, that's something I had thought of .. creating a kind of show room with some art from the Lovebyte 2021
Dbug wrote: Sat Aug 14, 2021 7:45 am Without these things, making a game from your tech demo is very very difficult, and definitely out of ram of the skills range of almost everybody except you.
It is very difficult for me also :-( ...

PS: By the way .. I think you're right not to incorporate too many dependencies into OSDK build chain such as Python.
I can totally understand your position .. as long it is not criticizing Python for wrong reasons.
And just to let you know .. Python has a Virtual Environment System which is supposed to guarantee the "sustainability" in time of developments. It's convenient but I don't know what it gives on long term usage.
Post Reply