Hi all, it`s my first post on this great place!
I would like to ask Masters of PD: if I need build PD based sequencer (with microedit, track names, volume mute pan loop points ....) is better to use data arrays or qlist for store events? What is the best for do this sequencer? Jakub Szczypek
Spotkaj sie z gwiazdÂą twarzÂą w twarz! Wygraj spotkanie z LINKIN PARK! http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Flinkinpark.html...
If you are planning on saving and loading, I think [textfile] or [qlist] would be better; aside from that I don't think it matters?
What do you mean by microedit? Sounds intriguing :)
Kevin
On 6/10/07, Kuba Szczypek qqqq268@wp.pl wrote:
Hi all, it`s my first post on this great place!
I would like to ask Masters of PD: if I need build PD based sequencer (with microedit, track names, volume mute pan loop points ....) is better to use data arrays or qlist for store events? What is the best for do this sequencer? Jakub Szczypek
Spotkaj sie z gwiazdą twarzą w twarz! Wygraj spotkanie z LINKIN PARK!
http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Flinkinpark.html...
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Hallo, Kuba Szczypek hat gesagt: // Kuba Szczypek wrote:
I would like to ask Masters of PD: if I need build PD based sequencer (with microedit, track names, volume mute pan loop points ....) is better to use data arrays or qlist for store events? What is the best for do this sequencer?
IMO [qlist] is quite limited, and what do you mean with "data arrays": the arrays inside a [table] or the arrays as used in data structures? Data structures are very powerful for sequencing or rather for storing and passing the data, that you use for sequencing. The actual sequencing, i.e. scheduling events in time, generally is made with the time based objects [metro], [delay] and [pipe] (or [qlist] if you can live with its limitations.)
But maybe you can describe in a bit more detail what your sequencer should do, as "sequencer" is a word that says all and nothing.
Frank Barknecht _ ______footils.org_ __goto10.org__
IMO [qlist] is quite limited, and what do you mean with "data arrays": the arrays inside a [table] or the arrays as used in data structures? Data structures are very powerful for sequencing or rather for storing and passing the data, that you use for sequencing. The actual sequencing, i.e. scheduling events in time, generally is made with the time based objects [metro], [delay] and [pipe] (or [qlist] if you can live with its limitations.)
But maybe you can describe in a bit more detail what your sequencer should do, as "sequencer" is a word that says all and nothing.
OK-fast response give me a kick for work. After attempt (months ago) without succes I only thinked about it. Meanwhile I read about order in patch for visually clear. Now I comeback to work at sequencer on pd with bigger chance to finish - with your help.
Thank you for responses - of course I mean arrays in table who pd can also write and read to storage. (For "the arrays as used in data structures" I`m too thinny now)
Firstly I say about my idea. I would like to build all complette mini setup for compose and play live. Since I have synthesizers I mostly will try to build:
A. -classic sequencer MIDI with functions: event list, copy tracks, merge tracks, add bars, delete bars, shift tracks by ticks & transpose & volume & pan (of course on the fly or based on "process apply"), track names, mute/solo, loop points, change songs in short time. Of course it isn`t important to have compability with SMF, but since I seen seq from Cyclone I know that I must also learn C. But firstly I would like to do this "sipler" in pd. Maybe it is harder i pd than in C, but I not started learn C yet.
For me it is BIG and complicated project. I decided to use arrays in
table for storing all data.
I started second time (after months of pause) today after my first post.
Im open for any suggestions. I will do this and from time to time will show what I do - becouse I need your help and evaluation. I really wouldn
t like to have second time failure.
Of course this sequencer can be usefull for others if we will implement
important for you futures. So I`m ready for this also - since we all
work together.
It is hard to write (with my english) all idea in short email. Please
help me - by asking or suggesting. If you know any sequencer ready for
use with this futures - please report me.
I forgot to write that I have experience with ensoniq sd-1 sequencer, and Logic+Logic Control. I want to mix this both styles to my new one. Also important: It must be controlable from MIDI hardware too. I builded speciall one controller for this software, of course it is possible to add more buttons, or anything if needed (special thanks for Thorsten Klose from www.ucapps.de). When everything will work good - I will try also need to add audio tracks.
B. mixer audio with scenes, some fx`s (specially dub delay), eq for - I think not hard to do if I will not espect too much from my CPU
C. sampler based on pd examples (also not too hard)
D. mutlitrack for record all track on the fly
Important!: When I will change songs, my friend will play on guitar - I would like to record it too - so sequencer must change song fast, but without doing any glithes or drop on audio.
Like I said: all will be controlable from MIDI by special hardware.
About GUI or harware I will ask you also later, when tracks select, record, song select, .... (and many many more functions) will work. So I start from sequencer - since this is heart. What you think about my idea? Thank you for reading this long story. Jakub Szczypek
Kolejne morderstwo w Midsomer - powieœÌ Caroline Graham "Bezpieczne miejsce" ju¿ w sprzeda¿y http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Fd100.html&s...
Hallo, Kuba Szczypek hat gesagt: // Kuba Szczypek wrote:
Firstly I say about my idea. I would like to build all complette mini setup for compose and play live. Since I have synthesizers I mostly will try to build:
A. -classic sequencer MIDI with functions: event list, copy tracks, merge tracks, add bars, delete bars, shift tracks by ticks & transpose & volume & pan (of course on the fly or based on "process apply"), track names, mute/solo, loop points, change songs in short time. Of course it isn`t important to have compability with SMF, but since I seen seq from Cyclone I know that I must also learn C. But firstly I would like to do this "sipler" in pd. Maybe it is harder i pd than in C, but I not started learn C yet.
For me it is BIG and complicated project.
I agree, indeed this sounds like a big project. One thing I would recommend from a software engineer's point of view is to divide it into smaller, functional tasks, that you can later combine into bigger things.
I decided to use arrays in table for storing all data.
Actually I think, data structures would be much better for this in the long run. With tables, you would need to use lots of tables and keep track of the names of all these tables and what kind of function the various tables have. For example even simple note event has at least four properties: note, velocity, start time and duration. You would either need four tables to store many of these or make a table where you read out numbers in groups of four. But if you later decide to also include something like instrument number in a note event, then you need another table or you need to change your whole patch to read out your event-table in groups of five instead of four!
Data structures make all this much easier. You could start with a simple structure for note events that would contain the fields for note, velocity, onset time and duration. This can be extended later to include instrument number or whatever by just adding a field to the noteevent structure in one place.
Also passing around these noteevents to the various sequencing objects e.g. [pipe] is much easier. And of course editing can be simply done with the mouse.
I believe that data structures aren't that hard to learn and definitely nothing to be afraid of if you approach them with some patience until it makes "click" in your head. There is a very good pdf-introduction to data structures on the puredata.info site, and there's the simple tutorial in patch format that I wrote for pd~convention 2004 included in the convention documentation. These should get you started.
I would recommend trying build a simple data structure note-event player first. Just create a [struct event float x float y float duration] where you take "x" for onset-time and "y" for frequency. Ignore velocity for now. To paint it, just use a simple [drawnumber x] at first. [drawnumber] is much easier to use at first compared to [drawpolyon] etc.
Then learn how to add many of these events to a subpatch. See the help for [append] and [struct]. After that, learn how to walk through the events in your patch, first manually, then sequenced automatically. Attached patch contains an example for all this.
Frank Barknecht _ ______footils.org_ __goto10.org__
Actually I think, data structures would be much better for this in >the long run. With tables, you would need to use lots of tables and keep track of the names of all these tables and what kind of function the various tables have. For example even simple note event has at least four properties: note, velocity, start time and duration. You would either need four tables to store many of these or make a table where you read out numbers in groups of four. But if you later decide to also include something like instrument number in a note event, then you need another table or you need to change your whole patch to read out your event-table in groups of five instead of four!
I understand. Firstly I thinked that I will use one big table for events. For one event I will reserved for 8 positions (bar, quarter, tick, type, val1, val2, and 2 others for future), but it is wasting some memory, since I never know if I will use this additionl 2 positions, or maybe I will need 3 or more. When I need storring sysex - in my one event (who get 8 position in table) I can store only one byte - so it is drastically wasting memory. So I will look at "data structures" - I really don`t know what it is, but sound is interesting. I will check possibilities of it fast as possible.
Thank you for conversate with me.
I believe that data structures aren't that hard to learn and definitely nothing to be afraid of if you approach them with some patience until it makes "click" in your head. There is a very good pdf-introduction to data structures on the puredata.info site, and there's the simple tutorial in patch format that I wrote for pd~convention 2004 included in the convention documentation. These should get you started.
I definitelly need this"click".
Im under impression of your answer. OK I will do my job - I will check and try to catch "click". Please give me some time for this. I will tell you my personal observations. One more time thank you for give me this new direction and felling that I
m not alone.
Jakub Szczypek
Spotkaj sie z gwiazdÂą twarzÂą w twarz! Wygraj spotkanie z LINKIN PARK! http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Flinkinpark.html...
here's an old sequencer i did with data structures...not sure if it ever really worked properly, but it might give you some ideas.
http://puredata.hurleur.com/sujet-445-logic-audio-style-matrix-editor
to make that patch work on non-osx systems, you will need to change GRIDGRAD.GIF into lower case ... ie gridgrad.gif